def validate(cls, data): d = cls.validate_json(data) if "name" not in d: raise errors.InvalidData("No release name specified", log_message=True) if "version" not in d: raise errors.InvalidData("No release version specified", log_message=True) if db().query(Release).filter_by(name=d["name"], version=d["version"]).first(): raise errors.AlreadyExists( "Release with the same name and version " "already exists", log_message=True) if "networks_metadata" in d: # TODO(enchantner): additional validation for network in d["networks_metadata"]: if "name" not in network: raise errors.InvalidData("Invalid network data: %s" % str(network), log_message=True) else: d["networks_metadata"] = [] if "attributes_metadata" not in d: d["attributes_metadata"] = {} else: try: Attributes.validate_fixture(d["attributes_metadata"]) except Exception: raise errors.InvalidData( "Invalid logical structure of attributes metadata", log_message=True) return d
def validate(cls, data): d = cls.validate_json(data) if not "name" in d: raise web.webapi.badrequest(message="No release name specified") if not "version" in d: raise web.webapi.badrequest(message="No release version specified") if cls.db.query(Release).filter_by(name=d["name"], version=d["version"]).first(): raise web.webapi.conflict if "networks_metadata" in d: for network in d["networks_metadata"]: if not "name" in network or not "access" in network: raise web.webapi.badrequest( message="Invalid network data: %s" % str(network)) if network["access"] not in settings.NETWORK_POOLS: raise web.webapi.badrequest( message="Invalid access mode for network") else: d["networks_metadata"] = [] if not "attributes_metadata" in d: d["attributes_metadata"] = {} else: try: Attributes.validate_fixture(d["attributes_metadata"]) except: raise web.webapi.badrequest( message="Invalid logical structure of attributes metadata") return d
def validate(cls, data): d = cls.validate_json(data) if not "name" in d: raise errors.InvalidData("No release name specified", log_message=True) if not "version" in d: raise errors.InvalidData("No release version specified", log_message=True) if db().query(Release).filter_by(name=d["name"], version=d["version"]).first(): raise errors.AlreadyExists( "Release with the same name and version " "already exists", log_message=True) if "networks_metadata" in d: for network in d["networks_metadata"]: if not "name" in network or not "access" in network: raise errors.InvalidData("Invalid network data: %s" % str(network), log_message=True) if network["access"] not in settings.NETWORK_POOLS: raise errors.InvalidData("Invalid access mode for network", log_message=True) else: d["networks_metadata"] = [] if not "attributes_metadata" in d: d["attributes_metadata"] = {} else: try: Attributes.validate_fixture(d["attributes_metadata"]) except: raise errors.InvalidData( "Invalid logical structure of attributes metadata", log_message=True) return d
def validate(cls, data): d = cls.validate_json(data) if "name" not in d: raise errors.InvalidData( "No release name specified", log_message=True ) if "version" not in d: raise errors.InvalidData( "No release version specified", log_message=True ) if db().query(Release).filter_by( name=d["name"], version=d["version"] ).first(): raise errors.AlreadyExists( "Release with the same name and version " "already exists", log_message=True ) if "networks_metadata" in d: for network in d["networks_metadata"]: if not "name" in network or not "access" in network: raise errors.InvalidData( "Invalid network data: %s" % str(network), log_message=True ) if network["access"] not in settings.NETWORK_POOLS: raise errors.InvalidData( "Invalid access mode for network", log_message=True ) else: d["networks_metadata"] = [] if "attributes_metadata" not in d: d["attributes_metadata"] = {} else: try: Attributes.validate_fixture(d["attributes_metadata"]) except Exception: raise errors.InvalidData( "Invalid logical structure of attributes metadata", log_message=True ) return d
def validate(cls, data): d = cls.validate_json(data) if "name" not in d: raise errors.InvalidData( "No release name specified", log_message=True ) if "version" not in d: raise errors.InvalidData( "No release version specified", log_message=True ) if db().query(Release).filter_by( name=d["name"], version=d["version"] ).first(): raise errors.AlreadyExists( "Release with the same name and version " "already exists", log_message=True ) if "networks_metadata" in d: # TODO(enchantner): additional validation meta = d["networks_metadata"]["nova_network"] for network in meta["networks"]: if "name" not in network: raise errors.InvalidData( "Invalid network data: %s" % str(network), log_message=True ) else: d["networks_metadata"] = {} if "attributes_metadata" not in d: d["attributes_metadata"] = {} else: try: Attributes.validate_fixture(d["attributes_metadata"]) except Exception: raise errors.InvalidData( "Invalid logical structure of attributes metadata", log_message=True ) return d
def validate(cls, data): d = cls.validate_json(data) if not "name" in d: raise web.webapi.badrequest( message="No release name specified" ) if not "version" in d: raise web.webapi.badrequest( message="No release version specified" ) if cls.db.query(Release).filter_by( name=d["name"], version=d["version"] ).first(): raise web.webapi.conflict if "networks_metadata" in d: for network in d["networks_metadata"]: if not "name" in network or not "access" in network: raise web.webapi.badrequest( message="Invalid network data: %s" % str(network) ) if network["access"] not in settings.NETWORK_POOLS: raise web.webapi.badrequest( message="Invalid access mode for network" ) else: d["networks_metadata"] = [] if not "attributes_metadata" in d: d["attributes_metadata"] = {} else: try: Attributes.validate_fixture(d["attributes_metadata"]) except: raise web.webapi.badrequest( message="Invalid logical structure of attributes metadata" ) return d