summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jjb/apex/apex.yml13
-rw-r--r--jjb/apex/apex.yml.j213
-rw-r--r--jjb/bottlenecks/bottlenecks-run-suite.sh58
-rw-r--r--jjb/calipso/calipso.yml2
-rw-r--r--jjb/daisy4nfv/daisy-daily-jobs.yml4
-rwxr-xr-xjjb/dovetail/dovetail-run.sh2
-rw-r--r--jjb/functest/functest-alpine.sh4
-rwxr-xr-xjjb/functest/set-functest-env.sh12
-rw-r--r--jjb/releng/opnfv-docker.yml5
-rw-r--r--jjb/storperf/storperf-daily-jobs.yml175
-rw-r--r--jjb/storperf/storperf.yml72
-rw-r--r--utils/create_pod_file.py4
-rw-r--r--utils/push-test-logs.sh1
-rw-r--r--utils/test/testapi/opnfv_testapi/resources/scenario_models.py30
-rw-r--r--utils/test/testapi/opnfv_testapi/tests/unit/resources/scenario-c2.json4
-rw-r--r--utils/test/testapi/opnfv_testapi/tests/unit/resources/test_scenario.py5
16 files changed, 312 insertions, 92 deletions
diff --git a/jjb/apex/apex.yml b/jjb/apex/apex.yml
index 07181fcad..4c543bf66 100644
--- a/jjb/apex/apex.yml
+++ b/jjb/apex/apex.yml
@@ -617,6 +617,7 @@
- 'functest.*'
- 'yardstick.*'
- 'dovetail.*'
+ - 'storperf.*'
- throttle:
max-per-node: 1
max-total: 10
@@ -778,6 +779,18 @@
enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|nosdn-kvm|odl_l3-fdio)-ha/"
abort-all-job: false
git-revision: false
+ - multijob:
+ name: StorPerf
+ condition: ALWAYS
+ projects:
+ - name: 'storperf-apex-baremetal-daily-{scenario_stream}'
+ node-parameters: true
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ kill-phase-on: NEVER
+ abort-all-job: false
+ git-revision: false
# Build status is always success due conditional plugin prefetching
# build status before multijob phases execute
# - conditional-step:
diff --git a/jjb/apex/apex.yml.j2 b/jjb/apex/apex.yml.j2
index 2d760f854..bd72bf649 100644
--- a/jjb/apex/apex.yml.j2
+++ b/jjb/apex/apex.yml.j2
@@ -529,6 +529,7 @@
- 'functest.*'
- 'yardstick.*'
- 'dovetail.*'
+ - 'storperf.*'
- throttle:
max-per-node: 1
max-total: 10
@@ -690,6 +691,18 @@
enable-condition: "def m = '$DEPLOY_SCENARIO' ==~ /os-(nosdn-nofeature|nosdn-kvm|odl_l3-fdio)-ha/"
abort-all-job: false
git-revision: false
+ - multijob:
+ name: StorPerf
+ condition: ALWAYS
+ projects:
+ - name: 'storperf-apex-baremetal-daily-{scenario_stream}'
+ node-parameters: true
+ current-parameters: false
+ predefined-parameters:
+ DEPLOY_SCENARIO=$DEPLOY_SCENARIO
+ kill-phase-on: NEVER
+ abort-all-job: false
+ git-revision: false
# Build status is always success due conditional plugin prefetching
# build status before multijob phases execute
# - conditional-step:
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/jjb/calipso/calipso.yml b/jjb/calipso/calipso.yml
index 2bed27bbc..c5ba8eb1e 100644
--- a/jjb/calipso/calipso.yml
+++ b/jjb/calipso/calipso.yml
@@ -20,6 +20,8 @@
- project-parameter:
project: '{project}'
branch: '{branch}'
+ - 'opnfv-build-defaults'
+
scm:
- git-scm-gerrit
diff --git a/jjb/daisy4nfv/daisy-daily-jobs.yml b/jjb/daisy4nfv/daisy-daily-jobs.yml
index d7c1acbe0..84cc2a4c2 100644
--- a/jjb/daisy4nfv/daisy-daily-jobs.yml
+++ b/jjb/daisy4nfv/daisy-daily-jobs.yml
@@ -199,7 +199,7 @@
- trigger:
name: 'daisy-os-nosdn-nofeature-ha-virtual-daily-master-trigger'
triggers:
- - timed: '0 12 * * *'
+ - timed: '0 16 * * *'
# Basic NOHA Scenarios
- trigger:
name: 'daisy-os-nosdn-nofeature-noha-virtual-daily-master-trigger'
@@ -209,4 +209,4 @@
- trigger:
name: 'daisy-os-odl-nofeature-ha-virtual-daily-master-trigger'
triggers:
- - timed: '0 16 * * *'
+ - timed: '0 12 * * *'
diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh
index d05b309cd..346a1ef08 100755
--- a/jjb/dovetail/dovetail-run.sh
+++ b/jjb/dovetail/dovetail-run.sh
@@ -173,7 +173,7 @@ cat << EOF >$tempest_conf_file
compute:
min_compute_nodes: 2
volume_device_name: ${volume_device}
- min_microversion: 2.0
+ min_microversion: 2.2
max_microversion: latest
compute-feature-enabled:
diff --git a/jjb/functest/functest-alpine.sh b/jjb/functest/functest-alpine.sh
index 9084ccaa7..da098862a 100644
--- a/jjb/functest/functest-alpine.sh
+++ b/jjb/functest/functest-alpine.sh
@@ -67,9 +67,9 @@ fi
volumes="${images_vol} ${results_vol} ${sshkey_vol} ${rc_file_vol} ${cacert_file_vol}"
-tiers=(healthcheck smoke)
+tiers=(healthcheck smoke features vnf)
for tier in ${tiers[@]}; do
- FUNCTEST_IMAGE=opnfv/functest-${tier}
+ FUNCTEST_IMAGE=ollivier/functest-${tier}
echo "Functest: Pulling Functest Docker image ${FUNCTEST_IMAGE} ..."
docker pull ${FUNCTEST_IMAGE}>/dev/null
cmd="docker run ${envs} ${volumes} ${FUNCTEST_IMAGE}"
diff --git a/jjb/functest/set-functest-env.sh b/jjb/functest/set-functest-env.sh
index f6071e37a..7d9e737e7 100755
--- a/jjb/functest/set-functest-env.sh
+++ b/jjb/functest/set-functest-env.sh
@@ -33,8 +33,9 @@ if [ "$BRANCH" != 'stable/danube' ]; then
echo "Functest: Download images that will be used by test cases"
images_dir="${HOME}/opnfv/functest/images"
chmod +x ${WORKSPACE}/functest/ci/download_images.sh
- ${WORKSPACE}/functest/ci/download_images.sh ${images_dir} ${DEPLOY_SCENARIO} ${HOST_ARCH} 2> ${redirect}
+ ${WORKSPACE}/functest/ci/download_images.sh ${images_dir}
images_vol="-v ${images_dir}:/home/opnfv/functest/images"
+ echo "Functest: Images successfully downloaded"
fi
dir_result="${HOME}/opnfv/functest/results/${BRANCH##*/}"
@@ -43,11 +44,18 @@ sudo rm -rf ${dir_result}/*
results_vol="-v ${dir_result}:/home/opnfv/functest/results"
custom_params=
test -f ${HOME}/opnfv/functest/custom/params_${DOCKER_TAG} && custom_params=$(cat ${HOME}/opnfv/functest/custom/params_${DOCKER_TAG})
+echo "Functest: custom parameters successfully retrieved: ${custom_params}"
envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} \
-e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
-e BUILD_TAG=${BUILD_TAG} -e CI_DEBUG=${CI_DEBUG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"
+if [[ ${INSTALLER_TYPE} == 'fuel' && ! -z ${SALT_MASTER_IP} ]]; then
+ HOST_ARCH=$(ssh -l ubuntu ${SALT_MASTER_IP} -i ${SSH_KEY} -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
+ "sudo salt 'cmp*' grains.get cpuarch --out yaml |awk '{print \$2; exit}'")
+ envs="${envs} -e POD_ARCH=${HOST_ARCH}"
+fi
+
if [[ ${INSTALLER_TYPE} == 'compass' && ${DEPLOY_SCENARIO} == *'os-nosdn-openo-ha'* ]]; then
ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
openo_msb_port=${openo_msb_port:-80}
@@ -64,6 +72,8 @@ else
volumes="${results_vol} ${sshkey_vol} ${stackrc_vol} ${rc_file_vol}"
fi
+echo "Functest: volumes defined"
+
FUNCTEST_IMAGE="opnfv/functest"
if [ "$HOST_ARCH" = "aarch64" ]; then
FUNCTEST_IMAGE="${FUNCTEST_IMAGE}_${HOST_ARCH}"
diff --git a/jjb/releng/opnfv-docker.yml b/jjb/releng/opnfv-docker.yml
index 7e605b9cb..9d27329ed 100644
--- a/jjb/releng/opnfv-docker.yml
+++ b/jjb/releng/opnfv-docker.yml
@@ -70,6 +70,11 @@
dockerdir: 'docker/storperf-reporting'
<<: *master
<<: *other-receivers
+ - 'storperf-swaggerui':
+ project: 'storperf'
+ dockerdir: 'docker/storperf-swaggerui'
+ <<: *master
+ <<: *other-receivers
- 'yardstick':
project: 'yardstick'
<<: *master
diff --git a/jjb/storperf/storperf-daily-jobs.yml b/jjb/storperf/storperf-daily-jobs.yml
new file mode 100644
index 000000000..e849e29e1
--- /dev/null
+++ b/jjb/storperf/storperf-daily-jobs.yml
@@ -0,0 +1,175 @@
+###################################
+# job configuration for storperf
+###################################
+- project:
+ name: storperf-daily
+
+ project: storperf
+
+#--------------------------------
+# BRANCH ANCHORS
+#--------------------------------
+ master: &master
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+ docker-tag: 'latest'
+#--------------------------------
+# POD, INSTALLER, AND BRANCH MAPPING
+#--------------------------------
+# Installers using labels
+# CI PODs
+# This section should only contain the installers
+# that have been switched using labels for slaves
+#--------------------------------
+ pod:
+## fuel CI PODs
+# - baremetal:
+# slave-label: fuel-baremetal
+# installer: fuel
+# <<: *master
+# - virtual:
+# slave-label: fuel-virtual
+# installer: fuel
+# <<: *master
+## joid CI PODs
+# - baremetal:
+# slave-label: joid-baremetal
+# installer: joid
+# <<: *master
+# - virtual:
+# slave-label: joid-virtual
+# installer: joid
+# <<: *master
+## compass CI PODs
+# - baremetal:
+# slave-label: compass-baremetal
+# installer: compass
+# <<: *master
+# - virtual:
+# slave-label: compass-virtual
+# installer: compass
+# <<: *master
+## apex CI PODs
+# - virtual:
+# slave-label: apex-virtual-master
+# installer: apex
+# <<: *master
+ - baremetal:
+ slave-label: apex-baremetal-master
+ installer: apex
+ <<: *master
+## armband CI PODs
+# - armband-baremetal:
+# slave-label: armband-baremetal
+# installer: fuel
+# <<: *master
+# - armband-virtual:
+# slave-label: armband-virtual
+# installer: fuel
+# <<: *master
+## daisy CI PODs
+# - baremetal:
+# slave-label: daisy-baremetal
+# installer: daisy
+# <<: *master
+# - virtual:
+# slave-label: daisy-virtual
+# installer: daisy
+# <<: *master
+
+ jobs:
+ - 'storperf-{installer}-{pod}-daily-{stream}'
+
+################################
+# job template
+################################
+- job-template:
+ name: 'storperf-{installer}-{pod}-daily-{stream}'
+
+ concurrent: true
+
+ properties:
+ - logrotate-default
+ - throttle:
+ enabled: true
+ max-per-node: 1
+ option: 'project'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO'
+ - timeout:
+ timeout: '30'
+ abort: true
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - '{installer}-defaults'
+ - '{slave-label}-defaults'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: 'os-odl_l2-nofeature-ha'
+ - string:
+ name: DOCKER_TAG
+ default: '{docker-tag}'
+ description: 'Tag to pull docker image'
+ - string:
+ name: CLEAN_DOCKER_IMAGES
+ default: 'false'
+ description: 'Remove downloaded docker images (opnfv/storperf*:*)'
+ - string:
+ name: GS_PATHNAME
+ default: '{gs-pathname}'
+ description: "Version directory where the opnfv documents will be stored in gs repository"
+ - string:
+ name: DISK_TYPE
+ default: 'HDD'
+ description: 'The type of hard disk that Cinder uses'
+ - string:
+ name: VOLUME_SIZE
+ default: '2'
+ description: 'Size of Cinder volume (in GB)'
+ - string:
+ name: WORKLOADS
+ default: 'rw'
+ description: 'Workloads to run'
+ - string:
+ name: BLOCK_SIZES
+ default: '16384'
+ description: 'Block sizes for VM I/O operations'
+ - string:
+ name: QUEUE_DEPTHS
+ default: '4'
+ description: 'Number of simultaneous I/O operations to keep active'
+ - string:
+ name: STEADY_STATE_SAMPLES
+ default: '10'
+ description: 'Number of samples to use (1 per minute) to measure steady state'
+ - string:
+ name: TEST_CASE
+ choices:
+ - 'snia_steady_state'
+ description: 'The test case to run'
+
+ scm:
+ - git-scm
+
+ builders:
+ - description-setter:
+ description: "Built on $NODE_NAME"
+ - 'storperf-daily-builder'
+
+########################
+# builder macros
+########################
+- builder:
+ name: storperf-daily-builder
+ builders:
+ - shell: |
+ #!/bin/bash
+
+ cd $WORKSPACE
+ ./ci/daily.sh
diff --git a/jjb/storperf/storperf.yml b/jjb/storperf/storperf.yml
index f675cbb2a..626c5c332 100644
--- a/jjb/storperf/storperf.yml
+++ b/jjb/storperf/storperf.yml
@@ -6,7 +6,6 @@
jobs:
- 'storperf-verify-{stream}'
- 'storperf-merge-{stream}'
- - 'storperf-daily-{stream}'
stream:
- master:
@@ -138,74 +137,3 @@
failing: 30
- email-jenkins-admins-on-failure
-- job-template:
- name: 'storperf-daily-{stream}'
-
- # Job template for daily builders
- #
- # Required Variables:
- # stream: branch with - in place of / (eg. stable)
- # branch: branch (eg. stable)
- disabled: '{obj:disabled}'
-
- parameters:
- - project-parameter:
- project: '{project}'
- branch: '{branch}'
- - 'intel-pod9-defaults'
- - string:
- name: DEPLOY_SCENARIO
- default: 'os-nosdn-nofeature-noha'
- - string:
- name: DOCKER_TAG
- default: '{docker-tag}'
- description: 'Tag to pull docker image'
- - choice:
- name: DISK_TYPE
- choices:
- - 'SSD'
- - 'HDD'
- default: 'HDD'
- description: 'The type of hard disk that Cinder uses'
- - string:
- name: AGENT_COUNT
- description: 'The number of slave agents to start. Defaults to the cinder node count'
- - string:
- name: VOLUME_SIZE
- default: '4'
- description: 'Size of Cinder volume (in GB)'
- - string:
- name: WORKLOADS
- default: 'wr,rr,rw'
- description: 'Workloads to run'
- - string:
- name: BLOCK_SIZES
- default: '2048,16384'
- description: 'Block sizes for VM I/O operations'
- - string:
- name: QUEUE_DEPTHS
- default: '1,4'
- description: 'Number of simultaneous I/O operations to keep active'
- - string:
- name: STEADY_STATE_SAMPLES
- default: '10'
- description: 'Number of samples to use (1 per minute) to measure steady state'
- - string:
- name: DEADLINE
- description: 'Maximum run time in minutes if steady state cannot be found. Defaults to 3 times steady state samples'
- - choice:
- name: TEST_CASE
- choices:
- - 'snia_steady_state'
- description: 'The test case to run'
-
- scm:
- - git-scm
-
- triggers:
- - timed: '0 22 * * *'
-
- builders:
- - shell: |
- $WORKSPACE/ci/daily.sh
-
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/push-test-logs.sh b/utils/push-test-logs.sh
index eb57deb7b..79190ec2f 100644
--- a/utils/push-test-logs.sh
+++ b/utils/push-test-logs.sh
@@ -31,6 +31,7 @@ node_list=(\
'huawei-pod1' 'huawei-pod2' 'huawei-pod3' 'huawei-pod4' 'huawei-pod5' \
'huawei-pod6' 'huawei-pod7' 'huawei-pod12' \
'huawei-virtual1' 'huawei-virtual2' 'huawei-virtual3' 'huawei-virtual4' \
+'huawei-virtual5' 'huawei-virtual8' 'huawei-virtual9' \
'zte-pod2' \
'zte-virtual1')
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):