def detail(self, req): context = req.environ['xdrs.context'] authorize(context, 'get_vms_migration_records') vms_migration_records = self._get_vms_migration_records(req) return self._view_builder.detail(req, vms_migration_records)
def detail(self, req): context = req.environ['xdrs.context'] authorize(context, 'get_vm_cpu_data') vms_cpu_data = self._get_vm_cpu_data(req) return self._view_builder.detail(req, vms_cpu_data)
def create(self, req, body): """ Creates a new algorithm. """ context = req.environ['xdrs.context'] authorize(context, 'update_algorithms') if not self.is_valid_body(body, 'parameters'): raise webob.exc.HTTPBadRequest() algorithm_parameters = body['parameters'] if not self.is_valid_body(body, 'algorithm_name'): raise webob.exc.HTTPBadRequest() algorithm_name = body['algorithm_name'] if not self.is_valid_body(body, 'algorithm_description'): raise webob.exc.HTTPBadRequest() algorithm_description = body['algorithm_description'] algorithm_id = random.randint(0, 0xffffffffffffffff) algorithm_create_values = { 'algorithm_name': algorithm_name, 'algorithm_id': algorithm_id, 'algorithm_parameters': algorithm_parameters, 'algorithm_description': algorithm_description, 'in_use': False } try: algorithm = self.hosts_api.create_vm_select_algorithm(context, algorithm_create_values) except exception.AlgorithmNotFound as ex: raise webob.exc.HTTPNotFound(explanation=ex.format_message()) return {'algorithm': algorithm}
def index(self, req): context = req.environ['xdrs.context'] authorize(context, 'get_vm_metadata') vms_metadata = self._get_vm_metadata(req) return self._view_builder.index(req, vms_metadata)
def index(self, req): context = req.environ['xdrs.context'] authorize(context, 'get_host_cpu_data') hosts_cpu_data = self._get_host_cpu_data(req) return self._view_builder.index(req, hosts_cpu_data)
def index(self, req): """ Return all hosts states in brief. """ context = req.environ['xdrs.context'] authorize(context, 'get_hosts_states') hosts_states = self._get_hosts_states(req) return self._view_builder.index(req, hosts_states)
def delete(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'delete_vm_migration_record') try: vm_migration_record = self.vms_api.delete_vm_migration_record_by_id(context, id) except exception.VmMigrationRecordNotFound: msg = _('vm migration record not found') raise webob.exc.HTTPBadRequest(explanation=msg)
def get_specific_vm_migration_task_state(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_migration_task_state') try: vm_migration_task_state = self.vms_api.get_specific_vm_migration_task_state(context, id) except exception.NotFound: raise exc.HTTPNotFound() return vm_migration_task_state
def get_vm_select_algorithm_in_used(self, req): context = req.environ['xdrs.context'] authorize(context, 'get_algorithm') try: algorithm = self.hosts_api.get_vm_select_algorithm_in_used(context, id) except exception.NotFound: raise exc.HTTPNotFound() return {'vm_select_algorithm': _translate_vm_select_algorithm_detail_view(context, algorithm)}
def detail(self, req): """ Return all algorithms in detail. """ context = req.environ['xdrs.context'] authorize(context, 'get_algorithms') algorithms = self._get_algorithms(req) return self._view_builder.detail(req, algorithms)
def index(self, req): """ Return all algorithms in brief. 注:这里只是提供一个实现示例,具体功能的实现还有待探讨; """ context = req.environ['xdrs.context'] authorize(context, 'get_algorithms') algorithms = self._get_algorithms(req) return self._view_builder.index(req, algorithms)
def get_specific_vm_migration_task_state(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_migration_task_state') try: vm_migration_task_state = self.vms_api.get_specific_vm_migration_task_state( context, id) except exception.NotFound: raise exc.HTTPNotFound() return vm_migration_task_state
def show(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'show_vm_migration_record') try: vm_migration_record = self.vms_api.get_vm_migration_record_by_id(context, id) except exception.VmMigrationRecordNotFound: msg = _('vm migration record not found') raise webob.exc.HTTPBadRequest(explanation=msg) return self._view_builder.show(req, vm_migration_record)
def show(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'show_host_cpu_data') try: host_cpu_data = self.hosts_api.get_host_cpu_data_by_id(context, id) except exception.HostCpuDataNotFound: msg = _('host cpu data not found') raise webob.exc.HTTPBadRequest(explanation=msg) return self._view_builder.show(req, host_cpu_data)
def delete_vm_metadata_by_id(self, req, id): """ 注:这个方法需要比较细致地来写; """ context = req.environ['xdrs.context'] authorize(context, 'destroy_vm_cpu_data') try: vm_cpu_data = self.vms_api.delete_vm_metadata_by_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() return webob.Response(status_int=202)
def get_specific_host_all_migration_in_records(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_specific_host_all_migration_records') try: vm_migration_records = self.vms_api.get_specific_host_all_migration_in_records(context, id) except exception.NotFound: raise exc.HTTPNotFound() vm_migration_records_dict = self._items(req, context, vm_migration_records, entity_maker=_translate_vm_migration_record_detail_view) return vm_migration_records_dict
def delete(self, req, id): """ Delete a host task states. """ context = req.environ['xdrs.context'] authorize(context, 'delete_host_task_states') try: host_task_states = self.hosts_api.delete_host_task_states_by_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() return webob.Response(status_int=202)
def get_vm_cpu_data_by_host_id(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_cpu_data') try: vms_cpu_data = self.hosts_api.get_vm_cpu_data_by_host_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() vms_cpu_data_dict = self._items(req, context, vms_cpu_data, entity_maker=_translate_vm_cpu_data_detail_view) return vms_cpu_data_dict
def delete(self, req, id): """ Delete a algorithm. """ context = req.environ['xdrs.context'] authorize(context, 'delete_algorithms') try: algorithm = self.hosts_api.delete_underload_algorithm_by_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() return webob.Response(status_int=202)
def get_filter_scheduler_algorithms_in_used(self, req): context = req.environ['xdrs.context'] authorize(context, 'get_algorithm') try: algorithms = self.hosts_api.get_filter_scheduler_algorithms_in_used(context) except exception.NotFound: raise exc.HTTPNotFound() algorithms_info = [_translate_filter_scheduler_algorithms_detail_view(context, algorithm) for algorithm in algorithms] filter_scheduler_algorithms = [algorithm['algorithm_name'] for algorithm in algorithms_info] return {'filter_scheduler_algorithms': filter_scheduler_algorithms}
def get_vm_cpu_data_by_vm_id(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_cpu_data') try: vm_cpu_data = self.hosts_api.get_vm_cpu_data_by_vm_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() vm_cpu_data = _translate_vm_cpu_data_detail_view(context, vm_cpu_data) vm_cpu_data_dict = {'vm_cpu_data':vm_cpu_data} return vm_cpu_data_dict
def show(self, req, id): """ Return data about the given host task states. """ context = req.environ['xdrs.context'] authorize(context, 'show_host_task_states') try: host_task_states = self.hosts_api.get_host_task_states_by_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() return {'host_task_states': _translate_host_task_states_detail_view(context, host_task_states)}
def delete(self, req, id): """ Delete a host task states. """ context = req.environ['xdrs.context'] authorize(context, 'delete_host_task_states') try: host_task_states = self.hosts_api.delete_host_task_states_by_id( context, id) except exception.NotFound: raise exc.HTTPNotFound() return webob.Response(status_int=202)
def get_vm_cpu_data_by_vm_id(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_cpu_data') try: vm_cpu_data = self.hosts_api.get_vm_cpu_data_by_vm_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() vm_cpu_data = _translate_vm_cpu_data_detail_view(context, vm_cpu_data) vm_cpu_data_dict = {'vm_cpu_data': vm_cpu_data} return vm_cpu_data_dict
def show(self, req, id): """ Return data about the given algorithm. """ context = req.environ['xdrs.context'] authorize(context, 'show_algorithms') try: algorithm = self.hosts_api.get_vm_select_algorithm_by_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() return {'vm_select_algorithm': _translate_vm_select_algorithm_detail_view(context, algorithm)}
def get_vm_task_state_by_id(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_task_state') try: vm_task_state = self.vms_api.get_vm_task_state_by_id(context, id) except exception.NotFound: raise exc.HTTPNotFound() if vm_task_state not in [states.VM_MIGRATING, states.VM_NORMAL]: msg = _('vm task state info is error!') raise webob.exc.HTTPBadRequest(explanation=msg) return vm_task_state
def update(self, req, id, body): context = req.environ['xdrs.context'] authorize(context, 'update_algorithms') if not self.is_valid_body(body, 'parameters'): raise webob.exc.HTTPBadRequest() parameters = body['parameters'] try: algorithm = self.hosts_api.update_underload_algorithm(context, id, parameters) except exception.AlgorithmNotFound as ex: raise webob.exc.HTTPNotFound(explanation=ex.format_message()) return {'parameters':parameters}
def _items(self, req, server_id, entity_maker): """ Returns a list of hosts load states, transformed through entity_maker. """ context = req.environ['xdrs.context'] authorize(context, 'get_hosts_load_states') try: hosts_load_states = self.hosts_api.get_all_hosts_load_states_sorted_list(context) except exception.HostLoadStateNotFound: msg = _('hosts load states not found') raise webob.exc.HTTPBadRequest(explanation=msg) hosts_load_states = [entity_maker(context, host_load_states) for host_load_states in hosts_load_states] return {'hosts_load_states': hosts_load_states}
def create(self, req, body): context = req.environ['xdrs.context'] authorize(context, 'create_vm_migration_record') try: vm_migration_record = body['vm_migration_record'] except (KeyError, TypeError): msg = _("Malformed request body") raise exc.HTTPBadRequest(explanation=msg) new_vm_migration_record = self.vms_api.create_vm_migration_record( context, vm_migration_record) return {'vm_migration_record': new_vm_migration_record}
def _items(self, req, entity_maker): """ Returns a list of algorithms, transformed through entity_maker. """ context = req.environ['xdrs.context'] authorize(context, 'get_algorithms') try: algorithms = self.hosts_api.get_all_vm_select_algorithm_sorted_list(context) except exception.AlgorithmsNotFound: msg = _('overload algorithms not found') raise webob.exc.HTTPBadRequest(explanation=msg) vm_select_algorithms = [entity_maker(context, algorithm) for algorithm in algorithms] return {'vm_select_algorithms': vm_select_algorithms}
def get_specific_host_all_migration_records(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_specific_host_all_migration_records') try: vm_migration_records = self.vms_api.get_specific_host_all_migration_records( context, id) except exception.NotFound: raise exc.HTTPNotFound() vm_migration_records_dict = self._items( req, context, vm_migration_records, entity_maker=_translate_vm_migration_record_detail_view) return vm_migration_records_dict
def show(self, req, id): """ Return data about the given host task states. """ context = req.environ['xdrs.context'] authorize(context, 'show_host_task_states') try: host_task_states = self.hosts_api.get_host_task_states_by_id( context, id) except exception.NotFound: raise exc.HTTPNotFound() return { 'host_task_states': _translate_host_task_states_detail_view(context, host_task_states) }
def get_vm_cpu_data_by_host_id(self, req, id): context = req.environ['xdrs.context'] authorize(context, 'get_vm_cpu_data') try: vms_cpu_data = self.hosts_api.get_vm_cpu_data_by_host_id( context, id) except exception.NotFound: raise exc.HTTPNotFound() vms_cpu_data_dict = self._items( req, context, vms_cpu_data, entity_maker=_translate_vm_cpu_data_detail_view) return vms_cpu_data_dict
def _items(self, req, server_id, entity_maker): """ Returns a list of hosts load states, transformed through entity_maker. """ context = req.environ['xdrs.context'] authorize(context, 'get_hosts_load_states') try: hosts_load_states = self.hosts_api.get_all_hosts_load_states_sorted_list( context) except exception.HostLoadStateNotFound: msg = _('hosts load states not found') raise webob.exc.HTTPBadRequest(explanation=msg) hosts_load_states = [ entity_maker(context, host_load_states) for host_load_states in hosts_load_states ] return {'hosts_load_states': hosts_load_states}
def update(self, req, id, body): context = req.environ['xdrs.context'] authorize(context, 'update_host_running_states') if not self.is_valid_body(body, 'parameters'): raise webob.exc.HTTPBadRequest() parameters = body['parameters'] value = parameters['host_running_state'] if value not in [states.NORMAL_POWER, states.LOW_POWER]: msg = _('host running states info is error!') raise webob.exc.HTTPBadRequest(explanation=msg) update_value = {'host_running_state':value} try: host_running_states = self.hosts_api.update_host_running_states(context, id, update_value) except exception.HostRunningStateNotFound as ex: raise webob.exc.HTTPNotFound(explanation=ex.format_message()) return {'host_running_states':host_running_states}
def update(self, req, id, body): context = req.environ['xdrs.context'] authorize(context, 'update_host_load_states') if not self.is_valid_body(body, 'parameters'): raise webob.exc.HTTPBadRequest() parameters = body['parameters'] value = parameters['host_load_state'] if value not in [states.NORMALLOAD, states.OVERLOAD, states.UNDERLOAD]: msg = _('host load states info is error!') raise webob.exc.HTTPBadRequest(explanation=msg) update_value = {'host_load_state': value} try: host_load_states = self.hosts_api.update_host_load_states( context, id, update_value) except exception.HostLoadStateNotFound as ex: raise webob.exc.HTTPNotFound(explanation=ex.format_message()) return {'host_load_states': host_load_states}
def update(self, req, id, body): context = req.environ['xdrs.context'] authorize(context, 'update_host_task_states') if not self.is_valid_body(body, 'parameters'): raise webob.exc.HTTPBadRequest() parameters = body['parameters'] value = parameters['host_task_state'] if value not in [states.DETECTING, states.COLLECTING, states.MIGRATING_OUT, states.MIGRATING_IN, states.DO_NOTING]: msg = _('host task states info is error!') raise webob.exc.HTTPBadRequest(explanation=msg) update_value = {'host_task_state':value} try: host_task_states = self.hosts_api.update_host_task_states(context, id, update_value) except exception.HostTaskStateNotFound as ex: raise webob.exc.HTTPNotFound(explanation=ex.format_message()) return {'host_task_states':host_task_states}
def update(self, req, id, body): context = req.environ['xdrs.context'] authorize(context, 'update_host_task_states') if not self.is_valid_body(body, 'parameters'): raise webob.exc.HTTPBadRequest() parameters = body['parameters'] value = parameters['host_task_state'] if value not in [ states.DETECTING, states.COLLECTING, states.MIGRATING_OUT, states.MIGRATING_IN, states.DO_NOTING ]: msg = _('host task states info is error!') raise webob.exc.HTTPBadRequest(explanation=msg) update_value = {'host_task_state': value} try: host_task_states = self.hosts_api.update_host_task_states( context, id, update_value) except exception.HostTaskStateNotFound as ex: raise webob.exc.HTTPNotFound(explanation=ex.format_message()) return {'host_task_states': host_task_states}