def _reboot_for_hybridvm(self, context, instance, network_info, reboot_type, block_device_info=None, bad_volumes_callback=None): provider_server_id = self._get_cascaded_server_id(instance) if provider_server_id: provider_server = self.hws_client.ecs.get_detail(self.project, provider_server_id) if self._is_hws_server_exist(provider_server): port = CONF.hws.hybrid_service_port wormhole_business_hws = WormHoleBusinessHWS(provider_server, self.hws_client, port) if self._is_hws_server_active(provider_server): # if hws server is active, only need to restart container, no need to restart base vm. docker_version = wormhole_business_hws.get_version() wormhole_business_hws.restart_container(network_info, block_device_info) elif self._is_hws_server_shutoff(provider_server): # if hws server is SHUTOFF, we need to start base vm, and start container. LOG.debug('start to start server') start_result = self.hws_client.ecs.start_server(self.project, provider_server_id) self._deal_java_error(start_result) self._wait_for_hws_server_in_ACTIVE(provider_server_id) LOG.debug('start to start container') start_result = wormhole_business_hws.start_container(network_info, block_device_info) else: LOG.debug('hws server status is: %s, not support to reboot.' % provider_server['body']['server']['status']) else: LOG.debug('provider server is not exist for server id: %s' % provider_server_id) else: LOG.debug('No provider server mapped with instance: %s' % instance.uuid)
def _power_on_for_bybrid_vm(self, context, instance, network_info, block_device_info): LOG.debug('start to _power_on_for_bybrid_vm') provider_server_id = self._get_cascaded_server_id(instance) provider_server = self.hws_client.ecs.get_detail(self.project, provider_server_id) if provider_server_id and self._is_hws_server_exist(provider_server): port = CONF.hws.hybrid_service_port wormhole_business_hws = WormHoleBusinessHWS(provider_server, self.hws_client, port) LOG.debug('start to start server') start_result = self.hws_client.ecs.start_server(self.project, provider_server_id) self._deal_java_error(start_result) self._wait_for_hws_server_in_ACTIVE(provider_server_id) LOG.debug('start to start container') try: docker_version = wormhole_business_hws.get_version() except Exception, e: LOG.error('hyper service is not online, no need to start container') docker_version = None if docker_version: start_result = wormhole_business_hws.start_container(network_info, block_device_info) LOG.info('Start Server: %s, result is: %s' % (instance.display_name, start_result))