Summary: Moving the test integration libraries into marvin for CLI work

Detail: Integration tests use these libraries (base,utils,common) for
simplifying the usage of the API. These define the verbs of each
entity's usage (create, delete, add etc). For the CLI to present the
simplified API we'll leverage the integration libraries.

+ Fixes to setup-test-data.sh - kvm and xen each use a different version
of the built-in Cent OS template, 5.5 and 5.3 namely.

At a later point the setup-test-data script needs to be obsoleted.
ostypeids in tests should directly be determined from listOsTypes API
calls

Signed-off-by: Prasanna Santhanam <tsp@apache.org> 1351520707 +0530
This commit is contained in:
Prasanna Santhanam 2012-10-29 19:55:07 +05:30
parent c68c7e2a2d
commit 802ddd43ca
39 changed files with 125 additions and 97 deletions

View File

@ -19,9 +19,9 @@
#Import Local Modules #Import Local Modules
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin import remoteSSHClient from marvin import remoteSSHClient
import datetime import datetime

View File

@ -19,9 +19,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
import datetime import datetime

View File

@ -18,9 +18,9 @@
""" """
import marvin import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.common import * from marvin.integration.lib.common import *
#Import Local Modules #Import Local Modules
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *

View File

@ -23,9 +23,9 @@ from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
#Import System modules #Import System modules
import time import time

View File

@ -22,9 +22,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -22,9 +22,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
#Import System modules #Import System modules

View File

@ -22,9 +22,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
#Import System modules #Import System modules

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import urllib import urllib
from random import random from random import random

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
import datetime import datetime

View File

@ -21,9 +21,9 @@ import marvin
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
#Import System modules #Import System modules
import os import os

View File

@ -20,9 +20,9 @@
import marvin import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
class Services: class Services:

View File

@ -20,9 +20,9 @@
import marvin import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
#Import System modules #Import System modules

View File

@ -20,9 +20,9 @@
import marvin import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
import urllib import urllib
from random import random from random import random

View File

@ -21,9 +21,9 @@ import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin import remoteSSHClient from marvin import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
#Import System modules #Import System modules
import time import time

View File

@ -20,10 +20,10 @@
import marvin import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
from integration.lib.common import *
#Import System modules #Import System modules
import time import time

View File

@ -21,9 +21,9 @@ import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin import remoteSSHClient from marvin import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
#Import System modules #Import System modules
import time import time

View File

@ -20,9 +20,9 @@
import marvin import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
#Import System modules #Import System modules

View File

@ -20,9 +20,9 @@
import marvin import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr

View File

@ -21,9 +21,9 @@ import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin import remoteSSHClient from marvin import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
import telnetlib import telnetlib

View File

@ -21,9 +21,9 @@ import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
import urllib import urllib
from random import random from random import random

View File

@ -21,9 +21,9 @@ import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
#Import System modules #Import System modules
import time import time

View File

@ -21,9 +21,9 @@ import marvin
from marvin.cloudstackTestCase import * from marvin.cloudstackTestCase import *
from marvin.cloudstackAPI import * from marvin.cloudstackAPI import *
from marvin.remoteSSHClient import remoteSSHClient from marvin.remoteSSHClient import remoteSSHClient
from integration.lib.utils import * from marvin.integration.lib.utils import *
from integration.lib.base import * from marvin.integration.lib.base import *
from integration.lib.common import * from marvin.integration.lib.common import *
from nose.plugins.attrib import attr from nose.plugins.attrib import attr
#Import System modules #Import System modules
import os import os

View File

@ -20,6 +20,7 @@ usage() {
printf "Usage: %s:\n printf "Usage: %s:\n
[-t path to tests ] \n [-t path to tests ] \n
[-m mgmt-server ] \n [-m mgmt-server ] \n
[-h hypervisor (xen|kvm) ] \n
[-p hypervisor root password ] \n [-p hypervisor root password ] \n
[-d db node url ]\n" $(basename $0) >&2 [-d db node url ]\n" $(basename $0) >&2
} }
@ -34,7 +35,7 @@ MGMT_SVR="localhost"
DB_SVR="localhost" DB_SVR="localhost"
HV_PASSWD="password" HV_PASSWD="password"
while getopts 't:d:m:p:' OPTION while getopts 't:d:m:p:h:' OPTION
do do
case $OPTION in case $OPTION in
d) dflag=1 d) dflag=1
@ -46,6 +47,9 @@ do
m) mflag=1 m) mflag=1
MGMT_SVR="$OPTARG" MGMT_SVR="$OPTARG"
;; ;;
h) hflag=1
HV="$OPTARG"
;;
p) pflag=1 p) pflag=1
HV_PASSWD="$OPTARG" HV_PASSWD="$OPTARG"
;; ;;
@ -56,7 +60,11 @@ do
done done
#Damn Small Linux ISO type #Damn Small Linux ISO type
ostypeid=$(mysql -ucloud -Dcloud -pcloud -h$DB_SVR -s -N -r -e"select uuid from guest_os where display_name='CentOS 5.5 (64-bit)'") if [[ $HV == "kvm" ]]; then
ostypeid=$(mysql -ucloud -Dcloud -pcloud -h$DB_SVR -s -N -r -e"select uuid from guest_os where display_name='CentOS 5.5 (64-bit)'")
else:
ostypeid=$(mysql -ucloud -Dcloud -pcloud -h$DB_SVR -s -N -r -e"select uuid from guest_os where display_name='CentOS 5.3 (64-bit)'")
fi
if [[ $ostypeid == "" ]]; then if [[ $ostypeid == "" ]]; then
echo "Unable to contact DB server @ $DB_SVR" echo "Unable to contact DB server @ $DB_SVR"
exit 2 exit 2

View File

@ -350,7 +350,7 @@ class deployDataCenters():
return apiKey, securityKey return apiKey, securityKey
def getCfg(self): def getCfg(self):
if self.config: if self.config is not None:
return self.config return self.config
return None return None

View File

@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

View File

@ -102,11 +102,11 @@ class MarvinPlugin(Plugin):
self._injectClients(cls) self._injectClients(cls)
def setClient(self, client): def setClient(self, client):
if client: if client is not None:
self.testclient = client self.testclient = client
def setConfig(self, config): def setConfig(self, config):
if config: if config is not None:
self.config = config self.config = config
def _injectClients(self, test): def _injectClients(self, test):

View File

@ -34,7 +34,9 @@ setup(name="Marvin",
long_description="Marvin is the cloudstack testclient written around the python unittest framework", long_description="Marvin is the cloudstack testclient written around the python unittest framework",
platforms=("Any",), platforms=("Any",),
url="http://jenkins.cloudstack.org:8080/job/marvin", url="http://jenkins.cloudstack.org:8080/job/marvin",
packages=["marvin", "marvin.cloudstackAPI", "marvin.sandbox", "marvin.sandbox.advanced", "marvin.sandbox.basic"], packages=["marvin", "marvin.cloudstackAPI", "marvin.integration",
"marvin.integration.lib", "marvin.sandbox",
"marvin.sandbox.advanced", "marvin.sandbox.basic"],
license="LICENSE.txt", license="LICENSE.txt",
install_requires=[ install_requires=[
"mysql-connector-python", "mysql-connector-python",