Template and deploy test for day01 deployment
Add physical-mcp-ocata-offline-ovs template
Add day01 offline test
Change-Id: I61211150575a84d8f3e44be2ef9c64855e5f2db3
diff --git a/tcp_tests/managers/jenkins/__init__.py b/tcp_tests/managers/jenkins/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tcp_tests/managers/jenkins/__init__.py
diff --git a/tcp_tests/managers/jenkins/client.py b/tcp_tests/managers/jenkins/client.py
new file mode 100644
index 0000000..f781305
--- /dev/null
+++ b/tcp_tests/managers/jenkins/client.py
@@ -0,0 +1,65 @@
+import time
+
+import jenkins
+
+from devops.helpers import helpers
+
+
+class JenkinsClient(object):
+
+ def __init__(self, host=None, username=None, password=None):
+ host = host or 'http://172.16.44.33:8081'
+ username = username or 'admin'
+ password = password or 'r00tme'
+ self.__client = jenkins.Jenkins(
+ host,
+ username=username,
+ password=password)
+
+ def jobs(self):
+ return self.__client.get_jobs()
+
+ def find_jobs(self, name):
+ return filter(lambda x: name in x['fullname'], self.jobs())
+
+ def job_info(self, name):
+ return self.__client.get_job_info(name)
+
+ def list_builds(self, name):
+ return self.job_info(name).get('builds')
+
+ def build_info(self, name, build_id):
+ return self.__client.get_build_info(name, build_id)
+
+ def job_params(self, name):
+ job = self.job_info(name)
+ job_params = next(
+ p for p in job['property'] if
+ 'hudson.model.ParametersDefinitionProperty' == p['_class'])
+ job_params = job_params['parameterDefinitions']
+ return job_params
+
+ def make_defults_params(self, name):
+ job_params = self.job_params(name)
+ def_params = dict(
+ [(j['name'], j['defaultParameterValue']['value'])
+ for j in job_params])
+ return def_params
+
+ def run_build(self, name, params=None):
+ params = params or self.make_defults_params(name)
+ self.__client.build_job(name, params)
+ time.sleep(10) # wait while jobs started:
+ build_id = self.job_info(name)['lastBuild']['number']
+ return name, build_id
+
+ def wait_end_of_build(self, name, build_id, timeout=600):
+
+ def building():
+ return not self.build_info(name, build_id)['building']
+
+ helpers.wait(
+ building,
+ timeout=timeout,
+ timeout_msg='Timeout waiting, job {0} are not finished "{1}" build'
+ ' still'.format(name, build_id))
diff --git a/tcp_tests/managers/saltmanager.py b/tcp_tests/managers/saltmanager.py
index 1ff5324..06e7d0b 100644
--- a/tcp_tests/managers/saltmanager.py
+++ b/tcp_tests/managers/saltmanager.py
@@ -38,14 +38,15 @@
'runStates': 'run_states',
}
- def __init__(self, config, underlay, host=None, port='6969'):
+ def __init__(self, config, underlay, host=None, port='6969',
+ username=None, password=None):
self.__config = config
self.__underlay = underlay
self.__port = port
self.__host = host
self.__api = None
- self.__user = settings.SALT_USER
- self.__password = settings.SALT_PASSWORD
+ self.__user = username or settings.SALT_USER
+ self.__password = password or settings.SALT_PASSWORD
self._salt = self
super(SaltManager, self).__init__(config=config, underlay=underlay)
@@ -60,6 +61,10 @@
self.execute_commands(commands=commands,
label="Install and configure salt")
+ def change_creds(self, username, password):
+ self.__user = username
+ self.__password = password
+
@property
def port(self):
return self.__port
diff --git a/tcp_tests/managers/underlay_ssh_manager.py b/tcp_tests/managers/underlay_ssh_manager.py
index 7d3da96..5194239 100644
--- a/tcp_tests/managers/underlay_ssh_manager.py
+++ b/tcp_tests/managers/underlay_ssh_manager.py
@@ -247,13 +247,16 @@
"""
ssh_data = self.__ssh_data(node_name=node_name, host=host,
address_pool=address_pool)
+ ssh_auth = ssh_client.SSHAuth(
+ username=ssh_data['login'],
+ password=ssh_data['password'],
+ keys=[rsakey.RSAKey(file_obj=StringIO.StringIO(key))
+ for key in ssh_data['keys']])
+
return ssh_client.SSHClient(
host=ssh_data['host'],
port=ssh_data['port'] or 22,
- username=ssh_data['login'],
- password=ssh_data['password'],
- private_keys=[rsakey.RSAKey(file_obj=StringIO.StringIO(key))
- for key in ssh_data['keys']])
+ auth=ssh_auth)
def local(self):
"""Get Subprocess instance for local operations like: