def _validate(gid, pid): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if not uuidutils.is_uuid_like(pid): raise exception.ProcessNotFound(pid=pid)
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
def _uuid_check(self, gid=None, keypair_id=None): if gid: if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if keypair_id: if not uuidutils.is_uuid_like(keypair_id): raise exception.KeypairNotFound(keypair_id=keypair_id)
def _validate(gid, securitygroup_id): 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)
def _uuid_check(self, gid=None, network_id=None): if gid: if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if network_id: if not uuidutils.is_uuid_like(network_id): raise exception.NetworkNotFound(network_id=network_id)
def _validate(body, gid): if not self.is_valid_body(body, 'group'): msg = _("Invalid request body") raise exception.InvalidInput(reason=msg) values = body["group"] name = values.get("name") description = values.get("description") if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if name is None and description is None: msg = _("Group name or description is required") raise exception.InvalidInput(reason=msg) if name is not None: if isinstance(name, six.string_types): name = name.strip() utils.check_string_length(name, 'name', min_length=1, max_length=255) if description is not None: utils.check_string_length(description, 'description', min_length=0, max_length=255) valid_values = {} if name: valid_values["display_name"] = name # allow blank string to clear description if description is not None: valid_values["display_description"] = description valid_values["gid"] = gid return valid_values
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
def _validate(body, gid): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if not self.is_valid_body(body, 'proxy'): msg = _("Invalid request body") raise exception.InvalidInput(reason=msg) proxy = db.process_get_all( context, gid, {"is_proxy": True, "status": "ACTIVE"}) if len(proxy) == 0: msg = _("Proxy instance not exists in this group") raise exception.ProxyNotFound(msg) values = body["proxy"] app_status = values.get("app_status") if not app_status: msg = _("app_status is required") raise exception.InvalidInput(reason=msg) valid_values = {} if values.get("shm_endpoint"): valid_values["shm_endpoint"] = values.get("shm_endpoint") if values.get("ipc_endpoint"): valid_values["ipc_endpoint"] = values.get("ipc_endpoint") if values.get("fs_endpoint"): valid_values["fs_endpoint"] = values.get("fs_endpoint") valid_values["app_status"] = app_status valid_values["pid"] = proxy[0]["pid"] valid_values return valid_values
def _uuid_check(self, gid=None, pid=None, keypair_id=None, securitygroup_id=None): if gid: if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if pid: if not uuidutils.is_uuid_like(pid): raise exception.ProcessNotFound(pid=pid) if keypair_id: if not uuidutils.is_uuid_like(keypair_id): raise exception.KeypairNotFound(keypair_id=keypair_id) if securitygroup_id: if not uuidutils.is_uuid_like(securitygroup_id): raise exception.SecuritygroupNotFound( securitygroup_id=securitygroup_id)
def _validate(body, gid, pid): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if not uuidutils.is_uuid_like(pid): raise exception.ProcessNotFound(pid=pid) if not self.is_valid_body(body, 'process'): msg = _("Invalid request body") raise exception.InvalidInput(reason=msg) db.process_get_by_pid(context, gid, pid) values = body["process"] app_status = values.get("app_status") if not app_status: msg = _("app_status is required") raise exception.InvalidInput(reason=msg) valid_values = {} valid_values["app_status"] = app_status return valid_values
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
def _validate_securitygrouprules(securitygrouprules): valid_securitygrouprules = [] for securitygroup in securitygrouprules: protocol = securitygroup.get("protocol") port_range_max = securitygroup.get("port_range_max") port_range_min = securitygroup.get("port_range_min") remote_securitygroup_id = securitygroup.get( "remote_securitygroup_id") remote_ip_prefix = securitygroup.get("remote_ip_prefix") if not protocol: msg = _("SecurityGroupRule protocol is required") raise exception.InvalidInput(reason=msg) elif not utils.is_valid_protocol(protocol): msg = _( "SecurityGroupRule protocol should be tcp or udp or " "icmp") raise exception.InvalidInput(reason=msg) if not remote_securitygroup_id and not remote_ip_prefix: msg = _( "SecurityGroupRule either remote_securitygroup_id or " "remote_ip_prefix is required") raise exception.InvalidInput(reason=msg) elif remote_securitygroup_id and remote_ip_prefix: msg = _( "SecurityGroupRule either remote_securitygroup_id or " "remote_ip_prefix is required") raise exception.InvalidInput(reason=msg) elif remote_securitygroup_id is not None: if not uuidutils.is_uuid_like(remote_securitygroup_id): raise exception.SecuritygroupNotFound( securitygroup_id=remote_securitygroup_id) elif remote_ip_prefix is not None: if not utils.is_valid_cidr(remote_ip_prefix): msg = _( "SecurityGroupRule remote_ip_prefix should be " "cidr format") raise exception.InvalidInput(reason=msg) if protocol in ["tcp", "udp"]: if port_range_max is None: msg = _("SecurityGroupRule port_range_max is " "required") raise exception.InvalidInput(reason=msg) utils.validate_integer( port_range_max, 'port_range_max', min_value=1, max_value=65535) if port_range_min: utils.validate_integer( port_range_min, 'port_range_min', min_value=1, max_value=65535) if port_range_min > port_range_max: msg = _( "SecurityGroupRule port_range_min should be " "lower than port_range_max") raise exception.InvalidInput(reason=msg) elif protocol == "icmp": port_range_max = None port_range_min = None valid_securitygrouprules.append({ "protocol": protocol, "port_range_max": port_range_max, "port_range_min": port_range_min, "remote_securitygroup_id": remote_securitygroup_id, "remote_ip_prefix": unicode(netaddr .IPNetwork(remote_ip_prefix)) if remote_ip_prefix else remote_ip_prefix }) return valid_securitygrouprules
def _check_gid(self, gid, is_create=False, context=None): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if is_create: db.group_get_by_gid(context, gid)
def _validate(gid, network_id): self._check_gid(gid) if not uuidutils.is_uuid_like(network_id): raise exception.NetworkNotFound(network_id=network_id)
def _validate_process(context, gid, body): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid) if not self.is_valid_body(body, 'process'): msg = _("Invalid request body") raise exception.InvalidInput(reason=msg) values = body["process"] ppid = values.get("ppid") keypair_id = values.get("keypair_id") name = values.get("name") glance_image_id = values.get("glance_image_id") nova_flavor_id = values.get("nova_flavor_id") securitygroup_ids = values.get("securitygroup_ids") userdata = values.get("userdata") if ppid is not None: if not uuidutils.is_uuid_like(ppid): raise exception.ProcessNotFound(pid=ppid) p_process = db.process_get_by_pid(context, gid, ppid) if keypair_id is not None: if not uuidutils.is_uuid_like(keypair_id): raise exception.KeypairNotFound(keypair_id=keypair_id) elif ppid is not None: keypair_id = p_process.get("keypair_id") if isinstance(name, six.string_types): name = name.strip() utils.check_string_length(name, 'name', min_length=1, max_length=255) elif name is not None: msg = _("name must be a String") raise exception.InvalidInput(reason=msg) if glance_image_id is None: if ppid is not None: glance_image_id = p_process.get("glance_image_id") elif not uuidutils.is_uuid_like(glance_image_id): msg = _("glance_image_id is invalid format") raise exception.InvalidInput(reason=msg) if nova_flavor_id is None and ppid is not None: nova_flavor_id = p_process.get("nova_flavor_id") utils.validate_integer(nova_flavor_id, 'nova_flavor_id') if not securitygroup_ids: if ppid is not None: securitygroup_ids = [securitygroup.get("securitygroup_id") for securitygroup in p_process.get( "securitygroups")] else: msg = _("securitygroup_ids is required") raise exception.InvalidInput(reason=msg) if isinstance(securitygroup_ids, list): for securitygroup_id in securitygroup_ids: if securitygroup_id is not None and not uuidutils\ .is_uuid_like(securitygroup_id): raise exception.SecuritygroupNotFound( securitygroup_id=securitygroup_id) else: msg = _("securitygroup_ids must be list") raise exception.InvalidInput(reason=msg) if userdata: try: userdata = base64.b64decode(userdata) except TypeError as e: raise webob.exc.HTTPBadRequest( explanation=e.format_message()) valid_values = {} valid_values_process = {} valid_values_process["gid"] = gid valid_values_process["keypair_id"] = keypair_id valid_values_process["ppid"] = ppid valid_values_process["display_name"] = name valid_values_process["glance_image_id"] = glance_image_id valid_values_process["nova_flavor_id"] = nova_flavor_id valid_values_process["is_proxy"] = False valid_values_process["app_status"] = "BUILDING" valid_values_userdata = {} valid_values_userdata["userdata"] = userdata valid_values_securitygroup = {} valid_values_securitygroup["securitygroup_ids"] = securitygroup_ids valid_values["process"] = valid_values_process valid_values["userdata"] = valid_values_userdata valid_values["securitygroup"] = valid_values_securitygroup return valid_values
def _validate(gid): if not uuidutils.is_uuid_like(gid): raise exception.GroupNotFound(gid=gid)