1 # -*- coding: utf-8 -*-
4 # Copyright 2016-2017 VMware Inc.
5 # This file is part of ETSI OSM
8 # Licensed under the Apache License, Version 2.0 (the "License"); you may
9 # not use this file except in compliance with the License. You may obtain
10 # a copy of the License at
12 # http://www.apache.org/licenses/LICENSE-2.0
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 # License for the specific language governing permissions and limitations
20 # For those usages not covered by the Apache License, Version 2.0 please
21 # contact: osslegalrouting@vmware.com
25 from osm_ro
.vimconn_vmware
import vimconnector
26 from osm_ro
.vimconn
import vimconnUnexpectedResponse
,vimconnNotFoundException
27 from pyvcloud
.vcd
.client
import Client
28 from lxml
import etree
as lxmlElementTree
29 from pyvcloud
.vcd
.org
import Org
30 from pyvcloud
.vcd
.vdc
import VDC
31 from pyvcloud
.vcd
.vapp
import VApp
34 import test_vimconn_vmware_xml_response
as xml_resp
36 __author__
= "Prakash Kasar"
38 class TestVimconn_VMware(unittest
.TestCase
):
40 config
= { "admin_password": "admin",
41 "admin_username":"user",
43 "nsx_password": "nsx",
44 "nsx_manager":"https://test-nsx" }
46 self
.client
= Client('test', verify_ssl_certs
=False)
49 org_resp
= xml_resp
.org_xml_response
50 get_org
= lxmlElementTree
.fromstring(org_resp
)
51 self
.org
= Org(self
.client
, resource
=get_org
)
53 self
.vim
= vimconnector(uuid
='12354',
61 @mock.patch
.object(vimconnector
,'get_vdc_details')
62 @mock.patch
.object(vimconnector
,'connect')
63 @mock.patch
.object(vimconnector
,'perform_request')
64 def test_get_network_not_found(self
, perform_request
, connect
, get_vdc_details
):
66 Testcase to get network with invalid network id
69 vdc_xml_resp
= xml_resp
.vdc_xml_response
70 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
72 # assumed return value from VIM connector
73 get_vdc_details
.return_value
= self
.org
, vdc
74 self
.vim
.client
= self
.vim
.connect()
75 perform_request
.return_value
.status_code
= 200
76 perform_request
.return_value
.content
= xml_resp
.vdc_xml_response
78 # call to VIM connector method with invalid id
79 self
.assertRaises(vimconnNotFoundException
,self
.vim
.get_network
,'mgmt-net')
81 @mock.patch
.object(vimconnector
,'perform_request')
82 @mock.patch
.object(vimconnector
,'get_vdc_details')
83 @mock.patch
.object(vimconnector
,'connect')
84 def test_get_network(self
, connect
, get_vdc_details
, perform_request
):
86 Testcase to get network with valid network id
88 net_id
= '5c04dc6d-6096-47c6-b72b-68f19013d491'
90 vdc_xml_resp
= xml_resp
.vdc_xml_response
91 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
93 # assumed return value from VIM connector
94 get_vdc_details
.return_value
= self
.org
, vdc
95 self
.vim
.client
= self
.vim
.connect()
96 perform_request
.side_effect
= [mock
.Mock(status_code
= 200,
97 content
= xml_resp
.vdc_xml_response
),
98 mock
.Mock(status_code
= 200,
99 content
= xml_resp
.network_xml_response
)]
100 # call to VIM connector method with network_id
101 result
= self
.vim
.get_network(net_id
)
103 # assert verified expected and return result from VIM connector
104 self
.assertEqual(net_id
, result
['id'])
106 @mock.patch
.object(vimconnector
,'perform_request')
107 @mock.patch
.object(vimconnector
,'get_vdc_details')
108 @mock.patch
.object(vimconnector
,'connect')
109 def test_get_network_list_not_found(self
, connect
, get_vdc_details
, perform_request
):
111 Testcase to get list of available networks by invalid network id
113 vdc_xml_resp
= xml_resp
.vdc_xml_response
114 network_xml_resp
= xml_resp
.network_xml_response
116 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
118 # assumed return value from VIM connector
119 get_vdc_details
.return_value
= self
.org
, vdc
120 self
.vim
.client
= self
.vim
.connect()
121 perform_request
.return_value
.status_code
= 200
122 perform_request
.return_value
.content
= network_xml_resp
124 # call to VIM connector method with network_id
125 result
= self
.vim
.get_network_list({'id':'45hdfg-345nb-345'})
127 # assert verified expected and return result from VIM connector
128 self
.assertEqual(list(), result
)
130 @mock.patch
.object(vimconnector
,'perform_request')
131 @mock.patch
.object(vimconnector
,'get_vdc_details')
132 @mock.patch
.object(vimconnector
,'connect')
133 def test_get_network_list(self
, connect
, get_vdc_details
, perform_request
):
135 Testcase to get list of available networks by valid network id
137 #import pdb;pdb.set_trace() ## Not working
138 vdc_xml_resp
= xml_resp
.vdc_xml_response
139 net_id
= '5c04dc6d-6096-47c6-b72b-68f19013d491'
141 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
142 # created network object
143 network_xml_resp
= xml_resp
.network_xml_response
144 # assumed return value from VIM connector
145 get_vdc_details
.return_value
= self
.org
, vdc
146 self
.vim
.client
= self
.vim
.connect()
147 perform_request
.side_effect
= [mock
.Mock(status_code
= 200,
148 content
= xml_resp
.vdc_xml_response
),
149 mock
.Mock(status_code
= 200,
150 content
= network_xml_resp
)]
151 perform_request
.reset_mock()
154 # call to VIM connector method with network_id
155 result
= self
.vim
.get_network_list({'id': net_id
})
157 # assert verified expected and return result from VIM connector
159 self
.assertEqual(item
.get('id'), net_id
)
160 self
.assertEqual(item
.get('status'), 'ACTIVE')
161 self
.assertEqual(item
.get('shared'), False)
163 @mock.patch
.object(vimconnector
,'create_network_rest')
164 def test_new_network(self
, create_network_rest
):
166 Testcase to create new network by passing network name and type
168 # create network reposnse
169 create_net_xml_resp
= xml_resp
.create_network_xml_response
170 net_name
= 'Test_network'
172 # assumed return value from VIM connector
173 create_network_rest
.return_value
= create_net_xml_resp
174 # call to VIM connector method with network name and type
175 result
= self
.vim
.new_network(net_name
, net_type
)
177 # assert verified expected and return result from VIM connector
178 self
.assertEqual(result
, 'df1956fa-da04-419e-a6a2-427b6f83788f')
180 @mock.patch
.object(vimconnector
, 'create_network_rest')
181 def test_new_network_not_created(self
, create_network_rest
):
183 Testcase to create new network by assigning empty xml data
185 # assumed return value from VIM connector
186 create_network_rest
.return_value
= """<?xml version="1.0" encoding="UTF-8"?>
187 <OrgVdcNetwork></OrgVdcNetwork>"""
190 # assert verified expected and return result from VIM connector
191 self
.assertRaises(vimconnUnexpectedResponse
,self
.vim
.new_network
,
195 @mock.patch
.object(vimconnector
, 'connect')
196 @mock.patch
.object(vimconnector
, 'get_network_action')
197 @mock.patch
.object(vimconnector
, 'delete_network_action')
198 def test_delete_network(self
, delete_network_action
, get_network_action
, connect
):
200 Testcase to delete network by network id
202 net_uuid
= '0a55e5d1-43a2-4688-bc92-cb304046bf87'
203 # delete network response
204 delete_net_xml_resp
= xml_resp
.delete_network_xml_response
206 # assumed return value from VIM connector
207 self
.vim
.client
= self
.vim
.connect()
208 get_network_action
.return_value
= delete_net_xml_resp
209 delete_network_action
.return_value
= True
210 # call to VIM connector method with network_id
211 result
= self
.vim
.delete_network(net_uuid
)
213 # assert verified expected and return result from VIM connector
214 self
.assertEqual(result
, net_uuid
)
216 @mock.patch
.object(vimconnector
, 'get_vcd_network')
217 def test_delete_network_not_found(self
, get_vcd_network
):
219 Testcase to delete network by invalid network id
221 # assumed return value from VIM connector
222 get_vcd_network
.return_value
= False
223 # assert verified expected and return result from VIM connector
224 self
.assertRaises(vimconnNotFoundException
,self
.vim
.delete_network
,
225 '2a23e5d1-42a2-0648-bc92-cb508046bf87')
227 def test_get_flavor(self
):
229 Testcase to get flavor data
231 flavor_data
= {'a646eb8a-95bd-4e81-8321-5413ee72b62e': {'disk': 10,
234 vimconnector
.flavorlist
= flavor_data
235 result
= self
.vim
.get_flavor('a646eb8a-95bd-4e81-8321-5413ee72b62e')
237 # assert verified expected and return result from VIM connector
238 self
.assertEqual(result
, flavor_data
['a646eb8a-95bd-4e81-8321-5413ee72b62e'])
240 def test_get_flavor_not_found(self
):
242 Testcase to get flavor data with invalid id
244 vimconnector
.flavorlist
= {}
245 # assert verified expected and return result from VIM connector
246 self
.assertRaises(vimconnNotFoundException
,self
.vim
.get_flavor
,
247 'a646eb8a-95bd-4e81-8321-5413ee72b62e')
249 def test_new_flavor(self
):
251 Testcase to create new flavor data
253 flavor_data
= {'disk': 10, 'vcpus': 1, 'ram': 1024}
254 result
= self
.vim
.new_flavor(flavor_data
)
255 # assert verified expected and return result from VIM connector
256 self
.assertIsNotNone(result
)
258 def test_delete_flavor(self
):
260 Testcase to delete flavor data
262 flavor_data
= {'2cb3dffb-5c51-4355-8406-28553ead28ac': {'disk': 10,
265 vimconnector
.flavorlist
= flavor_data
266 # return value from VIM connector
267 result
= self
.vim
.delete_flavor('2cb3dffb-5c51-4355-8406-28553ead28ac')
269 # assert verified expected and return result from VIM connector
270 self
.assertEqual(result
, '2cb3dffb-5c51-4355-8406-28553ead28ac')
272 @mock.patch
.object(vimconnector
,'connect_as_admin')
273 @mock.patch
.object(vimconnector
,'perform_request')
274 def test_delete_image_not_found(self
, perform_request
, connect_as_admin
):
276 Testcase to delete image by invalid image id
278 # creating conn object
279 self
.vim
.client
= self
.vim
.connect_as_admin()
281 # assumed return value from VIM connector
282 perform_request
.side_effect
= [mock
.Mock(status_code
= 200,
283 content
= xml_resp
.delete_catalog_xml_response
),
284 mock
.Mock(status_code
= 201,
285 content
= xml_resp
.delete_catalog_item_xml_response
)
288 # assert verified expected and return result from VIM connector
289 self
.assertRaises(vimconnNotFoundException
, self
.vim
.delete_image
, 'invali3453')
291 @mock.patch
.object(vimconnector
,'get_vdc_details')
292 @mock.patch
.object(vimconnector
,'connect')
293 @mock.patch
.object(Org
,'list_catalogs')
294 def test_get_image_list(self
, list_catalogs
, connect
, get_vdc_details
):
296 Testcase to get image list by valid image id
299 vdc_xml_resp
= xml_resp
.vdc_xml_response
300 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
301 self
.vim
.client
= self
.vim
.connect()
303 # assumed return value from VIM connector
304 get_vdc_details
.return_value
= self
.org
, vdc
305 list_catalogs
.return_value
= [{'isShared': 'false', 'numberOfVAppTemplates': '1', 'orgName': 'Org3', 'isPublished': 'false', 'ownerName': 'system', 'numberOfMedia': '0', 'creationDate': '2017-10-15T02:03:59.403-07:00', 'id': '34925a30-0f4a-4018-9759-0d6799063b51', 'name': 'Ubuntu_1nic'}, {'isShared': 'false', 'numberOfVAppTemplates': '1', 'orgName': 'Org3', 'isPublished': 'false', 'ownerName': 'orgadmin', 'numberOfMedia': '1', 'creationDate': '2018-02-15T02:16:58.300-08:00', 'id': '4b94b67e-c2c6-49ec-b46c-3f35ba45ca4a', 'name': 'cirros034'}, {'isShared': 'true', 'numberOfVAppTemplates': '1', 'orgName': 'Org3', 'isPublished': 'true', 'ownerName': 'system', 'numberOfMedia': '0', 'creationDate': '2018-01-26T02:09:12.387-08:00', 'id': 'b139ed82-7ca4-49fb-9882-5f841f59c890', 'name': 'Ubuntu_plugtest-1'}, {'isShared': 'true', 'numberOfVAppTemplates': '1', 'orgName': 'Org2', 'isPublished': 'false', 'ownerName': 'system', 'numberOfMedia': '0', 'creationDate': '2017-06-18T21:33:16.430-07:00', 'id': 'b31e6973-86d2-404b-a522-b16846d099dc', 'name': 'Ubuntu_Cat'}, {'isShared': 'false', 'numberOfVAppTemplates': '1', 'orgName': 'Org3', 'isPublished': 'false', 'ownerName': 'orgadmin', 'numberOfMedia': '0', 'creationDate': '2018-02-15T22:26:28.910-08:00', 'id': 'c3b56180-f980-4256-9109-a93168d73ff2', 'name': 'de4ffcf2ad21f1a5d0714d6b868e2645'}, {'isShared': 'false', 'numberOfVAppTemplates': '0', 'orgName': 'Org3', 'isPublished': 'false', 'ownerName': 'system', 'numberOfMedia': '0', 'creationDate': '2017-08-23T05:54:56.780-07:00', 'id': 'd0eb0b02-718d-42e0-b889-56575000b52d', 'name': 'Test_Cirros'}, {'isShared': 'false', 'numberOfVAppTemplates': '0', 'orgName': 'Org3', 'isPublished': 'false', 'ownerName': 'system', 'numberOfMedia': '0', 'creationDate': '2017-03-08T21:25:05.923-08:00', 'id': 'd3fa3df2-b311-4571-9138-4c66541d7f46', 'name': 'cirros_10'}, {'isShared': 'false', 'numberOfVAppTemplates': '0', 'orgName': 'Org3', 'isPublished': 'false', 'ownerName': 'system', 'numberOfMedia': '0', 'creationDate': '2017-07-12T22:45:20.537-07:00', 'id': 'd64b2617-ea4b-4b90-910b-102c99dd2031', 'name': 'Ubuntu16'}, {'isShared': 'true', 'numberOfVAppTemplates': '1', 'orgName': 'Org3', 'isPublished': 'true', 'ownerName': 'system', 'numberOfMedia': '1', 'creationDate': '2017-10-14T23:52:37.260-07:00', 'id': 'e8d953db-8dc9-46d5-9cab-329774cd2ad9', 'name': 'Ubuntu_no_nic'}]
307 result
= self
.vim
.get_image_list({'id': '4b94b67e-c2c6-49ec-b46c-3f35ba45ca4a'})
309 # assert verified expected and return result from VIM connector
311 self
.assertEqual(item
['id'], '4b94b67e-c2c6-49ec-b46c-3f35ba45ca4a')
313 @mock.patch
.object(vimconnector
,'get_vapp_details_rest')
314 @mock.patch
.object(vimconnector
,'get_vdc_details')
315 def test_get_vminstance(self
, get_vdc_details
, get_vapp_details_rest
):
317 Testcase to get vminstance by valid vm id
319 vapp_info
= {'status': '4',
320 'acquireMksTicket': {'href': 'https://localhost/api/vApp/vm-47d12505-5968-4e16-95a7-18743edb0c8b/screen/action/acquireMksTicket',
321 'type': 'application/vnd.vmware.vcloud.mksTicket+xml', 'rel': 'screen:acquireMksTicket'},
322 'vm_virtual_hardware': {'disk_edit_href': 'https://localhost/api/vApp/vm-47d12505-5968-4e16-95a7-18743edb0c8b/virtualHardwareSection/disks', 'disk_size': '40960'},
323 'name': 'Test1_vm-69a18104-8413-4cb8-bad7-b5afaec6f9fa',
324 'created': '2017-09-21T01:15:31.627-07:00',
326 'EndAddress': '12.16.24.199',
327 'interfaces': [{'MACAddress': '00:50:56:01:12:a2',
328 'NetworkConnectionIndex': '0',
329 'network': 'testing_T6nODiW4-68f68d93-0350-4d86-b40b-6e74dedf994d',
330 'IpAddressAllocationMode': 'DHCP',
331 'IsConnected': 'true',
332 'IpAddress': '12.16.24.200'}],
333 'ovfDescriptorUploaded': 'true',
334 'nestedHypervisorEnabled': 'false',
335 'Gateway': '12.16.24.1',
336 'acquireTicket': {'href': 'https://localhost/api/vApp/vm-47d12505-5968-4e16-95a7-18743edb0c8b/screen/action/acquireTicket',
337 'rel': 'screen:acquireTicket'},
338 'vmuuid': '47d12505-5968-4e16-95a7-18743edb0c8b',
339 'Netmask': '255.255.255.0',
340 'StartAddress': '12.16.24.100',
341 'primarynetwork': '0',
342 'networkname': 'External-Network-1074',
343 'IsInherited': 'false',
346 vdc_xml_resp
= xml_resp
.vdc_xml_response
347 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
348 # assumed return value from VIM connector
349 get_vdc_details
.return_value
= self
.org
, vdc
350 get_vapp_details_rest
.return_value
= vapp_info
352 result
= self
.vim
.get_vminstance('47d12505-5968-4e16-95a7-18743edb0c8b')
353 # assert verified expected and return result from VIM connector
354 self
.assertEqual(result
['status'], 'ACTIVE')
355 self
.assertEqual(result
['hostId'], '47d12505-5968-4e16-95a7-18743edb0c8b')
358 @mock.patch
.object(vimconnector
,'connect')
359 @mock.patch
.object(vimconnector
,'get_namebyvappid')
360 @mock.patch
.object(vimconnector
,'get_vdc_details')
361 @mock.patch
.object(VDC
,'get_vapp')
362 @mock.patch
.object(VApp
,'power_off')
363 @mock.patch
.object(VApp
,'undeploy')
364 @mock.patch
.object(VDC
,'delete_vapp')
365 @mock.patch
.object(Client
,'get_task_monitor')
366 def test_delete_vminstance(self
, get_task_monitor
, delete_vapp
,
368 get_vapp
, get_vdc_details
,
369 get_namebyvappid
, connect
):
371 Testcase to delete vminstance by valid vm id
373 vm_id
= '4f6a9b49-e92d-4935-87a1-0e4dc9c3a069'
374 vm_name
= 'Test1_vm-69a18104-8413-4cb8-bad7-b5afaec6f9fa'
376 vdc_xml_resp
= xml_resp
.vdc_xml_response
377 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
379 # assumed return value from VIM connector
380 self
.vim
.client
= self
.vim
.connect()
381 get_vdc_details
.return_value
= self
.org
, vdc
382 get_namebyvappid
.return_name
= vm_name
384 vapp_resp
= xml_resp
.vapp_xml_response
385 vapp
= lxmlElementTree
.fromstring(vapp_resp
)
386 get_vapp
.return_value
= vapp
388 power_off_resp
= xml_resp
.poweroff_task_xml
389 power_off
= lxmlElementTree
.fromstring(power_off_resp
)
390 poweroff
.return_value
= power_off
392 status_resp
= xml_resp
.status_task_xml
393 status
= lxmlElementTree
.fromstring(status_resp
)
394 self
.vim
.connect
.return_value
.get_task_monitor
.return_value
.wait_for_success
.return_value
= status
396 # call to VIM connector method
397 result
= self
.vim
.delete_vminstance(vm_id
)
399 # assert verified expected and return result from VIM connector
400 self
.assertEqual(result
, vm_id
)
402 @mock.patch
.object(vimconnector
,'get_network_id_by_name')
403 @mock.patch
.object(vimconnector
,'get_vm_pci_details')
404 @mock.patch
.object(VDC
,'get_vapp')
405 @mock.patch
.object(vimconnector
,'connect')
406 @mock.patch
.object(vimconnector
,'get_namebyvappid')
407 @mock.patch
.object(vimconnector
,'get_vdc_details')
408 @mock.patch
.object(vimconnector
,'perform_request')
409 @mock.patch
.object(VApp
,'get_all_vms')
410 def test_refresh_vms_status(self
, get_all_vms
, perform_request
, get_vdc_details
,
411 get_namebyvappid
, connect
,
412 get_vapp
, get_vm_pci_details
,
413 get_network_id_by_name
):
415 Testcase to refresh vms status by valid vm id
417 vm_id
= '53a529b2-10d8-4d56-a7ad-8182acdbe71c'
420 vdc_xml_resp
= xml_resp
.vdc_xml_response
421 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
422 # assumed return value from VIM connector
423 self
.vim
.client
= self
.vim
.connect()
424 get_vdc_details
.return_value
= self
.org
, vdc
426 get_namebyvappid
.return_value
= 'Test1_vm-69a18104-8413-4cb8-bad7-b5afaec6f9fa'
427 get_vm_pci_details
.return_value
= {'host_name': 'test-esx-1.corp.local', 'host_ip': '12.19.24.31'}
428 vapp_resp
= xml_resp
.vapp_xml_response
429 vapp
= lxmlElementTree
.fromstring(vapp_resp
)
430 get_vapp
.return_value
= vapp
431 get_network_id_by_name
.return_value
= '47d12505-5968-4e16-95a7-18743edb0c8b'
433 vm_resp
= xml_resp
.vm_xml_response
434 vm_list
= lxmlElementTree
.fromstring(vm_resp
)
435 get_all_vms
.return_value
= vm_list
437 perform_request
.return_value
.status_code
= 200
438 perform_request
.return_value
.content
= vm_resp
439 # call to VIM connector method
440 result
= self
.vim
.refresh_vms_status([vm_id
])
441 for attr
in result
[vm_id
]:
443 # assert verified expected and return result from VIM connector
444 self
.assertEqual(result
[vm_id
][attr
], 'ACTIVE')
446 @mock.patch
.object(vimconnector
,'get_vcd_network')
447 def test_refresh_nets_status(self
, get_vcd_network
):
448 net_id
= 'c2d0f28f-d38b-4588-aecc-88af3d4af58b'
449 network_dict
= {'status': '1','isShared': 'false','IpScope': '',
450 'EndAddress':'12.19.21.15',
451 'name': 'testing_gwyRXlvWYL1-9ebb6d7b-5c74-472f-be77-963ed050d44d',
452 'Dns1': '12.19.21.10', 'IpRanges': '',
453 'Gateway': '12.19.21.23', 'Netmask': '255.255.255.0',
454 'RetainNetInfoAcrossDeployments': 'false',
455 'IpScopes': '', 'IsEnabled': 'true', 'DnsSuffix': 'corp.local',
456 'StartAddress': '12.19.21.11', 'IpRange': '',
457 'Configuration': '', 'FenceMode': 'bridged',
458 'IsInherited': 'true', 'uuid': 'c2d0f28f-d38b-4588-aecc-88af3d4af58b'}
459 # assumed return value from VIM connector
460 get_vcd_network
.return_value
= network_dict
461 result
= self
.vim
.refresh_nets_status([net_id
])
462 # assert verified expected and return result from VIM connector
463 for attr
in result
[net_id
]:
465 self
.assertEqual(result
[net_id
][attr
], 'ACTIVE')
467 @mock.patch
.object(VDC
,'get_vapp')
468 @mock.patch
.object(vimconnector
,'connect')
469 @mock.patch
.object(vimconnector
,'get_namebyvappid')
470 @mock.patch
.object(vimconnector
,'get_vdc_details')
471 def test_action_vminstance(self
, get_vdc_details
, get_namebyvappid
,
475 Testcase for action vm instance by vm id
477 task_resp
= xml_resp
.poweroff_task_xml
478 vm_id
= '05e6047b-6938-4275-8940-22d1ea7245b8'
480 vdc_xml_resp
= xml_resp
.vdc_xml_response
481 vdc
= lxmlElementTree
.fromstring(vdc_xml_resp
)
482 # assumed return value from VIM connector
483 get_vdc_details
.return_value
= self
.org
, vdc
484 get_namebyvappid
.return_value
= 'Test1_vm-69a18104-8413-4cb8-bad7-b5afaec6f9fa'
485 self
.vim
.client
= self
.vim
.connect()
486 power_off_resp
= xml_resp
.poweroff_task_xml
487 power_off
= lxmlElementTree
.fromstring(power_off_resp
)
488 get_vapp
.return_value
.undeploy
.return_value
= power_off
490 status_resp
= xml_resp
.status_task_xml
491 status
= lxmlElementTree
.fromstring(status_resp
)
492 self
.vim
.connect
.return_value
.get_task_monitor
.return_value
.wait_for_success
.return_value
= status
494 # call to VIM connector method
495 result
= self
.vim
.action_vminstance(vm_id
,{'shutdown': None})
497 # assert verified expected and return result from VIM connector
498 self
.assertEqual(result
, vm_id
)
500 @mock.patch
.object(vimconnector
,'get_org')
501 def test_get_tenant_list(self
, get_org
):
503 Test case for get tenant list
505 org_dict
= {'catalogs': {'4c4fdb5d-0c7d-4fee-9efd-cb061f327a01': '80d8488f67ba1de98b7f485fba6abbd2', '1b98ca02-b0a6-4ca7-babe-eadc0ae59677': 'Ubuntu', 'e7f27dfe-14b7-49e1-918e-173bda02683a': '834bdd1f28fd15dcbe830456ec58fbca', '9441ee69-0486-4438-ac62-8d8082c51302': 'centos', 'e660cce0-47a6-4315-a5b9-97a39299a374': 'cirros01', '0fd96c61-c3d1-4abf-9a34-0dff8fb65743': 'cirros034', '1c703be3-9bd2-46a2-854c-3e678d5cdda8': 'Ubuntu_plugtest-1', 'bc4e342b-f84c-41bd-a93a-480f35bacf69': 'Cirros', '8a206fb5-3ef9-4571-9bcc-137615f4d930': '255eb079a62ac155e7f942489f14b0c4'}, 'vdcs': {'e6436c6a-d922-4b39-9c1c-b48e766fce5e': 'osm', '3852f762-18ae-4833-a229-42684b6e7373': 'cloud-1-vdc'}, 'networks': {'e203cacd-9320-4422-9be0-12c7def3ab56': 'testing_lNejr37B-38e4ca67-1e26-486f-ad2f-f14bb099e068', 'a6623349-2bef-4367-9fda-d33f9ab927f8': 'Vlan_3151', 'adf780cb-358c-47c2-858d-ae5778ccaf17': 'testing_xwBultc-99b8a2ae-c091-4dd3-bbf7-762a51612385', '721f9efc-11fe-4c13-936d-252ba0ed93c8': 'testing_tLljy8WB5e-a898cb28-e75b-4867-a22e-f2bad285c144', '1512d97a-929d-4b06-b8af-cf5ac42a2aee': 'Managment', 'd9167301-28af-4b89-b9e0-09f612e962fa': 'testing_prMW1VThk-063cb428-eaee-44b8-9d0d-df5fb77a5b4d', '004ae853-f899-43fd-8981-7513a3b40d6b': 'testing_RTtKVi09rld-fab00b16-7996-49af-8249-369c6bbfa02d'}}
507 get_org
.return_value
= org_dict
509 # call to VIM connector method
510 results
= self
.vim
.get_tenant_list({'name' : tenant_name
})
511 # assert verified expected and return result from VIM connector
512 for result
in results
:
513 self
.assertEqual(tenant_name
,result
['name'])
515 @mock.patch
.object(vimconnector
,'get_org')
516 def test_get_tenant_list_negative(self
, get_org
):
518 Test case for get tenant list negative
520 org_dict
= {'vdcs': {}}
521 tenant_name
= 'testosm'
522 get_org
.return_value
= org_dict
524 # call to VIM connector method
525 results
= self
.vim
.get_tenant_list({'name' : tenant_name
})
526 # assert verified expected and return result from VIM connector
527 self
.assertEqual(results
, [])