def Run(self, args): release_track = self.ReleaseTrack() client = osconfig_utils.GetClientInstance(release_track) messages = osconfig_utils.GetClientMessages(release_track) if args.organization: request = messages.OsconfigOrganizationsGuestPoliciesListRequest( pageSize=args.page_size, parent=osconfig_utils.GetOrganizationUriPath( args.organization)) service = client.organizations_guestPolicies elif args.folder: request = messages.OsconfigFoldersGuestPoliciesListRequest( pageSize=args.page_size, parent=osconfig_utils.GetFolderUriPath(args.folder)) service = client.folders_guestPolicies else: project = properties.VALUES.core.project.GetOrFail() request = messages.OsconfigProjectsGuestPoliciesListRequest( pageSize=args.page_size, parent=osconfig_utils.GetProjectUriPath(project)) service = client.projects_guestPolicies return list_pager.YieldFromList(service, request, limit=args.limit, batch_size=args.page_size, field='guestPolicies', batch_size_attribute='pageSize')
def Run(self, args): release_track = self.ReleaseTrack() client = osconfig_utils.GetClientInstance(release_track) messages = osconfig_utils.GetClientMessages(release_track) (guest_policy, _) = osconfig_utils.GetResourceAndUpdateFieldsFromFile( args.file, messages.GuestPolicy) if args.organization: parent_path = osconfig_utils.GetOrganizationUriPath( args.organization) request = messages.OsconfigOrganizationsGuestPoliciesCreateRequest( guestPolicy=guest_policy, guestPolicyId=args.POLICY_ID, parent=parent_path) service = client.organizations_guestPolicies elif args.folder: parent_path = osconfig_utils.GetFolderUriPath(args.folder) request = messages.OsconfigFoldersGuestPoliciesCreateRequest( guestPolicy=guest_policy, guestPolicyId=args.POLICY_ID, parent=parent_path) service = client.folders_guestPolicies else: project = properties.VALUES.core.project.GetOrFail() parent_path = osconfig_utils.GetProjectUriPath(project) request = messages.OsconfigProjectsGuestPoliciesCreateRequest( guestPolicy=guest_policy, guestPolicyId=args.POLICY_ID, parent=parent_path) service = client.projects_guestPolicies return service.Create(request)
def Run(self, args): project = properties.VALUES.core.project.GetOrFail() release_track = self.ReleaseTrack() client = osconfig_utils.GetClientInstance(release_track) messages = osconfig_utils.GetClientMessages(release_track) request = messages.OsconfigProjectsPatchJobsListRequest( pageSize=args.page_size, parent=osconfig_utils.GetProjectUriPath(project)) return list_pager.YieldFromList(client.projects_patchJobs, request, limit=args.limit, batch_size=args.page_size, field='patchJobs', batch_size_attribute='pageSize')
def Run(self, args): project = properties.VALUES.core.project.GetOrFail() release_track = self.ReleaseTrack() # TODO(b/133780270): Migrate to v1alpha2. api_version = 'v1alpha1' client = osconfig_utils.GetClientInstance( release_track, api_version_override=api_version) messages = osconfig_utils.GetClientMessages( release_track, api_version_override=api_version) request = messages.OsconfigProjectsPatchJobsListRequest( pageSize=args.page_size, parent=osconfig_utils.GetProjectUriPath(project)) return list_pager.YieldFromList(client.projects_patchJobs, request, limit=args.limit, batch_size=args.page_size, field='patchJobs', batch_size_attribute='pageSize')
def Run(self, args): project = properties.VALUES.core.project.GetOrFail() release_track = self.ReleaseTrack() client = osconfig_utils.GetClientInstance(release_track) messages = osconfig_utils.GetClientMessages(release_track) duration = str(args.duration) + 's' if args.duration else None filter_arg = 'id=*' if not args.instance_filter else args.instance_filter apt_settings = messages.AptSettings( type=messages.AptSettings.TypeValueValuesEnum.DIST ) if args.apt_dist else None reboot_config = getattr( messages.PatchConfig.RebootConfigValueValuesEnum, args.reboot_config.upper()) if args.reboot_config else None retry_strategy = messages.RetryStrategy( enabled=True) if args.retry else None patch_config = messages.PatchConfig( apt=apt_settings, rebootConfig=reboot_config, retryStrategy=retry_strategy, windowsUpdate=_GetWindowsUpdateSettings(args, messages), yum=_GetYumSettings(args, messages)) request = messages.OsconfigProjectsPatchJobsExecuteRequest( executePatchJobRequest=messages.ExecutePatchJobRequest( description=args.description, dryRun=args.dry_run, duration=duration, filter=filter_arg, patchConfig=patch_config), parent=osconfig_utils.GetProjectUriPath(project)) async_response = client.projects_patchJobs.Execute(request) patch_job_name = osconfig_utils.GetPatchJobName(async_response.name) if args. async: log.status.Print('Execution in progress for patch job [{}]'.format( patch_job_name)) log.status.Print( 'Run the [{} describe] command to check the status of this execution.' .format(self._command_prefix)) return async_response # Execute the patch job synchronously. patch_job_poller = osconfig_utils.Poller(client, messages) get_request = messages.OsconfigProjectsPatchJobsGetRequest( name=async_response.name) sync_response = waiter.WaitFor( patch_job_poller, get_request, custom_tracker=_GetProgressTracker(patch_job_name), tracker_update_func=_UpdateProgressTracker, pre_start_sleep_ms=5000, exponential_sleep_multiplier=1, # Constant poll rate of 5s. sleep_ms=5000) log.status.Print( 'Execution for patch job [{}] has completed with status [{}].'. format(patch_job_name, sync_response.state)) log.status.Print( 'Run the [{} list-instance-details] command to view any ' 'instance failure reasons.'.format(self._command_prefix)) return sync_response