Added rescue image ref parameter

* Added rescue image ref to the rescue client
* Refactored rescue model request object and methods to take rescue image ref under consideration

Change-Id: Ice0d07e90e6c326310ad5a66a03908acfd753003
This commit is contained in:
ivo5307 2014-12-09 11:03:24 -06:00
parent 13bc2d4b86
commit 5986d763fc
3 changed files with 20 additions and 5 deletions

View File

@ -47,13 +47,14 @@ class RescueClient(AutoMarshallingHTTPClient):
self.default_headers['Accept'] = accept
self.url = url
def rescue(self, server_id, requestslib_kwargs=None):
def rescue(self, server_id, rescue_image_ref=None,
requestslib_kwargs=None):
self.server_id = server_id
url = '{base_url}/servers/{server_id}/action'.format(
base_url=self.url, server_id=server_id)
resp = self.request(
'POST', url, response_entity_type=RescueResponse,
request_entity=RescueMode(),
request_entity=RescueMode(rescue_image_ref=rescue_image_ref),
requestslib_kwargs=requestslib_kwargs)
return resp

View File

@ -22,14 +22,29 @@ from cloudcafe.compute.common.constants import Constants
class RescueMode(AutoMarshallingModel):
"""
@summary: Rebuild Request Object for Server
"""
def __init__(self, rescue_image_ref=None):
super(RescueMode, self).__init__()
self.rescue_image_ref = rescue_image_ref
def _obj_to_json(self):
return json.dumps({'rescue': {}})
body = {
'rescue_image_ref': self.rescue_image_ref
}
body = self._remove_empty_values(body)
return json.dumps({'rescue': body})
def _obj_to_xml(self):
xml = Constants.XML_HEADER
element = ET.Element('rescue')
element.set('xmlns', Constants.XML_API_RESCUE)
if self.rescue_image_ref is not None:
element.set('rescue_image_ref', self.rescue_image_ref)
xml += ET.tostring(element)
return xml

View File

@ -1,6 +1,5 @@
mock
unittest2
IPy
netaddr
XenAPI
dateutils
dateutils