Class: Fog::Kubevirt::Compute::Storageclasses

Inherits:
Collection
  • Object
show all
Defined in:
lib/fog/kubevirt/compute/models/storageclasses.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#kindObject (readonly)

Returns the value of attribute kind.



8
9
10
# File 'lib/fog/kubevirt/compute/models/storageclasses.rb', line 8

def kind
  @kind
end

#resource_versionObject (readonly)

Returns the value of attribute resource_version.



8
9
10
# File 'lib/fog/kubevirt/compute/models/storageclasses.rb', line 8

def resource_version
  @resource_version
end

Instance Method Details

#all(filters = {}) ⇒ Object



12
13
14
15
16
17
# File 'lib/fog/kubevirt/compute/models/storageclasses.rb', line 12

def all(filters = {})
  storageclasses = service.list_storageclasses(filters)
  @kind = storageclasses.kind
  @resource_version = storageclasses.resource_version
  load storageclasses
end

#create(args = {}) ⇒ Object

Creates a storage class using provided paramters: kubernetes.io/docs/concepts/storage/storage-classes :name [String] - name of a storage class :parameters [Object] - parameters for the provisioner that should create volumes of this storage class :mount_options [Arr] - mount options for the dynamically provisioned PersistentVolumes of this storage class. :provisioner [String] - the type of the provisioner :volume_binding_mode [String] - indicates how PersistentVolumeClaims should be provisioned and bound :reclaim_policy [String] - the reclaim policy of the created PVs (Defaults to Delete).



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/fog/kubevirt/compute/models/storageclasses.rb', line 31

def create(args = {})
  storageclass = {
    :apiVersion => "storage.k8s.io/v1",
    :kind => "StorageClass",
    :metadata => {
      :name      => args[:name],
    },
    :parameters          => args[:parameters],
    :mount_options       => args[:mount_options],
    :provisioner         => args[:provisioner],
    :volume_binding_mode => args[:volume_binding_mode],
    :reclaim_policy      => args[:reclaim_policy]
  }

  service.create_storageclass(storageclass)
end

#delete(name) ⇒ Object



48
49
50
51
52
53
54
55
56
57
# File 'lib/fog/kubevirt/compute/models/storageclasses.rb', line 48

def delete(name)
  begin
    storageclass = get(name)
  rescue ::Fog::Kubevirt::Errors::ClientError
    # the storageclass doesn't exist
    storageclass = nil
  end

  service.delete_storageclass(name) unless storageclass.nil?
end

#get(name) ⇒ Object



19
20
21
# File 'lib/fog/kubevirt/compute/models/storageclasses.rb', line 19

def get(name)
  new service.get_storageclass(name)
end