add ips to novaclient server manager
This exposes the ips Resource from the nova server manager which the infra team believes will help them optimize some of their API load on various clouds. Change-Id: I00730dc809ae4e86d728e2ec76bfb38024d7634e
This commit is contained in:
parent
420dc2884a
commit
de4e40a754
0
novaclient/tests/functional/api/__init__.py
Normal file
0
novaclient/tests/functional/api/__init__.py
Normal file
35
novaclient/tests/functional/api/test_servers.py
Normal file
35
novaclient/tests/functional/api/test_servers.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# 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.
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
|
from novaclient.tests.functional import base
|
||||||
|
|
||||||
|
|
||||||
|
class TestServersAPI(base.ClientTestBase):
|
||||||
|
def test_server_ips(self):
|
||||||
|
server_name = "test_server"
|
||||||
|
initial_server = self.client.servers.create(
|
||||||
|
server_name, self.image, self.flavor)
|
||||||
|
self.addCleanup(initial_server.delete)
|
||||||
|
|
||||||
|
for x in xrange(60):
|
||||||
|
server = self.client.servers.get(initial_server)
|
||||||
|
if server.status == "ACTIVE":
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
time.sleep(1)
|
||||||
|
else:
|
||||||
|
self.fail("Server %s did not go ACTIVE after 60s" % server)
|
||||||
|
|
||||||
|
ips = self.client.servers.ips(server)
|
||||||
|
self.assertIn('private', ips)
|
@ -819,6 +819,16 @@ class ServerManager(base.BootingManagerWithFind):
|
|||||||
"""
|
"""
|
||||||
self._action('unshelve', server, None)
|
self._action('unshelve', server, None)
|
||||||
|
|
||||||
|
def ips(self, server):
|
||||||
|
"""
|
||||||
|
Return IP Addresses associated with the server.
|
||||||
|
|
||||||
|
Often a cheaper call then getting all the details for a server.
|
||||||
|
"""
|
||||||
|
_resp, body = self.api.client.get("/servers/%s/ips" %
|
||||||
|
base.getid(server))
|
||||||
|
return body['addresses']
|
||||||
|
|
||||||
def diagnostics(self, server):
|
def diagnostics(self, server):
|
||||||
"""Retrieve server diagnostics."""
|
"""Retrieve server diagnostics."""
|
||||||
return self.api.client.get("/servers/%s/diagnostics" %
|
return self.api.client.get("/servers/%s/diagnostics" %
|
||||||
|
Loading…
Reference in New Issue
Block a user