
This corrects some typos in earlier documentation patches, removes outdated API reference documentation, and organizes all API reference documentation under one chapter. This also leaves room for future API versions and more specific API reference documentation being broken out into sub-sections. Change-Id: I5391a1acc7d1669207b3d10039a196d026216f40
3.4 KiB
Using the Regions API
Here we will assume that we already have a ~cratonclient.client.Client
instance configured with the appropriate authentication method (as
demonstrated in usage-auth
).
Listing Regions
The Regions API implements pagination. This means that by default, it does not return all regions known to Craton. To ignore page limits and offsets, we can allow cratonclient to do handle pagination for us:
for region in craton.regions.list():
print_region_info(region)
By default ~cratonclient.v1.regions.RegionManager.list
will
handle pagination for you. If, instead, you want to handle it yourself
you will want to do something akin to:
= list(craton.regions.list(autopaginate=False))
first_page_of_regions = first_page_of_regions[-1].id
marker_id = list(craton.regions.list(
second_page_of_regions =False,
autopaginate=marker_id,
marker
))= second_page_of_regions[-1].id
marker_id = list(craton.regions.list(
third_page_of_regions =False,
autopaginate=marker_id,
marker
))# etc.
A more realistic example, however, might look like this:
= None
regions_list = None
marker while regions_list and regions_list is not None:
= list(craton.regions.list(
regions_list =marker,
marker=False,
autopaginate
))# do something with regions_list
if regions_list:
= regions_list[-1].id marker
This will have the effect of stopping the while loop when you
eventually receive an empty list from
craton.regions.list(...)
.
Creating Regions
Regions are required to be part of a Cloud in Craton. To create a
region, the only required items are a name
for the region
and the ID of the cloud it belongs to. The name must be unique among
regions in the same project.
= craton.regions.create(
region ='my-region-0',
name=cloud_id,
cloud_id='This is my region, there are many like it, but this is mine.',
note={
variables'some-var': 'some-var-value',
}, )
Retrieving a Specific Region
Regions can be retrieved by id.
= craton.regions.get(1) region
Using a Region's Variables
Once we have a region we can introspect its variables like so:
= craton.regions.get(region_id)
region = region.variables.get() region_vars
To update them:
= {
updated_vars 'var-a': 'new-var-a',
'var-b': 'new-var-b',
'updated-var': 'updated value',
}**updated_vars) region.variables.update(
To delete them:
'var-a', 'var-b', 'updated-var') region.variables.delete(
Updating a Region
We can update a region's attributes (but not its variables) like so:
craton.regions.update(
region_id,='new name',
name='Updated note.',
note )
Most attributes that you can specify on creation can also be specified for updating the region as well.
Deleting a Region
We can delete with only its id:
craton.regions.delete(region_id)