Exemple #1
0
 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
Exemple #2
0
 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
Exemple #3
0
 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
Exemple #4
0
 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
Exemple #5
0
 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
Exemple #6
0
 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