def index(self, req): """Returns a summary list of notifications.""" context = req.environ['masakari.context'] context.can(notifications_policies.NOTIFICATIONS % 'index') try: limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) filters = {} if 'status' in req.params: filters['status'] = req.params['status'] if 'source_host_uuid' in req.params: filters['source_host_uuid'] = req.params['source_host_uuid'] if 'type' in req.params: filters['type'] = req.params['type'] if 'generated-since' in req.params: try: parsed = timeutils.parse_isotime( req.params['generated-since']) except ValueError: msg = _('Invalid generated-since value') raise exc.HTTPBadRequest(explanation=msg) filters['generated-since'] = parsed notifications = self.api.get_all(context, filters, sort_keys, sort_dirs, limit, marker) except exception.MarkerNotFound as err: raise exc.HTTPBadRequest(explanation=err.format_message()) except exception.Invalid as err: raise exc.HTTPBadRequest(explanation=err.format_message()) return {'notifications': notifications}
def index(self, req): """Returns a summary list of failover segments.""" context = req.environ['masakari.context'] context.can(segment_policies.SEGMENTS % 'index') try: limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) filters = {} for field in ['recovery_method', 'service_type', 'enabled']: if field in req.params: filters[field] = req.params[field] segments = self.api.get_all(context, filters=filters, sort_keys=sort_keys, sort_dirs=sort_dirs, limit=limit, marker=marker) except exception.MarkerNotFound as e: raise exc.HTTPBadRequest(explanation=e.format_message()) except exception.Invalid as e: raise exc.HTTPBadRequest(explanation=e.format_message()) return {'segments': segments}
def index(self, req): """Returns a summary list of failover segments.""" context = req.environ['masakari.context'] context.can(segment_policies.SEGMENTS % 'index') try: limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) filters = {} if 'recovery_method' in req.params: filters['recovery_method'] = req.params['recovery_method'] if 'service_type' in req.params: filters['service_type'] = req.params['service_type'] segments = self.api.get_all(context, filters=filters, sort_keys=sort_keys, sort_dirs=sort_dirs, limit=limit, marker=marker) except exception.MarkerNotFound as e: raise exc.HTTPBadRequest(explanation=e.format_message()) except exception.Invalid as e: raise exc.HTTPBadRequest(explanation=e.format_message()) return {'segments': segments}
def index(self, req): """Returns a summary list of notifications.""" context = req.environ['masakari.context'] authorize(context) try: limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) filters = {} if 'status' in req.params: filters['status'] = req.params['status'] if 'source_host_uuid' in req.params: filters['source_host_uuid'] = req.params['source_host_uuid'] if 'type' in req.params: filters['type'] = req.params['type'] if 'generated-since' in req.params: try: parsed = timeutils.parse_isotime( req.params['generated-since']) except ValueError: msg = _('Invalid generated-since value') raise exc.HTTPBadRequest(explanation=msg) filters['generated-since'] = parsed notifications = self.api.get_all(context, filters, sort_keys, sort_dirs, limit, marker) except exception.MarkerNotFound as err: raise exc.HTTPBadRequest(explanation=err.format_message()) except exception.Invalid as err: raise exc.HTTPBadRequest(explanation=err.format_message()) return {'notifications': notifications}
def index(self, req): """Returns a summary list of failover segments.""" context = req.environ['masakari.context'] authorize(context) try: limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) filters = {} if 'recovery_method' in req.params: filters['recovery_method'] = req.params['recovery_method'] if 'service_type' in req.params: filters['service_type'] = req.params['service_type'] segments = self.api.get_all(context, filters=filters, sort_keys=sort_keys, sort_dirs=sort_dirs, limit=limit, marker=marker) except exception.MarkerNotFound as e: raise exc.HTTPBadRequest(explanation=e.format_message()) except exception.Invalid as e: raise exc.HTTPBadRequest(explanation=e.format_message()) return {'segments': segments}
def index(self, req, segment_id): """Returns a list a hosts.""" context = req.environ['masakari.context'] context.can(host_policies.HOSTS % 'index') try: filters = {} limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) segment = objects.FailoverSegment.get_by_uuid(context, segment_id) filters['failover_segment_id'] = segment.uuid if 'name' in req.params: filters['name'] = req.params['name'] if 'type' in req.params: filters['type'] = req.params['type'] if 'control_attributes' in req.params: filters['control_attributes'] = req.params[ 'control_attributes'] if 'on_maintenance' in req.params: try: filters['on_maintenance'] = strutils.bool_from_string( req.params['on_maintenance'], strict=True) except ValueError as ex: msg = _("Invalid value for on_maintenance: " "%s") % encodeutils.exception_to_unicode(ex) raise exc.HTTPBadRequest(explanation=msg) if 'reserved' in req.params: try: filters['reserved'] = strutils.bool_from_string( req.params['reserved'], strict=True) except ValueError as ex: msg = _("Invalid value for reserved: " "%s") % encodeutils.exception_to_unicode(ex) raise exc.HTTPBadRequest(explanation=msg) hosts = self.api.get_all(context, filters=filters, sort_keys=sort_keys, sort_dirs=sort_dirs, limit=limit, marker=marker) except exception.MarkerNotFound as ex: raise exc.HTTPBadRequest(explanation=ex.format_message()) except exception.Invalid as e: raise exc.HTTPBadRequest(explanation=e.format_message()) except exception.FailoverSegmentNotFound as ex: raise exc.HTTPNotFound(explanation=ex.format_message()) builder = views_hosts.get_view_builder(req) return builder.build_hosts(hosts)
def index(self, req, segment_id): """Returns a list a hosts.""" context = req.environ['masakari.context'] authorize(context) try: filters = {} limit, marker = common.get_limit_and_marker(req) sort_keys, sort_dirs = common.get_sort_params(req.params) segment = objects.FailoverSegment.get_by_uuid(context, segment_id) filters['failover_segment_id'] = segment.uuid if 'name' in req.params: filters['name'] = req.params['name'] if 'type' in req.params: filters['type'] = req.params['type'] if 'control_attributes' in req.params: filters['control_attributes'] = req.params[ 'control_attributes'] if 'on_maintenance' in req.params: try: filters['on_maintenance'] = strutils.bool_from_string( req.params['on_maintenance'], strict=True) except ValueError as ex: msg = _("Invalid value for on_maintenance: " "%s") % encodeutils.exception_to_unicode(ex) raise exc.HTTPBadRequest(explanation=msg) if 'reserved' in req.params: try: filters['reserved'] = strutils.bool_from_string( req.params['reserved'], strict=True) except ValueError as ex: msg = _("Invalid value for reserved: " "%s") % encodeutils.exception_to_unicode(ex) raise exc.HTTPBadRequest(explanation=msg) hosts = self.api.get_all(context, filters=filters, sort_keys=sort_keys, sort_dirs=sort_dirs, limit=limit, marker=marker) except exception.MarkerNotFound as ex: raise exc.HTTPBadRequest(explanation=ex.format_message()) except exception.Invalid as e: raise exc.HTTPBadRequest(explanation=e.format_message()) except exception.FailoverSegmentNotFound as ex: raise exc.HTTPNotFound(explanation=ex.format_message()) return {'hosts': hosts}