Skip to content

Commit

Permalink
Merge 88db0b6 into 1ffa373
Browse files Browse the repository at this point in the history
  • Loading branch information
nahumtimerman committed Jul 5, 2018
2 parents 1ffa373 + 88db0b6 commit d12fc15
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 10 deletions.
17 changes: 11 additions & 6 deletions package/cloudshell/cp/vcenter/commands/save_sandbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,16 +114,21 @@ def _execute_save_actions_using_pool(self, artifactSaversToActions, cancellation

if self.cs.check_if_cancelled(cancellation_context):
logger.info('[{0}] Save sandbox was cancelled, rolling back saved apps'.format(thread_id))
results = results_before_deploy
for param in destroy_params:
results.append(self._destroy(param))
logger.info('[{0}] Save Sandbox roll back completed'.format(thread_id))
results = self._rollback(destroy_params, logger, results, results_before_deploy, thread_id)

if operation_error:
elif operation_error:
logger.error('[{0}] Save Sandbox operation failed, rolling backed saved apps'.format(thread_id))
results = self._rollback(destroy_params, logger, results, results_before_deploy, thread_id)

return results

def _rollback(self, destroy_params, logger, results, results_before_deploy, thread_id):
results = results_before_deploy
for param in destroy_params:
results.append(self._destroy(param))
logger.info('[{0}] Save Sandbox roll back completed'.format(thread_id))
return results

def _get_save_params(self, artifactSaver, artifactSaversToActions, cancellation_context, logger):
return [(artifactSaver, a, cancellation_context, logger) for a in artifactSaversToActions[artifactSaver]]

Expand All @@ -146,7 +151,7 @@ def _destroy(self, (artifactSaver, action)):
artifactSaver.destroy(save_action=action)
return SaveAppResult(action.actionId,
success=False,
errorMessage='Save app action {0} was cancelled'.format(action.actionId),
errorMessage='Save app action {0} was rolled back'.format(action.actionId),
infoMessage='')

def validate_requested_save_types_supported(self, artifactSaversToActions, logger, results):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,18 @@ def _validate_vm_storage(self, si, all_items_in_vc, auto_att, dc_name, attribute
d_name = attributes[key]
auto_att.append(AutoLoadAttribute('', key, d_name))

def _validate_saved_sandbox_storage(self, si, all_items_in_vc, auto_att, dc_name, attributes, key):
accepted_types = (vim.Datastore, vim.StoragePod)
datastore = self._validate_attribute(si, attributes, accepted_types, key, dc_name)
if not datastore:
datastore = self._get_default(all_items_in_vc, accepted_types, key)
d_name = self.get_full_name(dc_name, datastore)
# removing the upper folder
d_name = d_name.replace('datastore/', '')
else:
d_name = attributes[key]
auto_att.append(AutoLoadAttribute('', key, d_name))

def _validate_vm_location(self, si, all_items_in_vc, auto_att, dc_name, attributes, key):
accepted_types = None
folder = self._validate_attribute(si, attributes, accepted_types, key, dc_name)
Expand Down
6 changes: 3 additions & 3 deletions package/cloudshell/tests/test_commands/test_save_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,12 +120,12 @@ def test_destroy_on_vms_and_folders_if_command_cancelled_during_deploy(self):
# Assert
self.assertTrue(result[0].type == 'SaveApp')
self.assertTrue(result[0].actionId == save_action1.actionId)
self.assertTrue(result[0].errorMessage == 'Save app action {0} was cancelled'.format(save_action1.actionId))
self.assertTrue(result[0].errorMessage == 'Save app action {0} was rolled back'.format(save_action1.actionId))
self.assertTrue(not result[0].success)

self.assertTrue(result[1].type == 'SaveApp')
self.assertTrue(result[1].actionId == save_action2.actionId)
self.assertTrue(result[0].errorMessage == 'Save app action {0} was cancelled'.format(save_action2.actionId))
self.assertTrue(result[0].errorMessage == 'Save app action {0} was rolled back'.format(save_action2.actionId))
self.assertTrue(not result[1].success)

def test_nonempty_saved_sandbox_storage_replaces_default_storage(self):
Expand Down Expand Up @@ -327,7 +327,7 @@ def test_error_thrown_during_save(self):
save_action = self._create_arbitrary_save_app_action()

self.save_command.deployer = Mock()
error_message = 'Clone VM failed!'
error_message = 'Save app action was rolled back'
self.save_command.deployer.deploy_clone_from_vm = Mock(side_effect=Exception(error_message))

vcenter_data_model = Mock()
Expand Down
2 changes: 1 addition & 1 deletion package/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.13.999658
1.13.0

0 comments on commit d12fc15

Please sign in to comment.