From: Morgan Richomme Date: Thu, 24 Aug 2017 07:49:54 +0000 (+0000) Subject: Merge "temporary switch of opnfv/functest-* to ollivier/functest-* for alpine" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=d325eb4d1d2e3f58a651035fcf8d634f0384b2fe;hp=0082e57adeeccbd3838b200cf02d9b8b36793800;p=releng.git Merge "temporary switch of opnfv/functest-* to ollivier/functest-* for alpine" --- diff --git a/jjb/bottlenecks/bottlenecks-run-suite.sh b/jjb/bottlenecks/bottlenecks-run-suite.sh index 6bab0e4d2..341aab590 100644 --- a/jjb/bottlenecks/bottlenecks-run-suite.sh +++ b/jjb/bottlenecks/bottlenecks-run-suite.sh @@ -19,9 +19,12 @@ git clone https://gerrit.opnfv.org/gerrit/releng ${RELENG_REPO} >${redirect} OPENRC=/tmp/admin_rc.sh OS_CACERT=/tmp/os_cacert +BOTTLENECKS_CONFIG=/tmp + if [[ $SUITE_NAME == *posca* ]]; then POSCA_SCRIPT=/home/opnfv/bottlenecks/testsuites/posca + # Preparing OpenStack RC and Cacert files echo "BOTTLENECKS INFO: fetching os credentials from $INSTALLER_TYPE" if [[ $INSTALLER_TYPE == 'compass' ]]; then if [[ ${BRANCH} == 'master' ]]; then @@ -49,6 +52,60 @@ if [[ $SUITE_NAME == *posca* ]]; then exit 1 fi + # Finding and crearting POD description files from different deployments + ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" + + if [ "$INSTALLER_TYPE" == "fuel" ]; then + echo "Fetching id_rsa file from jump_server $INSTALLER_IP..." + sshpass -p r00tme sudo scp $ssh_options root@${INSTALLER_IP}:~/.ssh/id_rsa ${BOTTLENECKS_CONFIG}/id_rsa + fi + + if [ "$INSTALLER_TYPE" == "apex" ]; then + echo "Fetching id_rsa file from jump_server $INSTALLER_IP..." + sudo scp $ssh_options stack@${INSTALLER_IP}:~/.ssh/id_rsa ${BOTTLENECKS_CONFIG}/id_rsa + fi + + set +e + + sudo pip install virtualenv + + cd ${RELENG_REPO}/modules + sudo virtualenv venv + source venv/bin/activate + sudo pip install -e ./ >/dev/null + sudo pip install netaddr + + if [[ ${INSTALLER_TYPE} == compass ]]; then + options="-u root -p root" + elif [[ ${INSTALLER_TYPE} == fuel ]]; then + options="-u root -p r00tme" + elif [[ ${INSTALLER_TYPE} == apex ]]; then + options="-u stack -k /root/.ssh/id_rsa" + else + echo "Don't support to generate pod.yaml on ${INSTALLER_TYPE} currently." + fi + + cmd="sudo python ${RELENG_REPO}/utils/create_pod_file.py -t ${INSTALLER_TYPE} \ + -i ${INSTALLER_IP} ${options} -f ${BOTTLENECKS_CONFIG}/pod.yaml \ + -s ${BOTTLENECKS_CONFIG}/id_rsa" + echo ${cmd} + ${cmd} + + deactivate + + set -e + + cd ${WORKSPACE} + + if [ -f ${BOTTLENECKS_CONFIG}/pod.yaml ]; then + echo "FILE: ${BOTTLENECKS_CONFIG}/pod.yaml:" + cat ${BOTTLENECKS_CONFIG}/pod.yaml + else + echo "ERROR: cannot find file ${BOTTLENECKS_CONFIG}/pod.yaml. Please check if it is existing." + sudo ls -al ${BOTTLENECKS_CONFIG} + fi + + # Pulling Bottlenecks docker and passing environment variables echo "INFO: pulling Bottlenecks docker ${DOCKER_TAG}" docker pull opnfv/bottlenecks:${DOCKER_TAG} >$redirect @@ -65,6 +122,7 @@ if [[ $SUITE_NAME == *posca* ]]; then ${cmd} >$redirect sleep 5 + # Running test cases through Bottlenecks docker if [[ $SUITE_NAME == posca_stress_traffic ]]; then TEST_CASE=posca_factor_system_bandwidth testcase_cmd="docker exec bottlenecks-load-master python ${POSCA_SCRIPT}/../run_testsuite.py testcase $TEST_CASE $REPORT" diff --git a/utils/create_pod_file.py b/utils/create_pod_file.py index e2c57d23f..def5ecca8 100644 --- a/utils/create_pod_file.py +++ b/utils/create_pod_file.py @@ -12,6 +12,8 @@ parser.add_argument("-u", "--user", help="Give username of this pod") parser.add_argument("-k", "--key", help="Give key file of the user") parser.add_argument("-p", "--password", help="Give password of the user") parser.add_argument("-f", "--filepath", help="Give dest path of output file") +parser.add_argument("-s", "--sshkey", default="/root/.ssh/id_rsa", + help="Give the path for ssh key") args = parser.parse_args() @@ -92,7 +94,7 @@ def create_file(handler, INSTALLER_TYPE): item['password'] = 'root' else: for item in node_list: - item['key_filename'] = '/root/.ssh/id_rsa' + item['key_filename'] = args.sshkey data = {'nodes': node_list} with open(args.filepath, "w") as fw: yaml.dump(data, fw) diff --git a/utils/test/testapi/opnfv_testapi/resources/scenario_models.py b/utils/test/testapi/opnfv_testapi/resources/scenario_models.py index 7d0770759..ec262aa2f 100644 --- a/utils/test/testapi/opnfv_testapi/resources/scenario_models.py +++ b/utils/test/testapi/opnfv_testapi/resources/scenario_models.py @@ -16,6 +16,13 @@ class ScenarioTI(models.ModelBase): self.date = date self.status = status + def __eq__(self, other): + return (self.date == other.date and + self.status == other.status) + + def __ne__(self, other): + return not self.__eq__(other) + @swagger.model() class ScenarioScore(models.ModelBase): @@ -23,6 +30,13 @@ class ScenarioScore(models.ModelBase): self.date = date self.score = score + def __eq__(self, other): + return (self.date == other.date and + self.score == other.score) + + def __ne__(self, other): + return not self.__eq__(other) + @swagger.model() class ScenarioProject(models.ModelBase): @@ -50,10 +64,10 @@ class ScenarioProject(models.ModelBase): 'trust_indicators': ScenarioTI} def __eq__(self, other): - return [self.project == other.project and + return (self.project == other.project and self._customs_eq(other) and self._scores_eq(other) and - self._ti_eq(other)] + self._ti_eq(other)) def __ne__(self, other): return not self.__eq__(other) @@ -62,10 +76,10 @@ class ScenarioProject(models.ModelBase): return set(self.customs) == set(other.customs) def _scores_eq(self, other): - return set(self.scores) == set(other.scores) + return self.scores == other.scores def _ti_eq(self, other): - return set(self.trust_indicators) == set(other.trust_indicators) + return self.trust_indicators == other.trust_indicators @swagger.model() @@ -84,9 +98,9 @@ class ScenarioVersion(models.ModelBase): return {'projects': ScenarioProject} def __eq__(self, other): - return [self.version == other.version and + return (self.version == other.version and self.owner == other.owner and - self._projects_eq(other)] + self._projects_eq(other)) def __ne__(self, other): return not self.__eq__(other) @@ -116,7 +130,7 @@ class ScenarioInstaller(models.ModelBase): return {'versions': ScenarioVersion} def __eq__(self, other): - return [self.installer == other.installer and self._versions_eq(other)] + return (self.installer == other.installer and self._versions_eq(other)) def __ne__(self, other): return not self.__eq__(other) @@ -166,7 +180,7 @@ class Scenario(models.ModelBase): return not self.__eq__(other) def __eq__(self, other): - return [self.name == other.name and self._installers_eq(other)] + return (self.name == other.name and self._installers_eq(other)) def _installers_eq(self, other): for s_install in self.installers: diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json b/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json index b6a3b83ab..980051c4f 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json @@ -8,7 +8,7 @@ [ { "owner": "Lucky", - "version": "colorado", + "version": "danube", "projects": [ { @@ -29,7 +29,7 @@ "scores": [ { "date": "2017-01-08 22:46:44", - "score": "0" + "score": "0/1" } ], "trust_indicators": [ diff --git a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py index 466caaf13..f9bb58c6b 100644 --- a/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py +++ b/utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py @@ -47,8 +47,7 @@ class TestScenarioBase(base.TestBase): req = self.req_d self.assertIsNotNone(scenario._id) self.assertIsNotNone(scenario.creation_date) - - scenario == models.Scenario.from_dict(req) + self.assertEqual(scenario, models.Scenario.from_dict(req)) @staticmethod def _set_query(*args): @@ -298,7 +297,7 @@ class TestScenarioUpdate(TestScenarioBase): @update_partial('_update', '_success') def test_changeOwner(self, scenario): new_owner = 'new_owner' - scenario['installers'][0]['versions'][0]['owner'] = 'www' + scenario['installers'][0]['versions'][0]['owner'] = new_owner return new_owner, scenario def _add(self, update_req, new_scenario):