示例#1
0
    def ListFlows(self):
        """List flows that ran on this client."""

        args = flow_pb2.ApiListFlowsArgs(client_id=self.client_id)

        items = self._context.SendIteratorRequest("ListFlows", args)
        return utils.MapItemsIterator(
            lambda data: flow.Flow(data=data, context=self._context), items)
示例#2
0
    def CreateFlow(self, name=None, args=None, runner_args=None):
        """Create new flow on this client."""

        if not name:
            raise ValueError("name can't be empty")

        request = flow_pb2.ApiCreateFlowArgs(client_id=self.client_id)

        request.flow.name = name
        if runner_args:
            request.flow.runner_args.CopyFrom(runner_args)

        if args:
            request.flow.args.value = args.SerializeToString()
            request.flow.args.type_url = utils.GetTypeUrl(args)

        data = self._context.SendRequest("CreateFlow", request)
        return flow.Flow(data=data, context=self._context)
示例#3
0
""".format(
    int((datetime.datetime.utcnow() - datetime.timedelta(25)).timestamp() *
        1000000))

MOCK_CLIENT = client.Client(data=text_format.Parse(client_proto1,
                                                   client_pb2.ApiClient()),
                            context=True)
MOCK_CLIENT_RECENT = client.Client(data=text_format.Parse(
    client_proto2, client_pb2.ApiClient()),
                                   context=True)
MOCK_CLIENT_LIST = [MOCK_CLIENT, MOCK_CLIENT_RECENT]

MOCK_CLIENT_REF = client.ClientRef(MOCK_CLIENT.client_id, context=True)

flow_pb_terminated = flow_pb2.ApiFlow(urn="C.0000000000000001",
                                      flow_id="F:12345",
                                      state=flows_pb2.FlowContext.TERMINATED)
flow_pb_error = flow_pb2.ApiFlow(urn="C.0000000000000001",
                                 flow_id="F:12345",
                                 state=flows_pb2.FlowContext.ERROR)
flow_pb_running = flow_pb2.ApiFlow(urn="C.0000000000000001",
                                   flow_id="F:12345",
                                   state=flows_pb2.FlowContext.RUNNING)
MOCK_FLOW = flow.Flow(data=flow_pb_terminated, context=True)
MOCK_FLOW_ERROR = flow.Flow(data=flow_pb_error, context=True)
MOCK_FLOW_RUNNING = flow.Flow(data=flow_pb_running, context=True)

hunt_pb = hunt_pb2.ApiHunt(urn="hunts/12345", hunt_id="F:12345", state=1)

MOCK_HUNT = hunt.Hunt(data=hunt_pb)
示例#4
0
  first_seen_at: 1480416002507491
  last_seen_at: 1511174989892418
  last_booted_at: 1507912328000000
  last_clock: 1511174989272124
  age: 1510710503319681
  client_id: "C.0000000000000001"
"""

MOCK_CLIENT = client.Client(data=text_format.Parse(client_proto1,
                                                   client_pb2.ApiClient()),
                            context=True)
MOCK_CLIENT_RECENT = client.Client(data=text_format.Parse(
    client_proto2, client_pb2.ApiClient()),
                                   context=True)
MOCK_CLIENT_LIST = [MOCK_CLIENT, MOCK_CLIENT_RECENT]

MOCK_CLIENT_REF = client.ClientRef(MOCK_CLIENT.client_id, context=True)

flow_pb_terminated = flow_pb2.ApiFlow(urn="C.0000000000000001",
                                      flow_id="F:12345",
                                      state=flows_pb2.FlowContext.TERMINATED)
flow_pb_error = flow_pb2.ApiFlow(urn="C.0000000000000001",
                                 flow_id="F:12345",
                                 state=flows_pb2.FlowContext.ERROR)
MOCK_FLOW = flow.Flow(data=flow_pb_terminated, context=True)
MOCK_FLOW_ERROR = flow.Flow(data=flow_pb_error, context=True)

hunt_pb = hunt_pb2.ApiHunt(urn="hunts/12345", hunt_id="F:12345", state=1)

MOCK_HUNT = hunt.Hunt(data=hunt_pb)
示例#5
0
# This has a more recent install_date and last_seen date than client_proto1
client_proto2 = """
  urn: "aff4:/C.0000000000000001"
  os_info {
    system: "Linux"
    release: "debian"
    version: "buster/sid"
    machine: "x86_64"
    kernel: "4.9.0-3-amd64"
    fqdn: "tomchop"
    install_date: 1480414461020000
  }
  first_seen_at: 1480416002507491
  last_seen_at: 1511174989892418
  last_booted_at: 1507912328000000
  last_clock: 1511174989272124
  age: 1510710503319681
  client_id: "C.0000000000000001"
"""

MOCK_CLIENT = client.Client(data=text_format.Parse(client_proto1,
                                                   client_pb2.ApiClient()),
                            context=True)
MOCK_CLIENT_RECENT = client.Client(data=text_format.Parse(
    client_proto2, client_pb2.ApiClient()),
                                   context=True)
MOCK_CLIENT_LIST = [MOCK_CLIENT, MOCK_CLIENT_RECENT]

flow_pb = flow_pb2.ApiFlow(urn="C.0000000000000001", flow_id="F:12345")
MOCK_FLOW = flow.Flow(data=flow_pb, context=True)