Capabilities API for legacy bundled services

With the Capabilities API, your application can detect outages and scheduled downtime for specific API capabilities . You can use this API to reduce downtime in your application by detecting when a capability is unavailable and then bypassing it. .

For example, if you use the Images API to resize images, you can use the Capabilities API to detect when the Images API is unavailable and skip the resize:

  from 
  
 google.appengine.api 
  
 import 
 capabilities 
 def 
  
 StoreUploadedProfileImage 
 ( 
 self 
 ): 
 uploaded_image 
 = 
 self 
 . 
 request 
 . 
 get 
 ( 
 'img' 
 ) 
 # If the images API is unavailable, we'll just skip the resize. 
 if 
 capabilities 
 . 
 CapabilitySet 
 ( 
 'images' 
 ) 
 . 
 is_enabled 
 (): 
 uploaded_image 
 = 
 images 
 . 
 resize 
 ( 
 uploaded_image 
 , 
 64 
 , 
 64 
 ) 
 store 
 ( 
 uploaded_image 
 ) 
 

The Datastore API provides a convenience wrapper for the Datastore read and write capabilities. While you can test capabilities simply by supplying the capability name as an argument to CapabilitySet() , in this case you can also use the db.READ_CAPABILITY and db.WRITE_CAPABILITY convenience CapabilitySet objects. The following sample shows how to detect the availability of Datastore writes using a convenience wrapper and, during downtime, provide a message to users:

  from 
  
 google.appengine.ext 
  
 import 
 db 
 def 
  
 RenderHTMLForm 
 ( 
 self 
 ): 
 if 
 not 
 db 
 . 
 WRITE_CAPABILITY 
 . 
 is_enabled 
 (): 
 # Datastore is in read-only mode. 
 

Using the Capabilities API in Python 2

The CapabilitySet class defines all of the available methods for this API. You can either name capabilities explicitly or infer them from the methods provided by this class. See below for the list of services currently enabled in this API.

Supported capabilities

The API currently supports the following capabilities:

Capability Arguments to CapabilitySet
Availability of the blobstore "blobstore"
Datastore reads "datastore_v3"
Datastore writes "datastore_v3", ["write"]
Availability of the Images service "images"
Availability of the Mail service "mail"
Availability of the Memcache service "memcache"
Availability of the Task Queue service "taskqueue"
Availability of the URL Fetch service "urlfetch"
Create a Mobile Website
View Site in Mobile | Classic
Share by: