def create(self, req, body=None): context = req.environ["cinder.context"] authorize(context) if not self.is_valid_body(body, "qos_specs"): raise webob.exc.HTTPBadRequest() specs = body["qos_specs"] name = specs.get("name", None) if name is None or name == "": msg = _("Please specify a name for QoS specs.") raise webob.exc.HTTPBadRequest(explanation=msg) try: qos_specs.create(context, name, specs) spec = qos_specs.get_qos_specs_by_name(context, name) notifier_info = dict(name=name, specs=specs) notifier_api.notify(context, "QoSSpecs", "QoSSpecs.create", notifier_api.INFO, notifier_info) except exception.InvalidInput as err: notifier_err = dict(name=name, error_message=str(err)) self._notify_qos_specs_error(context, "qos_specs.create", notifier_err) raise webob.exc.HTTPBadRequest(explanation=str(err)) except exception.QoSSpecsExists as err: notifier_err = dict(name=name, error_message=str(err)) self._notify_qos_specs_error(context, "qos_specs.create", notifier_err) raise webob.exc.HTTPConflict(explanation=str(err)) except exception.QoSSpecsCreateFailed as err: notifier_err = dict(name=name, error_message=str(err)) self._notify_qos_specs_error(context, "qos_specs.create", notifier_err) raise webob.exc.HTTPInternalServerError(explanation=str(err)) return self._view_builder.detail(req, spec)
def test_get_qos_specs_by_name(self): one_time_value = str(int(time.time())) input = {'key1': one_time_value, 'key2': 'value2', 'key3': 'value3'} id = self._create_qos_specs(one_time_value, input) specs = qos_specs.get_qos_specs_by_name(self.ctxt, one_time_value) self.assertEquals(specs[one_time_value]['key1'], one_time_value) self.assertRaises(exception.InvalidQoSSpecs, qos_specs.get_qos_specs_by_name, self.ctxt, None)
def test_get_qos_specs_by_name(self): one_time_value = str(int(time.time())) input = {'key1': one_time_value, 'key2': 'value2', 'key3': 'value3'} id = self._create_qos_specs(one_time_value, input) specs = qos_specs.get_qos_specs_by_name(self.ctxt, one_time_value) self.assertEquals(specs[one_time_value]['key1'], one_time_value) self.assertRaises(exception.InvalidQoSSpecs, qos_specs.get_qos_specs_by_name, self.ctxt, None)
def create(self, req, body=None): context = req.environ['cinder.context'] authorize(context) if not self.is_valid_body(body, 'qos_specs'): raise webob.exc.HTTPBadRequest() specs = body['qos_specs'] name = specs.get('name', None) if name is None or name == "": msg = _("Please specify a name for QoS specs.") raise webob.exc.HTTPBadRequest(explanation=msg) try: specs_ref = qos_specs.create(context, name, specs) qos_specs.get_qos_specs_by_name(context, name) notifier_info = dict(name=name, specs=specs) notifier_api.notify(context, 'QoSSpecs', 'QoSSpecs.create', notifier_api.INFO, notifier_info) except exception.InvalidInput as err: notifier_err = dict(name=name, error_message=str(err)) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPBadRequest(explanation=str(err)) except exception.QoSSpecsExists as err: notifier_err = dict(name=name, error_message=str(err)) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPConflict(explanation=str(err)) except exception.QoSSpecsCreateFailed as err: notifier_err = dict(name=name, error_message=str(err)) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPInternalServerError(explanation=str(err)) return body
def test_get_qos_specs_by_name(self): one_time_value = str(int(time.time())) input = {'key1': one_time_value, 'key2': 'value2', 'key3': 'value3', 'consumer': 'back-end'} self._create_qos_specs(one_time_value, input) specs = qos_specs.get_qos_specs_by_name(self.ctxt, one_time_value) self.assertEqual(one_time_value, specs['specs']['key1']) self.assertRaises(exception.InvalidQoSSpecs, qos_specs.get_qos_specs_by_name, self.ctxt, None)
def test_get_qos_specs_by_name(self): one_time_value = str(int(time.time())) input = { 'key1': one_time_value, 'key2': 'value2', 'key3': 'value3', 'consumer': 'back-end' } self._create_qos_specs(one_time_value, input) specs = qos_specs.get_qos_specs_by_name(self.ctxt, one_time_value) self.assertEqual(one_time_value, specs['specs']['key1']) self.assertRaises(exception.InvalidQoSSpecs, qos_specs.get_qos_specs_by_name, self.ctxt, None)
def create(self, req, body=None): context = req.environ['cinder.context'] authorize(context) self.assert_valid_body(body, 'qos_specs') specs = body['qos_specs'] name = specs.get('name', None) if name is None: msg = _("Please specify a name for QoS specs.") raise webob.exc.HTTPBadRequest(explanation=msg) self.validate_string_length(name, 'name', min_length=1, max_length=255, remove_whitespaces=True) name = name.strip() try: qos_specs.create(context, name, specs) spec = qos_specs.get_qos_specs_by_name(context, name) notifier_info = dict(name=name, specs=specs) rpc.get_notifier('QoSSpecs').info(context, 'qos_specs.create', notifier_info) except exception.InvalidQoSSpecs as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPBadRequest(explanation=six.text_type(err)) except exception.QoSSpecsExists as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPConflict(explanation=six.text_type(err)) except exception.QoSSpecsCreateFailed as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPInternalServerError( explanation=six.text_type(err)) return self._view_builder.detail(req, spec)
def create(self, req, body=None): context = req.environ['cinder.context'] authorize(context) self.assert_valid_body(body, 'qos_specs') specs = body['qos_specs'] name = specs.get('name', None) if name is None: msg = _("Please specify a name for QoS specs.") raise webob.exc.HTTPBadRequest(explanation=msg) self.validate_string_length(name, 'name', min_length=1, max_length=255, remove_whitespaces=True) name = name.strip() try: qos_specs.create(context, name, specs) spec = qos_specs.get_qos_specs_by_name(context, name) notifier_info = dict(name=name, specs=specs) rpc.get_notifier('QoSSpecs').info(context, 'qos_specs.create', notifier_info) except exception.InvalidQoSSpecs as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPBadRequest(explanation=six.text_type(err)) except exception.QoSSpecsExists as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPConflict(explanation=six.text_type(err)) except exception.QoSSpecsCreateFailed as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPInternalServerError( explanation=six.text_type(err)) return self._view_builder.detail(req, spec)
def create(self, req, body=None): context = req.environ['cinder.context'] authorize(context) if not self.is_valid_body(body, 'qos_specs'): raise webob.exc.HTTPBadRequest() specs = body['qos_specs'] name = specs.get('name', None) if name is None or name == "": msg = _("Please specify a name for QoS specs.") raise webob.exc.HTTPBadRequest(explanation=msg) try: qos_specs.create(context, name, specs) spec = qos_specs.get_qos_specs_by_name(context, name) notifier_info = dict(name=name, specs=specs) rpc.get_notifier('QoSSpecs').info(context, 'QoSSpecs.create', notifier_info) except exception.InvalidInput as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPBadRequest(explanation=six.text_type(err)) except exception.QoSSpecsExists as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPConflict(explanation=six.text_type(err)) except exception.QoSSpecsCreateFailed as err: notifier_err = dict(name=name, error_message=err) self._notify_qos_specs_error(context, 'qos_specs.create', notifier_err) raise webob.exc.HTTPInternalServerError( explanation=six.text_type(err)) return self._view_builder.detail(req, spec)