This page describes how to manage the lifecycle of a Cloud Life Sciences API long-running operation (LRO).
Long-running operations
are returned when method calls might take a long time to complete.
The Cloud Life Sciences API creates an LRO every time you call projects.locations.pipelines.run
or gcloud beta lifesciences pipelines run
.
The LRO tracks the status of the pipeline.
You can use the operations APIs that the Cloud Life Sciences API provides to check the status of LROs. You can also list, poll, or cancel LROs.
When calling the Cloud Life Sciences API directly, LROs are managed at the Google Cloud project and location level. When making a request to the LRO directly, include the Google Cloud project and the location in which the LRO is running.
If you have set up the gcloud CLI, then when you call the Cloud Life Sciences API using the gcloud CLI your request to the LRO only needs to contain the operation identifier. The Google Cloud project ID and the location where the LRO is running are inferred from the operation ID.
You can manage your Cloud Life Sciences LROs using the Google Cloud console, the Google Cloud CLI, or by calling the API directly. The Google Cloud console does not contain all of the details about an LRO that are available when using the gcloud CLI and calling the Cloud Life Sciences API directly.
The record of an LRO is kept for approximately 30 days after the LRO finishes, meaning that you cannot view or list an LRO after that point.
Getting details about a long-running operation
The following samples show how to get details about an LRO.
Console
- In the Google Cloud console, go to the Life Sciences Pipelines page.
- A list of LROs and their status displays. Find the LRO you are looking for and view its status. The possible values for the Status column are Running, Completed, and Failed.
gcloud
Suppose that you receive the following response after calling gcloud beta lifesciences pipelines run
:
Running [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID].
The response shows that the Cloud Life Sciences API created an LRO with an operation ID.
To get details about the LRO, run the gcloud beta lifesciences operations describe
command, specifying the operation ID.
gcloud beta lifesciences operations describe OPERATION_ID
You can also retrieve the operation ID by listing long-running database operations.
If the request is successful, the command prompt displays the operation details. The output shown here is taken from the pipeline operation in the Quickstart.
API
To get the status of and view details about an LRO, call the projects.locations.operations.get
method.
REST
Suppose that you receive the following response after calling
projects.locations.pipelines.run
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID" }
The name
value in the response shows that the Cloud Life Sciences API
created an LRO named projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID
.
You can also retrieve the LRO name by listing long-running operations.
Before using any of the request data, make the following replacements:
- PROJECT_ID: your Google Cloud project ID
- LOCATION: the location where the LRO is running
- OPERATION_ID: the identifier for the LRO
HTTP method and URL:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
To send your request, choose one of these options:
curl
Execute the following command:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
Execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
APIs Explorer
Open the method reference page. The APIs Explorer panel opens on the right side of the page. You can interact with this tool to send requests. Complete any required fields and click Execute.
Listing long-running operations
The following samples show how to list the LROs in a Google Cloud project and location.
Console
- In the Google Cloud console, go to the Life Sciences Pipelines page.
- A list of LROs and their status displays. The possible values for the Status column are Running, Completed, and Failed.
gcloud
To list the LROs in a Google Cloud project and location, run the gcloud beta lifesciences operations list
command.
gcloud beta lifesciences operations list
If the request is successful, the command prompt lists the LROs:
ID LOCATION DONE OPERATION_ID LOCATION {TRUE|FALSE} ...
API
To list the LROs in a Google Cloud project and location, call the projects.locations.operations.list
method.
REST
Before using any of the request data, make the following replacements:
- PROJECT_ID: your Google Cloud project ID
- LOCATION: the location where one or more LROs are running
HTTP method and URL:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations
To send your request, choose one of these options:
curl
Execute the following command:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations"
PowerShell
Execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations" | Select-Object -Expand Content
APIs Explorer
Open the method reference page. The APIs Explorer panel opens on the right side of the page. You can interact with this tool to send requests. Complete any required fields and click Execute.
You should receive a JSON response similar to the following:
{ "operations": [ { "name": "PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.lifesciences.v2beta.Metadata", "pipeline": { ... } "createTime": "CREATE_TIME", "startTime": "START_TIME", "endTime": "END_TIME" }, "done": true, "response": { "@type": "type.googleapis.com/cloud.lifesciences.pipelines.RunPipelineResponse" } }, ... ] }
Polling a long-running operation
The following samples show how to poll the status of an LRO.
Console
- In the Google Cloud console, go to the Life Sciences Pipelines page.
- A list of LROs and their status displays. Click the Refresh icon to see the updated status for an LRO.
gcloud
After starting a pipeline, you can poll the LRO by running
the gcloud beta lifesciences operations wait
command.
gcloud beta lifesciences operations wait OPERATION_ID
If the request is successful, the command prompt displays the following:
Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...
When the operation finishes, the command prompt displays the following:
Waiting for [projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID] to complete...done.
API
To poll an LRO, repeatedly call the projects.locations.operations.get
method until the operation finishes. Use a backoff between each poll request,
such as 10 seconds.
Before using any of the request data below, make the following replacements:
- PROJECT_ID: your Google Cloud project ID
- LOCATION: the location where the LRO is running
- OPERATION_ID: the identifier for the LRO
HTTP method and URL:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
To send your request, choose one of these options:
curl
Execute the following command to poll for the status of an LRO every 10 seconds:
while true; \ do curl -X GET \ -H "Authorization: Bearer "$(gcloud auth print-access-token) \ "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"; \ sleep 10; \ done
You should receive a JSON response similar to the following.
The output shown here is taken from the pipeline operation in the Quickstart.
When the operation finishes, the response will contain "done": true
and
a value in the endTime
field.
PowerShell
Execute the following command to poll for the status of an LRO every ten seconds:
$cred = gcloud auth print-access-token $headers = @{ Authorization = "Bearer $cred" } Do { Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content sleep 10 } while ($true)
You should receive a JSON response similar to the following.
The output shown here is taken from the pipeline operation in the Quickstart.
When the operation finishes, the response will contain "done": true
and
a value in the endTime
field.
Cancelling a long-running operation
The following samples show how to cancel an LRO while it is running.
Console
- In the Google Cloud console, go to the Life Sciences Pipelines page.
- Click the ID of the LRO you want to cancel.
- Click the Cancel icon.
gcloud
To cancel an LRO, run the gcloud beta lifesciences operations cancel
command.
gcloud beta lifesciences operations cancel OPERATION_ID
If the request is successful, a cancellation prompt displays:
Operation [OPERATION_ID] will be canceled. Do you want to continue (Y/n)? Y
To confirm, type Y. After you confirm the cancellation, the response returns an empty body.
Operation [OPERATION_ID] will be canceled. Do you want to continue (Y/n)? Y {}
API
To cancel an LRO, call the projects.locations.operations.cancel
method.
REST
Before using any of the request data, make the following replacements:
- PROJECT_ID: your Google Cloud project ID
- LOCATION: the location where the LRO is running
- OPERATION_ID: the identifier for the LRO
HTTP method and URL:
POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
To send your request, choose one of these options:
curl
Execute the following command:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"
PowerShell
Execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
APIs Explorer
Open the method reference page. The APIs Explorer panel opens on the right side of the page. You can interact with this tool to send requests. Complete any required fields and click Execute.
You should receive a JSON response similar to the following:
{}