Ejemplo n.º 1
0
    def Handle(self, args, token=None):
        if not args.timestamp:
            age = rdfvalue.RDFDatetime.Now()
        else:
            age = rdfvalue.RDFDatetime(args.timestamp)
        api_client = None
        if data_store.RelationalDBReadEnabled():
            info = data_store.REL_DB.ReadClientFullInfo(str(args.client_id))
            if info is None:
                raise api_call_handler_base.ResourceNotFoundError()

            if args.timestamp:
                # Assume that a snapshot for this particular timestamp exists.
                snapshots = data_store.REL_DB.ReadClientSnapshotHistory(
                    str(args.client_id),
                    timerange=(args.timestamp, args.timestamp))

                if snapshots:
                    info.last_snapshot = snapshots[0]
                    info.last_startup_info = snapshots[0].startup_info

            api_client = ApiClient().InitFromClientInfo(info)
        else:
            client = aff4.FACTORY.Open(args.client_id.ToClientURN(),
                                       aff4_type=aff4_grr.VFSGRRClient,
                                       age=age,
                                       token=token)
            api_client = ApiClient().InitFromAff4Object(client)
        UpdateClientsFromFleetspeak([api_client])
        return api_client
Ejemplo n.º 2
0
 def _GetHuntObj(self, hunt_id, token=None):
   hunt_urn = hunt_id.ToURN()
   try:
     return aff4.FACTORY.Open(
         hunt_urn, aff4_type=implementation.GRRHunt, token=token)
   except aff4.InstantiationError:
     raise api_call_handler_base.ResourceNotFoundError(
         "Hunt with id %s could not be found" % hunt_id)
Ejemplo n.º 3
0
    def Handle(self, args, token=None):
        if not args.username:
            raise ValueError("username can't be empty.")

        user_urn = aff4.ROOT_URN.Add("users").Add(args.username)
        try:
            fd = aff4.FACTORY.Open(user_urn,
                                   aff4_type=users.GRRUser,
                                   mode="r",
                                   token=token)
            return api_user.ApiGrrUser().InitFromAff4Object(fd)
        except aff4.InstantiationError:
            raise api_call_handler_base.ResourceNotFoundError(
                "GRR user with username '%s' could not be found." %
                args.username)
Ejemplo n.º 4
0
    def Handle(self, args, token=None):
        if not args.username:
            raise ValueError("username can't be empty.")

        user_urn = aff4.ROOT_URN.Add("users").Add(args.username)

        events.Events.PublishEvent("Audit",
                                   events.AuditEvent(user=token.username,
                                                     action="USER_DELETE",
                                                     urn=user_urn),
                                   token=token)

        if not aff4.FACTORY.ExistsWithType(
                user_urn, aff4_type=users.GRRUser, token=token):
            raise api_call_handler_base.ResourceNotFoundError(
                "GRR user with username '%s' could not be found." %
                args.username)

        aff4.FACTORY.Delete(user_urn, token=token)
Ejemplo n.º 5
0
 def FailureNotFound(self, args, token=None):
     raise api_call_handler_base.ResourceNotFoundError()