Esempio n. 1
0
 def _stop_deployment(self):
     errors = []
     for nodename, runner in self.get_vms().items():
         vm_id = runner.vmIds[0]
         try:
             vm_info = runner.cloud._vmInfo(vm_id)
             uuids_list = self._get_volatile_disk_ids_to_delete(
                 etree.fromstring(vm_info))
             runner.killInstances()
             self._wait_vm_in_state(['Done', 'Failed'], runner, vm_id)
             time.sleep(2)
             self._delete_volatile_disks(uuids_list)
         except Exception as ex:
             traceback.print_exc()
             try:
                 time.sleep(2)
                 runner.killInstances()
                 self._delete_volatile_disks(uuids_list)
             except Exception as ex:
                 traceback.print_exc()
                 errors.append('Error killing node %s\n%s' %
                               (nodename, str(ex)))
     if errors:
         raise Exceptions.CloudError('Failed stopping following instances. '
                                     'Details: %s' %
                                     '\n   -> '.join(errors))
Esempio n. 2
0
 def _stop_deployment(self):
     errors = []
     for nodename, runner in self.get_vms().items():
         try:
             runner.killInstances()
         except Exception:
             # Retry killing instances.
             try:
                 time.sleep(2)
                 runner.killInstances()
             except Exception as ex:
                 errors.append('Error killing node %s\n%s' %
                               (nodename, str(ex)))
     if errors:
         raise Exceptions.CloudError('Failed stopping following instances. '
                                     'Details: %s' %
                                     '\n   -> '.join(errors))