Esempio n. 1
0
    def Run(self, args):
        release_track = self.ReleaseTrack()
        client = osconfig_api_utils.GetClientInstance(release_track)
        messages = osconfig_api_utils.GetClientMessages(release_track)

        guest_policy_name = ''
        if args.organization:
            guest_policy_name = osconfig_command_utils.GetGuestPolicyUriPath(
                'organizations', args.organization, args.POLICY_ID)
            request = messages.OsconfigOrganizationsGuestPoliciesDeleteRequest(
                name=guest_policy_name)
            service = client.organizations_guestPolicies
        elif args.folder:
            guest_policy_name = osconfig_command_utils.GetGuestPolicyUriPath(
                'folders', args.folder, args.POLICY_ID)
            request = messages.OsconfigFoldersGuestPoliciesDeleteRequest(
                name=guest_policy_name)
            service = client.folders_guestPolicies
        else:
            project = properties.VALUES.core.project.GetOrFail()
            guest_policy_name = osconfig_command_utils.GetGuestPolicyUriPath(
                'projects', project, args.POLICY_ID)
            request = messages.OsconfigProjectsGuestPoliciesDeleteRequest(
                name=guest_policy_name)
            service = client.projects_guestPolicies

        response = service.Delete(request)
        log.DeletedResource(guest_policy_name)
        return response
Esempio n. 2
0
    def Run(self, args):
        release_track = self.ReleaseTrack()
        client = osconfig_api_utils.GetClientInstance(release_track)
        messages = osconfig_api_utils.GetClientMessages(release_track)

        update_fields = []
        if args.file:
            (guest_policy,
             _) = osconfig_command_utils.GetResourceAndUpdateFieldsFromFile(
                 args.file, messages.GuestPolicy)
        else:
            guest_policy = messages.GuestPolicy()

        if args.description:
            guest_policy.description = args.description
            if not args.file:
                update_fields.append('description')
        if args.etag:
            guest_policy.etag = args.etag
            if not args.file:
                update_fields.append('etag')
        update_mask = (','.join(sorted(list(update_fields)))
                       if update_fields else None)

        if args.organization:
            request = messages.OsconfigOrganizationsGuestPoliciesPatchRequest(
                guestPolicy=guest_policy,
                name=osconfig_command_utils.GetGuestPolicyUriPath(
                    'organizations', args.organization, args.POLICY_ID),
                updateMask=update_mask,
            )
            service = client.organizations_guestPolicies
        elif args.folder:
            request = messages.OsconfigFoldersGuestPoliciesPatchRequest(
                guestPolicy=guest_policy,
                name=osconfig_command_utils.GetGuestPolicyUriPath(
                    'folders', args.folder, args.POLICY_ID),
                updateMask=update_mask,
            )
            service = client.folders_guestPolicies
        else:
            project = properties.VALUES.core.project.GetOrFail()
            request = messages.OsconfigProjectsGuestPoliciesPatchRequest(
                guestPolicy=guest_policy,
                name=osconfig_command_utils.GetGuestPolicyUriPath(
                    'projects', project, args.POLICY_ID),
                updateMask=update_mask,
            )
            service = client.projects_guestPolicies

        return service.Patch(request)
Esempio n. 3
0
  def Run(self, args):
    """See base class."""
    release_track = self.ReleaseTrack()

    project = properties.VALUES.core.project.GetOrFail()
    guest_policy_uri_path = osconfig_command_utils.GetGuestPolicyUriPath(
        'projects', project, args.POLICY_ID)
    client = osconfig_api_utils.GetClientInstance(
        release_track, api_version_override='v1beta')
    service = client.projects_guestPolicies
    messages = osconfig_api_utils.GetClientMessages(
        release_track, api_version_override='v1beta')

    get_request = messages.OsconfigProjectsGuestPoliciesGetRequest(
        name=guest_policy_uri_path)
    try:
      get_response = service.Get(get_request)
    except apitools_exceptions.HttpNotFoundError:
      raise ops_agents_exceptions.PolicyNotFoundError(
          policy_id=args.POLICY_ID)
    if not guest_policy_validator.IsOpsAgentPolicy(get_response):
      raise ops_agents_exceptions.PolicyNotFoundError(
          policy_id=args.POLICY_ID)
    try:
      ops_agents_policy = to_ops_agents.ConvertGuestPolicyToOpsAgentPolicy(
          get_response)
    except calliope_exceptions.BadArgumentException:
      raise ops_agents_exceptions.PolicyMalformedError(
          policy_id=args.POLICY_ID)
    return ops_agents_policy
Esempio n. 4
0
  def Run(self, args):
    """See base class."""
    release_track = self.ReleaseTrack()
    client = osconfig_api_utils.GetClientInstance(
        release_track, api_version_override='v1beta')
    messages = osconfig_api_utils.GetClientMessages(
        release_track, api_version_override='v1beta')
    project = properties.VALUES.core.project.GetOrFail()
    guest_policy_uri_path = osconfig_command_utils.GetGuestPolicyUriPath(
        'projects', project, args.POLICY_ID)
    service = client.projects_guestPolicies

    get_request = messages.OsconfigProjectsGuestPoliciesGetRequest(
        name=guest_policy_uri_path)
    try:
      get_response = service.Get(get_request)
    except apitools_exceptions.HttpNotFoundError:
      raise ops_agents_exceptions.PolicyNotFoundError(
          policy_id=args.POLICY_ID)
    if not guest_policy_validator.IsOpsAgentPolicy(get_response):
      raise ops_agents_exceptions.PolicyNotFoundError(
          policy_id=args.POLICY_ID)

    delete_request = messages.OsconfigProjectsGuestPoliciesDeleteRequest(
        name=guest_policy_uri_path)
    delete_response = service.Delete(delete_request)

    log.DeletedResource(args.POLICY_ID)
    return delete_response
Esempio n. 5
0
    def Run(self, args):
        """See base class."""
        release_track = self.ReleaseTrack()
        client = osconfig_api_utils.GetClientInstance(release_track)
        messages = osconfig_api_utils.GetClientMessages(release_track)

        project = properties.VALUES.core.project.GetOrFail()
        request = messages.OsconfigProjectsGuestPoliciesGetRequest(
            name=osconfig_command_utils.GetGuestPolicyUriPath(
                'projects', project, args.POLICY_ID))
        service = client.projects_guestPolicies

        return service.Get(request)
Esempio n. 6
0
  def Run(self, args):
    """See base class."""
    release_track = self.ReleaseTrack()
    client = osconfig_api_utils.GetClientInstance(release_track)
    messages = osconfig_api_utils.GetClientMessages(release_track)

    (guest_policy,
     _) = osconfig_command_utils.GetResourceAndUpdateFieldsFromFile(
         args.file, messages.GuestPolicy)

    if args.organization:
      request = messages.OsconfigOrganizationsGuestPoliciesPatchRequest(
          guestPolicy=guest_policy,
          name=osconfig_command_utils.GetGuestPolicyUriPath(
              'organizations', args.organization, args.POLICY_ID),
          updateMask=None,
      )
      service = client.organizations_guestPolicies
    elif args.folder:
      request = messages.OsconfigFoldersGuestPoliciesPatchRequest(
          guestPolicy=guest_policy,
          name=osconfig_command_utils.GetGuestPolicyUriPath(
              'folders', args.folder, args.POLICY_ID),
          updateMask=None,
      )
      service = client.folders_guestPolicies
    else:
      project = properties.VALUES.core.project.GetOrFail()
      request = messages.OsconfigProjectsGuestPoliciesPatchRequest(
          guestPolicy=guest_policy,
          name=osconfig_command_utils.GetGuestPolicyUriPath(
              'projects', project, args.POLICY_ID),
          updateMask=None,
      )
      service = client.projects_guestPolicies

    return service.Patch(request)
Esempio n. 7
0
    def Run(self, args):
        """See base class."""
        release_track = self.ReleaseTrack()
        client = osconfig_api_utils.GetClientInstance(
            release_track, api_version_override='v1beta')
        messages = osconfig_api_utils.GetClientMessages(
            release_track, api_version_override='v1beta')

        project = properties.VALUES.core.project.GetOrFail()
        request = messages.OsconfigProjectsGuestPoliciesGetRequest(
            name=osconfig_command_utils.GetGuestPolicyUriPath(
                'projects', project, args.POLICY_ID))
        service = client.projects_guestPolicies
        current_guest_policy = service.Get(request)
        current_ops_agents_policy = guest_policy_to_ops_agents_policy_converter.ConvertGuestPolicyToOpsAgentPolicy(
            current_guest_policy)
        updated_ops_agents_policy = ops_agents_policy.UpdateOpsAgentsPolicy(
            current_ops_agents_policy, args.description, args.etag,
            args.agent_rules, args.os_types,
            [] if args.clear_group_labels else args.group_labels,
            [] if args.clear_zones else args.zones,
            [] if args.clear_instances else args.instances)
        ops_agents_policy_validator.ValidateOpsAgentsPolicy(
            updated_ops_agents_policy)
        updated_os_config_policy = ops_agents_policy_to_guest_policy_converter.ConvertOpsAgentPolicyToGuestPolicy(
            messages, updated_ops_agents_policy, current_guest_policy.recipes)
        request = messages.OsconfigProjectsGuestPoliciesPatchRequest(
            guestPolicy=updated_os_config_policy,
            name=osconfig_command_utils.GetGuestPolicyUriPath(
                'projects', project, args.POLICY_ID),
            updateMask=None,
        )
        complete_os_config_policy = service.Patch(request)
        complete_ops_agent_policy = guest_policy_to_ops_agents_policy_converter.ConvertGuestPolicyToOpsAgentPolicy(
            complete_os_config_policy)
        return complete_ops_agent_policy