Skip to content

Commit 30c51ec

Browse files
authored
Merge pull request #781 from QualiSystems/gil_773
Gil 773
2 parents 555711e + 0b9319b commit 30c51ec

5 files changed

Lines changed: 64 additions & 5 deletions

File tree

static_vm_package/VCenterAutoloadStaticVMDriver/__init__.py

Whitespace-only changes.

static_vm_package/VCenterAutoloadStaticVMDriver/app_discovery/vm_autoload_driver.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ def __init__(self):
2424
self.ip_manager = VMIPManager()
2525
self.task_waiter = SynchronousTaskWaiter()
2626
self.logger = get_qs_logger('VM AutoLoad')
27+
self.pv_service = pyVmomiService(SmartConnect, Disconnect, self.task_waiter)
2728

2829
def get_inventory(self, context):
2930
"""
@@ -44,18 +45,18 @@ def get_inventory(self, context):
4445
vcenter_resource = self.model_parser.convert_to_vcenter_model(vcenter_api_res)
4546

4647
si = None
47-
pv_service = pyVmomiService(SmartConnect, Disconnect, self.task_waiter)
48+
4849

4950
try:
5051
self.logger.info('connecting to vcenter ({0})'.format(vcenter_api_res.Address))
51-
si = self._get_connection_to_vcenter(pv_service, session, vcenter_resource, vcenter_api_res.Address)
52+
si = self._get_connection_to_vcenter(self.pv_service, session, vcenter_resource, vcenter_api_res.Address)
5253

5354
self.logger.info('loading vm uuid')
54-
vm_loader = VMLoader(pv_service)
55+
vm_loader = VMLoader(self.pv_service)
5556
uuid = vm_loader.load_vm_uuid_by_name(si, vcenter_resource, vcenter_vm_name)
5657
self.logger.info('vm uuid: {0}'.format(uuid))
5758
self.logger.info('loading the ip of the vm')
58-
ip = self._try_get_ip(pv_service, si, uuid, vcenter_resource)
59+
ip = self._try_get_ip(self.pv_service, si, uuid, vcenter_resource)
5960
if ip:
6061
session.UpdateResourceAddress(context.resource.name, ip)
6162

@@ -64,7 +65,7 @@ def get_inventory(self, context):
6465
raise
6566
finally:
6667
if si:
67-
pv_service.disconnect(si)
68+
self.pv_service.disconnect(si)
6869

6970
return self._get_auto_load_response(uuid, vcenter_name, context.resource)
7071

static_vm_package/VCenterAutoloadStaticVMDriver/tests/__init__.py

Whitespace-only changes.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import uuid
2+
from unittest import TestCase
3+
4+
import jsonpickle
5+
from pyVmomi import vim
6+
from mock import Mock, create_autospec, patch
7+
from pyVmomi.VmomiSupport import vmodlNames
8+
9+
from static_vm_package.VCenterAutoloadStaticVMDriver.app_discovery.vm_autoload_driver import \
10+
DeployAppOrchestrationDriver
11+
12+
13+
class TestGetInventory(TestCase):
14+
def setUp(self):
15+
self.deploy_app_orchestration_driver = DeployAppOrchestrationDriver()
16+
self.context = Mock()
17+
self.context.resource.attributes = Mock()
18+
self.VMLoader = Mock()
19+
20+
def test_get_inventory(self):
21+
vcenter_data_model = Mock()
22+
vcenter_data_model.default_datacenter = 'name'
23+
self.deploy_app_orchestration_driver.cs_helper.get_session = Mock(return_value=Mock())
24+
self.deploy_app_orchestration_driver.model_parser.convert_to_vcenter_model = Mock(
25+
return_value=vcenter_data_model)
26+
self.deploy_app_orchestration_driver._get_connection_to_vcenter = Mock(return_value=Mock())
27+
self.deploy_app_orchestration_driver._try_get_ip = Mock(return_value=Mock())
28+
self.deploy_app_orchestration_driver._get_vm_details = Mock(return_value=Mock())
29+
self.deploy_app_orchestration_driver.pv_service.find_vm_by_name = Mock(
30+
return_value=vim.VirtualMachine(Mock(), Mock()))
31+
32+
# deployer.deploy_from_image = Mock(return_value=res)
33+
self.context.resource.attributes = {'vCenter VM': 'dd', 'vCenter Name': 'd2'}
34+
35+
self.logger = Mock()
36+
# Act
37+
38+
self.deploy_app_orchestration_driver.get_inventory(self.context)
39+
# Assert
40+
41+
self.assertTrue(self.deploy_app_orchestration_driver.model_parser.convert_to_vcenter_model.called)
42+
self.assertTrue(self.deploy_app_orchestration_driver.cs_helper.get_session.called)
43+
self.assertTrue(self.deploy_app_orchestration_driver.model_parser.convert_to_vcenter_model.valled)
44+
self.assertTrue(self.deploy_app_orchestration_driver._get_connection_to_vcenter.called)
45+
self.assertTrue(self.deploy_app_orchestration_driver._try_get_ip.called)
46+
self.assertTrue(self.deploy_app_orchestration_driver._get_vm_details.called)
47+
self.assertTrue(self.deploy_app_orchestration_driver.pv_service.find_vm_by_name.called)
48+
49+
def test_get_vm_details(self):
50+
vm_details = self.deploy_app_orchestration_driver._get_vm_details(uuid="Piplup",
51+
vcenter_name="Prinplup",
52+
resource="Empoleon")
53+
str_vm_details = jsonpickle.decode(vm_details)
54+
self.assertTrue(str_vm_details['CloudProviderName']=="Prinplup")
55+
self.assertTrue(str_vm_details['UID']=='Piplup')
56+
57+
58+

static_vm_package/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)