- def add(self, **kwargs):
- """Add a version
-
- TODO(bcwaldon): document accepted params
- """
-
- fields = {}
- for field in kwargs:
- if field in CREATE_PARAMS:
- fields[field] = kwargs[field]
- elif field == 'return_req_id':
- continue
- else:
- msg = 'create() got an unexpected keyword argument \'%s\''
- raise TypeError(msg % field)
-
- hdrs = self._version_meta_to_headers(fields)
-
- resp, body = self.client.post('/v1/versions',
- headers=None,
- data=hdrs)
- return_request_id = kwargs.get('return_req_id', None)
- if return_request_id is not None:
- return_request_id.append(resp.headers.get(OS_REQ_ID_HDR, None))
-
- return Version(self, self._format_version_meta_for_user(
- body['version']))
-
- def delete(self, version, **kwargs):
- """Delete an version."""
- url = "/v1/versions/%s" % base.getid(version)
- resp, body = self.client.delete(url)
- return_request_id = kwargs.get('return_req_id', None)
- if return_request_id is not None:
- return_request_id.append(resp.headers.get(OS_REQ_ID_HDR, None))
-
- def update(self, version, **kwargs):
- """Update an version
-
- TODO(bcwaldon): document accepted params
- """
- hdrs = {}
- fields = {}
- for field in kwargs:
- if field in CREATE_PARAMS:
- fields[field] = kwargs[field]
- elif field == 'return_req_id':
- continue
- hdrs.update(self._version_meta_to_headers(fields))
-
- url = '/v1/versions/%s' % base.getid(version)
- resp, body = self.client.put(url, headers=None, data=hdrs)
- return_request_id = kwargs.get('return_req_id', None)
- if return_request_id is not None:
- return_request_id.append(resp.headers.get(OS_REQ_ID_HDR, None))
-
- return Version(self, self._format_version_meta_for_user(
- body['version_meta']))
-