Added Environments CRUD operations

This commit is contained in:
Serg Melikyan 2013-03-11 15:18:18 +04:00
parent 856bbb009a
commit 66e579521d
3 changed files with 39 additions and 4 deletions

View File

@ -68,7 +68,29 @@ class Manager(object):
resp, body = self.api.json_request('PUT', url, body=body)
# PUT requests may not return a body
if body:
if response_key:
return self.resource_class(self, body[response_key])
return self.resource_class(self, body)
def _create(self, url, body, response_key=None, return_raw=False):
resp, body = self.api.json_request('POST', url, body=body)
if return_raw:
if response_key:
return body[response_key]
return body
if response_key:
return self.resource_class(self, body[response_key])
return self.resource_class(self, body)
def _get(self, url, response_key=None, return_raw=False):
resp, body = self.api.json_request('GET', url)
if return_raw:
if response_key:
return body[response_key]
return body
if response_key:
return self.resource_class(self, body[response_key])
return self.resource_class(self, body)
class Resource(object):

View File

@ -12,13 +12,14 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import anyjson
from portasclient.common import base
class Environment(base.Resource):
def __repr__(self):
return "<Meter %s>" % self._info
return "<Environment %s>" % self._info
def data(self, **kwargs):
return self.manager.data(self, **kwargs)
@ -28,4 +29,16 @@ class EnvironmentManager(base.Manager):
resource_class = Environment
def list(self):
return self._list('environments', 'environments')
return self._list('environments', 'environments')
def create(self, name):
return self._create('environments', {'name': name})
def update(self, environment_id, name):
return self._update('environments/{id}'.format(id=environment_id), {'name': name})
def delete(self, environment_id):
return self._delete('environments/{id}'.format(id=environment_id))
def get(self, environment_id):
return self._get("environments/{id}".format(id=environment_id))

View File

@ -19,6 +19,6 @@ from portasclient.common import utils
def do_environment_list(cc, args={}):
"""List the environments"""
environments = cc.environments.list()
field_labels = ['ID', 'Name']
fields = ['id', 'name']
field_labels = ['ID', 'Name', 'Created', 'Updated']
fields = ['id', 'name', 'created', 'updated']
utils.print_list(environments, fields, field_labels, sortby=0)