Skip to content

Commit 366f320

Browse files
committed
fix 173764
1 parent e2e24cd commit 366f320

4 files changed

Lines changed: 25 additions & 5 deletions

File tree

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: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,28 @@ 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)
1930

20-
return VmDetailsData(vmInstanceData=vm_instance_data, vmNetworkData=vm_network_data)
31+
if wait_for_ip == 'True':
32+
vm_network_data = self._get_vm_network_data(vm, reserved_networks, ip_regex, logger)
33+
return VmDetailsData(vmInstanceData=vm_instance_data, vmNetworkData=vm_network_data)
34+
else:
35+
return VmDetailsData(vmInstanceData=vm_instance_data, vmNetworkData=None)
2136

2237
def _get_vm_instance_data(self, vm, deployment_details_provider):
2338
data = []

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.9.4

0 commit comments

Comments
 (0)