Example #1
0
def SecurityMarksHook(parsed_dict):
  """Hook to capture "key1=val1,key2=val2" as SecurityMarks object."""
  messages = sc_client.GetMessages()
  security_marks = messages.SecurityMarks()
  security_marks.marks = encoding.DictToMessage(
      parsed_dict, messages.SecurityMarks.MarksValue)
  return security_marks
def GroupAssetsReqHook(ref, args, req):
    """Hook up filter such that the CSCC filter is used rather than gcloud."""
    del ref
    req.parent = GetParent(args)
    if not req.groupAssetsRequest:
        messages = sc_client.GetMessages()
        req.groupAssetsRequest = messages.GroupAssetsRequest()
    req.groupAssetsRequest.filter = args.filter
    args.filter = ""
    return req
Example #3
0
def CreateFindingsReqHook(ref, args, req):
  """Generate a finding's name and parent using org, source and finding."""
  del ref
  _ValidateMutexOnFindingAndSourceAndOrganization(args)
  finding_name = _GetFindingName(args)
  req.parent = GetSourceFromResourceName(finding_name)
  req.findingId = _GetFindingIdFromName(finding_name)
  messages = sc_client.GetMessages()
  if not req.finding:
    req.finding = messages.Finding()
  req.finding.name = finding_name
  return req
Example #4
0
def CreateNotificationReqHook(ref, args, req):
  """Generate a notification config using organization and config id."""
  del ref
  _ValidateMutexOnConfigIdAndOrganization(args)
  config = _GetNotificationConfigName(args)
  req.parent = GetOrganizationFromResourceName(config)
  req.configId = _GetNotificationConfigId(config)
  messages = sc_client.GetMessages("v1p1beta1")
  if (args.filter is None):
    streamingConfig = messages.StreamingConfig()
    streamingConfig.filter = "";
    req.notificationConfig.streamingConfig = streamingConfig;
  return req
Example #5
0
def GroupFindingsReqHook(ref, args, req):
    """Generate a finding's name and parent using org, source and finding id."""
    del ref
    _ValidateMutexOnSourceAndOrganization(args)
    if not req.groupFindingsRequest:
        messages = sc_client.GetMessages()
        req.groupFindingsRequest = messages.GroupFindingsRequest()
    req.groupFindingsRequest.filter = args.filter
    args.filter = ""
    resource_pattern = re.compile("organizations/[0-9]+/sources/[0-9-]+")
    if resource_pattern.match(args.organization):
        args.source = args.organization
    req.parent = _GetSourceName(args)
    return req
Example #6
0
def UpdateFindingsReqHook(ref, args, req):
  """Generate a finding's name using org, source and finding id."""
  del ref
  _ValidateMutexOnFindingAndSourceAndOrganization(args)
  req.name = _GetFindingName(args)
  req.updateMask = CleanUpUserInput(req.updateMask)
  # All requests require an event time
  if args.event_time is None:
    # Formatting: 2019-03-22 21:24:36.208463 -> 2019-03-22T21:33:15.830Z"
    event_time = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
    if req.finding is None:
      req.finding = sc_client.GetMessages().Finding()
    req.finding.eventTime = event_time
    req.updateMask = req.updateMask + ",event_time"
  return req
def GroupFindingsReqHook(ref, args, req):
    """Generate a finding's name and parent using org, source and finding id."""
    del ref  # Unused.
    _ValidateMutexOnSourceAndParent(args)
    if not req.groupFindingsRequest:
        messages = sc_client.GetMessages()
        req.groupFindingsRequest = messages.GroupFindingsRequest()
    req.groupFindingsRequest.filter = args.filter
    args.filter = ""
    resource_pattern = re.compile(
        "(organizations|projects|folders)/[a-z0-9]+/sources/[0-9]+")
    parent = GetParent(args)
    if resource_pattern.match(parent):
        args.source = parent
    req.parent = _GetSourceNameForParent(args)
    return req
Example #8
0
def SourcePropertiesHook(source_properties_dict):
  """Hook to capture "key1=val1,key2=val2" as SourceProperties object."""
  messages = sc_client.GetMessages()
  return encoding.DictToMessage(source_properties_dict,
                                messages.Finding.SourcePropertiesValue)