Initialize NailgunClient with session only

1. Initialize NailgunClient with session only - old way was deprecated > 1 month ago
2. get_releases_details -> get_release (was method duplicate)
This changes is required for the future refactoring (move to core)

Change-Id: Ia01a453f7f8233d4d39152bf56714157e3d74475
Blueprint: fuel-qa-join-helpers
(cherry picked from commit 132455b)
This commit is contained in:
Alexey Stepanov 2016-09-02 12:20:17 +03:00
parent 7ec0f37fa1
commit 78211fb273
2 changed files with 28 additions and 38 deletions

View File

@ -33,6 +33,8 @@ except ImportError:
DevopsObjNotFound = Node.DoesNotExist
# pylint: enable=no-member
from keystoneauth1 import exceptions
from keystoneauth1.identity import V2Password
from keystoneauth1.session import Session as KeystoneSession
import netaddr
from proboscis.asserts import assert_equal
from proboscis.asserts import assert_false
@ -74,6 +76,7 @@ from fuelweb_test.settings import DEPLOYMENT_MODE_HA
from fuelweb_test.settings import DISABLE_SSL
from fuelweb_test.settings import DNS_SUFFIX
from fuelweb_test.settings import iface_alias
from fuelweb_test.settings import KEYSTONE_CREDS
from fuelweb_test.settings import KVM_USE
from fuelweb_test.settings import MULTIPLE_NETWORKS
from fuelweb_test.settings import NOVA_QUOTAS_ENABLED
@ -106,9 +109,22 @@ class FuelWebClient29(object):
def __init__(self, environment):
self.ssh_manager = SSHManager()
self.admin_node_ip = self.ssh_manager.admin_ip
self.client = NailgunClient(self.ssh_manager.admin_ip)
self._environment = environment
keystone_url = "http://{0}:5000/v2.0".format(self.admin_node_ip)
auth = V2Password(
auth_url=keystone_url,
username=KEYSTONE_CREDS['username'],
password=KEYSTONE_CREDS['password'],
tenant_name=KEYSTONE_CREDS['tenant_name'])
# TODO: in v3 project_name
self._session = KeystoneSession(auth=auth, verify=False)
self.client = NailgunClient(session=self._session)
self.security = SecurityChecks(self.client, self._environment)
super(FuelWebClient29, self).__init__()
@property
@ -295,7 +311,7 @@ class FuelWebClient29(object):
logger.info('Assert role %s is available in release %s',
role_name, release_name)
release_id = self.assert_release_state(release_name)
release_data = self.client.get_releases_details(release_id=release_id)
release_data = self.client.get_release(release_id=release_id)
assert_equal(
True, role_name in release_data['roles'],
message='There is no {0} role in release id {1}'.format(
@ -2383,7 +2399,7 @@ class FuelWebClient29(object):
@logwrap
def get_next_deployable_release_id(self, release_id):
releases = self.client.get_releases()
release_details = self.client.get_releases_details(release_id)
release_details = self.client.get_release(release_id)
for release in releases:
if (release["id"] > release_id and

View File

@ -14,49 +14,21 @@
from warnings import warn
from keystoneauth1.identity import V2Password
from keystoneauth1.session import Session as KeystoneSession
from core.helpers.log_helpers import logwrap
from fuelweb_test import logger
from fuelweb_test.settings import FORCE_HTTPS_MASTER_NODE
from fuelweb_test.settings import KEYSTONE_CREDS
from fuelweb_test.settings import OPENSTACK_RELEASE
class NailgunClient(object):
"""NailgunClient""" # TODO documentation
def __init__(self, admin_node_ip=None, session=None, **kwargs):
if session:
logger.info(
'Initialization of NailgunClient using shared session \n'
'(auth_url={})'.format(session.auth.auth_url))
self.session = session
else:
warn(
'Initialization of NailgunClient by IP is deprecated, '
'please use keystonesession1.session.Session',
DeprecationWarning)
if FORCE_HTTPS_MASTER_NODE:
url = "https://{0}:8443".format(admin_node_ip)
else:
url = "http://{0}:8000".format(admin_node_ip)
logger.info('Initiate Nailgun client with url %s', url)
keystone_url = "http://{0}:5000/v2.0".format(admin_node_ip)
creds = dict(KEYSTONE_CREDS, **kwargs)
auth = V2Password(
auth_url=keystone_url,
username=creds['username'],
password=creds['password'],
tenant_name=creds['tenant_name'])
# TODO: in v3 project_name
self.session = KeystoneSession(auth=auth, verify=False)
def __init__(self, session):
logger.info(
'Initialization of NailgunClient using shared session \n'
'(auth_url={})'.format(session.auth.auth_url))
self.session = session
def __repr__(self):
klass, obj_id = type(self), hex(id(self))
@ -233,7 +205,9 @@ class NailgunClient(object):
@logwrap
def get_releases_details(self, release_id):
warn('get_releases_details is deprecated in favor of get_release')
msg = 'get_releases_details is deprecated in favor of get_release'
warn(msg, DeprecationWarning)
logger.warning(msg)
return self._get(url="/releases/{}".format(release_id)).json()
@logwrap