def show(self, request, tenant_id, id): """ Returns qos details for the given qos id """ try: qos = self._plugin.get_qos_details(tenant_id, id) builder = qos_view.get_view_builder(request) #build response with details result = builder.build(qos, True) return dict(qoss=result) except exception.QosNotFound as exp: return faults.Fault(faults.QosNotFound(exp))
def create(self, request, tenant_id): """ Creates a new qos for a given tenant """ #look for qos name in request try: body = self._deserialize(request.body, request.get_content_type()) req_body = self._prepare_request_body(body, self._qos_ops_param_list) req_params = req_body[self._resource_name] except exc.HTTPError as exp: return faults.Fault(exp) qos = self._plugin.create_qos(tenant_id, req_params['qos_name'], req_params['qos_desc']) builder = qos_view.get_view_builder(request) result = builder.build(qos) return dict(qoss=result)
def update(self, request, tenant_id, id): """ Updates the name for the qos with the given id """ try: body = self._deserialize(request.body, request.get_content_type()) req_body = self._prepare_request_body(body, self._qos_ops_param_list) req_params = req_body[self._resource_name] except exc.HTTPError as exp: return faults.Fault(exp) try: qos = self._plugin.rename_qos(tenant_id, id, req_params['qos_name']) builder = qos_view.get_view_builder(request) result = builder.build(qos, True) return dict(qoss=result) except exception.QosNotFound as exp: return faults.Fault(faults.QosNotFound(exp))
def _items(self, request, tenant_id, is_detail): """ Returns a list of qoss. """ qoss = self._plugin.get_all_qoss(tenant_id) builder = qos_view.get_view_builder(request) result = [builder.build(qos, is_detail)['qos'] for qos in qoss] return dict(qoss=result)