Beispiel #1
0
        def _validate(body, gid):
            if not self.is_valid_body(body, "keypair"):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            self._uuid_check(gid)
            values = body["keypair"]
            name = values.get("name")
            is_default = values.get("is_default")

            if name:
                if isinstance(name, six.string_types):
                    name = name.strip()
                utils.check_string_length(name, "name", min_length=1, max_length=255)

            if is_default:
                try:
                    is_default = strutils.bool_from_string(is_default, strict=True)
                except ValueError:
                    msg = _("is_default must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                is_default = False

            valid_values = {}
            valid_values["gid"] = gid
            valid_values["display_name"] = name
            valid_values["is_default"] = is_default
            return valid_values
Beispiel #2
0
        def _validate(body, gid, securitygroup_id):
            if not self.is_valid_body(body, 'securitygroup'):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            values = body["securitygroup"]
            is_default = values.get("is_default")

            if not uuidutils.is_uuid_like(gid):
                raise exception.GroupNotFound(gid=gid)

            if not uuidutils.is_uuid_like(securitygroup_id):
                raise exception.SecuritygroupNotFound(
                    securitygroup_id=securitygroup_id)

            if is_default:
                try:
                    is_default = strutils.bool_from_string(
                        is_default, strict=True)
                except ValueError:
                    msg = _("is_default must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                msg = _("SecurityGroup is_default is required")
                raise exception.InvalidInput(reason=msg)

            valid_values = {}
            valid_values["is_default"] = is_default
            return valid_values
Beispiel #3
0
        def _validate_securitygroup(gid, body):
            if not uuidutils.is_uuid_like(gid):
                raise exception.GroupNotFound(gid=gid)

            if not self.is_valid_body(body, 'securitygroup'):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            values = body["securitygroup"]
            name = values.get("name")
            is_default = values.get("is_default")

            if isinstance(name, six.string_types):
                name = name.strip()
                utils.check_string_length(name, 'name', min_length=1,
                                          max_length=255)

            if is_default:
                try:
                    is_default = strutils.bool_from_string(
                        is_default, strict=True)
                except ValueError:
                    msg = _("is_default must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                is_default = False

            valid_values = {}
            valid_values["gid"] = gid
            valid_values["display_name"] = name
            valid_values["is_default"] = is_default
            return valid_values
Beispiel #4
0
        def _validate(context, body, gid):
            if not self.is_valid_body(body, 'keypair'):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            self._uuid_check(gid)
            values = body["keypair"]
            name = values.get("name")
            is_default = values.get("is_default")

            if is_default:
                try:
                    is_default = strutils.bool_from_string(is_default,
                                                           strict=True)
                    keypairs = db.keypair_get_all(context,
                                                  gid,
                                                  filters={"is_default": True})
                    if keypairs:
                        msg = _("Default keypair already exists in the "
                                "group %s" % gid)
                        raise exception.InvalidInput(reason=msg)
                except ValueError:
                    msg = _("is_default must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                is_default = False

            valid_values = {}
            valid_values["gid"] = gid
            valid_values["display_name"] = name
            valid_values["is_default"] = is_default
            return valid_values
Beispiel #5
0
        def _validate(context, body, gid):
            self._uuid_check(gid)
            if not self.is_valid_body(body, "network"):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            values = body.get("network")

            cidr = values.get("cidr")
            name = values.get("name")

            is_admin = values.get("is_admin")
            if is_admin:
                try:
                    is_admin = strutils.bool_from_string(is_admin, strict=True)
                except ValueError:
                    msg = _("is_admin must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                is_admin = False

            gateway = values.get("gateway")
            ext_router = values.get("ext_router_id")
            dns_nameservers = values.get("dns_nameservers")
            if dns_nameservers is not None and not isinstance(
                    dns_nameservers, list):
                msg = _("dns_nameservers must be a list")
                raise exception.InvalidInput(reason=msg)

            valid_values = {}
            valid_values["gid"] = gid
            valid_values["network_id"] = unicode(uuid.uuid4())
            if not name:
                name = "network-" + valid_values["network_id"]
            valid_values["display_name"] = name
            valid_values["cidr"] = cidr
            valid_values["is_admin"] = is_admin
            valid_values["gateway"] = gateway
            valid_values["ext_router"] = ext_router
            valid_values["dns_nameservers"] = dns_nameservers

            network_values = {}
            network_values["name"] = name
            network_values["cidr"] = cidr
            network_values["gateway"] = gateway
            network_values["ext_router"] = ext_router
            network_values["dns_nameservers"] = dns_nameservers

            return valid_values, network_values
Beispiel #6
0
        def _validate(body, gid, keypair_id):
            if not self.is_valid_body(body, "keypair"):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            self._uuid_check(gid, keypair_id)
            values = body["keypair"]
            is_default = values.get("is_default")

            if is_default:
                try:
                    is_default = strutils.bool_from_string(is_default, strict=True)
                except ValueError:
                    msg = _("is_default must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                msg = _("is_default is required")
                raise exception.InvalidInput(reason=msg)

            valid_values = {"is_default": is_default}
            return valid_values
Beispiel #7
0
        def _validate(body, gid, keypair_id):
            if not self.is_valid_body(body, 'keypair'):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            self._uuid_check(gid, keypair_id)
            values = body["keypair"]
            is_default = values.get("is_default")

            if is_default is not None:
                try:
                    is_default = strutils.bool_from_string(is_default,
                                                           strict=True)
                except ValueError:
                    msg = _("is_default must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                msg = _("is_default is required")
                raise exception.InvalidInput(reason=msg)

            valid_values = {"is_default": is_default}
            return valid_values
Beispiel #8
0
        def _validate(context, body, gid):
            # validation checks
            if not self.is_valid_body(body, "network"):
                msg = _("Invalid request body")
                raise exception.InvalidInput(reason=msg)

            values = body.get("network")

            # Required item
            subnet = values.get("cidr")
            if subnet is None:
                msg = _("Ntwork cidr is required")
                raise exception.InvalidInput(reason=msg)
            if not utils.is_valid_cidr(subnet):
                msg = _("cidr must be a CIDR")
                raise exception.InvalidInput(reason=msg)

            # Non-essential items
            network_id = unicode(uuid.uuid4())
            name = values.get("name")
            if name is None or not name:
                name = "net-" + network_id
            else:
                name = name.strip()
                utils.check_string_length(
                    name, 'name', min_length=1, max_length=255)

            is_admin = values.get("is_admin")
            if is_admin:
                try:
                    is_admin = strutils.bool_from_string(
                        is_admin, strict=True)
                except ValueError:
                    msg = _("is_admin must be a boolean")
                    raise exception.InvalidInput(reason=msg)
            else:
                is_admin = False

            gateway = values.get("gateway")
            if gateway is not None and not utils.is_valid_ip_address(gateway):
                msg = _("Invalid gateway")
                raise exception.InvalidInput(reason=msg)

            dns_nameservers = values.get("dns_nameservers")
            if dns_nameservers is not None:
                if isinstance(dns_nameservers, list):
                    for dns in dns_nameservers:
                        if dns == "" or not utils.is_valid_ip_address(dns):
                            msg = _("Invalid dns_nameservers")
                            raise exception.InvalidInput(reason=msg)
                else:
                    msg = _("dns_nameservers must be list format")
                    raise exception.InvalidInput(reason=msg)

            ext_router = values.get("ext_router_id")
            if ext_router is not None and not uuidutils.is_uuid_like(
                    ext_router):
                msg = _("ext_router must be a uuid")
                raise exception.InvalidInput(reason=msg)

            valid_values1 = {}
            valid_values1["network_id"] = network_id
            valid_values1["gid"] = gid
            valid_values1["neutron_network_id"] = None
            valid_values1["is_admin"] = is_admin
            valid_values1["subnet"] = subnet
            valid_values1["ext_router"] = ext_router
            valid_values1["user_id"] = context.user_id
            valid_values1["project_id"] = context.project_id
            valid_values1["display_name"] = name
            valid_values1["status"] = "BUILDING"
            valid_values1["deleted"] = 0

            valid_values2 = {}
            valid_values2["gateway"] = gateway
            valid_values2["dns_nameservers"] = dns_nameservers

            valid_values = {}
            valid_values["db"] = valid_values1
            valid_values["opst"] = valid_values2

            return valid_values