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:
parent
7ec0f37fa1
commit
78211fb273
@ -33,6 +33,8 @@ except ImportError:
|
|||||||
DevopsObjNotFound = Node.DoesNotExist
|
DevopsObjNotFound = Node.DoesNotExist
|
||||||
# pylint: enable=no-member
|
# pylint: enable=no-member
|
||||||
from keystoneauth1 import exceptions
|
from keystoneauth1 import exceptions
|
||||||
|
from keystoneauth1.identity import V2Password
|
||||||
|
from keystoneauth1.session import Session as KeystoneSession
|
||||||
import netaddr
|
import netaddr
|
||||||
from proboscis.asserts import assert_equal
|
from proboscis.asserts import assert_equal
|
||||||
from proboscis.asserts import assert_false
|
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 DISABLE_SSL
|
||||||
from fuelweb_test.settings import DNS_SUFFIX
|
from fuelweb_test.settings import DNS_SUFFIX
|
||||||
from fuelweb_test.settings import iface_alias
|
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 KVM_USE
|
||||||
from fuelweb_test.settings import MULTIPLE_NETWORKS
|
from fuelweb_test.settings import MULTIPLE_NETWORKS
|
||||||
from fuelweb_test.settings import NOVA_QUOTAS_ENABLED
|
from fuelweb_test.settings import NOVA_QUOTAS_ENABLED
|
||||||
@ -106,9 +109,22 @@ class FuelWebClient29(object):
|
|||||||
def __init__(self, environment):
|
def __init__(self, environment):
|
||||||
self.ssh_manager = SSHManager()
|
self.ssh_manager = SSHManager()
|
||||||
self.admin_node_ip = self.ssh_manager.admin_ip
|
self.admin_node_ip = self.ssh_manager.admin_ip
|
||||||
self.client = NailgunClient(self.ssh_manager.admin_ip)
|
|
||||||
self._environment = environment
|
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)
|
self.security = SecurityChecks(self.client, self._environment)
|
||||||
|
|
||||||
super(FuelWebClient29, self).__init__()
|
super(FuelWebClient29, self).__init__()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -295,7 +311,7 @@ class FuelWebClient29(object):
|
|||||||
logger.info('Assert role %s is available in release %s',
|
logger.info('Assert role %s is available in release %s',
|
||||||
role_name, release_name)
|
role_name, release_name)
|
||||||
release_id = self.assert_release_state(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(
|
assert_equal(
|
||||||
True, role_name in release_data['roles'],
|
True, role_name in release_data['roles'],
|
||||||
message='There is no {0} role in release id {1}'.format(
|
message='There is no {0} role in release id {1}'.format(
|
||||||
@ -2383,7 +2399,7 @@ class FuelWebClient29(object):
|
|||||||
@logwrap
|
@logwrap
|
||||||
def get_next_deployable_release_id(self, release_id):
|
def get_next_deployable_release_id(self, release_id):
|
||||||
releases = self.client.get_releases()
|
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:
|
for release in releases:
|
||||||
if (release["id"] > release_id and
|
if (release["id"] > release_id and
|
||||||
|
@ -14,49 +14,21 @@
|
|||||||
|
|
||||||
from warnings import warn
|
from warnings import warn
|
||||||
|
|
||||||
from keystoneauth1.identity import V2Password
|
|
||||||
from keystoneauth1.session import Session as KeystoneSession
|
|
||||||
|
|
||||||
from core.helpers.log_helpers import logwrap
|
from core.helpers.log_helpers import logwrap
|
||||||
|
|
||||||
from fuelweb_test import logger
|
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
|
from fuelweb_test.settings import OPENSTACK_RELEASE
|
||||||
|
|
||||||
|
|
||||||
class NailgunClient(object):
|
class NailgunClient(object):
|
||||||
"""NailgunClient""" # TODO documentation
|
"""NailgunClient""" # TODO documentation
|
||||||
|
|
||||||
def __init__(self, admin_node_ip=None, session=None, **kwargs):
|
def __init__(self, session):
|
||||||
if session:
|
logger.info(
|
||||||
logger.info(
|
'Initialization of NailgunClient using shared session \n'
|
||||||
'Initialization of NailgunClient using shared session \n'
|
'(auth_url={})'.format(session.auth.auth_url))
|
||||||
'(auth_url={})'.format(session.auth.auth_url))
|
self.session = session
|
||||||
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 __repr__(self):
|
def __repr__(self):
|
||||||
klass, obj_id = type(self), hex(id(self))
|
klass, obj_id = type(self), hex(id(self))
|
||||||
@ -233,7 +205,9 @@ class NailgunClient(object):
|
|||||||
|
|
||||||
@logwrap
|
@logwrap
|
||||||
def get_releases_details(self, release_id):
|
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()
|
return self._get(url="/releases/{}".format(release_id)).json()
|
||||||
|
|
||||||
@logwrap
|
@logwrap
|
||||||
|
Loading…
Reference in New Issue
Block a user