fixed ip related functions added

Change-Id: Ibfb101f295d98bd0a54c3327648f59a133086a51
This commit is contained in:
Basavaraj Lamani 2018-09-08 00:30:40 +05:30
parent b11d0320a1
commit 16e3a440e7
3 changed files with 43 additions and 3 deletions

View File

@ -24,6 +24,8 @@ from cloudcafe.compute.servers_api.models.servers import Server, Servers, \
ServerMins, Password
from cloudcafe.compute.servers_api.models.servers import Addresses
from cloudcafe.compute.servers_api.models.servers import InstanceActions
from cloudcafe.compute.servers_api.models.requests import AddFixedIP, \
RemoveFixedIP
from cloudcafe.compute.servers_api.models.requests import CreateServer, \
AddSecurityGroup
from cloudcafe.compute.servers_api.models.requests import UpdateServer
@ -247,6 +249,42 @@ class ServersClient(AutoMarshallingHTTPClient):
requestslib_kwargs=requestslib_kwargs)
return resp
def add_fixed_ip(self, server_id, network_id, requestslib_kwargs=None):
"""
@summary: Adds a fixed IP to a server.
@param server_id: The id of an existing server.
@type server_id: String
@param network_id: A unique network id.
@type network_id: String
@return: Base Response object
@rtype: Response object
"""
request_body = AddFixedIP(network_id=network_id)
url = '{base_url}/servers/{server_id}/action'.format(
base_url=self.url, server_id=server_id)
return self.request('POST', url,
response_entity_type=None,
request_entity=request_body,
requestslib_kwargs=requestslib_kwargs)
def remove_fixed_ip(self, server_id, address, requestslib_kwargs=None):
"""
@summary: Removes a fixed IP from a server.
@param server_id: The id of an existing server.
@type server_id: String
@param address: IP address to be removed.
@type address: String
@return: Base Response object
@rtype: Response object
"""
req_body = RemoveFixedIP(address=address)
url = '{base_url}/servers/{server_id}/action'.format(
base_url=self.url, server_id=server_id)
return self.request('POST', url,
response_entity_type=None,
request_entity=req_body,
requestslib_kwargs=requestslib_kwargs)
def list_addresses(self, server_id, requestslib_kwargs=None):
"""
@summary: Lists all addresses for a server.

View File

@ -756,12 +756,12 @@ class RemoveFixedIP(AutoMarshallingModel):
Remove Fixed IP Action Request Object
"""
def __init__(self, network_id):
def __init__(self, address):
super(RemoveFixedIP, self).__init__()
self.network_id = network_id
self.address = address
def _obj_to_json(self):
body = {'networkId': self.network_id}
body = {'address': self.address}
return json.dumps({'removeFixedIp': body})

View File

@ -69,6 +69,8 @@ class NeutronResponseCodes(object):
CREATE_PORT = 201
UPDATE_PORT = 200
DELETE_PORT = 204
ADD_FIXED_IP = 202
REMOVE_FIXED_IP = 202
BAD_REQUEST = 400
UNAUTHORIZED = 401