Skip to content

Commit 0c66704

Browse files
committed
Added the support for cancellation output command.
1 parent cc88e66 commit 0c66704

5 files changed

Lines changed: 31 additions & 9 deletions

File tree

deployment_drivers/deploy_clone_from_vm/driver.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import jsonpickle
2-
from cloudshell.api.cloudshell_api import InputNameValue
2+
from cloudshell.api.cloudshell_api import InputNameValue, CommandExecutionCancelledResultInfo
33
from cloudshell.cp.vcenter.models.DeployFromTemplateDetails import DeployFromTemplateDetails
44
from cloudshell.cp.vcenter.models.vCenterCloneVMFromVMResourceModel import vCenterCloneVMFromVMResourceModel
55

@@ -50,4 +50,5 @@ def Deploy(self, context, Name=None):
5050
params,
5151
False)
5252

53-
return result.Output
53+
return self.cs_helper.proceed_command_execution_result(reservation_id=reservation_id, result=result,
54+
context=context)

deployment_drivers/deploy_from_image/driver.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import jsonpickle
2-
from cloudshell.api.cloudshell_api import InputNameValue
2+
from cloudshell.api.cloudshell_api import InputNameValue, CommandExecutionCancelledResultInfo
33
from cloudshell.shell.core.resource_driver_interface import ResourceDriverInterface
44

55
from cloudshell.cp.vcenter.models.DeployDataHolder import DeployDataHolder
@@ -40,13 +40,17 @@ def Deploy(self, context, Name=None):
4040
Name = jsonpickle.decode(context.resource.app_context.app_request_json)['name']
4141

4242
deployment_info = self._get_deployment_info(vcenter_image_resource_model, Name)
43+
44+
reservation_id = context.reservation.reservation_id
4345
result = session.ExecuteCommand(context.reservation.reservation_id,
4446
vcenter_res,
4547
"Resource",
4648
"deploy_from_image",
4749
self._get_command_inputs_list(deployment_info),
4850
False)
49-
return result.Output
51+
52+
return self.cs_helper.proceed_command_execution_result(reservation_id=reservation_id, result=result,
53+
context=context)
5054

5155
def _get_deployment_info(self, image_model, name):
5256
"""

deployment_drivers/deploy_from_linked_clone/driver.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import jsonpickle
2-
from cloudshell.api.cloudshell_api import InputNameValue
2+
from cloudshell.api.cloudshell_api import InputNameValue, CommandExecutionCancelledResultInfo
33
from cloudshell.cp.vcenter.models.DeployFromTemplateDetails import DeployFromTemplateDetails
44
from cloudshell.cp.vcenter.models.VCenterDeployVMFromLinkedCloneResourceModel import VCenterDeployVMFromLinkedCloneResourceModel
55

@@ -50,4 +50,5 @@ def Deploy(self, context, Name=None):
5050
params,
5151
False)
5252

53-
return result.Output
53+
return self.cs_helper.proceed_command_execution_result(reservation_id=reservation_id, result=result,
54+
context=context)

deployment_drivers/deploy_from_template/driver.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
from distutils import config
2+
13
import jsonpickle
2-
from cloudshell.api.cloudshell_api import InputNameValue
4+
from cloudshell.api.cloudshell_api import InputNameValue, CommandExecutionCancelledResultInfo
5+
6+
from cloudshell.cp.vcenter.common.utilites.context_based_logger_factory import ContextBasedLoggerFactory
37
from cloudshell.cp.vcenter.models.DeployFromTemplateDetails import DeployFromTemplateDetails
48
from cloudshell.cp.vcenter.models.vCenterVMFromTemplateResourceModel import vCenterVMFromTemplateResourceModel
59

@@ -50,4 +54,5 @@ def Deploy(self, context, Name=None):
5054
params,
5155
False)
5256

53-
return result.Output
57+
return self.cs_helper.proceed_command_execution_result(reservation_id=reservation_id, result=result,
58+
context=context)

package/cloudshell/cp/vcenter/common/cloud_shell/driver_helper.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from cloudshell.api.cloudshell_api import CloudShellAPISession
1+
from cloudshell.api.cloudshell_api import CloudShellAPISession, CommandExecutionCancelledResultInfo
22

3+
from cloudshell.cp.vcenter.common.utilites.context_based_logger_factory import ContextBasedLoggerFactory
34
from cloudshell.cp.vcenter.models.VCenterConnectionDetails import VCenterConnectionDetails
45

56

@@ -39,3 +40,13 @@ def get_connection_details(self, session, vcenter_resource_model, resource_conte
3940

4041
return VCenterConnectionDetails(vcenter_url, user, password)
4142

43+
def proceed_command_execution_result(self, reservation_id, result, context):
44+
if isinstance(result, CommandExecutionCancelledResultInfo):
45+
logger_factory = ContextBasedLoggerFactory()
46+
logger = logger_factory.create_logger_for_context(logger_name='vCenterShell',
47+
context=context)
48+
logger.info("Deploy from template for reservation '{0}': {1}".format(reservation_id, result.Message))
49+
return result.Message
50+
else:
51+
return result.Output
52+

0 commit comments

Comments
 (0)