fog-kubevirt 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fog/kubevirt/compute/models/pvcs.rb +8 -4
- data/lib/fog/kubevirt/compute/models/servers.rb +1 -0
- data/lib/fog/kubevirt/compute/models/vm_base.rb +1 -1
- data/lib/fog/kubevirt/compute/models/vm_parser.rb +4 -2
- data/lib/fog/kubevirt/compute/models/vminstance.rb +1 -1
- data/lib/fog/kubevirt/compute/requests/create_pvc.rb +1 -1
- data/lib/fog/kubevirt/compute/requests/get_server.rb +3 -1
- data/lib/fog/kubevirt/compute/requests/get_vm.rb +13 -1
- data/lib/fog/kubevirt/compute/requests/list_servers.rb +7 -2
- data/lib/fog/kubevirt/compute/requests/list_vms.rb +7 -2
- data/lib/fog/kubevirt/version.rb +1 -1
- data/spec/create_vm_spec.rb +31 -2
- data/spec/fixtures/kubevirt/pvc/pvcs_crud.yml +33 -33
- data/spec/fixtures/kubevirt/pvc/pvcs_no_selector_crud.yml +362 -0
- data/spec/fixtures/kubevirt/vm/vm_create_multi.yml +2268 -71
- data/spec/fixtures/kubevirt/vm/vm_create_single.yml +179 -49
- data/spec/pvcs_v1alpha2_spec.rb +46 -3
- data/spec/vm_parse.rb +17 -0
- metadata +6 -2
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: get
|
5
|
-
uri: https://10.8.254.82:8443/apis/kubevirt.io
|
5
|
+
uri: https://10.8.254.82:8443/apis/kubevirt.io
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -13,8 +13,6 @@ http_interactions:
|
|
13
13
|
- gzip, deflate
|
14
14
|
User-Agent:
|
15
15
|
- rest-client/2.0.2 (linux-gnu x86_64) ruby/2.3.3p222
|
16
|
-
Authorization:
|
17
|
-
- Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvcmVtYW4tYWNjb3VudC10b2tlbi1yY3ByMiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb3JlbWFuLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGY3NTc4NC0yMjUyLTExZTktYjU1NS01MjU0MDA3ZDM1M2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb3JlbWFuLWFjY291bnQifQ.UDzZu0_mLkJZvgeGE-lgKJOXtwWGt6WoNuEpm8k7VK61_bQFavEsETRUrGar68cebUPdUTWFoFlVStcQXoQoS0PUvqNPmznBcHDUW5Jw7pKaLHUhsqQkOoNzDD4eGcl1KDoagL1E-CkTglcYiMYHM9yykxnK58jyP3HF1rsDLG-c8N-T3bK_tLQ__eqKwPJ7R3RHuCg3M5FX1mH86wuaEsOPW3KW7tlGQpP5hj33-97KMp4GgH3pZMTLgo1JDwGT2GXPW12V7juE18KEvvot6q5S0Akl85Vp_5NCxNANRG9YCsSnUiB1opHBqfTxIO1ykSYHfg2IkuovQh68HDNV5A
|
18
16
|
response:
|
19
17
|
status:
|
20
18
|
code: 200
|
@@ -23,16 +21,16 @@ http_interactions:
|
|
23
21
|
Content-Type:
|
24
22
|
- application/json
|
25
23
|
Date:
|
26
|
-
-
|
24
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
27
25
|
Content-Length:
|
28
|
-
- '
|
26
|
+
- '213'
|
29
27
|
body:
|
30
28
|
encoding: UTF-8
|
31
|
-
string: '{"
|
29
|
+
string: '{"kind":"APIGroup","apiVersion":"v1","name":"kubevirt.io","versions":[{"groupVersion":"kubevirt.io/v1alpha3","version":"v1alpha3"}],"preferredVersion":{"groupVersion":"kubevirt.io/v1alpha3","version":"v1alpha3"}}
|
32
30
|
|
33
31
|
'
|
34
32
|
http_version:
|
35
|
-
recorded_at:
|
33
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
36
34
|
- request:
|
37
35
|
method: get
|
38
36
|
uri: https://10.8.254.82:8443/apis/kubevirt.io
|
@@ -54,7 +52,7 @@ http_interactions:
|
|
54
52
|
Content-Type:
|
55
53
|
- application/json
|
56
54
|
Date:
|
57
|
-
-
|
55
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
58
56
|
Content-Length:
|
59
57
|
- '213'
|
60
58
|
body:
|
@@ -63,7 +61,77 @@ http_interactions:
|
|
63
61
|
|
64
62
|
'
|
65
63
|
http_version:
|
66
|
-
recorded_at:
|
64
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
65
|
+
- request:
|
66
|
+
method: get
|
67
|
+
uri: https://10.8.254.82:8443/apis/kubevirt.io/v1alpha3
|
68
|
+
body:
|
69
|
+
encoding: US-ASCII
|
70
|
+
string: ''
|
71
|
+
headers:
|
72
|
+
Accept:
|
73
|
+
- "*/*"
|
74
|
+
Accept-Encoding:
|
75
|
+
- gzip, deflate
|
76
|
+
User-Agent:
|
77
|
+
- rest-client/2.0.2 (linux-gnu x86_64) ruby/2.3.3p222
|
78
|
+
Authorization:
|
79
|
+
- Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvcmVtYW4tYWNjb3VudC10b2tlbi1yY3ByMiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb3JlbWFuLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGY3NTc4NC0yMjUyLTExZTktYjU1NS01MjU0MDA3ZDM1M2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb3JlbWFuLWFjY291bnQifQ.UDzZu0_mLkJZvgeGE-lgKJOXtwWGt6WoNuEpm8k7VK61_bQFavEsETRUrGar68cebUPdUTWFoFlVStcQXoQoS0PUvqNPmznBcHDUW5Jw7pKaLHUhsqQkOoNzDD4eGcl1KDoagL1E-CkTglcYiMYHM9yykxnK58jyP3HF1rsDLG-c8N-T3bK_tLQ__eqKwPJ7R3RHuCg3M5FX1mH86wuaEsOPW3KW7tlGQpP5hj33-97KMp4GgH3pZMTLgo1JDwGT2GXPW12V7juE18KEvvot6q5S0Akl85Vp_5NCxNANRG9YCsSnUiB1opHBqfTxIO1ykSYHfg2IkuovQh68HDNV5A
|
80
|
+
response:
|
81
|
+
status:
|
82
|
+
code: 200
|
83
|
+
message: OK
|
84
|
+
headers:
|
85
|
+
Content-Type:
|
86
|
+
- application/json
|
87
|
+
Date:
|
88
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
89
|
+
Content-Length:
|
90
|
+
- '1526'
|
91
|
+
body:
|
92
|
+
encoding: UTF-8
|
93
|
+
string: '{"kind":"APIResourceList","apiVersion":"v1","groupVersion":"kubevirt.io/v1alpha3","resources":[{"name":"virtualmachineinstancemigrations","singularName":"virtualmachineinstancemigration","namespaced":true,"kind":"VirtualMachineInstanceMigration","verbs":["delete","deletecollection","get","list","patch","create","update","watch"],"shortNames":["vmim","vmims"]},{"name":"virtualmachineinstancepresets","singularName":"virtualmachineinstancepreset","namespaced":true,"kind":"VirtualMachineInstancePreset","verbs":["delete","deletecollection","get","list","patch","create","update","watch"],"shortNames":["vmipreset","vmipresets"]},{"name":"virtualmachineinstancereplicasets","singularName":"virtualmachineinstancereplicaset","namespaced":true,"kind":"VirtualMachineInstanceReplicaSet","verbs":["delete","deletecollection","get","list","patch","create","update","watch"],"shortNames":["vmirs","vmirss"]},{"name":"virtualmachineinstancereplicasets/scale","singularName":"","namespaced":true,"group":"autoscaling","version":"v1","kind":"Scale","verbs":["get","patch","update"]},{"name":"virtualmachineinstances","singularName":"virtualmachineinstance","namespaced":true,"kind":"VirtualMachineInstance","verbs":["delete","deletecollection","get","list","patch","create","update","watch"],"shortNames":["vmi","vmis"]},{"name":"virtualmachines","singularName":"virtualmachine","namespaced":true,"kind":"VirtualMachine","verbs":["delete","deletecollection","get","list","patch","create","update","watch"],"shortNames":["vm","vms"]}]}
|
94
|
+
|
95
|
+
'
|
96
|
+
http_version:
|
97
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
98
|
+
- request:
|
99
|
+
method: post
|
100
|
+
uri: https://10.8.254.82:8443/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines
|
101
|
+
body:
|
102
|
+
encoding: UTF-8
|
103
|
+
string: '{"kind":"VirtualMachine","metadata":{"labels":{"kubevirt.io/vm":"test2"},"name":"test2","namespace":"default"},"spec":{"running":false,"template":{"metadata":{"creationTimestamp":null,"labels":{"kubevirt.io/vm":"test2"}},"spec":{"domain":{"devices":{"disks":[{"name":"test2-disk-00","disk":{"bus":"virtio"}}]},"machine":{"type":""},"resources":{"requests":{"memory":"64M"}},"cpu":{"cores":1}},"terminationGracePeriodSeconds":0,"volumes":[{"name":"test2-disk-00","persistentVolumeClaim":{"claimName":"mypvc3"}}]}}},"apiVersion":"kubevirt.io/v1alpha3"}'
|
104
|
+
headers:
|
105
|
+
Accept:
|
106
|
+
- "*/*"
|
107
|
+
Accept-Encoding:
|
108
|
+
- gzip, deflate
|
109
|
+
User-Agent:
|
110
|
+
- rest-client/2.0.2 (linux-gnu x86_64) ruby/2.3.3p222
|
111
|
+
Content-Type:
|
112
|
+
- application/json
|
113
|
+
Authorization:
|
114
|
+
- Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvcmVtYW4tYWNjb3VudC10b2tlbi1yY3ByMiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb3JlbWFuLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGY3NTc4NC0yMjUyLTExZTktYjU1NS01MjU0MDA3ZDM1M2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb3JlbWFuLWFjY291bnQifQ.UDzZu0_mLkJZvgeGE-lgKJOXtwWGt6WoNuEpm8k7VK61_bQFavEsETRUrGar68cebUPdUTWFoFlVStcQXoQoS0PUvqNPmznBcHDUW5Jw7pKaLHUhsqQkOoNzDD4eGcl1KDoagL1E-CkTglcYiMYHM9yykxnK58jyP3HF1rsDLG-c8N-T3bK_tLQ__eqKwPJ7R3RHuCg3M5FX1mH86wuaEsOPW3KW7tlGQpP5hj33-97KMp4GgH3pZMTLgo1JDwGT2GXPW12V7juE18KEvvot6q5S0Akl85Vp_5NCxNANRG9YCsSnUiB1opHBqfTxIO1ykSYHfg2IkuovQh68HDNV5A
|
115
|
+
Content-Length:
|
116
|
+
- '550'
|
117
|
+
response:
|
118
|
+
status:
|
119
|
+
code: 201
|
120
|
+
message: Created
|
121
|
+
headers:
|
122
|
+
Content-Type:
|
123
|
+
- application/json
|
124
|
+
Date:
|
125
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
126
|
+
Content-Length:
|
127
|
+
- '763'
|
128
|
+
body:
|
129
|
+
encoding: UTF-8
|
130
|
+
string: '{"apiVersion":"kubevirt.io/v1alpha3","kind":"VirtualMachine","metadata":{"creationTimestamp":"2019-04-11T14:12:21Z","generation":1,"labels":{"kubevirt.io/vm":"test2"},"name":"test2","namespace":"default","resourceVersion":"4640036","selfLink":"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/test2","uid":"d2c225f8-5c63-11e9-8e5e-5254007d353d"},"spec":{"running":false,"template":{"metadata":{"creationTimestamp":null,"labels":{"kubevirt.io/vm":"test2"}},"spec":{"domain":{"cpu":{"cores":1},"devices":{"disks":[{"disk":{"bus":"virtio"},"name":"test2-disk-00"}]},"machine":{"type":""},"resources":{"requests":{"memory":"64M"}}},"terminationGracePeriodSeconds":0,"volumes":[{"name":"test2-disk-00","persistentVolumeClaim":{"claimName":"mypvc3"}}]}}}}
|
131
|
+
|
132
|
+
'
|
133
|
+
http_version:
|
134
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
67
135
|
- request:
|
68
136
|
method: get
|
69
137
|
uri: https://10.8.254.82:8443/apis/kubevirt.io
|
@@ -85,7 +153,7 @@ http_interactions:
|
|
85
153
|
Content-Type:
|
86
154
|
- application/json
|
87
155
|
Date:
|
88
|
-
-
|
156
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
89
157
|
Content-Length:
|
90
158
|
- '213'
|
91
159
|
body:
|
@@ -94,10 +162,10 @@ http_interactions:
|
|
94
162
|
|
95
163
|
'
|
96
164
|
http_version:
|
97
|
-
recorded_at:
|
165
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
98
166
|
- request:
|
99
167
|
method: get
|
100
|
-
uri: https://10.8.254.82:8443/apis/kubevirt.io/v1alpha3
|
168
|
+
uri: https://10.8.254.82:8443/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/test2
|
101
169
|
body:
|
102
170
|
encoding: US-ASCII
|
103
171
|
string: ''
|
@@ -118,22 +186,53 @@ http_interactions:
|
|
118
186
|
Content-Type:
|
119
187
|
- application/json
|
120
188
|
Date:
|
121
|
-
-
|
189
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
122
190
|
Content-Length:
|
123
|
-
- '
|
191
|
+
- '763'
|
124
192
|
body:
|
125
193
|
encoding: UTF-8
|
126
|
-
string: '{"
|
194
|
+
string: '{"apiVersion":"kubevirt.io/v1alpha3","kind":"VirtualMachine","metadata":{"creationTimestamp":"2019-04-11T14:12:21Z","generation":1,"labels":{"kubevirt.io/vm":"test2"},"name":"test2","namespace":"default","resourceVersion":"4640036","selfLink":"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/test2","uid":"d2c225f8-5c63-11e9-8e5e-5254007d353d"},"spec":{"running":false,"template":{"metadata":{"creationTimestamp":null,"labels":{"kubevirt.io/vm":"test2"}},"spec":{"domain":{"cpu":{"cores":1},"devices":{"disks":[{"disk":{"bus":"virtio"},"name":"test2-disk-00"}]},"machine":{"type":""},"resources":{"requests":{"memory":"64M"}}},"terminationGracePeriodSeconds":0,"volumes":[{"name":"test2-disk-00","persistentVolumeClaim":{"claimName":"mypvc3"}}]}}}}
|
127
195
|
|
128
196
|
'
|
129
197
|
http_version:
|
130
|
-
recorded_at:
|
198
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
131
199
|
- request:
|
132
|
-
method:
|
133
|
-
uri: https://10.8.254.82:8443/
|
200
|
+
method: get
|
201
|
+
uri: https://10.8.254.82:8443/api
|
202
|
+
body:
|
203
|
+
encoding: US-ASCII
|
204
|
+
string: ''
|
205
|
+
headers:
|
206
|
+
Accept:
|
207
|
+
- "*/*"
|
208
|
+
Accept-Encoding:
|
209
|
+
- gzip, deflate
|
210
|
+
User-Agent:
|
211
|
+
- rest-client/2.0.2 (linux-gnu x86_64) ruby/2.3.3p222
|
212
|
+
response:
|
213
|
+
status:
|
214
|
+
code: 200
|
215
|
+
message: OK
|
216
|
+
headers:
|
217
|
+
Content-Type:
|
218
|
+
- application/json
|
219
|
+
Date:
|
220
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
221
|
+
Content-Length:
|
222
|
+
- '137'
|
134
223
|
body:
|
135
224
|
encoding: UTF-8
|
136
|
-
string: '{"kind":"
|
225
|
+
string: '{"kind":"APIVersions","versions":["v1"],"serverAddressByClientCIDRs":[{"clientCIDR":"0.0.0.0/0","serverAddress":"10.8.254.82:8443"}]}
|
226
|
+
|
227
|
+
'
|
228
|
+
http_version:
|
229
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
230
|
+
- request:
|
231
|
+
method: get
|
232
|
+
uri: https://10.8.254.82:8443/api/v1
|
233
|
+
body:
|
234
|
+
encoding: US-ASCII
|
235
|
+
string: ''
|
137
236
|
headers:
|
138
237
|
Accept:
|
139
238
|
- "*/*"
|
@@ -141,30 +240,60 @@ http_interactions:
|
|
141
240
|
- gzip, deflate
|
142
241
|
User-Agent:
|
143
242
|
- rest-client/2.0.2 (linux-gnu x86_64) ruby/2.3.3p222
|
243
|
+
Authorization:
|
244
|
+
- Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvcmVtYW4tYWNjb3VudC10b2tlbi1yY3ByMiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb3JlbWFuLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGY3NTc4NC0yMjUyLTExZTktYjU1NS01MjU0MDA3ZDM1M2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb3JlbWFuLWFjY291bnQifQ.UDzZu0_mLkJZvgeGE-lgKJOXtwWGt6WoNuEpm8k7VK61_bQFavEsETRUrGar68cebUPdUTWFoFlVStcQXoQoS0PUvqNPmznBcHDUW5Jw7pKaLHUhsqQkOoNzDD4eGcl1KDoagL1E-CkTglcYiMYHM9yykxnK58jyP3HF1rsDLG-c8N-T3bK_tLQ__eqKwPJ7R3RHuCg3M5FX1mH86wuaEsOPW3KW7tlGQpP5hj33-97KMp4GgH3pZMTLgo1JDwGT2GXPW12V7juE18KEvvot6q5S0Akl85Vp_5NCxNANRG9YCsSnUiB1opHBqfTxIO1ykSYHfg2IkuovQh68HDNV5A
|
245
|
+
response:
|
246
|
+
status:
|
247
|
+
code: 200
|
248
|
+
message: OK
|
249
|
+
headers:
|
144
250
|
Content-Type:
|
145
251
|
- application/json
|
252
|
+
Date:
|
253
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
254
|
+
Transfer-Encoding:
|
255
|
+
- chunked
|
256
|
+
body:
|
257
|
+
encoding: UTF-8
|
258
|
+
string: '{"kind":"APIResourceList","groupVersion":"v1","resources":[{"name":"bindings","singularName":"","namespaced":true,"kind":"Binding","verbs":["create"]},{"name":"componentstatuses","singularName":"","namespaced":false,"kind":"ComponentStatus","verbs":["get","list"],"shortNames":["cs"]},{"name":"configmaps","singularName":"","namespaced":true,"kind":"ConfigMap","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["cm"]},{"name":"endpoints","singularName":"","namespaced":true,"kind":"Endpoints","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["ep"]},{"name":"events","singularName":"","namespaced":true,"kind":"Event","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["ev"]},{"name":"limitranges","singularName":"","namespaced":true,"kind":"LimitRange","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["limits"]},{"name":"namespaces","singularName":"","namespaced":false,"kind":"Namespace","verbs":["create","delete","get","list","patch","update","watch"],"shortNames":["ns"]},{"name":"namespaces/finalize","singularName":"","namespaced":false,"kind":"Namespace","verbs":["update"]},{"name":"namespaces/status","singularName":"","namespaced":false,"kind":"Namespace","verbs":["get","patch","update"]},{"name":"nodes","singularName":"","namespaced":false,"kind":"Node","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["no"]},{"name":"nodes/proxy","singularName":"","namespaced":false,"kind":"NodeProxyOptions","verbs":["create","delete","get","patch","update"]},{"name":"nodes/status","singularName":"","namespaced":false,"kind":"Node","verbs":["get","patch","update"]},{"name":"persistentvolumeclaims","singularName":"","namespaced":true,"kind":"PersistentVolumeClaim","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["pvc"]},{"name":"persistentvolumeclaims/status","singularName":"","namespaced":true,"kind":"PersistentVolumeClaim","verbs":["get","patch","update"]},{"name":"persistentvolumes","singularName":"","namespaced":false,"kind":"PersistentVolume","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["pv"]},{"name":"persistentvolumes/status","singularName":"","namespaced":false,"kind":"PersistentVolume","verbs":["get","patch","update"]},{"name":"pods","singularName":"","namespaced":true,"kind":"Pod","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["po"],"categories":["all"]},{"name":"pods/attach","singularName":"","namespaced":true,"kind":"PodAttachOptions","verbs":["create","get"]},{"name":"pods/binding","singularName":"","namespaced":true,"kind":"Binding","verbs":["create"]},{"name":"pods/eviction","singularName":"","namespaced":true,"group":"policy","version":"v1beta1","kind":"Eviction","verbs":["create"]},{"name":"pods/exec","singularName":"","namespaced":true,"kind":"PodExecOptions","verbs":["create","get"]},{"name":"pods/log","singularName":"","namespaced":true,"kind":"Pod","verbs":["get"]},{"name":"pods/portforward","singularName":"","namespaced":true,"kind":"PodPortForwardOptions","verbs":["create","get"]},{"name":"pods/proxy","singularName":"","namespaced":true,"kind":"PodProxyOptions","verbs":["create","delete","get","patch","update"]},{"name":"pods/status","singularName":"","namespaced":true,"kind":"Pod","verbs":["get","patch","update"]},{"name":"podtemplates","singularName":"","namespaced":true,"kind":"PodTemplate","verbs":["create","delete","deletecollection","get","list","patch","update","watch"]},{"name":"replicationcontrollers","singularName":"","namespaced":true,"kind":"ReplicationController","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["rc"],"categories":["all"]},{"name":"replicationcontrollers/scale","singularName":"","namespaced":true,"group":"autoscaling","version":"v1","kind":"Scale","verbs":["get","patch","update"]},{"name":"replicationcontrollers/status","singularName":"","namespaced":true,"kind":"ReplicationController","verbs":["get","patch","update"]},{"name":"resourcequotas","singularName":"","namespaced":true,"kind":"ResourceQuota","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["quota"]},{"name":"resourcequotas/status","singularName":"","namespaced":true,"kind":"ResourceQuota","verbs":["get","patch","update"]},{"name":"secrets","singularName":"","namespaced":true,"kind":"Secret","verbs":["create","delete","deletecollection","get","list","patch","update","watch"]},{"name":"serviceaccounts","singularName":"","namespaced":true,"kind":"ServiceAccount","verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"shortNames":["sa"]},{"name":"services","singularName":"","namespaced":true,"kind":"Service","verbs":["create","delete","get","list","patch","update","watch"],"shortNames":["svc"],"categories":["all"]},{"name":"services/proxy","singularName":"","namespaced":true,"kind":"ServiceProxyOptions","verbs":["create","delete","get","patch","update"]},{"name":"services/status","singularName":"","namespaced":true,"kind":"Service","verbs":["get","patch","update"]}]}
|
259
|
+
|
260
|
+
'
|
261
|
+
http_version:
|
262
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
263
|
+
- request:
|
264
|
+
method: get
|
265
|
+
uri: https://10.8.254.82:8443/api/v1/namespaces/default/persistentvolumeclaims/mypvc3
|
266
|
+
body:
|
267
|
+
encoding: US-ASCII
|
268
|
+
string: ''
|
269
|
+
headers:
|
270
|
+
Accept:
|
271
|
+
- "*/*"
|
272
|
+
Accept-Encoding:
|
273
|
+
- gzip, deflate
|
274
|
+
User-Agent:
|
275
|
+
- rest-client/2.0.2 (linux-gnu x86_64) ruby/2.3.3p222
|
146
276
|
Authorization:
|
147
277
|
- Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvcmVtYW4tYWNjb3VudC10b2tlbi1yY3ByMiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb3JlbWFuLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGY3NTc4NC0yMjUyLTExZTktYjU1NS01MjU0MDA3ZDM1M2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb3JlbWFuLWFjY291bnQifQ.UDzZu0_mLkJZvgeGE-lgKJOXtwWGt6WoNuEpm8k7VK61_bQFavEsETRUrGar68cebUPdUTWFoFlVStcQXoQoS0PUvqNPmznBcHDUW5Jw7pKaLHUhsqQkOoNzDD4eGcl1KDoagL1E-CkTglcYiMYHM9yykxnK58jyP3HF1rsDLG-c8N-T3bK_tLQ__eqKwPJ7R3RHuCg3M5FX1mH86wuaEsOPW3KW7tlGQpP5hj33-97KMp4GgH3pZMTLgo1JDwGT2GXPW12V7juE18KEvvot6q5S0Akl85Vp_5NCxNANRG9YCsSnUiB1opHBqfTxIO1ykSYHfg2IkuovQh68HDNV5A
|
148
|
-
Content-Length:
|
149
|
-
- '550'
|
150
278
|
response:
|
151
279
|
status:
|
152
|
-
code:
|
153
|
-
message:
|
280
|
+
code: 404
|
281
|
+
message: Not Found
|
154
282
|
headers:
|
155
283
|
Content-Type:
|
156
284
|
- application/json
|
157
285
|
Date:
|
158
|
-
-
|
286
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
159
287
|
Content-Length:
|
160
|
-
- '
|
288
|
+
- '216'
|
161
289
|
body:
|
162
290
|
encoding: UTF-8
|
163
|
-
string: '{"
|
291
|
+
string: '{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"persistentvolumeclaims
|
292
|
+
\"mypvc3\" not found","reason":"NotFound","details":{"name":"mypvc3","kind":"persistentvolumeclaims"},"code":404}
|
164
293
|
|
165
294
|
'
|
166
295
|
http_version:
|
167
|
-
recorded_at:
|
296
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
168
297
|
- request:
|
169
298
|
method: get
|
170
299
|
uri: https://10.8.254.82:8443/apis/kubevirt.io
|
@@ -186,7 +315,7 @@ http_interactions:
|
|
186
315
|
Content-Type:
|
187
316
|
- application/json
|
188
317
|
Date:
|
189
|
-
-
|
318
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
190
319
|
Content-Length:
|
191
320
|
- '213'
|
192
321
|
body:
|
@@ -195,7 +324,7 @@ http_interactions:
|
|
195
324
|
|
196
325
|
'
|
197
326
|
http_version:
|
198
|
-
recorded_at:
|
327
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
199
328
|
- request:
|
200
329
|
method: get
|
201
330
|
uri: https://10.8.254.82:8443/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/test2
|
@@ -219,19 +348,19 @@ http_interactions:
|
|
219
348
|
Content-Type:
|
220
349
|
- application/json
|
221
350
|
Date:
|
222
|
-
-
|
351
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
223
352
|
Content-Length:
|
224
353
|
- '763'
|
225
354
|
body:
|
226
355
|
encoding: UTF-8
|
227
|
-
string: '{"apiVersion":"kubevirt.io/v1alpha3","kind":"VirtualMachine","metadata":{"creationTimestamp":"2019-
|
356
|
+
string: '{"apiVersion":"kubevirt.io/v1alpha3","kind":"VirtualMachine","metadata":{"creationTimestamp":"2019-04-11T14:12:21Z","generation":1,"labels":{"kubevirt.io/vm":"test2"},"name":"test2","namespace":"default","resourceVersion":"4640036","selfLink":"/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/test2","uid":"d2c225f8-5c63-11e9-8e5e-5254007d353d"},"spec":{"running":false,"template":{"metadata":{"creationTimestamp":null,"labels":{"kubevirt.io/vm":"test2"}},"spec":{"domain":{"cpu":{"cores":1},"devices":{"disks":[{"disk":{"bus":"virtio"},"name":"test2-disk-00"}]},"machine":{"type":""},"resources":{"requests":{"memory":"64M"}}},"terminationGracePeriodSeconds":0,"volumes":[{"name":"test2-disk-00","persistentVolumeClaim":{"claimName":"mypvc3"}}]}}}}
|
228
357
|
|
229
358
|
'
|
230
359
|
http_version:
|
231
|
-
recorded_at:
|
360
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
232
361
|
- request:
|
233
362
|
method: get
|
234
|
-
uri: https://10.8.254.82:8443/
|
363
|
+
uri: https://10.8.254.82:8443/api
|
235
364
|
body:
|
236
365
|
encoding: US-ASCII
|
237
366
|
string: ''
|
@@ -250,19 +379,19 @@ http_interactions:
|
|
250
379
|
Content-Type:
|
251
380
|
- application/json
|
252
381
|
Date:
|
253
|
-
-
|
382
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
254
383
|
Content-Length:
|
255
|
-
- '
|
384
|
+
- '137'
|
256
385
|
body:
|
257
386
|
encoding: UTF-8
|
258
|
-
string: '{"kind":"
|
387
|
+
string: '{"kind":"APIVersions","versions":["v1"],"serverAddressByClientCIDRs":[{"clientCIDR":"0.0.0.0/0","serverAddress":"10.8.254.82:8443"}]}
|
259
388
|
|
260
389
|
'
|
261
390
|
http_version:
|
262
|
-
recorded_at:
|
391
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
263
392
|
- request:
|
264
393
|
method: get
|
265
|
-
uri: https://10.8.254.82:8443/
|
394
|
+
uri: https://10.8.254.82:8443/api/v1/namespaces/default/persistentvolumeclaims/mypvc3
|
266
395
|
body:
|
267
396
|
encoding: US-ASCII
|
268
397
|
string: ''
|
@@ -277,22 +406,23 @@ http_interactions:
|
|
277
406
|
- Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImZvcmVtYW4tYWNjb3VudC10b2tlbi1yY3ByMiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJmb3JlbWFuLWFjY291bnQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI1OGY3NTc4NC0yMjUyLTExZTktYjU1NS01MjU0MDA3ZDM1M2QiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpmb3JlbWFuLWFjY291bnQifQ.UDzZu0_mLkJZvgeGE-lgKJOXtwWGt6WoNuEpm8k7VK61_bQFavEsETRUrGar68cebUPdUTWFoFlVStcQXoQoS0PUvqNPmznBcHDUW5Jw7pKaLHUhsqQkOoNzDD4eGcl1KDoagL1E-CkTglcYiMYHM9yykxnK58jyP3HF1rsDLG-c8N-T3bK_tLQ__eqKwPJ7R3RHuCg3M5FX1mH86wuaEsOPW3KW7tlGQpP5hj33-97KMp4GgH3pZMTLgo1JDwGT2GXPW12V7juE18KEvvot6q5S0Akl85Vp_5NCxNANRG9YCsSnUiB1opHBqfTxIO1ykSYHfg2IkuovQh68HDNV5A
|
278
407
|
response:
|
279
408
|
status:
|
280
|
-
code:
|
281
|
-
message:
|
409
|
+
code: 404
|
410
|
+
message: Not Found
|
282
411
|
headers:
|
283
412
|
Content-Type:
|
284
413
|
- application/json
|
285
414
|
Date:
|
286
|
-
-
|
415
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
287
416
|
Content-Length:
|
288
|
-
- '
|
417
|
+
- '216'
|
289
418
|
body:
|
290
419
|
encoding: UTF-8
|
291
|
-
string: '{"
|
420
|
+
string: '{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"persistentvolumeclaims
|
421
|
+
\"mypvc3\" not found","reason":"NotFound","details":{"name":"mypvc3","kind":"persistentvolumeclaims"},"code":404}
|
292
422
|
|
293
423
|
'
|
294
424
|
http_version:
|
295
|
-
recorded_at:
|
425
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
296
426
|
- request:
|
297
427
|
method: get
|
298
428
|
uri: https://10.8.254.82:8443/apis/kubevirt.io
|
@@ -314,7 +444,7 @@ http_interactions:
|
|
314
444
|
Content-Type:
|
315
445
|
- application/json
|
316
446
|
Date:
|
317
|
-
-
|
447
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
318
448
|
Content-Length:
|
319
449
|
- '213'
|
320
450
|
body:
|
@@ -323,7 +453,7 @@ http_interactions:
|
|
323
453
|
|
324
454
|
'
|
325
455
|
http_version:
|
326
|
-
recorded_at:
|
456
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
327
457
|
- request:
|
328
458
|
method: delete
|
329
459
|
uri: https://10.8.254.82:8443/apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/test2
|
@@ -349,14 +479,14 @@ http_interactions:
|
|
349
479
|
Content-Type:
|
350
480
|
- application/json
|
351
481
|
Date:
|
352
|
-
-
|
482
|
+
- Thu, 11 Apr 2019 14:12:21 GMT
|
353
483
|
Content-Length:
|
354
484
|
- '188'
|
355
485
|
body:
|
356
486
|
encoding: UTF-8
|
357
|
-
string: '{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Success","details":{"name":"test2","group":"kubevirt.io","kind":"virtualmachines","uid":"
|
487
|
+
string: '{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Success","details":{"name":"test2","group":"kubevirt.io","kind":"virtualmachines","uid":"d2c225f8-5c63-11e9-8e5e-5254007d353d"}}
|
358
488
|
|
359
489
|
'
|
360
490
|
http_version:
|
361
|
-
recorded_at:
|
491
|
+
recorded_at: Thu, 11 Apr 2019 14:12:21 GMT
|
362
492
|
recorded_with: VCR 4.0.0
|
data/spec/pvcs_v1alpha2_spec.rb
CHANGED
@@ -12,7 +12,7 @@ require 'spec_helper'
|
|
12
12
|
@service = vcr.service
|
13
13
|
end
|
14
14
|
|
15
|
-
it 'CRUD
|
15
|
+
it 'CRUD service without selector' do
|
16
16
|
VCR.use_cassette('pvcs_crud') do
|
17
17
|
begin
|
18
18
|
name = 'my-local-storage-pvc'
|
@@ -20,8 +20,8 @@ require 'spec_helper'
|
|
20
20
|
access_modes = [ 'ReadWriteOnce' ]
|
21
21
|
volume_name = 'my-local-storage'
|
22
22
|
volume_mode = 'Filesystem'
|
23
|
-
match_labels = {}
|
24
|
-
match_expressions = []
|
23
|
+
match_labels = { component: 'test' }
|
24
|
+
match_expressions = [ { key: 'tier', operator: 'In', values: ['dev'] } ]
|
25
25
|
storage_class = 'manual'
|
26
26
|
requests = { storage: "2Gi" }
|
27
27
|
limits = { storage: "3Gi" }
|
@@ -37,6 +37,49 @@ require 'spec_helper'
|
|
37
37
|
limits: limits,
|
38
38
|
requests: requests)
|
39
39
|
|
40
|
+
pvc = @service.pvcs.get(name)
|
41
|
+
assert_equal(pvc.name, 'my-local-storage-pvc')
|
42
|
+
assert_equal(pvc.access_modes, [ 'ReadWriteOnce' ])
|
43
|
+
assert_equal(pvc.storage_class, 'manual')
|
44
|
+
assert_equal(pvc.volume_name, 'my-local-storage')
|
45
|
+
assert_equal(pvc.requests[:storage], '2Gi')
|
46
|
+
assert_equal(pvc.limits[:storage], '3Gi')
|
47
|
+
assert_equal(pvc.match_expressions, [{:key=>"tier", :values=>["dev"], :operator=>"In"}])
|
48
|
+
assert_equal(pvc.match_labels, {:component=>"test"})
|
49
|
+
|
50
|
+
# test all volumes based on PVCs
|
51
|
+
volumes = @service.volumes.all
|
52
|
+
volume = volumes.select { |v| v.name == name }.first
|
53
|
+
refute_nil(volume)
|
54
|
+
assert_equal(volume.name, 'my-local-storage-pvc')
|
55
|
+
assert_equal(volume.type, 'persistentVolumeClaim')
|
56
|
+
ensure
|
57
|
+
@service.pvcs.delete(name) if pvc
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
it 'CRUD service without selector' do
|
63
|
+
VCR.use_cassette('pvcs_no_selector_crud') do
|
64
|
+
begin
|
65
|
+
name = 'my-local-storage-pvc'
|
66
|
+
namespace = 'default'
|
67
|
+
access_modes = [ 'ReadWriteOnce' ]
|
68
|
+
volume_name = 'my-local-storage'
|
69
|
+
volume_mode = 'Filesystem'
|
70
|
+
storage_class = 'manual'
|
71
|
+
requests = { storage: "2Gi" }
|
72
|
+
limits = { storage: "3Gi" }
|
73
|
+
|
74
|
+
@service.pvcs.create(name: name,
|
75
|
+
namespace: namespace,
|
76
|
+
access_modes: access_modes,
|
77
|
+
volume_name: volume_name,
|
78
|
+
volume_mode: volume_mode,
|
79
|
+
storage_class: storage_class,
|
80
|
+
limits: limits,
|
81
|
+
requests: requests)
|
82
|
+
|
40
83
|
pvc = @service.pvcs.get(name)
|
41
84
|
assert_equal(pvc.name, 'my-local-storage-pvc')
|
42
85
|
assert_equal(pvc.access_modes, [ 'ReadWriteOnce' ])
|