Class: Fog::Kubevirt::Compute::Mock

Inherits:
Object
  • Object
show all
Includes:
Shared
Defined in:
lib/fog/kubevirt/compute/compute.rb,
lib/fog/kubevirt/compute/requests/get_vm.rb,
lib/fog/kubevirt/compute/requests/get_pvc.rb,
lib/fog/kubevirt/compute/requests/get_node.rb,
lib/fog/kubevirt/compute/requests/list_vms.rb,
lib/fog/kubevirt/compute/requests/create_vm.rb,
lib/fog/kubevirt/compute/requests/delete_vm.rb,
lib/fog/kubevirt/compute/requests/list_pvcs.rb,
lib/fog/kubevirt/compute/requests/update_vm.rb,
lib/fog/kubevirt/compute/requests/create_pvc.rb,
lib/fog/kubevirt/compute/requests/delete_pvc.rb,
lib/fog/kubevirt/compute/requests/get_server.rb,
lib/fog/kubevirt/compute/requests/list_nodes.rb,
lib/fog/kubevirt/compute/requests/get_service.rb,
lib/fog/kubevirt/compute/requests/get_template.rb,
lib/fog/kubevirt/compute/requests/list_servers.rb,
lib/fog/kubevirt/compute/requests/list_volumes.rb,
lib/fog/kubevirt/compute/requests/list_services.rb,
lib/fog/kubevirt/compute/requests/create_service.rb,
lib/fog/kubevirt/compute/requests/delete_service.rb,
lib/fog/kubevirt/compute/requests/get_vminstance.rb,
lib/fog/kubevirt/compute/requests/list_templates.rb,
lib/fog/kubevirt/compute/requests/get_storageclass.rb,
lib/fog/kubevirt/compute/requests/list_vminstances.rb,
lib/fog/kubevirt/compute/requests/create_vminstance.rb,
lib/fog/kubevirt/compute/requests/delete_vminstance.rb,
lib/fog/kubevirt/compute/requests/create_storageclass.rb,
lib/fog/kubevirt/compute/requests/delete_storageclass.rb,
lib/fog/kubevirt/compute/requests/list_storageclasses.rb,
lib/fog/kubevirt/compute/requests/get_persistentvolume.rb,
lib/fog/kubevirt/compute/requests/list_persistentvolumes.rb,
lib/fog/kubevirt/compute/requests/create_persistentvolume.rb,
lib/fog/kubevirt/compute/requests/delete_persistentvolume.rb,
lib/fog/kubevirt/compute/requests/get_networkattachmentdef.rb,
lib/fog/kubevirt/compute/requests/list_networkattachmentdefs.rb,
lib/fog/kubevirt/compute/requests/create_networkattachmentdef.rb,
lib/fog/kubevirt/compute/requests/delete_networkattachmentdef.rb

Constant Summary

Constants included from Shared

Shared::OS_LABEL, Shared::OS_LABEL_SYMBOL

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Shared

#deep_merge!, #object_to_hash

Constructor Details

#initialize(options = {}) ⇒ Mock

Returns a new instance of Mock.



524
525
526
# File 'lib/fog/kubevirt/compute/compute.rb', line 524

def initialize(options={})
  @namespace = options[:namespace]
end

Instance Attribute Details

#namespaceObject

Returns the value of attribute namespace.



523
524
525
# File 'lib/fog/kubevirt/compute/compute.rb', line 523

def namespace
  @namespace
end

Instance Method Details

#clientObject



528
529
530
# File 'lib/fog/kubevirt/compute/compute.rb', line 528

def client
  return @client if defined?(@client)
end

#create_networkattachmentdef(_net_att_def) ⇒ Object



32
33
# File 'lib/fog/kubevirt/compute/requests/create_networkattachmentdef.rb', line 32

def create_networkattachmentdef(_net_att_def)
end

#create_persistentvolume(volume) ⇒ Object



14
15
# File 'lib/fog/kubevirt/compute/requests/create_persistentvolume.rb', line 14

def create_persistentvolume(volume)
end

#create_pvc(attrs) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/fog/kubevirt/compute/requests/create_pvc.rb', line 14

def create_pvc(attrs)
  attrs_set_1g = {:apiVersion=>"v1",
                  :kind=>"PersistentVolumeClaim",
                  :metadata=>{:name=>"robin-rykert-example-com-claim-1",
                              :namespace=>"default"},
                              :spec=>{:storageClassName=>"local-storage",
                                      :resources=>{:requests=>{:storage=>"1G"}},
                                      :selector=>{},
                                      :accessModes=>["ReadWriteOnce"]}}
  if attrs == attrs_set_1g
    result = Kubeclient::Resource.new
    result.kind = "PersistentVolumeClaim"
    result.apiVersion="v1"
    result. = {:name=>"robin-rykert-example-com-claim-1",
                       :namespace=>"default",
                       :selfLink=>"/api/v1/namespaces/default/persistentvolumeclaims/robin-rykert-example-com-claim-1",
                       :uid=>"00a7e1d7-5875-11e9-9132-525400c5a686",
                       :resourceVersion=>"1020273",
                       :creationTimestamp=>"2019-04-06T14:05:15Z"}
    result.spec = {:accessModes=>["ReadWriteOnce"],
                   :selector=>{},
                   :resources=>{:requests=>{:storage=>"1G"}},
                   :storageClassName=>"local-storage",
                   :volumeMode=>"Filesystem",
                   :dataSource=>nil}
    result.status = {:phase=>"Pending"}
    return result
  end

  attrs_set_2g = {:apiVersion=>"v1",
                  :kind=>"PersistentVolumeClaim",
                  :metadata=>{:name=>"robin-rykert-example-com-claim-2",
                              :namespace=>"default"},
                              :spec=>{:storageClassName=>"local-storage",
                                      :resources=>{:requests=>{:storage=>"2G"}},
                                      :selector=>{},
                                      :accessModes=>["ReadWriteOnce"]}}
  if attrs == attrs_set_2g
    result = Kubeclient::Resource.new
    result.kind="PersistentVolumeClaim"
    result.apiVersion="v1"
    result. = {:name=>"robin-rykert-example-com-claim-2",
                       :namespace=>"default",
                       :selfLink=>"/api/v1/namespaces/default/persistentvolumeclaims/robin-rykert-example-com-claim-2",
                       :uid=>"00aa08ba-5875-11e9-9132-525400c5a686",
                       :resourceVersion=>"1020274",
                       :creationTimestamp=>"2019-04-06T14:05:15Z"}
    result.spec = {:accessModes=>["ReadWriteOnce"],
                   :selector=>{},
                   :resources=>{:requests=>{:storage=>"2G"}},
                   :storageClassName=>"local-storage",
                   :volumeMode=>"Filesystem",
                   :dataSource=>nil}
    result.status = {:phase=>"Pending"}
    return result
  end

  attrs_set_1g_image = {:apiVersion=>"v1",
                        :kind=>"PersistentVolumeClaim",
                        :metadata=>{:name=>"olive-kempter-example-com-claim-1",
                                    :namespace=>"default"},
                                    :spec=>{:storageClassName=>"local-storage",
                                            :resources=>{:requests=>{:storage=>"1G"}},
                                            :selector=>{},
                                            :accessModes=>["ReadWriteOnce"]}}

  if attrs == attrs_set_1g_image
    result = Kubeclient::Resource.new
    result.kind="PersistentVolumeClaim"
    result.apiVersion="v1"
    result.={:name=>"olive-kempter-example-com-claim-1",
                     :namespace=>"default",
                     :selfLink=>"/api/v1/namespaces/default/persistentvolumeclaims/olive-kempter-example-com-claim-1",
                     :uid=>"d4d63298-5945-11e9-9132-525400c5a686",
                     :resourceVersion=>"1075554",
                     :creationTimestamp=>"2019-04-07T15:00:06Z"}
    result.spec={:accessModes=>["ReadWriteOnce"],
                 :selector=>{},
                 :resources=>{:requests=>{:storage=>"1G"}},
                 :storageClassName=>"local-storage",
                 :volumeMode=>"Filesystem",
                 :dataSource=>nil}
    result.status={:phase=>"Pending"}
    result
  end
end

#create_service(srv) ⇒ Object



14
# File 'lib/fog/kubevirt/compute/requests/create_service.rb', line 14

def create_service(srv); end

#create_storage_class(attrs) ⇒ Object



14
# File 'lib/fog/kubevirt/compute/requests/create_storageclass.rb', line 14

def create_storage_class(attrs); end

#create_vm(vm) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/fog/kubevirt/compute/requests/create_vm.rb', line 16

def create_vm(vm)
  args_network_based ={:kind=>"VirtualMachine",
                       :metadata=>{:labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"},
                                   :name=>"robin-rykert.example.com",
                                   :namespace=>"default"},
                                   :spec=>{:running=>false,
                                           :template=>{:metadata=>{:creationTimestamp=>nil,
                                                                   :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"}},
  :spec=>{:domain=>{:devices=>{:disks=>[{:name=>"robin-rykert-example-com-disk-00",
                                         :disk=>{:bus=>"virtio"}},
  {:name=>"robin-rykert-example-com-disk-01",
   :disk=>{:bus=>"virtio"}}],
  :interfaces=>[{:bridge=>{},
                 :name=>"ovs-foreman",
                 :bootOrder=>1,
                 :macAddress=>"a2:b4:a2:b6:a2:a8"}]},
                 :machine=>{:type=>""},
                 :resources=>{:requests=>{:memory=>"1024M"}},
                 :cpu=>{:cores=>1}},
  :terminationGracePeriodSeconds=>0,
  :volumes=>[{:name=>"robin-rykert-example-com-disk-00",
              :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-1"}},
  {:name=>"robin-rykert-example-com-disk-01",
   :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-2"}}],
  :networks=>[{:name=>"ovs-foreman",
               :multus=>{:networkName=>"ovs-foreman"}}]}}}}
  if vm == args_network_based
    result = Kubeclient::Resource.new
    result.apiVersion="kubevirt.io/v1alpha3"
    result.kind="VirtualMachine"
    result.={:creationTimestamp=>"2019-04-06T14:05:15Z",
                     :generation=>1,
                     :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"},
                     :name=>"robin-rykert.example.com",
                     :namespace=>"default",
                     :resourceVersion=>"1020275",
                     :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/robin-rykert.example.com",
                     :uid=>"00ae63ee-5875-11e9-9132-525400c5a686"}
    result.spec={:running=>false,
                 :template=>{:metadata=>{:creationTimestamp=>nil,
                                         :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"}},
    :spec=>{:domain=>{:cpu=>{:cores=>1},
                      :devices=>{:disks=>[{:disk=>{:bus=>"virtio"},
                                           :name=>"robin-rykert-example-com-disk-00"},
                                           {:disk=>{:bus=>"virtio"},
                                            :name=>"robin-rykert-example-com-disk-01"}],
                                            :interfaces=>[{:bootOrder=>1,
                                                           :bridge=>{},
                                                           :macAddress=>"a2:b4:a2:b6:a2:a8",
                                                           :name=>"ovs-foreman"}]},
                                                           :machine=>{:type=>""},
                                                           :resources=>{:requests=>{:memory=>"1024M"}}},
    :networks=>[{:multus=>{:networkName=>"ovs-foreman"},
                 :name=>"ovs-foreman"}],
                 :terminationGracePeriodSeconds=>0,
                 :volumes=>[{:name=>"robin-rykert-example-com-disk-00",
                             :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-1"}},
    {:name=>"robin-rykert-example-com-disk-01",
     :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-2"}}]}}}
    return result
  end

  args_image_based = {:kind=>"VirtualMachine",
                      :metadata=>{:labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"},
                                  :name=>"olive-kempter.example.com",
                                  :namespace=>"default"},
                                  :spec=>{:running=>false,
                                          :template=>{:metadata=>{:creationTimestamp=>nil,
                                                                  :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"}},
  :spec=>{:domain=>{:devices=>{:disks=>[{:name=>"olive-kempter-example-com-disk-00",
                                         :disk=>{:bus=>"virtio"},
                                         :bootOrder=>1},
                                         {:name=>"olive-kempter-example-com-disk-01",
                                          :disk=>{:bus=>"virtio"}}],
  :interfaces=>[{:bridge=>{},
                 :name=>"ovs-foreman",
                 :macAddress=>"a2:a4:a2:b2:a2:b6"}]},
                 :machine=>{:type=>""},
                 :resources=>{:requests=>{:memory=>"1024M"}},
                 :cpu=>{:cores=>1}},
  :terminationGracePeriodSeconds=>0,
  :volumes=>[{:name=>"olive-kempter-example-com-disk-00",
              :containerDisk=>{:image=>"kubevirt/fedora-cloud-registry-disk-demo"}},
  {:name=>"olive-kempter-example-com-disk-01",
   :persistentVolumeClaim=>{:claimName=>"olive-kempter-example-com-claim-1"}}],
  :networks=>[{:name=>"ovs-foreman",
               :multus=>{:networkName=>"ovs-foreman"}}]}}}}
  if vm == args_image_based
    result = Kubeclient::Resource.new
    result.apiVersion="kubevirt.io/v1alpha3"
    result.kind = "VirtualMachine"
    result.={:creationTimestamp=>"2019-04-07T15:00:07Z",
                     :generation=>1,
                     :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"},
                     :name=>"olive-kempter.example.com",
                     :namespace=>"default",
                     :resourceVersion=>"1075555",
                     :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/olive-kempter.example.com",
                     :uid=>"d4dba9e4-5945-11e9-9132-525400c5a686"},
                     result.spec={:running=>false,
                                  :template=>{:metadata=>{:creationTimestamp=>nil,
                                                          :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"}},
    :spec=>{:domain=>{:cpu=>{:cores=>1},
                      :devices=>{:disks=>[{:bootOrder=>1,
                                           :disk=>{:bus=>"virtio"},
                                           :name=>"olive-kempter-example-com-disk-00"},
                                           {:disk=>{:bus=>"virtio"},
                                            :name=>"olive-kempter-example-com-disk-01"}],
                                            :interfaces=>[{:bridge=>{},
                                                           :macAddress=>"a2:a4:a2:b2:a2:b6",
                                                           :name=>"ovs-foreman"}]},
                                                           :machine=>{:type=>""},
                                                           :resources=>{:requests=>{:memory=>"1024M"}}},
    :networks=>[{:multus=>{:networkName=>"ovs-foreman"},
                 :name=>"ovs-foreman"}],
                 :terminationGracePeriodSeconds=>0,
                 :volumes=>[{:containerDisk=>{:image=>"kubevirt/fedora-cloud-registry-disk-demo"},
                             :name=>"olive-kempter-example-com-disk-00"},
                             {:name=>"olive-kempter-example-com-disk-01",
                              :persistentVolumeClaim=>{:claimName=>"olive-kempter-example-com-claim-1"}}]}}}
  end
end

#create_vminstance(vm) ⇒ Object



15
16
# File 'lib/fog/kubevirt/compute/requests/create_vminstance.rb', line 15

def create_vminstance(vm)
end

#delete_networkattachmentdef(_name, _namespace) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_networkattachmentdef.rb', line 11

def delete_networkattachmentdef(_name, _namespace)
end

#delete_persistentvolume(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_persistentvolume.rb', line 11

def delete_persistentvolume(name)
end

#delete_pvc(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_pvc.rb', line 11

def delete_pvc(name)
end

#delete_service(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_service.rb', line 11

def delete_service(name)
end

#delete_storage_class(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_storageclass.rb', line 11

def delete_storage_class(name)
end

#delete_virtual_machine_instance(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_vminstance.rb', line 11

def delete_virtual_machine_instance(name)
end

#delete_vm(name, namespace) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/delete_vm.rb', line 11

def delete_vm(name, namespace)
end

#disk(name: "", boot_order: nil, type: "disk", bus: "virtio", readonly: nil) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/fog/kubevirt/compute/requests/get_server.rb', line 40

def disk(name: "", boot_order: nil, type: "disk", bus: "virtio", readonly: nil)
  disk = Fog::Kubevirt::Compute::VmData::VmDisk.new
  disk.name = name
  disk.boot_order = boot_order
  disk.type = type
  disk.bus = bus
  disk.readonly = readonly
  disk
end

#get_networkattachmentdef(name) ⇒ Object



14
15
# File 'lib/fog/kubevirt/compute/requests/get_networkattachmentdef.rb', line 14

def get_networkattachmentdef(name)
end

#get_node(name) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/fog/kubevirt/compute/requests/get_node.rb', line 13

def get_node(name)
  node = {:apiVersion => "v1",
          :kind => "Node",
          :metadata => {
            :annotations => {
              :volumes.kubernetes.io/controller-managed-attach-detach => "true"
            },
            :creationTimestamp => "2018-04-09T15:34:26Z",
            :labels => {
              :beta.kubernetes.io/arch => "amd64", :beta.kubernetes.io/os => "linux",
              :kubernetes.io/hostname => "master", :node-role.kubernetes.io/master => "true",
              :openshift-infra => "apiserver", :region => "infra", :zone => "default"
            },
            :name => "master",
            :resourceVersion => "1514501",
            :selfLink => "/api/v1/nodes/master",
            :uid => "7c4102a6-3c0b-11e8-ad43-525400a36119"
          },
          :spec => {
            :externalID => "master"
          },
          :status => {
            :addresses => [
              {:address => "192.168.200.2", :type => "InternalIP"},
              {:address => "master", :type => "Hostname"}
            ],
            :allocatable => {:cpu => "2", :memory => "2739328Ki", :pods => "20"},
            :capacity => {:cpu => "2", :memory => "2841728Ki", :pods => "20"},
            :conditions => [
              {
                :lastHeartbeatTime => "2018-04-20T09:37:45Z", :lastTransitionTime => "2018-04-09T15:34:26Z",
                :message => "kubelet has sufficient disk space available", :reason => "KubeletHasSufficientDisk",
                :status => "False", :type => "OutOfDisk"
              },
              {
                :lastHeartbeatTime => "2018-04-20T09:37:45Z", :lastTransitionTime => "2018-04-09T15:34:26Z",
                :message => "kubelet has sufficient memory available", :reason => "KubeletHasSufficientMemory",
                :status => "False", :type => "MemoryPressure"
              },
              {
                :lastHeartbeatTime => "2018-04-20T09:37:45Z", :lastTransitionTime => "2018-04-19T12:56:17Z",
                :message => "kubelet has disk pressure", :reason => "KubeletHasDiskPressure",
                :status => "True", :type => "DiskPressure"
              },
              {
                :lastHeartbeatTime => "2018-04-20T09:37:45Z", :lastTransitionTime => "2018-04-20T07:08:18Z",
                :message => "kubelet is posting ready status", :reason => "KubeletReady",
                :status => "True", :type => "Ready"
              }
            ],
            :daemonEndpoints => {
              :kubeletEndpoint => {
                :Port => 10250
              }
            },
            :images => [
              {
                :names => ["docker.io/openshift/openvswitch@sha256:2783e9bc552ea8c4ea725a9f88e353330243b010925c274561ba045974ce4000",
                           "docker.io/openshift/openvswitch:v3.9.0-alpha.4"], :sizeBytes => 1474465582
              },
              {
                :names => ["docker.io/openshift/node@sha256:e092f1267535714070761844a62cdd38ce05e63a836ee55196953b8ac69527ba",
                           "docker.io/openshift/node:v3.9.0-alpha.4"], :sizeBytes => 1472685816
              },
              {
                :names => ["docker.io/openshift/origin@sha256:4a3d8819499307c57dbb7d244b719c0e45068ca54727ef30b53a361cbe7d9430",
                           "docker.io/openshift/origin:v3.9.0-alpha.4"], :sizeBytes => 1257103966
              },
              {
                :names => ["docker.io/ansibleplaybookbundle/apb-base@sha256:639d623b8185dd1471d38d2cc554efe7e2440a69d9a44cefa6b5565e8cc0d89c",
                           "docker.io/ansibleplaybookbundle/apb-base:latest"], :sizeBytes => 658504560
              },
              {
                :names => ["registry.fedoraproject.org/latest/etcd@sha256:0656877d3888ca8b385bfc720fede845de185f0b5d29a0bbc7a2fb8c6fc8137a",
                           "registry.fedoraproject.org/latest/etcd:latest"], :sizeBytes => 308700638
              },
              {
                :names => ["docker.io/fedora@sha256:7e2fc11763119c0cc0781400bb571bf2033c45469ebe286f1f090ba0dcffc32e",
                           "docker.io/fedora:26"], :sizeBytes => 231669643
              },
              {
                :names => ["docker.io/openshift/origin-pod@sha256:ba180ba987ad1f07187c35e2369923b04fb8969a4344064feb38de508d65c385",
                           "docker.io/openshift/origin-pod:v3.9.0-alpha.4"], :sizeBytes => 228576414
              }
            ],
            :nodeInfo => {
              :architecture => "amd64", :bootID => "c2c59d3a-79d4-4661-acff-daf685ae4edc", :containerRuntimeVersion => "docker://1.13.1",
              :kernelVersion => "3.10.0-693.21.1.el7.x86_64", :kubeProxyVersion => "v1.9.1+a0ce1bc657", :kubeletVersion => "v1.9.1+a0ce1bc657",
              :machineID => "52c01ad890e84b15a1be4be18bd64ecd", :operatingSystem => "linux", :osImage => "CentOS Linux 7 (Core)",
              :systemUUID => "52C01AD8-90E8-4B15-A1BE-4BE18BD64ECD"
            }
          }
  }
  object = RecursiveOpenStruct.new(node, recurse_over_arrays: true)
  Node.parse object_to_hash(object)
end

#get_persistentvolume(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/get_persistentvolume.rb', line 11

def get_persistentvolume(name)
end

#get_pvc(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/get_pvc.rb', line 11

def get_pvc(name)
end

#get_raw_vm(name) ⇒ Object



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/fog/kubevirt/compute/requests/get_vm.rb', line 43

def get_raw_vm(name)
  {
    :apiVersion=>"kubevirt.io/v1alpha3",
    :kind=>"VirtualMachine",
    :metadata=>{
      :creationTimestamp=>"2019-04-02T13:28:47Z",
      :generation=>1,
      :labels=>{
        :special=>"vm-multus-multiple-net"
      },
      :name=>"vm-multus-multiple-net",
      :namespace=>"default",
      :resourceVersion=>"24453",
      :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/vm-multus-multiple-net",
      :uid=>"3e959de9-554b-11e9-a3d6-525500d15501"
    },
    :spec=>{
      :running=>false,
      :template=>{
        :metadata=>{
          :labels=>{
            :"kubevirt.io/vm"=>"vm-multus-multiple-net"
          }
        },
        :spec=>{
          :domain=>{
            :devices=>{
              :disks=>[
                {
                  :disk=>{:bus=>"virtio"},
                  :name=>"containerdisk"
                },
                {
                  :disk=>{:bus=>"virtio"},
                  :name=>"cloudinitdisk"
                }
              ],
              :interfaces=>[
                {
                  :bridge=>{},
                  :name=>"default"
                },
                {
                  :bridge=>{},
                  :name=>"ptp"
                }
              ]
            },
            :machine=>{
              :type=>""
            },
            :resources=>{
              :requests=>{
                :memory=>"1024M"
              }
            }
          },
          :networks=>[
            {
              :name=>"default",
              :pod=>{}
            },
            {
              :multus=>{
                :networkName=>"ptp-conf"
              },
              :name=>"ptp"
            }
          ],
          :terminationGracePeriodSeconds=>0,
          :volumes=>[
            {
              :containerDisk=>{:image=>"registry:5000/kubevirt/fedora-cloud-container-disk-demo:devel"},
              :name=>"containerdisk"
            },
            {
              :cloudInitNoCloud=>{:userData=>"#!/bin/bash\necho \"fedora\" |passwd fedora --stdin\ndhclient eth1\n"},
              :name=>"cloudinitdisk"
            }
          ]
        }
      }
    }
  }
end

#get_server(name) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/fog/kubevirt/compute/requests/get_server.rb', line 61

def get_server(name)
  if name == "robin-rykert.example.com" || name == 'no_interfaces'
    disk1 = disk(name: "robin-rykert-example-com-disk-00", boot_order: nil,type: "disk", bus: "virtio", readonly: nil)
    disk2 = disk(name: "robin-rykert-example-com-disk-01", boot_order: nil,type: "disk", bus: "virtio", readonly: nil)

    volume1 = volume(name: "robin-rykert-example-com-disk-00", type: "persistentVolumeClaim", info: "robin-rykert-example-com-claim-1",
                     pvc: nil, config: {:claimName=>"robin-rykert-example-com-claim-1"}, boot_order: nil, bus: "virtio")
    volume2 = volume(name: "robin-rykert-example-com-disk-01", type: "persistentVolumeClaim", info: "robin-rykert-example-com-claim-2",
                     pvc: nil, config: {:claimName=>"robin-rykert-example-com-claim-2"}, boot_order: nil, bus: "virtio")

    vm_network = Fog::Kubevirt::Compute::VmData::VmNetwork.new
    vm_network.name="ovs-foreman"
    vm_network.type="multus"
    vm_network.network_name="ovs-foreman"

    interfaces = name != 'no_interfaces' ? [vm_nic(mac_address: "a2:b4:a2:b6:a2:a8")] : nil

    return {
      :namespace=>"default",
      :name=>"robin-rykert.example.com",
      :resource_version=>"1020275",
      :uid=>"00ae63ee-5875-11e9-9132-525400c5a686",
      :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"},
      :disks=>[disk1, disk2],
      :volumes=>[volume1, volume2],
      :status=>"stopped",
      :interfaces=>interfaces,
      :networks=>[vm_network],
      :machine_type=>"",
      :cpu_cores=>1,
      :memory=>"1024M",
      :state=>nil,
      :node_name=>nil,
      :ip_address=>nil
    }
  end

  if name == "olive-kempter.example.com"
    disk1 = disk(name: "olive-kempter-example-com-disk-00", boot_order: nil,type: "disk", bus: "virtio", readonly: nil)
    disk2 = disk(name: "olive-kempter-example-com-disk-01", boot_order: nil,type: "disk", bus: "virtio", readonly: nil)
    volume1 = volume(name: "olive-kempter-example-com-disk-00", type: "containerDisk", info: "kubevirt/fedora-cloud-registry-disk-demo",
                     pvc: nil, config: {:image=>"kubevirt/fedora-cloud-registry-disk-demo"}, boot_order: nil, bus: "virtio")
    volume2 = volume(name: "olive-kempter-example-com-disk-01", type: "containerDisk", info: "olive-kempter-example-com-claim-1",
                     pvc: nil, config: {:claimName=>"olive-kempter-example-com-claim-1"}, boot_order: nil, bus: "virtio")
    return {
      :namespace => "default",
      :name =>"olive-kempter.example.com",
      :resource_version => "1075555",
      :uid => "d4dba9e4-5945-11e9-9132-525400c5a686",
      :labels => {:"kubevirt.io/vm"=>"olive-kempter.example.com"},
      :disks => [disk1, disk2],
      :volumes => [ volume1, volume2],
      :status => "stopped",
      :interfaces => [vm_nic(mac_address: "a2:a4:a2:b2:a2:b6")],
      :networks => [vm_network],
      :machine_type => "",
      :cpu_cores => 1,
      :memory => "1024M",
      :state => nil,
      :node_name => nil,
      :ip_address => nil
    }
  end

  raise ::Fog::Kubevirt::Errors::ClientError, "HTTP status code 404, virtualmachines.kubevirt.io \"#{name}\" not found for GET"
end

#get_service(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/get_service.rb', line 11

def get_service(name)
end

#get_storage_class(name) ⇒ Object



11
12
# File 'lib/fog/kubevirt/compute/requests/get_storageclass.rb', line 11

def get_storage_class(name)
end

#get_template(name) ⇒ Object

TODO provide implementation



12
13
# File 'lib/fog/kubevirt/compute/requests/get_template.rb', line 12

def get_template(name)
end

#get_vm(name) ⇒ Object



39
40
41
# File 'lib/fog/kubevirt/compute/requests/get_vm.rb', line 39

def get_vm(name)
  Vm.parse get_raw_vm(name)
end

#get_vminstance(name) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/fog/kubevirt/compute/requests/get_vminstance.rb', line 14

def get_vminstance(name)
  vm = {
    :apiVersion=>"kubevirt.io/v1alpha3",
    :kind=>"VirtualMachineInstance",
    :metadata=>{
      :creationTimestamp=>"2019-04-02T13:46:08Z",
      :finalizers=>["foregroundDeleteVirtualMachine"],
      :generation=>7,
      :labels=>{
        :"kubevirt.io/nodeName"=>"node02",
        :special=>"vmi-multus-multiple-net"
      },
      :name=>"vmi-multus-multiple-net",
      :namespace=>"default",
      :resourceVersion=>"27047",
      :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachineinstances/vmi-multus-multiple-net",
      :uid=>"ab5e450c-554d-11e9-a3d6-525500d15501"
    },
    :spec=>{
      :domain=>{
        :devices=>{
          :disks=>[
            {
              :disk=>{:bus=>"virtio"},
              :name=>"containerdisk"
            },
            {
              :disk=>{:bus=>"virtio"},
              :name=>"cloudinitdisk"
            }
          ],
          :interfaces=>[
            {
              :bridge=>{},
              :name=>"default"
            },
            {
              :bridge=>{},
              :name=>"ptp"
            }
          ]
        },
        :features=>{
          :acpi=>{:enabled=>true}
        },
        :firmware=>{:uuid=>"ff1ff019-c799-400f-9be1-375c3cee8b59"},
        :machine=>{:type=>"q35"},
        :resources=>{
          :requests=>{
            :memory=>"1024M"
          }
        }
      },
      :networks=>[
        {
          :name=>"default",
          :pod=>{}
        },
        {
          :multus=>{:networkName=>"ptp-conf"},
          :name=>"ptp"
        }
      ],
      :terminationGracePeriodSeconds=>0,
      :volumes=>[
        {
          :containerDisk=>{:image=>"registry:5000/kubevirt/fedora-cloud-container-disk-demo:devel"},
          :name=>"containerdisk"
        },
        {
          :cloudInitNoCloud=>{:userData=>"#!/bin/bash\necho \"fedora\" |passwd fedora --stdin\ndhclient eth1\n"},
          :name=>"cloudinitdisk"
        }
      ]
    },
    :status=>{
      :conditions=>[
        {
          :lastProbeTime=>nil,
          :lastTransitionTime=>nil,
          :status=>"True",
          :type=>"LiveMigratable"
        },
        {
          :lastProbeTime=>nil,
          :lastTransitionTime=>"2019-04-02T13:46:24Z",
          :status=>"True",
          :type=>"Ready"
        }
      ],
      :interfaces=>[
        {
          :ipAddress=>"10.244.1.14",
          :mac=>"0e:fc:6c:c3:20:ec",
          :name=>"default"
        },
        {
          :mac=>"4a:90:1c:2e:fe:d7",
          :name=>"ptp"
        }
      ],
      :migrationMethod=>"BlockMigration",
      :nodeName=>"node02",
      :phase=>"Running"
    }
  }
  Vminstance.parse object_to_hash(vm)
end

#list_networkattachmentdefs(_filters = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/kubevirt/compute/requests/list_networkattachmentdefs.rb', line 15

def list_networkattachmentdefs(_filters = {})
  if _filters == {}
    EntityCollection.new("NetworkAttachmentDefinition", "1080",
                         [{:namespace=>"default",
                           :name=>"ovs-foreman",
                           :resource_version=>"1080",
                           :uid=>"0e35b868-2464-11e9-93b4-525400c5a686",
                           :config=>"{ \"cniVersion\": \"0.3.1\",\"type\": \"ovs\",\"bridge\": \"foreman\" }"
                         }]
                        )
  end
end

#list_nodes(_filters = {}) ⇒ Object

TODO provide implementation



14
15
# File 'lib/fog/kubevirt/compute/requests/list_nodes.rb', line 14

def list_nodes(_filters = {})
end

#list_persistentvolumes(_filters = {}) ⇒ Object



17
18
# File 'lib/fog/kubevirt/compute/requests/list_persistentvolumes.rb', line 17

def list_persistentvolumes(_filters = {})
end

#list_pvcs(_filters = {}) ⇒ Object



17
18
# File 'lib/fog/kubevirt/compute/requests/list_pvcs.rb', line 17

def list_pvcs(_filters = {})
end

#list_servers(_filters = {}) ⇒ Object



25
26
# File 'lib/fog/kubevirt/compute/requests/list_servers.rb', line 25

def list_servers(_filters = {})
end

#list_services(_filters = {}) ⇒ Object



17
18
# File 'lib/fog/kubevirt/compute/requests/list_services.rb', line 17

def list_services(_filters = {})
end

#list_storageclasses(_filters = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fog/kubevirt/compute/requests/list_storageclasses.rb', line 17

def list_storageclasses(_filters = {})
  if _filters == {}
    [{
      :name=>"local-storage",
      :resource_version=>"775504",
      :uid=>"c930bca9-5471-11e9-9132-525400c5a686",
      :parameters=>nil,
      :mount_options=>nil,
      :provisioner=>"kubernetes.io/no-provisioner",
      :reclaim_policy=>"Delete",
      :volume_binding_mode=>"WaitForFirstConsumer"
    }]
  end
end

#list_templates(_filters = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/fog/kubevirt/compute/requests/list_templates.rb', line 17

def list_templates(_filters = {})
  templates = [{ metadata: { name: 'linux-vm-template',
                             namespace: 'default',
                             selfLink: '/oapi/v1/namespaces/default/templates/linux-vm-template',
                             uid: '610c434f-17bc-11e8-a9f9-525400a7f647',
                             resourceVersion: '9240',
                             creationTimestamp: '2018-02-22T10:37:28Z',
                             labels: { :"miq.github.io/kubevirt-is-vm-template" => 'true',
                                       :"miq.github.io/kubevirt-os" => 'rhel-7' },
                                       annotations: { description: 'OCP kubevirt linux, template',
                                                      tags: 'kubevirt,ocp,template,linux' }
                           },
                                                      objects: [{ apiVersion: 'kubevirt.io/v1alpha2',
                                                                  kind: 'VirtualMachine',
                                                                  metadata: { name: '${NAME}' },
                                                                  spec: { template: { spec: { domain:
                                                                                              { cpu: { cores: '${CPU_CORES}' },
                                                                                                devices: { disks: [{ disk: { dev: 'vda' }, name: 'disk0', volumeName: 'disk0-pvc' }] },
                                                                                                machine: { type: 'q35' },
                                                                                                resources: { requests: { memory: '${MEMORY}' } } },
  volumes: [{ name: 'disk0-pvc', persistentVolumeClaim: { claimName: 'linux-vm-pvc-${NAME}' } }] } } } },
  { apiVersion: 'v1',
    kind: 'PersistentVolumeClaim',
    metadata: { name: 'linux-vm-pvc-${NAME}' },
    spec: { accessModes: ['ReadWriteOnce'],
            resources: { requests: { storage: '10Gi' } } } }],
  parameters: [{ name: 'NAME', description: 'Name for the new VM' },
               { name: 'MEMORY', description: 'Amount of memory', value: '4096Mi' },
               { name: 'CPU_CORES', description: 'Amount of cores', value: '4' }] }]
  object = RecursiveOpenStruct.new(templates, recurse_over_arrays: true)
  object.map { |kubevirt_obj| Template.parse object_to_hash(kubevirt_obj) }
end

#list_vminstances(_filters = {}) ⇒ Object

TODO provide implementation



16
17
# File 'lib/fog/kubevirt/compute/requests/list_vminstances.rb', line 16

def list_vminstances(_filters = {})
end

#list_vms(_filters = {}) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/fog/kubevirt/compute/requests/list_vms.rb', line 22

def list_vms(_filters = {})
  vms = [{ apiVersion: 'kubevirt.io/v1alpha2',
           kind: 'VirtualMachine',
           metadata: {
             clusterName: '',
             creationTimestamp: '2018-02-21T11:15:41Z',
             name: 'aaa',
             namespace: 'default',
             resourceVersion: '967810',
             selfLink: '/apis/kubevirt.io/v1alpha2/namespaces/default/virtualmachines/aaa',
             uid: '8d27ad76-16f8-11e8-95dc-525400b2cba8'
           },
           spec: {
             template: {
               spec: { domain: { cpu: { cores: 4 },
                                 devices: { disks: [{ disk: { dev: 'vda' },
                                                      name: 'containerDisk',
                                                      volumeName: 'containervolume' },
                                                      { disk: { dev: 'vdb' },
                                                        name: 'cloudinitdisk',
                                                        volumeName: 'cloudinitvolume' }] },
                                                        machine: { type: 'q35' },
                                                        resources: { requests: { memory: '512Mi' } } },
                 volumes: [
                   { name: 'containervolume',
                     containerDisk: { image: 'kubevirt/fedora-cloud-registry-disk-demo:latest' }
                   },
                   { cloudInitNoCloud: { userDataBase64: 'I2Nsb3VkLWNvbmZpZwpwYXNzd29yZDogYXRvbWljCnNzaF9wd2F1dGg6IFRydWUKY2hwYXNzd2Q6IHsgZXhwaXJlOiBGYWxzZSB9Cg==' },
                     name: 'cloudinitvolume' }]
               }
             }
           }}]
  object = RecursiveOpenStruct.new(vms, recurse_over_arrays: true)
  object.map { |kubevirt_obj| Vm.parse object_to_hash(kubevirt_obj) }
end

#list_volumes(vm_name = nil) ⇒ Object



25
26
# File 'lib/fog/kubevirt/compute/requests/list_volumes.rb', line 25

def list_volumes(vm_name = nil)
end

#update_vm(update) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/fog/kubevirt/compute/requests/update_vm.rb', line 11

def update_vm(update)
  update_args = {:apiVersion=>"kubevirt.io/v1alpha3",
                 :kind=>"VirtualMachine",
                 :metadata=>{:creationTimestamp=>"2019-04-06T14:05:15Z",
                             :generation=>1,
                             :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"},
                             :name=>"robin-rykert.example.com",
                             :namespace=>"default",
                             :resourceVersion=>"1020275",
                             :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/robin-rykert.example.com",
                             :uid=>"00ae63ee-5875-11e9-9132-525400c5a686"},
                             :spec=>{:running=>true,
                                     :template=>{:metadata=>{:creationTimestamp=>nil,
                                                             :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"}},
  :spec=>{:domain=>{:cpu=>{:cores=>1},
                    :devices=>{:disks=>[{:disk=>{:bus=>"virtio"},
                                         :name=>"robin-rykert-example-com-disk-00"},
                                         {:disk=>{:bus=>"virtio"},
                                          :name=>"robin-rykert-example-com-disk-01"}],
                                          :interfaces=>[{:bootOrder=>1,
                                                         :bridge=>{},
                                                         :macAddress=>"a2:b4:a2:b6:a2:a8",
                                                         :name=>"ovs-foreman"}]},
                                                         :machine=>{:type=>""},
                                                         :resources=>{:requests=>{:memory=>"1024M"}}},
  :networks=>[{:multus=>{:networkName=>"ovs-foreman"},
               :name=>"ovs-foreman"}],
               :terminationGracePeriodSeconds=>0,
               :volumes=>[{:name=>"robin-rykert-example-com-disk-00",
                           :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-1"}},
  {:name=>"robin-rykert-example-com-disk-01",
   :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-2"}}]}}}}
  if update == update_args
    result = Kubeclient::Resource.new
    result.apiVersion="kubevirt.io/v1alpha3"
    result.kind="VirtualMachine"
    result.={:creationTimestamp=>"2019-04-06T14:05:15Z",
                     :generation=>2,
                     :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"},
                     :name=>"robin-rykert.example.com",
                     :namespace=>"default",
                     :resourceVersion=>"1020276",
                     :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/robin-rykert.example.com",
                     :uid=>"00ae63ee-5875-11e9-9132-525400c5a686"}
    result.spec={:running=>true,
                 :template=>{:metadata=>{:creationTimestamp=>nil,
                                         :labels=>{:"kubevirt.io/vm"=>"robin-rykert.example.com"}},
    :spec=>{:domain=>{:cpu=>{:cores=>1},
                      :devices=>{:disks=>[{:disk=>{:bus=>"virtio"},
                                           :name=>"robin-rykert-example-com-disk-00"},
                                           {:disk=>{:bus=>"virtio"},
                                            :name=>"robin-rykert-example-com-disk-01"}],
                                            :interfaces=>[{:bootOrder=>1,
                                                           :bridge=>{},
                                                           :macAddress=>"a2:b4:a2:b6:a2:a8",
                                                           :name=>"ovs-foreman"}]},
                                                           :machine=>{:type=>""},
                                                           :resources=>{:requests=>{:memory=>"1024M"}}},
    :networks=>[{:multus=>{:networkName=>"ovs-foreman"},
                 :name=>"ovs-foreman"}],
                 :terminationGracePeriodSeconds=>0,
                 :volumes=>[{:name=>"robin-rykert-example-com-disk-00",
                             :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-1"}},
    {:name=>"robin-rykert-example-com-disk-01",
     :persistentVolumeClaim=>{:claimName=>"robin-rykert-example-com-claim-2"}}]}}}
    return result
  end

  update_args_olive = {:apiVersion=>"kubevirt.io/v1alpha3",
                      :kind=>"VirtualMachine",
                      :metadata=>{:creationTimestamp=>"2019-04-07T15:00:07Z",
                                  :generation=>1,
                                  :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"},
                                  :name=>"olive-kempter.example.com",
                                  :namespace=>"default",
                                  :resourceVersion=>"1075555",
                                  :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/olive-kempter.example.com",
                                  :uid=>"d4dba9e4-5945-11e9-9132-525400c5a686"},
                                  :spec=>{:running=>true,
                                          :template=>{:metadata=>{:creationTimestamp=>nil,
                                                                  :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"}},
  :spec=>{:domain=>{:cpu=>{:cores=>1},
                    :devices=>{:disks=>[{:bootOrder=>1,
                                         :disk=>{:bus=>"virtio"},
                                         :name=>"olive-kempter-example-com-disk-00"},
                                         {:disk=>{:bus=>"virtio"},
                                          :name=>"olive-kempter-example-com-disk-01"}],
                                          :interfaces=>[{:bridge=>{},
                                                         :macAddress=>"a2:a4:a2:b2:a2:b6",
                                                         :name=>"ovs-foreman"}]},
                                                         :machine=>{:type=>""},
                                                         :resources=>{:requests=>{:memory=>"1024M"}}},
  :networks=>[{:multus=>{:networkName=>"ovs-foreman"},
               :name=>"ovs-foreman"}],
               :terminationGracePeriodSeconds=>0,
               :volumes=>[{:containerDisk=>{:image=>"kubevirt/fedora-cloud-registry-disk-demo"},
                           :name=>"olive-kempter-example-com-disk-00"},
                           {:name=>"olive-kempter-example-com-disk-01",
                            :persistentVolumeClaim=>{:claimName=>"olive-kempter-example-com-claim-1"}}]}}}}

  if update == update_args_olive
    result = Kubeclient::Resource.new
    result.apiVersion="kubevirt.io/v1alpha3"
    result.kind="VirtualMachine"
    result.={:creationTimestamp=>"2019-04-07T15:00:07Z",
                     :generation=>2,
                     :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"},
                     :name=>"olive-kempter.example.com",
                     :namespace=>"default",
                     :resourceVersion=>"1075556",
                     :selfLink=>"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/olive-kempter.example.com",
                     :uid=>"d4dba9e4-5945-11e9-9132-525400c5a686"}
    result.spec={:running=>true,
                 :template=>{:metadata=>{:creationTimestamp=>nil,
                                         :labels=>{:"kubevirt.io/vm"=>"olive-kempter.example.com"}},
    :spec=>{:domain=>{:cpu=>{:cores=>1},
                      :devices=>{:disks=>[{:bootOrder=>1,
                                           :disk=>{:bus=>"virtio"},
                                           :name=>"olive-kempter-example-com-disk-00"},
                                           {:disk=>{:bus=>"virtio"},
                                            :name=>"olive-kempter-example-com-disk-01"}],
                                            :interfaces=>[{:bridge=>{},
                                                           :macAddress=>"a2:a4:a2:b2:a2:b6",
                                                           :name=>"ovs-foreman"}]},
                                                           :machine=>{:type=>""},
                                                           :resources=>{:requests=>{:memory=>"1024M"}}},
    :networks=>[{:multus=>{:networkName=>"ovs-foreman"},
                 :name=>"ovs-foreman"}],
                 :terminationGracePeriodSeconds=>0,
                 :volumes=>[{:containerDisk=>{:image=>"kubevirt/fedora-cloud-registry-disk-demo"},
                             :name=>"olive-kempter-example-com-disk-00"},
                             {:name=>"olive-kempter-example-com-disk-01",
                              :persistentVolumeClaim=>{:claimName=>"olive-kempter-example-com-claim-1"}}]}}}
    return result
  end
end

#vm_nic(mac_address: "", network: "ovs-foreman") ⇒ Object



50
51
52
53
54
55
56
57
58
59
# File 'lib/fog/kubevirt/compute/requests/get_server.rb', line 50

def vm_nic(mac_address: "", network: "ovs-foreman")
  vm_nic = Fog::Kubevirt::Compute::VmNic.new
  vm_nic.mac_address = mac_address
  vm_nic.type = "bridge"
  vm_nic.network = network
  vm_nic.model = nil
  vm_nic.ports = nil
  vm_nic.boot_order = nil
  vm_nic
end

#volume(name: "", type: "persistentVolumeClaim", info: "", pvc: nil, config: {}, boot_order: nil, bus: nil) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/fog/kubevirt/compute/requests/get_server.rb', line 28

def volume(name: "", type: "persistentVolumeClaim", info: "", pvc: nil, config: {}, boot_order: nil, bus: nil)
  volume = Fog::Kubevirt::Compute::Volume.new
  volume.name = name
  volume.type = type
  volume.info = info
  volume.pvc = pvc
  volume.config = config
  volume.boot_order = boot_order
  volume.bus = bus
  volume
end