diff options
| author | Adam Young <ayoung@redhat.com> | 2014-04-11 16:39:16 -0400 |
|---|---|---|
| committer | Adam Young <ayoung@redhat.com> | 2014-05-07 14:48:25 -0400 |
| commit | 51ed045a284daa581bd364e2ecfc3f689e4582fb (patch) | |
| tree | 93832e4597edc41cb602de1a6086b2089d82e206 /keystoneclient/v3 | |
| parent | 0781c3ca27557f2e699e4578bd898bb32efa8155 (diff) | |
| download | python-keystoneclient-51ed045a284daa581bd364e2ecfc3f689e4582fb.tar.gz | |
Regions Management
Client code for v3 API regions implementation.
Change-Id: I5c1526457395ba3fb06977bea775ff572ec840ba
Closes-Bug: 1289519
Diffstat (limited to 'keystoneclient/v3')
| -rw-r--r-- | keystoneclient/v3/client.py | 2 | ||||
| -rw-r--r-- | keystoneclient/v3/regions.py | 90 |
2 files changed, 92 insertions, 0 deletions
diff --git a/keystoneclient/v3/client.py b/keystoneclient/v3/client.py index 417fdb2..397c417 100644 --- a/keystoneclient/v3/client.py +++ b/keystoneclient/v3/client.py @@ -28,6 +28,7 @@ from keystoneclient.v3 import endpoints from keystoneclient.v3 import groups from keystoneclient.v3 import policies from keystoneclient.v3 import projects +from keystoneclient.v3 import regions from keystoneclient.v3 import roles from keystoneclient.v3 import services from keystoneclient.v3 import users @@ -101,6 +102,7 @@ class Client(httpclient.HTTPClient): self.groups = groups.GroupManager(self) self.policies = policies.PolicyManager(self) self.projects = projects.ProjectManager(self) + self.regions = regions.RegionManager(self) self.roles = roles.RoleManager(self) self.services = services.ServiceManager(self) self.users = users.UserManager(self) diff --git a/keystoneclient/v3/regions.py b/keystoneclient/v3/regions.py new file mode 100644 index 0000000..de925e3 --- /dev/null +++ b/keystoneclient/v3/regions.py @@ -0,0 +1,90 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +from keystoneclient import base + + +class Region(base.Resource): + """Represents a Catalog region. + + Attributes: + * id: a string that identifies the region. + * description: a string that describes the region. Optional. + * parent_region_id: string that is the id field for an pre-existing + region in the backend. Allows for hierarchical region + organization + * enabled: determines whether the endpoint appears in the catalog. + Defaults to True + """ + pass + + +class RegionManager(base.CrudManager): + """Manager class for manipulating Identity endpoints.""" + resource_class = Region + collection_key = 'regions' + key = 'region' + + def create(self, id=None, description=None, enabled=True, + parent_region=None, **kwargs): + """Create a Catalog region. + + :param id: a string that identifies the region. If not specified + a unique identifier will be assigned to the region. + :param description: a string that describes the region. + :param parent_region: string that is the id field for a + pre-existing region in the backend. Allows for hierarchical + region organization. + :param enabled: determines whether the endpoint appears in the + catalog. + + """ + return super(RegionManager, self).create( + id=id, description=description, enabled=enabled, + parent_region_id=base.getid(parent_region), **kwargs) + + def get(self, region): + return super(RegionManager, self).get( + region_id=base.getid(region)) + + def list(self, **kwargs): + """List regions. + + If ``**kwargs`` are provided, then filter regions with + attributes matching ``**kwargs``. + """ + return super(RegionManager, self).list( + **kwargs) + + def update(self, region, description=None, enabled=True, + parent_region=None, **kwargs): + """Update a Catalog region. + + :param region: a string that identifies the region. + :param description: a string that describes the region. + :param parent_region: string that is the id field for a + pre-existing region in the backend. Allows for hierarchical + region organization. + :param enabled: determines whether the endpoint appears in the + catalog. Defaults to True + + """ + return super(RegionManager, self).update( + region_id=base.getid(region), + description=description, + enabled=enabled, + parent_region_id=base.getid(parent_region), + **kwargs) + + def delete(self, region): + return super(RegionManager, self).delete( + region_id=base.getid(region)) |
