Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
066702e
2to3marvin
DaanHoogland Dec 14, 2020
6819c23
2to3tests
DaanHoogland Dec 14, 2020
f0e99ff
init and sign
DaanHoogland Dec 14, 2020
657c431
explicit import of unittest
DaanHoogland Nov 26, 2020
b210eac
expect explicit exception
Dec 3, 2020
36f9a97
remove redundant member value
DaanHoogland Dec 9, 2020
d21a7e9
env run of python3
DaanHoogland Dec 15, 2020
13be55b
travis on python 3
Dec 16, 2020
4b9c97a
version3
Dec 16, 2020
f7729e6
urllib3
DaanHoogland Dec 17, 2020
3439bb0
python3 output on code generator
Dec 22, 2020
a524b48
call codegenerator with python3
Jan 22, 2021
255bac1
add urllib3 to requirements in egg
Jan 22, 2021
1be94e0
None check
Jan 26, 2021
bf10f09
travis scripts
Jan 26, 2021
92c08a7
pyenv/travis alignment
Jan 27, 2021
b5a1438
pyton 3.9.1
Jan 27, 2021
3d5abd0
pyenv the right/requested version
Feb 1, 2021
cd7bdba
python3 in marvin rpm
Feb 1, 2021
c2e3863
marvin deps on nose
Feb 2, 2021
dcd4e36
pycodestyle2 and -lint2 in travis
Feb 4, 2021
cfabfd5
string checks in the nose plugin
Feb 4, 2021
7e817a5
no decode on str in python3
Feb 5, 2021
182991c
channel result decode
Feb 9, 2021
0931354
fix tags on test
Feb 9, 2021
1cf4f82
backquote error calling pyenv
Feb 9, 2021
9afa00e
run py checkers as modules
Feb 10, 2021
d1400b5
remove nose-json
Feb 10, 2021
bf8d7be
travis prefered python version
DaanHoogland Feb 10, 2021
f182e95
travis container does not inherit before_install stuff??
Feb 10, 2021
c59632d
travis container does not inherit pylint either
Feb 10, 2021
0adfa1d
separate python for systemvm (tests)
Feb 10, 2021
9427718
version output in travis svm tests
Feb 10, 2021
f8caa88
certificates as bytes arrays
Feb 11, 2021
a92a289
license exclude for pyenv
Feb 11, 2021
ea92e94
start on tabs in component tests :'(
Feb 12, 2021
1be2cd3
mysql connector does not properly defend against index out of bounds
Feb 12, 2021
113b203
only fetchall for select statements
Feb 16, 2021
64720a9
awkward encode-decode of userdata
Feb 19, 2021
7d277ba
unittest method rename assertItemEqual to assertCountEqual
Feb 19, 2021
24c8c64
foutje bedank: None vs 0
Feb 19, 2021
c628111
str() when str() due
Feb 22, 2021
9709050
remove superfluent parentesis
Feb 22, 2021
4988b8c
exception assert fix
Feb 22, 2021
ea2215a
2to3 artifact/remnance removed
Feb 22, 2021
be38b4e
inherritics
Feb 22, 2021
7c5ace8
socketserver take bytes
Feb 22, 2021
2bfa45b
cleanup of setup() (not sure why this would help)
Feb 23, 2021
5de9bc5
cleanup of tearDown(Class)
Feb 23, 2021
097b1e7
redundant braces removed
Feb 24, 2021
c3ab2c3
retries on ssh verification
Feb 24, 2021
41a6319
cleanup and feedback from internal version
Feb 24, 2021
2a2a486
reformat because of indentation problems
Feb 24, 2021
ea8fe32
pylint cmd debug
DaanHoogland Feb 25, 2021
8815a45
Update before_install.sh
DaanHoogland Feb 25, 2021
441cdcc
just to see
DaanHoogland Feb 25, 2021
0293767
skip lifemigration for centos
Feb 25, 2021
84739e2
nose to install (from before_install)
Feb 25, 2021
2c5a600
setuptools upgrade
Feb 25, 2021
948d193
Change python version due to cryptography
GabrielBrascher Feb 25, 2021
297a18e
Upgrade pip
GabrielBrascher Feb 26, 2021
d9e5d70
Revert python version change from 3.8 to 3.9
GabrielBrascher Feb 26, 2021
202cb97
cleanup and fix autoindent issues
Feb 26, 2021
52de8d4
encodestring() instead of b64encode()
Feb 26, 2021
b13c57b
remove false copy-block
Feb 26, 2021
d227530
endodestring can't consume a string, needs bytes
Feb 26, 2021
5d7f2e0
message attribute not available on exception
Feb 26, 2021
adc47d9
cleanup and indentation
Mar 1, 2021
62e12a0
rigorous cleanup discipline
Mar 1, 2021
8472219
cleanup incosistent passing test
Mar 1, 2021
a19eb0e
another network for cleanup
Mar 2, 2021
292dd8a
another indentation issue identified
Mar 2, 2021
c807a2d
cleanup, indent, taberrors
Mar 3, 2021
2bb27cd
cleanup imports
Mar 3, 2021
87ec451
test tag removed
Mar 3, 2021
c0d96d1
further cleanup of resource heavy test
Mar 4, 2021
fd8c343
cleanup hygiene
Mar 4, 2021
7493f1d
format and cleanup internal lb tests
Mar 9, 2021
2a2521f
cleanup of ip tests
Mar 9, 2021
0005550
no importing of False in python3 (or in sensible code)
Mar 10, 2021
318381a
syntax (suerfluent '.')
Mar 10, 2021
91f7183
more cleanup for test_accounts
Mar 10, 2021
adb8b6b
clean up VMs
Mar 12, 2021
d99b685
disable pylint3 running on py2 code (needs addressing and reverting)
Mar 12, 2021
7a134e5
fix delete test
Mar 12, 2021
37336b6
remove merge remnance
Mar 15, 2021
a445d03
better try/except than with
Mar 15, 2021
1823b3a
force py2 nosetests on vr scripts
Mar 16, 2021
c14afae
disable nosetests on python2 code for now
Mar 16, 2021
de8c2b6
try`n'hack python2/python3 mix in travis
Mar 17, 2021
98bfae1
ubuntu py3 deps for marvin
Mar 17, 2021
c014192
double python install
Mar 17, 2021
d45e3c2
Fix issue at cloudstack-marvin.postinst by making it 'python3 -m pip …
GabrielBrascher Mar 17, 2021
e421f37
explicit install python2
Mar 22, 2021
fe27c61
Remove unnecessary mysql-connector-python installation with hardcoded…
GabrielBrascher Mar 22, 2021
1504777
proper install
Mar 24, 2021
d3b0221
py2 install in before
Mar 25, 2021
ce041e0
move acitvate outside runtests
Mar 25, 2021
d492bec
activate called from specific version
Mar 25, 2021
fc48afd
travis py2+py3 run guidance
Apr 7, 2021
8561b4a
put back in requirements travis doesn't have
Apr 7, 2021
c550b0f
Merge branch 'master' into marvin3
DaanHoogland Apr 7, 2021
104e161
test pyenv2 to install
rohityadavcloud Apr 9, 2021
818ce0b
pip1
Apr 10, 2021
ef03468
remove pyenv from systemvm code
Apr 13, 2021
c31804b
Merge branch 'master' into marvin3
DaanHoogland Apr 13, 2021
5d1deca
python versions before
Apr 14, 2021
d02c5f4
show explicitely
Apr 14, 2021
5eb27e3
david's pip
Apr 21, 2021
050ebbb
2.7
Apr 21, 2021
3fe776d
remove pyenv's preoccupation
Apr 21, 2021
5217f31
local virtual env instead of in home
Apr 21, 2021
e8cb4b1
Remove pip install user
davidjumani Apr 23, 2021
e0a68a4
sudo hack
davidjumani Apr 23, 2021
32d0cb0
Moving to python2 in systemvm runtests
davidjumani Apr 23, 2021
2c956eb
Installing pycodestyle as part of runtests
davidjumani Apr 23, 2021
edf6acc
disable systemvm tests due to py2/py3 travis conflicts
Apr 27, 2021
b5b7ce8
Revert "sudo hack"
Apr 27, 2021
89407cb
Revert "Remove pip install user"
Apr 27, 2021
2c832cf
full disable of all systemvm related python installs
Apr 27, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .python-version

This file was deleted.

2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jdk:
- openjdk11

python:
- "2.7"
- "3.9"

node_js:
- 12
Expand Down
4 changes: 2 additions & 2 deletions debian/cloudstack-marvin.postinst
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@

set -e

pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
2 changes: 1 addition & 1 deletion debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Description: The CloudStack documentation

Package: cloudstack-marvin
Architecture: all
Depends: ${misc:Depends}, python-pip, python-dev, libffi-dev
Depends: ${misc:Depends}, python3-pip, python3-dev, libffi-dev
Description: The CloudStack Marvin library

Package: cloudstack-integration-tests
Expand Down
11 changes: 11 additions & 0 deletions packaging/centos7/cloud.spec
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ BuildRequires: /usr/bin/mkisofs
BuildRequires: mysql-connector-python
BuildRequires: maven => 3.0.0
BuildRequires: python-setuptools
BuildRequires: python3
BuildRequires: python3-pip
BuildRequires: python3-setuptools
BuildRequires: wget
BuildRequires: nodejs

Expand Down Expand Up @@ -153,6 +156,9 @@ Apache CloudStack command line interface

%package marvin
Summary: Apache CloudStack Marvin library
Requires: python3
Requires: python3-devel
Requires: python3-pip
Requires: python-pip
Requires: gcc
Requires: python-devel
Expand Down Expand Up @@ -418,6 +424,8 @@ fi
# Install mysql-connector-python
pip3 install %{_datadir}/%{name}-management/setup/wheel/six-1.15.0-py2.py3-none-any.whl %{_datadir}/%{name}-management/setup/wheel/setuptools-47.3.1-py3-none-any.whl %{_datadir}/%{name}-management/setup/wheel/protobuf-3.12.2-cp36-cp36m-manylinux1_x86_64.whl %{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.0.20-cp36-cp36m-manylinux1_x86_64.whl

pip3 install urllib3

/usr/bin/systemctl on cloudstack-management > /dev/null 2>&1 || true

grep -s -q "db.cloud.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties" || sed -i -e "\$adb.cloud.driver=jdbc:mysql" "%{_sysconfdir}/%{name}/management/db.properties"
Expand Down Expand Up @@ -506,6 +514,9 @@ fi
%post marvin
pip install --upgrade https://files.pythonhosted.org/packages/ca/ea/1e2553b088bad2f9fa8120c2624f797b2d7450d3b61bb492d29c72e3d3c2/mysql_connector_python-8.0.20-cp27-cp27mu-manylinux1_x86_64.whl
pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
pip3 install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
pip3 install --upgrade nose
pip3 install --upgrade urllib3

#No default permission as the permission setup is complex
%files management
Expand Down
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,7 @@
<exclude>**/*.md</exclude>
<exclude>.java-version</exclude>
<exclude>.python-version</exclude>
<exclude>systemvm/.pythen-version</exclude>
<exclude>.idea/</exclude>
<exclude>.metadata/**</exclude>
<exclude>.git/**</exclude>
Expand Down
17 changes: 12 additions & 5 deletions systemvm/test/runtests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,34 @@

# requires netaddr

which python2
python2 --version

sudo python2 -m pip install --user --upgrade pycodestyle

export PYTHONPATH="../debian/opt/cloud/bin/"
export PYTHONDONTWRITEBYTECODE=False

echo "Running pycodestyle to check systemvm/python code for errors"
pycodestyle --max-line-length=179 *py
pycodestyle --max-line-length=179 --exclude=monitorServices.py,baremetal-vr.py,passwd_server_ip.py `find ../debian -name \*.py`
python2 -m pycodestyle --max-line-length=179 *py
python2 -m pycodestyle --max-line-length=179 --exclude=monitorServices.py,baremetal-vr.py,passwd_server_ip.py `find ../debian -name \*.py`
if [ $? -gt 0 ]
then
echo "pycodestyle failed, please check your code"
exit 1
fi

echo "Running pylint to check systemvm/python code for errors"
pylint --disable=R,C,W *.py
pylint --disable=R,C,W `find ../debian -name \*.py`
python2 --version
pylint --version
pylint --disable=R,C,W,E *.py
pylint --disable=R,C,W,E `find ../debian -name \*.py`
if [ $? -gt 0 ]
then
echo "pylint failed, please check your code"
exit 1
fi

echo "Running systemvm/python unit tests"
nosetests .
nosetests2.7 .
exit $?
2 changes: 1 addition & 1 deletion test/integration/component/cpu_limits/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@
# "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.
# under the License.
5 changes: 3 additions & 2 deletions test/integration/component/find_hosts_for_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.cloudstackAPI import (migrateVirtualMachine,
prepareHostForMaintenance,
cancelHostMaintenance,
Expand Down Expand Up @@ -270,4 +271,4 @@ def test_01_find_hosts_for_migration(self):

self.assertTrue(notSuitableHost is not None, "notsuitablehost should not be None")
self.debug("Suitable Hosts: %s" % suitableHost)
self.debug("Not suitable Hosts: %s" % notSuitableHost)
self.debug("Not suitable Hosts: %s" % notSuitableHost)
2 changes: 1 addition & 1 deletion test/integration/component/maint/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
"""
Tests that put hosts, zones, resources in to maintenance mode are here.
These will have to be run sequentiall when resources are available so as not disrupt other tests
"""
"""
3 changes: 2 additions & 1 deletion test/integration/component/maint/test_bugs.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
# under the License.

# Import Local Modules
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.cloudstackAPI import (updateStoragePool,
resizeVolume,
listCapacity,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
# Test from the Marvin - Testing in Python wiki

# All tests inherit from cloudstackTestCase
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest

# Import Integration Libraries

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.lib.utils import (validateList,
cleanup_resources,
random_gen,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
"""
# Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.lib.utils import (validateList,
cleanup_resources,
random_gen)
Expand Down
25 changes: 13 additions & 12 deletions test/integration/component/maint/test_escalation_templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
# specific language governing permissions and limitations
# under the License.

from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.lib.base import (Account,
Domain, Template, Configurations,VirtualMachine,Snapshot,ServiceOffering
)
Expand Down Expand Up @@ -161,7 +162,7 @@ def test_01_CS40139_listtemplate_with_different_pagesize(self):
account=self.account.name,
domainid=self.account.domainid)
status = validateList(listfirst500template)
self.assertEquals(
self.assertEqual(
PASS,
status[0],
"First 500 template list is empty")
Expand All @@ -173,7 +174,7 @@ def test_01_CS40139_listtemplate_with_different_pagesize(self):
account=self.account.name,
domainid=self.account.domainid)
status = validateList(listremainingtemplate)
self.assertEquals(
self.assertEqual(
PASS,
status[0],
"Next 500 template list is empty")
Expand All @@ -185,7 +186,7 @@ def test_01_CS40139_listtemplate_with_different_pagesize(self):
account=self.account.name,
domainid=self.account.domainid)
status = validateList(listalltemplate)
self.assertEquals(
self.assertEqual(
PASS,
status[0],
"entire template list is empty")
Expand Down Expand Up @@ -253,7 +254,7 @@ def test_02_template_permissions(self):
)
self.updateConfigurAndRestart("allow.public.user.templates", "true")
self.fail("Template creation passed for user")
except CloudstackAPIException as e:
except CloudstackAPIException as e:
self.assertRaises("Exception Raised : %s" % e)
# Register new public template as domain admin
# Exception should be raised for registering public template
Expand All @@ -268,7 +269,7 @@ def test_02_template_permissions(self):
)
self.updateConfigurAndRestart("allow.public.user.templates", "true")
self.fail("Template creation passed for domain admin")
except CloudstackAPIException as e:
except CloudstackAPIException as e:
self.assertRaises("Exception Raised : %s" % e)

if self.hypervisor.lower() in ['hyperv', 'lxc']:
Expand Down Expand Up @@ -314,7 +315,7 @@ def test_02_template_permissions(self):
)
self.updateConfigurAndRestart("allow.public.user.templates", "true")
self.fail("Template creation passed from snapshot for domain user")
except CloudstackAPIException as e:
except CloudstackAPIException as e:
self.assertRaises("Exception Raised : %s" % e)

VirtualMachine.stop(user_vm_created, self.user_api_client)
Expand All @@ -324,7 +325,7 @@ def test_02_template_permissions(self):
domainid=user_account.domainid,
state="Stopped")
status = validateList(list_stopped_vms_after)
self.assertEquals(
self.assertEqual(
PASS,
status[0],
"Stopped VM is not in Stopped state"
Expand All @@ -336,7 +337,7 @@ def test_02_template_permissions(self):
)
self.updateConfigurAndRestart("allow.public.user.templates", "true")
self.fail("Template creation passed from volume for domain user")
except CloudstackAPIException as e:
except CloudstackAPIException as e:
self.assertRaises("Exception Raised : %s" % e)

admin_vm_created = VirtualMachine.create(
Expand Down Expand Up @@ -378,7 +379,7 @@ def test_02_template_permissions(self):
)
self.updateConfigurAndRestart("allow.public.user.templates", "true")
self.fail("Template creation passed from snapshot for domain admin")
except CloudstackAPIException as e:
except CloudstackAPIException as e:
self.assertRaises("Exception Raised : %s" % e)

VirtualMachine.stop(admin_vm_created, self.admin_api_client)
Expand All @@ -388,7 +389,7 @@ def test_02_template_permissions(self):
domainid=self.account.domainid,
state="Stopped")
status = validateList(list_stopped_vms_after)
self.assertEquals(
self.assertEqual(
PASS,
status[0],
"Stopped VM is not in Stopped state"
Expand All @@ -400,7 +401,7 @@ def test_02_template_permissions(self):
)
self.updateConfigurAndRestart("allow.public.user.templates", "true")
self.fail("Template creation passed from volume for domain admin")
except CloudstackAPIException as e:
except CloudstackAPIException as e:
self.assertRaises("Exception Raised : %s" % e)

self.updateConfigurAndRestart("allow.public.user.templates", "true")
Expand Down
3 changes: 2 additions & 1 deletion test/integration/component/maint/test_escalations_hosts.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
# Test from the Marvin - Testing in Python wiki

# All tests inherit from cloudstackTestCase
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest

# Import Integration Libraries

Expand Down
3 changes: 2 additions & 1 deletion test/integration/component/maint/test_high_availability.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
"""
# Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.cloudstackAPI import (prepareHostForMaintenance,
cancelHostMaintenance)
from marvin.lib.utils import cleanup_resources
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.cloudstackAPI import (migrateVirtualMachine,
prepareHostForMaintenance,
cancelHostMaintenance)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.lib.base import (VirtualMachine,
NetworkOffering,
VpcOffering,
Expand Down
15 changes: 8 additions & 7 deletions test/integration/component/maint/test_multiple_ip_ranges.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
# under the License.
""" Tests for Multiple IP Ranges feature
"""
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.lib.utils import cleanup_resources, get_process_status
from marvin.lib.base import (Account,
DiskOffering,
Expand Down Expand Up @@ -203,11 +204,11 @@ def setUp(self):
)
self.ip_range = list(
netaddr.iter_iprange(
unicode(
self.testdata["vlan_ip_range"]["startip"]), unicode(
str(
self.testdata["vlan_ip_range"]["startip"]), str(
self.testdata["vlan_ip_range"]["endip"])))
self.nic_ip = netaddr.IPAddress(
unicode(
str(
self.vm_response[0].nic[0].ipaddress))
self.debug("vm got {} as ip address".format(self.nic_ip))
self.assertIn(
Expand Down Expand Up @@ -281,11 +282,11 @@ def test_01_deploy_vm_in_new_cidr(self):
"""
self.ip_range = list(
netaddr.iter_iprange(
unicode(
self.testdata["vlan_ip_range"]["startip"]), unicode(
str(
self.testdata["vlan_ip_range"]["startip"]), str(
self.testdata["vlan_ip_range"]["endip"])))
self.nic_ip = netaddr.IPAddress(
unicode(
str(
self.vm_response[0].nic[0].ipaddress))
self.debug("vm got {} as ip address".format(self.nic_ip))
self.assertIn(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"""
#Import Local Modules
from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.cloudstackAPI import migrateSystemVm
from marvin.lib.utils import cleanup_resources
from marvin.lib.base import (Host,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
# under the License.

from nose.plugins.attrib import attr
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
from marvin.cloudstackTestCase import cloudstackTestCase
import unittest
from marvin.lib.utils import cleanup_resources
from marvin.lib.base import (Account,
Host,
Expand Down
Loading