def test_patch_deployment(self):
        project_id = os.environ["PROJECT_ID"]
        client = OsConfigServiceClient()

        patch_deployment = patch_deployments.PatchDeployment(
            instance_filter=patch_jobs.PatchInstanceFilter(all=True),
            one_time_schedule=patch_deployments.OneTimeSchedule(
                execute_time=timestamp.Timestamp(seconds=200000000000)
            ),
        )
        patch_deployment_id = "python-client-library-test-" + str(uuid.uuid1())
        patch_deployment_name = (
            f"projects/{project_id}/patchDeployments/{patch_deployment_id}"
        )

        # CreatePatchDeploymentRequest
        request = patch_deployments.CreatePatchDeploymentRequest(
            parent=f"projects/{project_id}",
            patch_deployment_id=patch_deployment_id,
            patch_deployment=patch_deployment,
        )
        patch_deployment = client.create_patch_deployment(request)
        assert patch_deployment_id in patch_deployment.name

        # GetPatchDeployment
        request = patch_deployments.GetPatchDeploymentRequest(
            name=patch_deployment_name
        )
        patch_deployment = client.get_patch_deployment(request)
        assert patch_deployment_id in patch_deployment.name

        # ListPatchDeployments
        request = patch_deployments.ListPatchDeploymentsRequest(
            parent=f"projects/{project_id}"
        )
        response = client.list_patch_deployments(request)
        assert response.patch_deployments

        # DeletePatchDeployment
        request = patch_deployments.DeletePatchDeploymentRequest(
            name=patch_deployment_name
        )
        client.delete_patch_deployment(request)
Beispiel #2
0
    def get_patch_deployment(
        self,
        request: patch_deployments.GetPatchDeploymentRequest = None,
        *,
        name: str = None,
        retry: retries.Retry = gapic_v1.method.DEFAULT,
        timeout: float = None,
        metadata: Sequence[Tuple[str, str]] = (),
    ) -> patch_deployments.PatchDeployment:
        r"""Get an OS Config patch deployment.

        Args:
            request (:class:`~.patch_deployments.GetPatchDeploymentRequest`):
                The request object. A request message for retrieving a
                patch deployment.
            name (:class:`str`):
                Required. The resource name of the patch deployment in
                the form ``projects/*/patchDeployments/*``.
                This corresponds to the ``name`` field
                on the ``request`` instance; if ``request`` is provided, this
                should not be set.

            retry (google.api_core.retry.Retry): Designation of what errors, if any,
                should be retried.
            timeout (float): The timeout for this request.
            metadata (Sequence[Tuple[str, str]]): Strings which should be
                sent along with the request as metadata.

        Returns:
            ~.patch_deployments.PatchDeployment:
                Patch deployments are configurations that individual
                patch jobs use to complete a patch. These configurations
                include instance filter, package repository settings,
                and a schedule. For more information about creating and
                managing patch deployments, see `Scheduling patch
                jobs <https://cloud.google.com/compute/docs/os-patch-management/schedule-patch-jobs>`__.

        """
        # Create or coerce a protobuf request object.
        # Sanity check: If we got a request object, we should *not* have
        # gotten any keyword arguments that map to the request.
        if request is not None and any([name]):
            raise ValueError("If the `request` argument is set, then none of "
                             "the individual field arguments should be set.")

        request = patch_deployments.GetPatchDeploymentRequest(request)

        # If we have keyword arguments corresponding to fields on the
        # request, apply these.

        if name is not None:
            request.name = name

        # Wrap the RPC method; this adds retry and timeout information,
        # and friendly error handling.
        rpc = gapic_v1.method.wrap_method(
            self._transport.get_patch_deployment,
            default_timeout=None,
            client_info=_client_info,
        )

        # Certain fields should be provided within the metadata header;
        # add these here.
        metadata = tuple(metadata) + (gapic_v1.routing_header.to_grpc_metadata(
            (("name", request.name), )), )

        # Send the request.
        response = rpc(request,
                       retry=retry,
                       timeout=timeout,
                       metadata=metadata)

        # Done; return the response.
        return response