Exemplo n.º 1
0
    def _parse_params(self, str_params, default, err_msg):
        request_params = {}
        prog = re.compile('^(?:(.*),)?(%s)=(.*)$' % "|".join(default.keys()))

        while str_params != "":
            match = prog.search(str_params)

            if match is None:
                raise exception.IncorrectLease(err_msg)

            self.log.info("Matches: %s", match.groups())
            k, v = match.group(2, 3)
            if k in request_params.keys():
                raise exception.DuplicatedLeaseParameters(err_msg)
            else:
                if strutils.is_int_like(v):
                    request_params[k] = int(v)
                elif isinstance(default[k], list):
                    request_params[k] = jsonutils.loads(v)
                else:
                    request_params[k] = v

            str_params = match.group(1) if match.group(1) else ""

        request_params.update({
            k: v
            for k, v in default.items()
            if k not in request_params.keys() and v is not None
        })
        return request_params
Exemplo n.º 2
0
 def parse_params(params):
     match = prog.search(params)
     if match:
         self.log.info("Matches: %s", match.groups())
         k, v = match.group(2, 3)
         if not phys_res_info[k]:
             phys_res_info[k] = v
         else:
             raise exception.DuplicatedLeaseParameters(err_msg)
         if match.group(1) is not None:
             parse_params(match.group(1))
     else:
         raise exception.IncorrectLease(err_msg)