Skip to content

Commit 62dae1c

Browse files
authored
Merge pull request #984 from QualiSystems/develop
1.14.175 release
2 parents 5c39867 + d92dc82 commit 62dae1c

File tree

7 files changed

+36
-12
lines changed

7 files changed

+36
-12
lines changed

package/cloudshell/cp/vcenter/commands/vm_details.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ def get_vm_details(self, si, logger, resource_context, requests, cancellation_co
2222

2323
try:
2424
vm = self.pyvmomi_service.find_by_uuid(si, request.deployedAppJson.vmdetails.uid)
25+
26+
wait_for_ip = next((p.value for p in request.deployedAppJson.vmdetails.vmCustomParams if p.name == 'wait_for_ip'), 'False')
27+
2528
self._wait_for_vm_to_be_ready(vm, request, logger)
2629

2730
result = self.vm_details_provider.create(
@@ -30,6 +33,7 @@ def get_vm_details(self, si, logger, resource_context, requests, cancellation_co
3033
reserved_networks=resource_context.attributes.get('Reserved Networks', '').split(';'),
3134
ip_regex=next((p.value for p in request.deployedAppJson.vmdetails.vmCustomParams if p.name=='ip_regex'), None),
3235
deployment_details_provider=DeploymentDetailsProviderFromAppJson(request.appRequestJson.deploymentService),
36+
wait_for_ip=wait_for_ip,
3337
logger=logger)
3438

3539
except Exception as e:

package/cloudshell/cp/vcenter/vm/deploy.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ def _safely_get_vm_details(self, vm, vm_name, vcenter_model, deploy_model, logge
207207
reserved_networks=vcenter_model.reserved_networks,
208208
ip_regex=deploy_model.ip_regex,
209209
deployment_details_provider=DeploymentDetailsProviderFromTemplateModel(deploy_model),
210+
wait_for_ip = deploy_model.wait_for_ip,
210211
logger=logger)
211212
except Exception:
212213
logger.error("Error getting vm details for '{0}': {1}".format(vm_name, traceback.format_exc()))

package/cloudshell/cp/vcenter/vm/vm_details_provider.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,23 @@ def __init__(self, pyvmomi_service, ip_manager):
1111
self.pyvmomi_service = pyvmomi_service # type: pyVmomiService
1212
self.ip_manager = ip_manager # type: VMIPManager
1313

14-
def create(self, vm, name, reserved_networks, ip_regex, deployment_details_provider, logger):
15-
""""""
14+
def create(self, vm, name, reserved_networks, ip_regex, deployment_details_provider, wait_for_ip, logger):
15+
"""
16+
creates the details provider
17+
:param vm:
18+
:param name:
19+
:param reserved_networks:
20+
:param ip_regex:
21+
:param deployment_details_provider:
22+
:param wait_for_ip: type: string contains 'True' or 'False'
23+
:param logger:
24+
:return:
25+
"""
26+
27+
logger.info('waiting for ip = {0}'.format(wait_for_ip))
1628

1729
vm_instance_data = self._get_vm_instance_data(vm, deployment_details_provider)
18-
vm_network_data = self._get_vm_network_data(vm, reserved_networks, ip_regex, logger)
30+
vm_network_data = self._get_vm_network_data(vm, reserved_networks, ip_regex, wait_for_ip, logger)
1931

2032
return VmDetailsData(vmInstanceData=vm_instance_data, vmNetworkData=vm_network_data)
2133

@@ -39,10 +51,14 @@ def _get_vm_instance_data(self, vm, deployment_details_provider):
3951

4052
return data
4153

42-
def _get_vm_network_data(self, vm, reserved_networks, ip_regex, logger):
54+
def _get_vm_network_data(self, vm, reserved_networks, ip_regex, wait_for_ip, logger):
4355
network_interfaces = []
4456

45-
primary_ip = self._get_primary_ip(vm, ip_regex, logger)
57+
if wait_for_ip == 'True':
58+
primary_ip = self._get_primary_ip(vm, ip_regex, logger)
59+
else:
60+
primary_ip = None;
61+
4662
net_devices = [d for d in vm.config.hardware.device if isinstance(d, vim.vm.device.VirtualEthernetCard)]
4763

4864
for device in net_devices:

package/cloudshell/tests/test_commands/test_vm_details.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,15 @@ def test(self, get_network_by_device):
2525
si = Mock()
2626
pyvmomi_service = Mock()
2727
pyvmomi_service.find_by_uuid = Mock(return_value=vm)
28-
param = Mock()
29-
param.name = 'ip_regex'
30-
param.value = '.*'
28+
ip_regex_param = Mock()
29+
ip_regex_param.name = 'ip_regex'
30+
ip_regex_param.value = '.*'
31+
wait_for_ip_param = Mock()
32+
wait_for_ip_param.name = 'wait_for_ip'
33+
wait_for_ip_param.value = 'True'
3134
request = Mock()
3235
request.deployedAppJson.name = 'App1'
33-
request.deployedAppJson.vmdetails.vmCustomParams = [param]
36+
request.deployedAppJson.vmdetails.vmCustomParams = [ip_regex_param, wait_for_ip_param]
3437
request.appRequestJson.deploymentService.model = 'vCenter Clone VM From VM'
3538
request.appRequestJson.deploymentService.attributes = [Mock()]
3639
resource_context = Mock()

package/version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.14.0
1+
1.14.2

vcentershell_driver/drivermetadata.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Driver Description="this driver manage all the commands that runs at the vcenter context" MainClass="driver.VCenterShellDriver" Name="VCenter Driver" Version="1.14.0">
1+
<Driver Description="this driver manage all the commands that runs at the vcenter context" MainClass="driver.VCenterShellDriver" Name="VCenter Driver" Version="1.14.1">
22
<Layout>
33
<Category Name="Deployment">
44
<Command Description="" DisplayName="Deploy From Template" EnableCancellation="true" Name="deploy_from_template" Tags="allow_unreserved" />

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.14.0
1+
1.14.1.175

0 commit comments

Comments
 (0)