Exemplo n.º 1
0
    def _GeneratePages(
        self,
        handler_name: str,
        args: Any,
    ) -> Iterator[message.Message]:
        """Generates iterator pages."""
        offset = args.offset

        while True:
            args_copy = utils.CopyProto(args)
            args_copy.offset = offset
            args_copy.count = self.connector.page_size
            result = self.connector.SendRequest(handler_name, args_copy)

            if result is None:
                detail = f"No response returned for '{handler_name}'"
                raise TypeError(detail)
            if not hasattr(result, "items"):
                detail = f"Incorrect result type for '{handler_name}': {type(result)}"
                raise TypeError(detail)

            yield result

            if not result.items:
                break

            offset += self.connector.page_size
Exemplo n.º 2
0
    def _ArgsToBody(self, args, exclude_names):
        if not args:
            return None

        args_copy = utils.CopyProto(args)

        for name in exclude_names:
            args_copy.ClearField(name)

        return json_format.MessageToJson(args_copy)
Exemplo n.º 3
0
    def _ArgsToBody(
        self,
        args: Optional[message.Message],
        exclude_names: Iterable[str],
    ) -> Optional[str]:
        if args is None:
            return None

        args_copy = utils.CopyProto(args)

        for name in exclude_names:
            args_copy.ClearField(name)

        return json_format.MessageToJson(args_copy)
Exemplo n.º 4
0
    def _GeneratePages(self, handler_name, args):
        offset = args.offset

        while True:
            args_copy = utils.CopyProto(args)
            args_copy.offset = offset
            args_copy.count = self.connector.page_size
            result = self.connector.SendRequest(handler_name, args_copy)

            yield result

            if not result.items:
                break

            offset += self.connector.page_size
Exemplo n.º 5
0
  def CreateFlowArgs(self, flow_name=None):
    """Creates flow arguments object for a flow with a given name."""
    if not self._flow_descriptors:
      self._flow_descriptors = {}

      result = self._context.SendRequest("ListFlowDescriptors", None)
      for item in result.items:
        self._flow_descriptors[item.name] = item

    try:
      flow_descriptor = self._flow_descriptors[flow_name]
    except KeyError:
      raise UnknownFlowName(flow_name)

    return utils.CopyProto(utils.UnpackAny(flow_descriptor.default_args))
Exemplo n.º 6
0
    def CreateFlowArgs(
        self,
        flow_name: str,
    ) -> Any:
        """Creates flow arguments object for a flow with a given name."""
        if not self._flow_descriptors:
            self._flow_descriptors = {}

            result = self._context.SendRequest("ListFlowDescriptors", None)
            if not isinstance(result, flow_pb2.ApiListFlowDescriptorsResult):
                raise TypeError(f"Unexpected response type: {type(result)}")

            for item in result.items:
                self._flow_descriptors[item.name] = item

        try:
            flow_descriptor = self._flow_descriptors[flow_name]
        except KeyError:
            raise UnknownFlowName(flow_name)

        return utils.CopyProto(utils.UnpackAny(flow_descriptor.default_args))