mirror of https://github.com/apache/cloudstack.git
python3: Migrate Marvin and smoketests to python3 (#4727)
This PR prepares marvin and tests for python3. it was part of #4479, until nose2 was decided to be abandoned from that PR. Re-PR of #4543 and #3730 to enable cooperation Co-authored-by: Daan Hoogland <dahn@onecht.net> Co-authored-by: Gabriel Beims Bräscher <gabriel@apache.org> Co-authored-by: Rohit Yadav <rohit.yadav@shapeblue.com>
This commit is contained in:
parent
1abd10199c
commit
a1f825e7c7
|
|
@ -1 +1 @@
|
||||||
system
|
3.6
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ jdk:
|
||||||
- openjdk11
|
- openjdk11
|
||||||
|
|
||||||
python:
|
python:
|
||||||
- "2.7"
|
- "3.9"
|
||||||
|
|
||||||
node_js:
|
node_js:
|
||||||
- 12
|
- 12
|
||||||
|
|
|
||||||
|
|
@ -19,5 +19,5 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
pip install --upgrade http://cdn.mysql.com/Downloads/Connector-Python/mysql-connector-python-2.0.4.zip#md5=3df394d89300db95163f17c843ef49df
|
python3 -m pip install --upgrade pip
|
||||||
pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
|
python3 -m pip install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ Description: The CloudStack documentation
|
||||||
|
|
||||||
Package: cloudstack-marvin
|
Package: cloudstack-marvin
|
||||||
Architecture: all
|
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
|
Description: The CloudStack Marvin library
|
||||||
|
|
||||||
Package: cloudstack-integration-tests
|
Package: cloudstack-integration-tests
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,9 @@ BuildRequires: /usr/bin/mkisofs
|
||||||
BuildRequires: mysql-connector-python
|
BuildRequires: mysql-connector-python
|
||||||
BuildRequires: maven => 3.0.0
|
BuildRequires: maven => 3.0.0
|
||||||
BuildRequires: python-setuptools
|
BuildRequires: python-setuptools
|
||||||
|
BuildRequires: python3
|
||||||
|
BuildRequires: python3-pip
|
||||||
|
BuildRequires: python3-setuptools
|
||||||
BuildRequires: wget
|
BuildRequires: wget
|
||||||
BuildRequires: nodejs
|
BuildRequires: nodejs
|
||||||
|
|
||||||
|
|
@ -153,6 +156,9 @@ Apache CloudStack command line interface
|
||||||
|
|
||||||
%package marvin
|
%package marvin
|
||||||
Summary: Apache CloudStack Marvin library
|
Summary: Apache CloudStack Marvin library
|
||||||
|
Requires: python3
|
||||||
|
Requires: python3-devel
|
||||||
|
Requires: python3-pip
|
||||||
Requires: python-pip
|
Requires: python-pip
|
||||||
Requires: gcc
|
Requires: gcc
|
||||||
Requires: python-devel
|
Requires: python-devel
|
||||||
|
|
@ -418,6 +424,8 @@ fi
|
||||||
# Install mysql-connector-python
|
# 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 %{_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
|
/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"
|
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"
|
||||||
|
|
@ -506,6 +514,9 @@ fi
|
||||||
%post marvin
|
%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 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
|
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
|
#No default permission as the permission setup is complex
|
||||||
%files management
|
%files management
|
||||||
|
|
|
||||||
1
pom.xml
1
pom.xml
|
|
@ -974,6 +974,7 @@
|
||||||
<exclude>**/*.md</exclude>
|
<exclude>**/*.md</exclude>
|
||||||
<exclude>.java-version</exclude>
|
<exclude>.java-version</exclude>
|
||||||
<exclude>.python-version</exclude>
|
<exclude>.python-version</exclude>
|
||||||
|
<exclude>systemvm/.pythen-version</exclude>
|
||||||
<exclude>.idea/</exclude>
|
<exclude>.idea/</exclude>
|
||||||
<exclude>.metadata/**</exclude>
|
<exclude>.metadata/**</exclude>
|
||||||
<exclude>.git/**</exclude>
|
<exclude>.git/**</exclude>
|
||||||
|
|
|
||||||
|
|
@ -18,12 +18,15 @@
|
||||||
|
|
||||||
# requires netaddr
|
# requires netaddr
|
||||||
|
|
||||||
|
which python
|
||||||
|
python --version
|
||||||
|
|
||||||
export PYTHONPATH="../debian/opt/cloud/bin/"
|
export PYTHONPATH="../debian/opt/cloud/bin/"
|
||||||
export PYTHONDONTWRITEBYTECODE=False
|
export PYTHONDONTWRITEBYTECODE=False
|
||||||
|
|
||||||
echo "Running pycodestyle to check systemvm/python code for errors"
|
echo "Running pycodestyle to check systemvm/python code for errors"
|
||||||
pycodestyle --max-line-length=179 *py
|
python -m 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`
|
python -m pycodestyle --max-line-length=179 --exclude=monitorServices.py,baremetal-vr.py,passwd_server_ip.py `find ../debian -name \*.py`
|
||||||
if [ $? -gt 0 ]
|
if [ $? -gt 0 ]
|
||||||
then
|
then
|
||||||
echo "pycodestyle failed, please check your code"
|
echo "pycodestyle failed, please check your code"
|
||||||
|
|
@ -31,8 +34,10 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Running pylint to check systemvm/python code for errors"
|
echo "Running pylint to check systemvm/python code for errors"
|
||||||
pylint --disable=R,C,W *.py
|
python --version
|
||||||
pylint --disable=R,C,W `find ../debian -name \*.py`
|
pylint --version
|
||||||
|
pylint --disable=R,C,W,E *.py
|
||||||
|
pylint --disable=R,C,W,E `find ../debian -name \*.py`
|
||||||
if [ $? -gt 0 ]
|
if [ $? -gt 0 ]
|
||||||
then
|
then
|
||||||
echo "pylint failed, please check your code"
|
echo "pylint failed, please check your code"
|
||||||
|
|
@ -40,5 +45,5 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Running systemvm/python unit tests"
|
echo "Running systemvm/python unit tests"
|
||||||
nosetests .
|
nosetests2.7 .
|
||||||
exit $?
|
exit $?
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import (migrateVirtualMachine,
|
from marvin.cloudstackAPI import (migrateVirtualMachine,
|
||||||
prepareHostForMaintenance,
|
prepareHostForMaintenance,
|
||||||
cancelHostMaintenance,
|
cancelHostMaintenance,
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import (updateStoragePool,
|
from marvin.cloudstackAPI import (updateStoragePool,
|
||||||
resizeVolume,
|
resizeVolume,
|
||||||
listCapacity,
|
listCapacity,
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
# Test from the Marvin - Testing in Python wiki
|
# Test from the Marvin - Testing in Python wiki
|
||||||
|
|
||||||
# All tests inherit from cloudstackTestCase
|
# All tests inherit from cloudstackTestCase
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
|
|
||||||
# Import Integration Libraries
|
# Import Integration Libraries
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
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,
|
from marvin.lib.utils import (validateList,
|
||||||
cleanup_resources,
|
cleanup_resources,
|
||||||
random_gen,
|
random_gen,
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
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,
|
from marvin.lib.utils import (validateList,
|
||||||
cleanup_resources,
|
cleanup_resources,
|
||||||
random_gen)
|
random_gen)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
Domain, Template, Configurations,VirtualMachine,Snapshot,ServiceOffering
|
Domain, Template, Configurations,VirtualMachine,Snapshot,ServiceOffering
|
||||||
)
|
)
|
||||||
|
|
@ -161,7 +162,7 @@ class TestlistTemplates(cloudstackTestCase):
|
||||||
account=self.account.name,
|
account=self.account.name,
|
||||||
domainid=self.account.domainid)
|
domainid=self.account.domainid)
|
||||||
status = validateList(listfirst500template)
|
status = validateList(listfirst500template)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"First 500 template list is empty")
|
"First 500 template list is empty")
|
||||||
|
|
@ -173,7 +174,7 @@ class TestlistTemplates(cloudstackTestCase):
|
||||||
account=self.account.name,
|
account=self.account.name,
|
||||||
domainid=self.account.domainid)
|
domainid=self.account.domainid)
|
||||||
status = validateList(listremainingtemplate)
|
status = validateList(listremainingtemplate)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Next 500 template list is empty")
|
"Next 500 template list is empty")
|
||||||
|
|
@ -185,7 +186,7 @@ class TestlistTemplates(cloudstackTestCase):
|
||||||
account=self.account.name,
|
account=self.account.name,
|
||||||
domainid=self.account.domainid)
|
domainid=self.account.domainid)
|
||||||
status = validateList(listalltemplate)
|
status = validateList(listalltemplate)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"entire template list is empty")
|
"entire template list is empty")
|
||||||
|
|
@ -324,7 +325,7 @@ class TestlistTemplates(cloudstackTestCase):
|
||||||
domainid=user_account.domainid,
|
domainid=user_account.domainid,
|
||||||
state="Stopped")
|
state="Stopped")
|
||||||
status = validateList(list_stopped_vms_after)
|
status = validateList(list_stopped_vms_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Stopped VM is not in Stopped state"
|
"Stopped VM is not in Stopped state"
|
||||||
|
|
@ -388,7 +389,7 @@ class TestlistTemplates(cloudstackTestCase):
|
||||||
domainid=self.account.domainid,
|
domainid=self.account.domainid,
|
||||||
state="Stopped")
|
state="Stopped")
|
||||||
status = validateList(list_stopped_vms_after)
|
status = validateList(list_stopped_vms_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Stopped VM is not in Stopped state"
|
"Stopped VM is not in Stopped state"
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
# Test from the Marvin - Testing in Python wiki
|
# Test from the Marvin - Testing in Python wiki
|
||||||
|
|
||||||
# All tests inherit from cloudstackTestCase
|
# All tests inherit from cloudstackTestCase
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
|
|
||||||
# Import Integration Libraries
|
# Import Integration Libraries
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import (prepareHostForMaintenance,
|
from marvin.cloudstackAPI import (prepareHostForMaintenance,
|
||||||
cancelHostMaintenance)
|
cancelHostMaintenance)
|
||||||
from marvin.lib.utils import cleanup_resources
|
from marvin.lib.utils import cleanup_resources
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import (migrateVirtualMachine,
|
from marvin.cloudstackAPI import (migrateVirtualMachine,
|
||||||
prepareHostForMaintenance,
|
prepareHostForMaintenance,
|
||||||
cancelHostMaintenance)
|
cancelHostMaintenance)
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
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,
|
from marvin.lib.base import (VirtualMachine,
|
||||||
NetworkOffering,
|
NetworkOffering,
|
||||||
VpcOffering,
|
VpcOffering,
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
""" Tests for Multiple IP Ranges feature
|
""" 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.utils import cleanup_resources, get_process_status
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
DiskOffering,
|
DiskOffering,
|
||||||
|
|
@ -203,11 +204,11 @@ class TestMultipleIpRanges(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
self.ip_range = list(
|
self.ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["vlan_ip_range"]["startip"]), unicode(
|
self.testdata["vlan_ip_range"]["startip"]), str(
|
||||||
self.testdata["vlan_ip_range"]["endip"])))
|
self.testdata["vlan_ip_range"]["endip"])))
|
||||||
self.nic_ip = netaddr.IPAddress(
|
self.nic_ip = netaddr.IPAddress(
|
||||||
unicode(
|
str(
|
||||||
self.vm_response[0].nic[0].ipaddress))
|
self.vm_response[0].nic[0].ipaddress))
|
||||||
self.debug("vm got {} as ip address".format(self.nic_ip))
|
self.debug("vm got {} as ip address".format(self.nic_ip))
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
|
|
@ -281,11 +282,11 @@ class TestMultipleIpRanges(cloudstackTestCase):
|
||||||
"""
|
"""
|
||||||
self.ip_range = list(
|
self.ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["vlan_ip_range"]["startip"]), unicode(
|
self.testdata["vlan_ip_range"]["startip"]), str(
|
||||||
self.testdata["vlan_ip_range"]["endip"])))
|
self.testdata["vlan_ip_range"]["endip"])))
|
||||||
self.nic_ip = netaddr.IPAddress(
|
self.nic_ip = netaddr.IPAddress(
|
||||||
unicode(
|
str(
|
||||||
self.vm_response[0].nic[0].ipaddress))
|
self.vm_response[0].nic[0].ipaddress))
|
||||||
self.debug("vm got {} as ip address".format(self.nic_ip))
|
self.debug("vm got {} as ip address".format(self.nic_ip))
|
||||||
self.assertIn(
|
self.assertIn(
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
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.cloudstackAPI import migrateSystemVm
|
||||||
from marvin.lib.utils import cleanup_resources
|
from marvin.lib.utils import cleanup_resources
|
||||||
from marvin.lib.base import (Host,
|
from marvin.lib.base import (Host,
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
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.utils import cleanup_resources
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
Host,
|
Host,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
# All tests inherit from cloudstack TestCase
|
# All tests inherit from cloudstack TestCase
|
||||||
|
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.codes import FAILED, PASS
|
from marvin.codes import FAILED, PASS
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
VirtualMachine,
|
VirtualMachine,
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@
|
||||||
""" Test cases for Test Paths Storage Migration
|
""" Test cases for Test Paths Storage Migration
|
||||||
"""
|
"""
|
||||||
from nose.plugins.attrib import attr
|
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.utils import (cleanup_resources,
|
||||||
validateList,
|
validateList,
|
||||||
is_server_ssh_ready
|
is_server_ssh_ready
|
||||||
|
|
|
||||||
|
|
@ -35,11 +35,11 @@ import time
|
||||||
|
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
||||||
|
|
||||||
class TestIsolatedNetwork(cloudstackTestCase):
|
class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Create the following domain tree and accounts that are reqiured for executing Test cases relating to access checks for createNetwork(), deploying VM in an isolated network and restartNetwork():
|
Create the following domain tree and accounts that are reqiured for executing Test cases relating to access checks for createNetwork(), deploying VM in an isolated network and restartNetwork():
|
||||||
Under ROOT - create 2 domaind D1 and D2
|
Under ROOT - create 2 domaind D1 and D2
|
||||||
|
|
@ -54,45 +54,48 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
cls.testclient = super(TestIsolatedNetwork, cls).getClsTestClient()
|
cls.testclient = super(TestIsolatedNetwork, cls).getClsTestClient()
|
||||||
cls.apiclient = cls.testclient.getApiClient()
|
cls.apiclient = cls.testclient.getApiClient()
|
||||||
#cls.acldata = Services().services
|
|
||||||
cls.testdata = cls.testClient.getParsedTestDataConfig()
|
cls.testdata = cls.testClient.getParsedTestDataConfig()
|
||||||
cls.acldata = cls.testdata["acl"]
|
cls.acldata = cls.testdata["acl"]
|
||||||
cls.acldata["network"]["vlan"] = None
|
cls.acldata["network"]["vlan"] = None
|
||||||
cls.domain_1 = None
|
cls.domain_1 = None
|
||||||
cls.domain_2 = None
|
cls.domain_2 = None
|
||||||
cls.cleanup = []
|
cls._cleanup = []
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
|
|
||||||
# backup default apikey and secretkey
|
# backup default apikey and secretkey
|
||||||
cls.default_apikey = cls.apiclient.connection.apiKey
|
cls.default_apikey = cls.apiclient.connection.apiKey
|
||||||
cls.default_secretkey = cls.apiclient.connection.securityKey
|
cls.default_secretkey = cls.apiclient.connection.securityKey
|
||||||
|
|
||||||
|
try:
|
||||||
# Create domains
|
# Create domains
|
||||||
cls.domain_1 = Domain.create(
|
cls.domain_1 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain1"]
|
cls.acldata["domain1"]
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_1)
|
||||||
|
|
||||||
cls.domain_11 = Domain.create(
|
cls.domain_11 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain11"],
|
cls.acldata["domain11"],
|
||||||
parentdomainid=cls.domain_1.id
|
parentdomainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_11)
|
||||||
cls.domain_111 = Domain.create(
|
cls.domain_111 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain111"],
|
cls.acldata["domain111"],
|
||||||
parentdomainid=cls.domain_11.id,
|
parentdomainid=cls.domain_11.id,
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_111)
|
||||||
cls.domain_12 = Domain.create(
|
cls.domain_12 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain12"],
|
cls.acldata["domain12"],
|
||||||
parentdomainid=cls.domain_1.id
|
parentdomainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_12)
|
||||||
cls.domain_2 = Domain.create(
|
cls.domain_2 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain2"]
|
cls.acldata["domain2"]
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_2)
|
||||||
# Create 1 admin account and 2 user accounts for doamin_1
|
# Create 1 admin account and 2 user accounts for doamin_1
|
||||||
cls.account_d1 = Account.create(
|
cls.account_d1 = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
|
|
@ -100,6 +103,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=True,
|
admin=True,
|
||||||
domainid=cls.domain_1.id
|
domainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d1)
|
||||||
|
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d1)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d1)
|
||||||
cls.user_d1_apikey = user.apikey
|
cls.user_d1_apikey = user.apikey
|
||||||
|
|
@ -111,18 +115,18 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_1.id
|
domainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d1a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d1a)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d1a)
|
||||||
cls.user_d1a_apikey = user.apikey
|
cls.user_d1a_apikey = user.apikey
|
||||||
cls.user_d1a_secretkey = user.secretkey
|
cls.user_d1a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
cls.account_d1b = Account.create(
|
cls.account_d1b = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD1B"],
|
cls.acldata["accountD1B"],
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_1.id
|
domainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d1b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d1b)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d1b)
|
||||||
cls.user_d1b_apikey = user.apikey
|
cls.user_d1b_apikey = user.apikey
|
||||||
cls.user_d1b_secretkey = user.secretkey
|
cls.user_d1b_secretkey = user.secretkey
|
||||||
|
|
@ -134,6 +138,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=True,
|
admin=True,
|
||||||
domainid=cls.domain_11.id
|
domainid=cls.domain_11.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d11)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d11)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d11)
|
||||||
cls.user_d11_apikey = user.apikey
|
cls.user_d11_apikey = user.apikey
|
||||||
cls.user_d11_secretkey = user.secretkey
|
cls.user_d11_secretkey = user.secretkey
|
||||||
|
|
@ -144,6 +149,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_11.id
|
domainid=cls.domain_11.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d11a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d11a)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d11a)
|
||||||
cls.user_d11a_apikey = user.apikey
|
cls.user_d11a_apikey = user.apikey
|
||||||
cls.user_d11a_secretkey = user.secretkey
|
cls.user_d11a_secretkey = user.secretkey
|
||||||
|
|
@ -154,6 +160,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_11.id
|
domainid=cls.domain_11.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d11b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d11b)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d11b)
|
||||||
cls.user_d11b_apikey = user.apikey
|
cls.user_d11b_apikey = user.apikey
|
||||||
cls.user_d11b_secretkey = user.secretkey
|
cls.user_d11b_secretkey = user.secretkey
|
||||||
|
|
@ -166,6 +173,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=True,
|
admin=True,
|
||||||
domainid=cls.domain_111.id
|
domainid=cls.domain_111.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d111)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d111)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d111)
|
||||||
cls.user_d111_apikey = user.apikey
|
cls.user_d111_apikey = user.apikey
|
||||||
cls.user_d111_secretkey = user.secretkey
|
cls.user_d111_secretkey = user.secretkey
|
||||||
|
|
@ -176,6 +184,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_111.id
|
domainid=cls.domain_111.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d111a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d111a)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d111a)
|
||||||
cls.user_d111a_apikey = user.apikey
|
cls.user_d111a_apikey = user.apikey
|
||||||
cls.user_d111a_secretkey = user.secretkey
|
cls.user_d111a_secretkey = user.secretkey
|
||||||
|
|
@ -186,6 +195,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_111.id
|
domainid=cls.domain_111.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d111b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d111b)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d111b)
|
||||||
cls.user_d111b_apikey = user.apikey
|
cls.user_d111b_apikey = user.apikey
|
||||||
cls.user_d111b_secretkey = user.secretkey
|
cls.user_d111b_secretkey = user.secretkey
|
||||||
|
|
@ -197,6 +207,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_12.id
|
domainid=cls.domain_12.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d12a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d12a)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d12a)
|
||||||
cls.user_d12a_apikey = user.apikey
|
cls.user_d12a_apikey = user.apikey
|
||||||
cls.user_d12a_secretkey = user.secretkey
|
cls.user_d12a_secretkey = user.secretkey
|
||||||
|
|
@ -207,7 +218,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_12.id
|
domainid=cls.domain_12.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d12b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d12b)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d12b)
|
||||||
cls.user_d12b_apikey = user.apikey
|
cls.user_d12b_apikey = user.apikey
|
||||||
cls.user_d12b_secretkey = user.secretkey
|
cls.user_d12b_secretkey = user.secretkey
|
||||||
|
|
@ -220,12 +231,11 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_2.id
|
domainid=cls.domain_2.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d2a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_d2a)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_d2a)
|
||||||
cls.user_d2a_apikey = user.apikey
|
cls.user_d2a_apikey = user.apikey
|
||||||
cls.user_d2a_secretkey = user.secretkey
|
cls.user_d2a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
# Create 1 user account and admin account in "ROOT" domain
|
# Create 1 user account and admin account in "ROOT" domain
|
||||||
|
|
||||||
cls.account_roota = Account.create(
|
cls.account_roota = Account.create(
|
||||||
|
|
@ -233,7 +243,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
cls.acldata["accountROOTA"],
|
cls.acldata["accountROOTA"],
|
||||||
admin=False,
|
admin=False,
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_roota)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_roota)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_roota)
|
||||||
cls.user_roota_apikey = user.apikey
|
cls.user_roota_apikey = user.apikey
|
||||||
cls.user_roota_secretkey = user.secretkey
|
cls.user_roota_secretkey = user.secretkey
|
||||||
|
|
@ -243,7 +253,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
cls.acldata["accountROOT"],
|
cls.acldata["accountROOT"],
|
||||||
admin=True,
|
admin=True,
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_root)
|
||||||
user = cls.generateKeysForUser(cls.apiclient, cls.account_root)
|
user = cls.generateKeysForUser(cls.apiclient, cls.account_root)
|
||||||
cls.user_root_apikey = user.apikey
|
cls.user_root_apikey = user.apikey
|
||||||
cls.user_root_secretkey = user.secretkey
|
cls.user_root_secretkey = user.secretkey
|
||||||
|
|
@ -253,6 +263,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["service_offering"]["small"]
|
cls.acldata["service_offering"]["small"]
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.service_offering)
|
||||||
|
|
||||||
cls.zone = get_zone(cls.apiclient, cls.testclient.getZoneForTests())
|
cls.zone = get_zone(cls.apiclient, cls.testclient.getZoneForTests())
|
||||||
cls.acldata['mode'] = cls.zone.networktype
|
cls.acldata['mode'] = cls.zone.networktype
|
||||||
|
|
@ -319,48 +330,39 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
cls.network_d111b = cls.createNetwork(cls.apiclient, cls.account_d111b, cls.isolated_network_offering_id, cls.zone)
|
cls.network_d111b = cls.createNetwork(cls.apiclient, cls.account_d111b, cls.isolated_network_offering_id, cls.zone)
|
||||||
cls.createVM(cls.apiclient, cls.zone.id, cls.service_offering.id, cls.template.id, cls.network_d111b.id)
|
cls.createVM(cls.apiclient, cls.zone.id, cls.service_offering.id, cls.template.id, cls.network_d111b.id)
|
||||||
|
|
||||||
|
|
||||||
cls.apiclient.connection.apiKey = cls.user_d2a_apikey
|
cls.apiclient.connection.apiKey = cls.user_d2a_apikey
|
||||||
cls.apiclient.connection.securityKey = cls.user_d2a_secretkey
|
cls.apiclient.connection.securityKey = cls.user_d2a_secretkey
|
||||||
cls.network_d2a = cls.createNetwork(cls.apiclient, cls.account_d2a, cls.isolated_network_offering_id, cls.zone)
|
cls.network_d2a = cls.createNetwork(cls.apiclient, cls.account_d2a, cls.isolated_network_offering_id, cls.zone)
|
||||||
cls.createVM(cls.apiclient, cls.zone.id, cls.service_offering.id, cls.template.id, cls.network_d2a.id)
|
cls.createVM(cls.apiclient, cls.zone.id, cls.service_offering.id, cls.template.id, cls.network_d2a.id)
|
||||||
|
|
||||||
cls.cleanup = [
|
|
||||||
cls.account_root,
|
|
||||||
cls.account_roota,
|
|
||||||
cls.service_offering,
|
|
||||||
]
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
cls.domain_1.delete(cls.apiclient,cleanup="true")
|
cls.tearDownClass()
|
||||||
cls.domain_2.delete(cls.apiclient,cleanup="true")
|
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
|
||||||
raise Exception("Failed to create the setup required to execute the test cases: %s" % e)
|
raise Exception("Failed to create the setup required to execute the test cases: %s" % e)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
cls.apiclient = super(TestIsolatedNetwork, cls).getClsTestClient().getApiClient()
|
# set the keys to root admin and clean up
|
||||||
cls.apiclient.connection.apiKey = cls.default_apikey
|
cls.apiclient.connection.apiKey = cls.default_apikey
|
||||||
cls.apiclient.connection.securityKey = cls.default_secretkey
|
cls.apiclient.connection.securityKey = cls.default_secretkey
|
||||||
cls.domain_1.delete(cls.apiclient,cleanup="true")
|
super(TestIsolatedNetwork,cls).tearDownClass()
|
||||||
cls.domain_2.delete(cls.apiclient,cleanup="true")
|
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def setUp(cls):
|
def setUp(self):
|
||||||
cls.apiclient = cls.testClient.getApiClient()
|
self.apiclient = self.testClient.getApiClient()
|
||||||
cls.dbclient = cls.testClient.getDbConnection()
|
self.dbclient = self.testClient.getDbConnection()
|
||||||
|
self.cleanup = []
|
||||||
|
|
||||||
def tearDown(cls):
|
def tearDown(self):
|
||||||
# restore back default apikey and secretkey
|
# restore back default apikey and secretkey
|
||||||
cls.apiclient.connection.apiKey = cls.default_apikey
|
self.apiclient.connection.apiKey = self.default_apikey
|
||||||
cls.apiclient.connection.securityKey = cls.default_secretkey
|
self.apiclient.connection.securityKey = self.default_secretkey
|
||||||
|
super(TestIsolatedNetwork,self).tearDown()
|
||||||
return
|
return
|
||||||
|
|
||||||
## Test cases relating to createNetwork as admin user
|
## Test cases relating to createNetwork as admin user
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_01_createNetwork_admin(self):
|
def test_01_createNetwork_admin(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to create network for himslef
|
# Validate that Admin should be able to create network for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -375,15 +377,13 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
networkofferingid=self.isolated_network_offering_id,
|
networkofferingid=self.isolated_network_offering_id,
|
||||||
zoneid=self.zone.id
|
zoneid=self.zone.id
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to create a network for himself")
|
"Admin User is not able to create a network for himself")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_02_createNetwork_admin_foruserinsamedomain(self):
|
def test_02_createNetwork_admin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to create network for users in his domain
|
# Validate that Admin should be able to create network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -400,14 +400,14 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_roota.name,
|
accountid=self.account_roota.name,
|
||||||
domainid=self.account_roota.domainid
|
domainid=self.account_roota.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to create a network for other users in his domain")
|
"Admin User is not able to create a network for other users in his domain")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_03_createNetwork_admin_foruserinotherdomain(self):
|
def test_03_createNetwork_admin_foruserinotherdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to create network for users in his sub domain
|
# Validate that Admin should be able to create network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -424,16 +424,16 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d11a.name,
|
accountid=self.account_d11a.name,
|
||||||
domainid=self.account_d11a.domainid
|
domainid=self.account_d11a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to create a network for for other users in other domain")
|
"Admin User is not able to create a network for for other users in other domain")
|
||||||
|
|
||||||
|
|
||||||
## Test cases relating to createNetwork as domain admin user
|
## Test cases relating to createNetwork as domain admin user
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_04_createNetwork_domaindmin(self):
|
def test_04_createNetwork_domaindmin(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to create network for himslef
|
# Validate that Domain admin should be able to create network for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -448,7 +448,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
networkofferingid=self.isolated_network_offering_id,
|
networkofferingid=self.isolated_network_offering_id,
|
||||||
zoneid=self.zone.id
|
zoneid=self.zone.id
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to create a network for himself")
|
"Domain admin User is not able to create a network for himself")
|
||||||
|
|
@ -456,7 +456,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_05_createNetwork_domaindmin_foruserinsamedomain(self):
|
def test_05_createNetwork_domaindmin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to create network for users in his domain
|
# Validate that Domain admin should be able to create network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -473,14 +472,14 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d1a.name,
|
accountid=self.account_d1a.name,
|
||||||
domainid=self.account_d1a.domainid
|
domainid=self.account_d1a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to create a network for other users in his domain")
|
"Domain admin User is not able to create a network for other users in his domain")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_06_createNetwork_domaindmin_foruserinsubdomain(self):
|
def test_06_createNetwork_domaindmin_foruserinsubdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to create network for users in his sub domain
|
# Validate that Domain admin should be able to create network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -497,14 +496,14 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d11a.name,
|
accountid=self.account_d11a.name,
|
||||||
domainid=self.account_d11a.domainid
|
domainid=self.account_d11a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to create a network for other users in his sub domain")
|
"Domain admin User is not able to create a network for other users in his sub domain")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_07_createNetwork_domaindmin_forcrossdomainuser(self):
|
def test_07_createNetwork_domaindmin_forcrossdomainuser(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should not be able to create network for users in his sub domain
|
# Validate that Domain admin should not be able to create network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -521,6 +520,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d2a.name,
|
accountid=self.account_d2a.name,
|
||||||
domainid=self.account_d2a.domainid
|
domainid=self.account_d2a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.fail("Domain admin is allowed to create network for users not in his domain ")
|
self.fail("Domain admin is allowed to create network for users not in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When Domain admin tries to create network for users in his sub domain %s" % e)
|
self.debug("When Domain admin tries to create network for users in his sub domain %s" % e)
|
||||||
|
|
@ -531,7 +531,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_08_createNetwork_user(self):
|
def test_08_createNetwork_user(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Regular should be able to create network for himslef
|
# Validate that Regular should be able to create network for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -546,15 +545,14 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
networkofferingid=self.isolated_network_offering_id,
|
networkofferingid=self.isolated_network_offering_id,
|
||||||
zoneid=self.zone.id
|
zoneid=self.zone.id
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
|
|
||||||
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
self.assertEqual(network.state.lower() == ALLOCATED.lower(),
|
||||||
True,
|
True,
|
||||||
"User is not able to create a network for himself")
|
"User is not able to create a network for himself")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_09_createNetwork_user_foruserinsamedomain(self):
|
def test_09_createNetwork_user_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Regular user should NOT be able to create network for users in his domain
|
# Validate that Regular user should NOT be able to create network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -572,6 +570,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d1b.name,
|
accountid=self.account_d1b.name,
|
||||||
domainid=self.account_d1b.domainid
|
domainid=self.account_d1b.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.fail("User is allowed to create network for other users in his domain ")
|
self.fail("User is allowed to create network for other users in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When user tries to create network for users in his domain %s" % e)
|
self.debug("When user tries to create network for users in his domain %s" % e)
|
||||||
|
|
@ -580,7 +579,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_10_createNetwork_user_foruserinotherdomain(self):
|
def test_10_createNetwork_user_foruserinotherdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be NOT be able to create network for users in other domains
|
# Validate that Domain admin should be NOT be able to create network for users in other domains
|
||||||
"""
|
"""
|
||||||
|
|
@ -598,18 +596,17 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d11a.name,
|
accountid=self.account_d11a.name,
|
||||||
domainid=self.account_d11a.domainid
|
domainid=self.account_d11a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(network)
|
||||||
self.fail("User is allowed to create network for users not in his domain ")
|
self.fail("User is allowed to create network for users not in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When user tries to create network for users in other domain %s" % e)
|
self.debug("When user tries to create network for users in other domain %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_LIST_NETWORK_ACCOUNT):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_LIST_NETWORK_ACCOUNT):
|
||||||
self.fail("Error message validation failed when User tries to create network for users not in his domain ")
|
self.fail("Error message validation failed when User tries to create network for users not in his domain ")
|
||||||
|
|
||||||
|
|
||||||
## Test cases relating to Deploying VM in a network as admin user
|
## Test cases relating to Deploying VM in a network as admin user
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_11_deployvm_admin(self):
|
def test_11_deployvm_admin(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to deploy VM in the networks he owns
|
# Validate that Admin should be able to deploy VM in the networks he owns
|
||||||
"""
|
"""
|
||||||
|
|
@ -625,15 +622,14 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
templateid=self.template.id,
|
templateid=self.template.id,
|
||||||
networkids=self.network_root.id
|
networkids=self.network_root.id
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
|
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower(),
|
self.assertEqual(vm.state.lower() == RUNNING.lower(),
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to deploy VM in his own network")
|
"Admin User is not able to deploy VM in his own network")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_12_deployvm_admin_foruserinsamedomain(self):
|
def test_12_deployvm_admin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to deploy Vm for users in his domain
|
# Validate that Admin should be able to deploy Vm for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -651,14 +647,13 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_roota.name,
|
accountid=self.account_roota.name,
|
||||||
domainid=self.account_roota.domainid
|
domainid=self.account_roota.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_roota.name and vm.domainid == self.account_roota.domainid,
|
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_roota.name and vm.domainid == self.account_roota.domainid,
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to deploy VM for users in his domain")
|
"Admin User is not able to deploy VM for users in his domain")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_13_deployvm_admin_foruserinotherdomain(self):
|
def test_13_deployvm_admin_foruserinotherdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to deploy VM for users in his sub domain
|
# Validate that Admin should be able to deploy VM for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -676,14 +671,13 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d2a.name,
|
accountid=self.account_d2a.name,
|
||||||
domainid=self.account_d2a.domainid
|
domainid=self.account_d2a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_d2a.name and vm.domainid == self.account_d2a.domainid,
|
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_d2a.name and vm.domainid == self.account_d2a.domainid,
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to deploy VM for users users in other domain")
|
"Admin User is not able to deploy VM for users users in other domain")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_13_1_deployvm_admin_foruserinotherdomain_crossnetwork(self):
|
def test_13_1_deployvm_admin_foruserinotherdomain_crossnetwork(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should not be able deploy VM for a user in a network that does not belong to the user
|
# Validate that Admin should not be able deploy VM for a user in a network that does not belong to the user
|
||||||
"""
|
"""
|
||||||
|
|
@ -701,6 +695,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d11a.name,
|
accountid=self.account_d11a.name,
|
||||||
domainid=self.account_d11a.domainid
|
domainid=self.account_d11a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.fail("Admin is allowed to deploy VM for a user in a network that does not belong to the user ")
|
self.fail("Admin is allowed to deploy VM for a user in a network that does not belong to the user ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When admin tries to deploy vm for users in network that does not belong to the user %s" % e)
|
self.debug("When admin tries to deploy vm for users in network that does not belong to the user %s" % e)
|
||||||
|
|
@ -711,7 +706,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_14_deployvm_domaindmin(self):
|
def test_14_deployvm_domaindmin(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to deploy vm for himslef
|
# Validate that Domain admin should be able to deploy vm for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -727,15 +721,14 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
templateid=self.template.id,
|
templateid=self.template.id,
|
||||||
networkids=self.network_d1.id,
|
networkids=self.network_d1.id,
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
|
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower(),
|
self.assertEqual(vm.state.lower() == RUNNING.lower(),
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to deploy VM for himself")
|
"Domain admin User is not able to deploy VM for himself")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_15_deployvm_domaindmin_foruserinsamedomain(self):
|
def test_15_deployvm_domaindmin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to deploy vm for users in his domain
|
# Validate that Domain admin should be able to deploy vm for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -753,13 +746,13 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d1a.name,
|
accountid=self.account_d1a.name,
|
||||||
domainid=self.account_d1a.domainid
|
domainid=self.account_d1a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_d1a.name and vm.domainid == self.account_d1a.domainid,
|
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_d1a.name and vm.domainid == self.account_d1a.domainid,
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to deploy VM for other users in his domain")
|
"Domain admin User is not able to deploy VM for other users in his domain")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_16_deployvm_domaindmin_foruserinsubdomain(self):
|
def test_16_deployvm_domaindmin_foruserinsubdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to deploy vm for users in his sub domain
|
# Validate that Domain admin should be able to deploy vm for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -777,13 +770,13 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d11a.name,
|
accountid=self.account_d11a.name,
|
||||||
domainid=self.account_d11a.domainid
|
domainid=self.account_d11a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_d11a.name and vm.domainid == self.account_d11a.domainid,
|
self.assertEqual(vm.state.lower() == RUNNING.lower() and vm.account == self.account_d11a.name and vm.domainid == self.account_d11a.domainid,
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to deploy vm for himself")
|
"Domain admin User is not able to deploy vm for himself")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_17_deployvm_domaindmin_forcrossdomainuser(self):
|
def test_17_deployvm_domaindmin_forcrossdomainuser(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should not be able allowed to deploy vm for users not in his sub domain
|
# Validate that Domain admin should not be able allowed to deploy vm for users not in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -802,6 +795,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d2a.name,
|
accountid=self.account_d2a.name,
|
||||||
domainid=self.account_d2a.domainid
|
domainid=self.account_d2a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.fail("Domain admin is allowed to deploy vm for users not in hos domain ")
|
self.fail("Domain admin is allowed to deploy vm for users not in hos domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When Domain admin tries to deploy vm for users in his sub domain %s" % e)
|
self.debug("When Domain admin tries to deploy vm for users in his sub domain %s" % e)
|
||||||
|
|
@ -810,7 +804,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_17_1_deployvm_domainadmin_foruserinotherdomain_crossnetwork(self):
|
def test_17_1_deployvm_domainadmin_foruserinotherdomain_crossnetwork(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should not be able deploy VM for a user in a network that does not belong to the user
|
# Validate that Domain admin should not be able deploy VM for a user in a network that does not belong to the user
|
||||||
"""
|
"""
|
||||||
|
|
@ -828,6 +821,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d11a.name,
|
accountid=self.account_d11a.name,
|
||||||
domainid=self.account_d11a.domainid
|
domainid=self.account_d11a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.fail("Domain admin is allowed to deploy vm for users in a network that does not belong to him ")
|
self.fail("Domain admin is allowed to deploy vm for users in a network that does not belong to him ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When domain admin tries to deploy vm for users in network that does not belong to the user %s" % e)
|
self.debug("When domain admin tries to deploy vm for users in network that does not belong to the user %s" % e)
|
||||||
|
|
@ -838,7 +832,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_18_deployvm_user(self):
|
def test_18_deployvm_user(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Regular should be able to deploy vm for himslef
|
# Validate that Regular should be able to deploy vm for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -854,14 +847,13 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
templateid=self.template.id,
|
templateid=self.template.id,
|
||||||
networkids=self.network_d1a.id,
|
networkids=self.network_d1a.id,
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.assertEqual(vm.state.lower() == RUNNING.lower(),
|
self.assertEqual(vm.state.lower() == RUNNING.lower(),
|
||||||
True,
|
True,
|
||||||
"User is not able to deploy vm for himself")
|
"User is not able to deploy vm for himself")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_19_deployvm_user_foruserinsamedomain(self):
|
def test_19_deployvm_user_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Regular user should NOT be able to deploy vm for users in his domain
|
# Validate that Regular user should NOT be able to deploy vm for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -880,6 +872,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d1b.name,
|
accountid=self.account_d1b.name,
|
||||||
domainid=self.account_d1b.domainid
|
domainid=self.account_d1b.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.fail("Regular user is allowed to deploy vm for other users in his domain ")
|
self.fail("Regular user is allowed to deploy vm for other users in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When user tries to deploy vm for users in his domain %s" % e)
|
self.debug("When user tries to deploy vm for users in his domain %s" % e)
|
||||||
|
|
@ -888,7 +881,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_20_deployvm_user_foruserincrossdomain(self):
|
def test_20_deployvm_user_foruserincrossdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Regular user should NOT be able to deploy vm for users in his domain
|
# Validate that Regular user should NOT be able to deploy vm for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -907,6 +899,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
accountid=self.account_d2a.name,
|
accountid=self.account_d2a.name,
|
||||||
domainid=self.account_d2a.domainid
|
domainid=self.account_d2a.domainid
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.fail("Regular user is allowed to deploy vm for users not in his domain ")
|
self.fail("Regular user is allowed to deploy vm for users not in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When user tries to deploy vm for users n different domain %s" % e)
|
self.debug("When user tries to deploy vm for users n different domain %s" % e)
|
||||||
|
|
@ -915,7 +908,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_20_1_deployvm_user_incrossnetwork(self):
|
def test_20_1_deployvm_user_incrossnetwork(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
#Validate that User should not be able deploy VM in a network that does not belong to him
|
#Validate that User should not be able deploy VM in a network that does not belong to him
|
||||||
"""
|
"""
|
||||||
|
|
@ -931,6 +923,7 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
templateid=self.template.id,
|
templateid=self.template.id,
|
||||||
networkids=self.network_d11b.id,
|
networkids=self.network_d11b.id,
|
||||||
)
|
)
|
||||||
|
self.cleanup.append(vm)
|
||||||
self.fail("User is allowed to deploy VM in a network that does not belong to him ")
|
self.fail("User is allowed to deploy VM in a network that does not belong to him ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When user tries to deploy vm in a network that does not belong to him %s" % e)
|
self.debug("When user tries to deploy vm in a network that does not belong to him %s" % e)
|
||||||
|
|
@ -941,7 +934,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_21_restartNetwork_admin(self):
|
def test_21_restartNetwork_admin(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
#Validate that Admin should be able to restart network for networks he owns
|
#Validate that Admin should be able to restart network for networks he owns
|
||||||
"""
|
"""
|
||||||
|
|
@ -954,10 +946,8 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to restart network he owns")
|
"Admin User is not able to restart network he owns")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_22_restartNetwork_admin_foruserinsamedomain(self):
|
def test_22_restartNetwork_admin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to restart network for users in his domain
|
# Validate that Admin should be able to restart network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -972,7 +962,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_23_restartNetwork_admin_foruserinotherdomain(self):
|
def test_23_restartNetwork_admin_foruserinotherdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Admin should be able to restart network for users in his sub domain
|
# Validate that Admin should be able to restart network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -985,11 +974,11 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Admin User is not able to restart network owned other users in other domain")
|
"Admin User is not able to restart network owned other users in other domain")
|
||||||
|
|
||||||
|
|
||||||
## Test cases relating to restart Network as domain admin user
|
## Test cases relating to restart Network as domain admin user
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_24_restartNetwork_domaindmin(self):
|
def test_24_restartNetwork_domaindmin(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to restart network for himslef
|
# Validate that Domain admin should be able to restart network for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -1002,10 +991,8 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Domain admin User is not able to restart network for himself")
|
"Domain admin User is not able to restart network for himself")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_25_restartNetwork_domaindmin_foruserinsamedomain(self):
|
def test_25_restartNetwork_domaindmin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to restart network for users in his domain
|
# Validate that Domain admin should be able to restart network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -1019,7 +1006,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_26_restartNetwork_domaindmin_foruserinsubdomain(self):
|
def test_26_restartNetwork_domaindmin_foruserinsubdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to restart network for users in his sub domain
|
# Validate that Domain admin should be able to restart network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -1033,7 +1019,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_27_restartNetwork_domaindmin_forcrossdomainuser(self):
|
def test_27_restartNetwork_domaindmin_forcrossdomainuser(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# Validate that Domain admin should be able to restart network for users in his sub domain
|
# Validate that Domain admin should be able to restart network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -1052,7 +1037,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_28_restartNetwork_user(self):
|
def test_28_restartNetwork_user(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
#Validate that Regular should be able to restart network for himslef
|
#Validate that Regular should be able to restart network for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -1064,10 +1048,8 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"User is not able to restart network he owns")
|
"User is not able to restart network he owns")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_29_restartNetwork_user_foruserinsamedomain(self):
|
def test_29_restartNetwork_user_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
#Validate that Regular user should NOT be able to restart network for users in his domain
|
#Validate that Regular user should NOT be able to restart network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -1084,7 +1066,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_30_restartNetwork_user_foruserinotherdomain(self):
|
def test_30_restartNetwork_user_foruserinotherdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
#Validate that Domain admin should be NOT be able to restart network for users in other domains
|
#Validate that Domain admin should be NOT be able to restart network for users in other domains
|
||||||
"""
|
"""
|
||||||
|
|
@ -1092,7 +1073,6 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
self.apiclient.connection.securityKey = self.user_d1a_secretkey
|
self.apiclient.connection.securityKey = self.user_d1a_secretkey
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
restartResponse = self.network_d11a.restart(self.apiclient)
|
restartResponse = self.network_d11a.restart(self.apiclient)
|
||||||
self.fail("Regular user is allowed to restart network for users not in his domain ")
|
self.fail("Regular user is allowed to restart network for users not in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|
@ -1113,8 +1093,8 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
user.id
|
user.id
|
||||||
))
|
))
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def createNetwork(apiclient,account,isolated_network_offering_id,zone):
|
def createNetwork(cls, apiclient, account, isolated_network_offering_id, zone):
|
||||||
network = {
|
network = {
|
||||||
"name": "Network-",
|
"name": "Network-",
|
||||||
"displaytext": "Network-",
|
"displaytext": "Network-",
|
||||||
|
|
@ -1133,11 +1113,11 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
networkofferingid=isolated_network_offering_id,
|
networkofferingid=isolated_network_offering_id,
|
||||||
zoneid=zone.id
|
zoneid=zone.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(network)
|
||||||
return network
|
return network
|
||||||
|
|
||||||
|
@classmethod
|
||||||
@staticmethod
|
def createVM(cls, apiclient, zoneId, serviceOfferingId, templateId, networkId):
|
||||||
def createVM(apiclient,zoneId,serviceOfferingId,templateId,networkId):
|
|
||||||
vmData = {"name": "prereq", "dispayname": "prereq"}
|
vmData = {"name": "prereq", "dispayname": "prereq"}
|
||||||
|
|
||||||
vm = VirtualMachine.create(
|
vm = VirtualMachine.create(
|
||||||
|
|
@ -1148,5 +1128,5 @@ class TestIsolatedNetwork(cloudstackTestCase):
|
||||||
templateid=templateId,
|
templateid=templateId,
|
||||||
networkids=networkId
|
networkids=networkId
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(vm)
|
||||||
return vm
|
return vm
|
||||||
|
|
|
||||||
|
|
@ -57,10 +57,9 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
|
|
||||||
cls.domain_1 = None
|
cls.domain_1 = None
|
||||||
cls.domain_2 = None
|
cls.domain_2 = None
|
||||||
cls.cleanup = []
|
cls._cleanup = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
# backup default apikey and secretkey
|
# backup default apikey and secretkey
|
||||||
cls.default_apikey = cls.apiclient.connection.apiKey
|
cls.default_apikey = cls.apiclient.connection.apiKey
|
||||||
cls.default_secretkey = cls.apiclient.connection.securityKey
|
cls.default_secretkey = cls.apiclient.connection.securityKey
|
||||||
|
|
@ -70,25 +69,30 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain1"]
|
cls.acldata["domain1"]
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_1)
|
||||||
cls.domain_11 = Domain.create(
|
cls.domain_11 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain11"],
|
cls.acldata["domain11"],
|
||||||
parentdomainid=cls.domain_1.id
|
parentdomainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_11)
|
||||||
cls.domain_111 = Domain.create(
|
cls.domain_111 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain111"],
|
cls.acldata["domain111"],
|
||||||
parentdomainid=cls.domain_11.id,
|
parentdomainid=cls.domain_11.id,
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_111)
|
||||||
cls.domain_12 = Domain.create(
|
cls.domain_12 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain12"],
|
cls.acldata["domain12"],
|
||||||
parentdomainid=cls.domain_1.id
|
parentdomainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_12)
|
||||||
cls.domain_2 = Domain.create(
|
cls.domain_2 = Domain.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["domain2"]
|
cls.acldata["domain2"]
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.domain_2)
|
||||||
# Create 1 admin account and 2 user accounts for doamin_1
|
# Create 1 admin account and 2 user accounts for doamin_1
|
||||||
cls.account_d1 = Account.create(
|
cls.account_d1 = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
|
|
@ -96,7 +100,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=True,
|
admin=True,
|
||||||
domainid=cls.domain_1.id
|
domainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d1)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d1)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d1)
|
||||||
cls.user_d1_apikey = user.apikey
|
cls.user_d1_apikey = user.apikey
|
||||||
cls.user_d1_secretkey = user.secretkey
|
cls.user_d1_secretkey = user.secretkey
|
||||||
|
|
@ -107,18 +111,18 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_1.id
|
domainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d1a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d1a)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d1a)
|
||||||
cls.user_d1a_apikey = user.apikey
|
cls.user_d1a_apikey = user.apikey
|
||||||
cls.user_d1a_secretkey = user.secretkey
|
cls.user_d1a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
cls.account_d1b = Account.create(
|
cls.account_d1b = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD1B"],
|
cls.acldata["accountD1B"],
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_1.id
|
domainid=cls.domain_1.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d1b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d1b)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d1b)
|
||||||
cls.user_d1b_apikey = user.apikey
|
cls.user_d1b_apikey = user.apikey
|
||||||
cls.user_d1b_secretkey = user.secretkey
|
cls.user_d1b_secretkey = user.secretkey
|
||||||
|
|
@ -130,6 +134,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=True,
|
admin=True,
|
||||||
domainid=cls.domain_11.id
|
domainid=cls.domain_11.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d11)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d11)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d11)
|
||||||
cls.user_d11_apikey = user.apikey
|
cls.user_d11_apikey = user.apikey
|
||||||
cls.user_d11_secretkey = user.secretkey
|
cls.user_d11_secretkey = user.secretkey
|
||||||
|
|
@ -140,6 +145,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_11.id
|
domainid=cls.domain_11.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d11a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d11a)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d11a)
|
||||||
cls.user_d11a_apikey = user.apikey
|
cls.user_d11a_apikey = user.apikey
|
||||||
cls.user_d11a_secretkey = user.secretkey
|
cls.user_d11a_secretkey = user.secretkey
|
||||||
|
|
@ -150,18 +156,19 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_11.id
|
domainid=cls.domain_11.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d11b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d11b)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d11b)
|
||||||
cls.user_d11b_apikey = user.apikey
|
cls.user_d11b_apikey = user.apikey
|
||||||
cls.user_d11b_secretkey = user.secretkey
|
cls.user_d11b_secretkey = user.secretkey
|
||||||
|
|
||||||
# Create 2 user accounts and 1 admin account for doamin_111
|
# Create 2 user accounts and 1 admin account for doamin_111
|
||||||
|
|
||||||
cls.account_d111 = Account.create(
|
cls.account_d111 = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD111"],
|
cls.acldata["accountD111"],
|
||||||
admin=True,
|
admin=True,
|
||||||
domainid=cls.domain_111.id
|
domainid=cls.domain_111.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d111)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d111)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d111)
|
||||||
cls.user_d111_apikey = user.apikey
|
cls.user_d111_apikey = user.apikey
|
||||||
cls.user_d111_secretkey = user.secretkey
|
cls.user_d111_secretkey = user.secretkey
|
||||||
|
|
@ -172,6 +179,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_111.id
|
domainid=cls.domain_111.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d111a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d111a)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d111a)
|
||||||
cls.user_d111a_apikey = user.apikey
|
cls.user_d111a_apikey = user.apikey
|
||||||
cls.user_d111a_secretkey = user.secretkey
|
cls.user_d111a_secretkey = user.secretkey
|
||||||
|
|
@ -182,6 +190,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_111.id
|
domainid=cls.domain_111.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d111b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d111b)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d111b)
|
||||||
cls.user_d111b_apikey = user.apikey
|
cls.user_d111b_apikey = user.apikey
|
||||||
cls.user_d111b_secretkey = user.secretkey
|
cls.user_d111b_secretkey = user.secretkey
|
||||||
|
|
@ -193,6 +202,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_12.id
|
domainid=cls.domain_12.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d12a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d12a)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d12a)
|
||||||
cls.user_d12a_apikey = user.apikey
|
cls.user_d12a_apikey = user.apikey
|
||||||
cls.user_d12a_secretkey = user.secretkey
|
cls.user_d12a_secretkey = user.secretkey
|
||||||
|
|
@ -203,7 +213,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_12.id
|
domainid=cls.domain_12.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d12b)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d12b)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d12b)
|
||||||
cls.user_d12b_apikey = user.apikey
|
cls.user_d12b_apikey = user.apikey
|
||||||
cls.user_d12b_secretkey = user.secretkey
|
cls.user_d12b_secretkey = user.secretkey
|
||||||
|
|
@ -216,12 +226,11 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
admin=False,
|
admin=False,
|
||||||
domainid=cls.domain_2.id
|
domainid=cls.domain_2.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_d2a)
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_d2a)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_d2a)
|
||||||
cls.user_d2a_apikey = user.apikey
|
cls.user_d2a_apikey = user.apikey
|
||||||
cls.user_d2a_secretkey = user.secretkey
|
cls.user_d2a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
# Create 1 user account and admin account in "ROOT" domain
|
# Create 1 user account and admin account in "ROOT" domain
|
||||||
|
|
||||||
cls.account_roota = Account.create(
|
cls.account_roota = Account.create(
|
||||||
|
|
@ -229,6 +238,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
cls.acldata["accountROOTA"],
|
cls.acldata["accountROOTA"],
|
||||||
admin=False,
|
admin=False,
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_roota)
|
||||||
|
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_roota)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_roota)
|
||||||
cls.user_roota_apikey = user.apikey
|
cls.user_roota_apikey = user.apikey
|
||||||
|
|
@ -239,6 +249,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
cls.acldata["accountROOT"],
|
cls.acldata["accountROOT"],
|
||||||
admin=True,
|
admin=True,
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.account_root)
|
||||||
|
|
||||||
user = cls.generateKeysForUser(cls.apiclient,cls.account_root)
|
user = cls.generateKeysForUser(cls.apiclient,cls.account_root)
|
||||||
cls.user_root_apikey = user.apikey
|
cls.user_root_apikey = user.apikey
|
||||||
|
|
@ -249,6 +260,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["service_offering"]["small"]
|
cls.acldata["service_offering"]["small"]
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(cls.service_offering)
|
||||||
|
|
||||||
cls.zone = get_zone(cls.apiclient,cls.testclient.getZoneForTests())
|
cls.zone = get_zone(cls.apiclient,cls.testclient.getZoneForTests())
|
||||||
cls.acldata['mode'] = cls.zone.networktype
|
cls.acldata['mode'] = cls.zone.networktype
|
||||||
|
|
@ -310,25 +322,15 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
cls.apiclient.connection.securityKey = cls.user_d2a_secretkey
|
cls.apiclient.connection.securityKey = cls.user_d2a_secretkey
|
||||||
cls.network_d2a = cls.createNetwork(cls.apiclient,cls.account_d2a,cls.isolated_network_offering_id,cls.zone)
|
cls.network_d2a = cls.createNetwork(cls.apiclient,cls.account_d2a,cls.isolated_network_offering_id,cls.zone)
|
||||||
|
|
||||||
cls.cleanup = [
|
|
||||||
cls.account_root,
|
|
||||||
cls.account_roota,
|
|
||||||
cls.service_offering,
|
|
||||||
]
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
cls.domain_1.delete(cls.apiclient,cleanup="true")
|
cls.tearDownClass()
|
||||||
cls.domain_2.delete(cls.apiclient,cleanup="true")
|
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
|
||||||
raise Exception("Failed to create the setup required to execute the test cases: %s" % e)
|
raise Exception("Failed to create the setup required to execute the test cases: %s" % e)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
cls.apiclient = super(TestIsolatedNetworkDelete, cls).getClsTestClient().getApiClient()
|
|
||||||
cls.apiclient.connection.apiKey = cls.default_apikey
|
cls.apiclient.connection.apiKey = cls.default_apikey
|
||||||
cls.apiclient.connection.securityKey = cls.default_secretkey
|
cls.apiclient.connection.securityKey = cls.default_secretkey
|
||||||
cls.domain_1.delete(cls.apiclient,cleanup="true")
|
super(TestIsolatedNetworkDelete,cls).tearDownClass()
|
||||||
cls.domain_2.delete(cls.apiclient,cleanup="true")
|
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def setUp(cls):
|
def setUp(cls):
|
||||||
|
|
@ -357,11 +359,11 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"Admin User is not able to restart network he owns")
|
"Admin User is not able to restart network he owns")
|
||||||
|
self._cleanup.remove(self.network_root)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_admin_foruserinsamedomain(self):
|
def test_deleteNetwork_admin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Validate that Admin should be able to delete network for users in his domain
|
Validate that Admin should be able to delete network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -374,10 +376,10 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"Admin User is not able to delete network owned by users his domain")
|
"Admin User is not able to delete network owned by users his domain")
|
||||||
|
self._cleanup.remove(self.network_roota)
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_admin_foruserinotherdomain(self):
|
def test_deleteNetwork_admin_foruserinotherdomain(self):
|
||||||
|
|
||||||
# Validate that Admin should be able to delete network for users in his sub domain
|
# Validate that Admin should be able to delete network for users in his sub domain
|
||||||
self.apiclient.connection.apiKey = self.user_root_apikey
|
self.apiclient.connection.apiKey = self.user_root_apikey
|
||||||
self.apiclient.connection.securityKey = self.user_root_secretkey
|
self.apiclient.connection.securityKey = self.user_root_secretkey
|
||||||
|
|
@ -388,6 +390,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"Admin User is not able to delete network owned other users in other domain")
|
"Admin User is not able to delete network owned other users in other domain")
|
||||||
|
self._cleanup.remove(self.network_d12a)
|
||||||
|
|
||||||
## Test cases relating to delete Network as domain admin user
|
## Test cases relating to delete Network as domain admin user
|
||||||
|
|
||||||
|
|
@ -405,11 +408,10 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"Domain admin User is not able to delete a network he owns")
|
"Domain admin User is not able to delete a network he owns")
|
||||||
|
self._cleanup.remove(self.network_d1)
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_domaindmin_foruserinsamedomain(self):
|
def test_deleteNetwork_domaindmin_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Validate that Domain admin should be able to delete network for users in his domain
|
Validate that Domain admin should be able to delete network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -421,10 +423,10 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"Domain admin User is not able to delete a network that is owned by user in the same domain")
|
"Domain admin User is not able to delete a network that is owned by user in the same domain")
|
||||||
|
self._cleanup.remove(self.network_d1a)
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_domaindmin_foruserinsubdomain(self):
|
def test_deleteNetwork_domaindmin_foruserinsubdomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Validate that Domain admin should be able to delete network for users in his sub domain
|
Validate that Domain admin should be able to delete network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -437,10 +439,10 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"Domain admin User is not able to delete a network that is owned by user in the subdomain")
|
"Domain admin User is not able to delete a network that is owned by user in the subdomain")
|
||||||
|
self._cleanup.remove(self.network_d11a)
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_domaindmin_forcrossdomainuser(self):
|
def test_deleteNetwork_domaindmin_forcrossdomainuser(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Validate that Domain admin should be able to delete network for users in his sub domain
|
Validate that Domain admin should be able to delete network for users in his sub domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -449,18 +451,17 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = self.network_d2a.delete(self.apiclient)
|
response = self.network_d2a.delete(self.apiclient)
|
||||||
|
self._cleanup.remove(self.network_d2a)
|
||||||
self.fail("Domain admin is allowed to delete network for users not in his domain ")
|
self.fail("Domain admin is allowed to delete network for users not in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug ("When Domain admin tries to delete network for user in a different domain %s" %e)
|
self.debug ("When Domain admin tries to delete network for user in a different domain %s" %e)
|
||||||
if not CloudstackAclException.verifyMsginException(e,CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e,CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to delete network for users not in his domain ")
|
self.fail("Error message validation failed when Domain admin tries to delete network for users not in his domain ")
|
||||||
|
|
||||||
|
|
||||||
## Test cases relating deleting network as regular user
|
## Test cases relating deleting network as regular user
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_user(self):
|
def test_deleteNetwork_user(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Validate that Regular should be able to delete network for himslef
|
Validate that Regular should be able to delete network for himslef
|
||||||
"""
|
"""
|
||||||
|
|
@ -473,11 +474,10 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
self.assertEqual(response,
|
self.assertEqual(response,
|
||||||
None,
|
None,
|
||||||
"User is not able to delete a network he owns")
|
"User is not able to delete a network he owns")
|
||||||
|
self._cleanup.remove(self.network_d111a)
|
||||||
|
|
||||||
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
@attr("simulator_only",tags=["advanced"],required_hardware="false")
|
||||||
def test_deleteNetwork_user_foruserinsamedomain(self):
|
def test_deleteNetwork_user_foruserinsamedomain(self):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Validate that Regular user should NOT be able to delete network for users in his domain
|
Validate that Regular user should NOT be able to delete network for users in his domain
|
||||||
"""
|
"""
|
||||||
|
|
@ -486,6 +486,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = self.network_d111b.delete(self.apiclient)
|
response = self.network_d111b.delete(self.apiclient)
|
||||||
|
self._cleanup.remove(self.network_d111b)
|
||||||
self.fail("Regular user is allowed to delete network for users in his domain ")
|
self.fail("Regular user is allowed to delete network for users in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug ("When user tries to delete network for users in his domain %s" %e)
|
self.debug ("When user tries to delete network for users in his domain %s" %e)
|
||||||
|
|
@ -503,6 +504,7 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
response = self.network_d11b.delete(self.apiclient)
|
response = self.network_d11b.delete(self.apiclient)
|
||||||
|
self._cleanup.remove(self.network_d11b)
|
||||||
self.fail("Regular user is allowed to delete network for users not in his domain ")
|
self.fail("Regular user is allowed to delete network for users not in his domain ")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug ("When user tries to delete network for users in other domain %s" %e)
|
self.debug ("When user tries to delete network for users in other domain %s" %e)
|
||||||
|
|
@ -522,8 +524,8 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
user.id
|
user.id
|
||||||
))
|
))
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def createNetwork(apiclient,account,isolated_network_offering_id,zone):
|
def createNetwork(cls,apiclient,account,isolated_network_offering_id,zone):
|
||||||
network= {
|
network= {
|
||||||
"name": "Network-",
|
"name": "Network-",
|
||||||
"displaytext": "Network-",
|
"displaytext": "Network-",
|
||||||
|
|
@ -542,5 +544,6 @@ class TestIsolatedNetworkDelete(cloudstackTestCase):
|
||||||
networkofferingid=isolated_network_offering_id,
|
networkofferingid=isolated_network_offering_id,
|
||||||
zoneid=zone.id
|
zoneid=zone.id
|
||||||
)
|
)
|
||||||
|
cls._cleanup.append(network)
|
||||||
return network
|
return network
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import time
|
||||||
|
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
||||||
|
|
||||||
class TestSnapshotList(cloudstackTestCase):
|
class TestSnapshotList(cloudstackTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
|
|
@ -108,7 +109,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
cls.user_d1a_apikey = user.apikey
|
cls.user_d1a_apikey = user.apikey
|
||||||
cls.user_d1a_secretkey = user.secretkey
|
cls.user_d1a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
cls.account_d1b = Account.create(
|
cls.account_d1b = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD1B"],
|
cls.acldata["accountD1B"],
|
||||||
|
|
@ -198,7 +198,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
cls.user_d2a_apikey = user.apikey
|
cls.user_d2a_apikey = user.apikey
|
||||||
cls.user_d2a_secretkey = user.secretkey
|
cls.user_d2a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
# Create admin user account
|
# Create admin user account
|
||||||
|
|
||||||
cls.account_a = Account.create(
|
cls.account_a = Account.create(
|
||||||
|
|
@ -234,7 +233,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
cls.vm_d1_volume = Volume.list(cls.apiclient, virtualmachineid=cls.vm_d1.id)
|
cls.vm_d1_volume = Volume.list(cls.apiclient, virtualmachineid=cls.vm_d1.id)
|
||||||
cls.vm_d1_snapshot = Snapshot.create(cls.apiclient, cls.vm_d1_volume[0].id)
|
cls.vm_d1_snapshot = Snapshot.create(cls.apiclient, cls.vm_d1_volume[0].id)
|
||||||
|
|
||||||
|
|
||||||
cls.apiclient.connection.apiKey = cls.user_d1a_apikey
|
cls.apiclient.connection.apiKey = cls.user_d1a_apikey
|
||||||
cls.apiclient.connection.securityKey = cls.user_d1a_secretkey
|
cls.apiclient.connection.securityKey = cls.user_d1a_secretkey
|
||||||
cls.vm_d1a = VirtualMachine.create(
|
cls.vm_d1a = VirtualMachine.create(
|
||||||
|
|
@ -373,7 +371,8 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
try:
|
try:
|
||||||
cls.domain_2.delete(cls.apiclient, cleanup="true")
|
cls.domain_2.delete(cls.apiclient, cleanup="true")
|
||||||
cls.domain_1.delete(cls.apiclient, cleanup="true")
|
cls.domain_1.delete(cls.apiclient, cleanup="true")
|
||||||
except: pass
|
except:
|
||||||
|
pass
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
cleanup_resources(cls.apiclient, cls.cleanup)
|
||||||
|
|
||||||
def setUp(cls):
|
def setUp(cls):
|
||||||
|
|
@ -724,7 +723,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when domainId is passed with listall=false
|
## Domain Admin - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -809,7 +807,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when domainId is passed with no listall parameter
|
## Domain Admin - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -894,7 +891,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when account and domainId is passed with listall =true
|
## Domain Admin - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -972,7 +968,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when account and domainId is passed with listall=false
|
## Domain Admin - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1288,7 +1283,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_rootadmin_listall_false_rec_false(self):
|
def test_listSnapshot_as_rootadmin_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1301,7 +1295,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
snapshotList = Snapshot.list(self.apiclient, listall="false", isrecursive="false")
|
snapshotList = Snapshot.list(self.apiclient, listall="false", isrecursive="false")
|
||||||
self.debug("List as ROOT Admin - listall=false,isrecursive=false %s" % snapshotList)
|
self.debug("List as ROOT Admin - listall=false,isrecursive=false %s" % snapshotList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(snapshotList) == 1,
|
self.assertEqual(len(snapshotList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -1315,7 +1308,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases without passing listall paramter
|
## ROOT Admin - Test cases without passing listall paramter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1330,7 +1322,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
snapshotList = Snapshot.list(self.apiclient)
|
snapshotList = Snapshot.list(self.apiclient)
|
||||||
self.debug("List as ROOT Admin %s" % snapshotList)
|
self.debug("List as ROOT Admin %s" % snapshotList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(snapshotList) == 1,
|
self.assertEqual(len(snapshotList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -1478,7 +1469,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when domainId is passed with listall=false
|
## ROOT Admin - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1563,7 +1553,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when domainId is passed with no listall parameter
|
## ROOT Admin - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1648,7 +1637,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall =true
|
## ROOT Admin - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1726,7 +1714,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall=false
|
## ROOT Admin - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1804,7 +1791,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall not passed
|
## ROOT Admin - Test cases when account and domainId is passed with listall not passed
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1882,7 +1868,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases with listall =true
|
## Regular User - Test cases with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2012,7 +1997,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_listall_false_rec_false(self):
|
def test_listSnapshot_as_regularuser_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2025,7 +2009,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
snapshotList = Snapshot.list(self.apiclient, listall="false", isrecursive="false")
|
snapshotList = Snapshot.list(self.apiclient, listall="false", isrecursive="false")
|
||||||
self.debug("List as Regular User - listall=false,isrecursive=false %s" % snapshotList)
|
self.debug("List as Regular User - listall=false,isrecursive=false %s" % snapshotList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(snapshotList) == 1,
|
self.assertEqual(len(snapshotList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -2039,7 +2022,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases without passing listall paramter
|
## Regular User - Test cases without passing listall paramter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2054,7 +2036,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
snapshotList = Snapshot.list(self.apiclient)
|
snapshotList = Snapshot.list(self.apiclient)
|
||||||
self.debug("List as Regular User %s" % snapshotList)
|
self.debug("List as Regular User %s" % snapshotList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(snapshotList) == 1,
|
self.assertEqual(len(snapshotList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -2195,7 +2176,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when domainId is passed with listall=false
|
## Regular User - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2223,7 +2203,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid_listall_false_rec_true(self):
|
def test_listSnapshot_as_regularuser_domainid_listall_false_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2249,8 +2228,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid_listall_false_rec_false(self):
|
def test_listSnapshot_as_regularuser_domainid_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2276,7 +2253,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when domainId is passed with no listall parameter
|
## Regular User - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2304,7 +2280,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid_true_rec_true(self):
|
def test_listSnapshot_as_regularuser_domainid_true_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2330,8 +2305,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid__rec_false(self):
|
def test_listSnapshot_as_regularuser_domainid__rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2357,7 +2330,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall =true
|
## Regular User - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2435,7 +2407,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall=false
|
## Regular User - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2463,7 +2434,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid_accountid_listall_false_rec_true(self):
|
def test_listSnapshot_as_regularuser_domainid_accountid_listall_false_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2514,7 +2484,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall not passed
|
## Regular User - Test cases when account and domainId is passed with listall not passed
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2542,7 +2511,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid_accountid_rec_true(self):
|
def test_listSnapshot_as_regularuser_domainid_accountid_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2568,7 +2536,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_domainid_accountid_rec_false(self):
|
def test_listSnapshot_as_regularuser_domainid_accountid_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2610,7 +2577,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as Regular User passing domainId and accountId of another account %s" % e)
|
self.debug("List as Regular User passing domainId and accountId of another account %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_regularuser_cross_domainid(self):
|
def test_listSnapshot_as_regularuser_cross_domainid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2625,7 +2591,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as Regular User passing domainId of a domain that user does not belong to %s" % e)
|
self.debug("List as Regular User passing domainId of a domain that user does not belong to %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_domainadmin_cross_domainid_accountid(self):
|
def test_listSnapshot_as_domainadmin_cross_domainid_accountid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2640,7 +2605,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as domain admin passing domainId and accountId of another account %s" % e)
|
self.debug("List as domain admin passing domainId and accountId of another account %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_as_domainadmin_cross_domainid(self):
|
def test_listSnapshot_as_domainadmin_cross_domainid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2655,7 +2619,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as domain admin passing domainId of a domain that user does not belong to %s" % e)
|
self.debug("List as domain admin passing domainId of a domain that user does not belong to %s" % e)
|
||||||
|
|
||||||
|
|
||||||
## List test cases relating to filter - id
|
## List test cases relating to filter - id
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_by_id_as_domainadmin_owns(self):
|
def test_listSnapshot_by_id_as_domainadmin_owns(self):
|
||||||
|
|
@ -2743,7 +2706,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
1,
|
1,
|
||||||
"Domain Admin is not able to list Snapshotss from his sub domains")
|
"Domain Admin is not able to list Snapshotss from his sub domains")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listSnapshot_by_id_as_rootadmin_owns(self):
|
def test_listSnapshot_by_id_as_rootadmin_owns(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2794,7 +2756,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
self.apiclient.connection.securityKey = self.user_d11a_secretkey
|
self.apiclient.connection.securityKey = self.user_d11a_secretkey
|
||||||
SnapshotList1 = Snapshot.list(self.apiclient, id=self.vm_d11a_snapshot.id)
|
SnapshotList1 = Snapshot.list(self.apiclient, id=self.vm_d11a_snapshot.id)
|
||||||
|
|
||||||
|
|
||||||
self.assertNotEqual(SnapshotList1,
|
self.assertNotEqual(SnapshotList1,
|
||||||
None,
|
None,
|
||||||
"Regular User is not able to list Snapshotss that he owns")
|
"Regular User is not able to list Snapshotss that he owns")
|
||||||
|
|
@ -2831,7 +2792,6 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
None,
|
None,
|
||||||
"Regular User is able to list Snapshotss from other domains")
|
"Regular User is able to list Snapshotss from other domains")
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generateKeysForUser(apiclient, account):
|
def generateKeysForUser(apiclient, account):
|
||||||
user = User.list(
|
user = User.list(
|
||||||
|
|
@ -2854,4 +2814,3 @@ class TestSnapshotList(cloudstackTestCase):
|
||||||
if list[num].id == attributeValue:
|
if list[num].id == attributeValue:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import time
|
||||||
|
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
||||||
|
|
||||||
class TestVMList(cloudstackTestCase):
|
class TestVMList(cloudstackTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
|
|
@ -42,7 +43,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
Under each of the domain create 1 admin user and couple of regular users.
|
Under each of the domain create 1 admin user and couple of regular users.
|
||||||
|
|
||||||
As each of these users , deploy Virtual machines.
|
As each of these users , deploy Virtual machines.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
cls.testclient = super(TestVMList, cls).getClsTestClient()
|
cls.testclient = super(TestVMList, cls).getClsTestClient()
|
||||||
cls.apiclient = cls.testclient.getApiClient()
|
cls.apiclient = cls.testclient.getApiClient()
|
||||||
|
|
@ -105,7 +105,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
cls.user_d1a_apikey = user.apikey
|
cls.user_d1a_apikey = user.apikey
|
||||||
cls.user_d1a_secretkey = user.secretkey
|
cls.user_d1a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
cls.account_d1b = Account.create(
|
cls.account_d1b = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD1B"],
|
cls.acldata["accountD1B"],
|
||||||
|
|
@ -195,7 +194,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
cls.user_d2a_apikey = user.apikey
|
cls.user_d2a_apikey = user.apikey
|
||||||
cls.user_d2a_secretkey = user.secretkey
|
cls.user_d2a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
# Create admin user account
|
# Create admin user account
|
||||||
|
|
||||||
cls.account_a = Account.create(
|
cls.account_a = Account.create(
|
||||||
|
|
@ -346,7 +344,8 @@ class TestVMList(cloudstackTestCase):
|
||||||
try:
|
try:
|
||||||
cls.domain_2.delete(cls.apiclient, cleanup="true")
|
cls.domain_2.delete(cls.apiclient, cleanup="true")
|
||||||
cls.domain_1.delete(cls.apiclient, cleanup="true")
|
cls.domain_1.delete(cls.apiclient, cleanup="true")
|
||||||
except: pass
|
except:
|
||||||
|
pass
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
cleanup_resources(cls.apiclient, cls.cleanup)
|
||||||
|
|
||||||
def setUp(cls):
|
def setUp(cls):
|
||||||
|
|
@ -697,7 +696,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when domainId is passed with listall=false
|
## Domain Admin - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -782,7 +780,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when domainId is passed with no listall parameter
|
## Domain Admin - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -867,7 +864,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when account and domainId is passed with listall =true
|
## Domain Admin - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -945,7 +941,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when account and domainId is passed with listall=false
|
## Domain Admin - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1261,7 +1256,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_rootadmin_listall_false_rec_false(self):
|
def test_listVM_as_rootadmin_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1274,7 +1268,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
vmList = VirtualMachine.list(self.apiclient, listall="false", isrecursive="false")
|
vmList = VirtualMachine.list(self.apiclient, listall="false", isrecursive="false")
|
||||||
self.debug("List as ROOT Admin - listall=false,isrecursive=false %s" % vmList)
|
self.debug("List as ROOT Admin - listall=false,isrecursive=false %s" % vmList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(vmList) == 1,
|
self.assertEqual(len(vmList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -1288,7 +1281,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases without passing listall paramter
|
## ROOT Admin - Test cases without passing listall paramter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1303,7 +1295,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
vmList = VirtualMachine.list(self.apiclient)
|
vmList = VirtualMachine.list(self.apiclient)
|
||||||
self.debug("List as ROOT Admin %s" % vmList)
|
self.debug("List as ROOT Admin %s" % vmList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(vmList) == 1,
|
self.assertEqual(len(vmList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -1451,7 +1442,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when domainId is passed with listall=false
|
## ROOT Admin - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1537,7 +1527,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when domainId is passed with no listall parameter
|
## ROOT Admin - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1622,7 +1611,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall =true
|
## ROOT Admin - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1700,7 +1688,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall=false
|
## ROOT Admin - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1778,7 +1765,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall not passed
|
## ROOT Admin - Test cases when account and domainId is passed with listall not passed
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1856,7 +1842,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases with listall =true
|
## Regular User - Test cases with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1986,7 +1971,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_listall_false_rec_false(self):
|
def test_listVM_as_regularuser_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1999,7 +1983,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
vmList = VirtualMachine.list(self.apiclient, listall="false", isrecursive="false")
|
vmList = VirtualMachine.list(self.apiclient, listall="false", isrecursive="false")
|
||||||
self.debug("List as Regular User - listall=false,isrecursive=false %s" % vmList)
|
self.debug("List as Regular User - listall=false,isrecursive=false %s" % vmList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(vmList) == 1,
|
self.assertEqual(len(vmList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -2013,7 +1996,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases without passing listall paramter
|
## Regular User - Test cases without passing listall paramter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2028,7 +2010,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
vmList = VirtualMachine.list(self.apiclient)
|
vmList = VirtualMachine.list(self.apiclient)
|
||||||
self.debug("List as Regular User %s" % vmList)
|
self.debug("List as Regular User %s" % vmList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(vmList) == 1,
|
self.assertEqual(len(vmList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -2169,7 +2150,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when domainId is passed with listall=false
|
## Regular User - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2197,7 +2177,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid_listall_false_rec_true(self):
|
def test_listVM_as_regularuser_domainid_listall_false_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2223,8 +2202,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid_listall_false_rec_false(self):
|
def test_listVM_as_regularuser_domainid_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2250,7 +2227,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when domainId is passed with no listall parameter
|
## Regular User - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2278,7 +2254,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid_true_rec_true(self):
|
def test_listVM_as_regularuser_domainid_true_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2304,8 +2279,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid__rec_false(self):
|
def test_listVM_as_regularuser_domainid__rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2331,7 +2304,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall =true
|
## Regular User - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2409,7 +2381,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall=false
|
## Regular User - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2437,7 +2408,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid_accountid_listall_false_rec_true(self):
|
def test_listVM_as_regularuser_domainid_accountid_listall_false_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2488,7 +2458,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall not passed
|
## Regular User - Test cases when account and domainId is passed with listall not passed
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2516,7 +2485,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid_accountid_rec_true(self):
|
def test_listVM_as_regularuser_domainid_accountid_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2542,7 +2510,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_domainid_accountid_rec_false(self):
|
def test_listVM_as_regularuser_domainid_accountid_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2584,7 +2551,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as Regular User passing domainId and accountId of another account %s" % e)
|
self.debug("List as Regular User passing domainId and accountId of another account %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_regularuser_cross_domainid(self):
|
def test_listVM_as_regularuser_cross_domainid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2599,7 +2565,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as Regular User passing domainId of a domain that user does not belong to %s" % e)
|
self.debug("List as Regular User passing domainId of a domain that user does not belong to %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_domainadmin_cross_domainid_accountid(self):
|
def test_listVM_as_domainadmin_cross_domainid_accountid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2614,7 +2579,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as domain admin passing domainId and accountId of another account %s" % e)
|
self.debug("List as domain admin passing domainId and accountId of another account %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_as_domainadmin_cross_domainid(self):
|
def test_listVM_as_domainadmin_cross_domainid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2629,7 +2593,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as domain admin passing domainId of a domain that user does not belong to %s" % e)
|
self.debug("List as domain admin passing domainId of a domain that user does not belong to %s" % e)
|
||||||
|
|
||||||
|
|
||||||
## List test cases relating to filter - id
|
## List test cases relating to filter - id
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_by_id_as_domainadmin_owns(self):
|
def test_listVM_by_id_as_domainadmin_owns(self):
|
||||||
|
|
@ -2717,7 +2680,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
1,
|
1,
|
||||||
"Domain Admin is not able to list Vms from his sub domains")
|
"Domain Admin is not able to list Vms from his sub domains")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVM_by_id_as_rootadmin_owns(self):
|
def test_listVM_by_id_as_rootadmin_owns(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2768,7 +2730,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
self.apiclient.connection.securityKey = self.user_d11a_secretkey
|
self.apiclient.connection.securityKey = self.user_d11a_secretkey
|
||||||
VMList1 = VirtualMachine.list(self.apiclient, id=self.vm_d11a.id)
|
VMList1 = VirtualMachine.list(self.apiclient, id=self.vm_d11a.id)
|
||||||
|
|
||||||
|
|
||||||
self.assertNotEqual(VMList1,
|
self.assertNotEqual(VMList1,
|
||||||
None,
|
None,
|
||||||
"Regular User is not able to list Vms that he owns")
|
"Regular User is not able to list Vms that he owns")
|
||||||
|
|
@ -2805,7 +2766,6 @@ class TestVMList(cloudstackTestCase):
|
||||||
None,
|
None,
|
||||||
"Regular User is able to list Vms from other domains")
|
"Regular User is able to list Vms from other domains")
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generateKeysForUser(apiclient, account):
|
def generateKeysForUser(apiclient, account):
|
||||||
user = User.list(
|
user = User.list(
|
||||||
|
|
@ -2828,4 +2788,3 @@ class TestVMList(cloudstackTestCase):
|
||||||
if list[num].id == attributeValue:
|
if list[num].id == attributeValue:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import time
|
||||||
|
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
||||||
|
|
||||||
class TestVolumeList(cloudstackTestCase):
|
class TestVolumeList(cloudstackTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
|
|
@ -105,7 +106,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
cls.user_d1a_apikey = user.apikey
|
cls.user_d1a_apikey = user.apikey
|
||||||
cls.user_d1a_secretkey = user.secretkey
|
cls.user_d1a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
cls.account_d1b = Account.create(
|
cls.account_d1b = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD1B"],
|
cls.acldata["accountD1B"],
|
||||||
|
|
@ -195,7 +195,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
cls.user_d2a_apikey = user.apikey
|
cls.user_d2a_apikey = user.apikey
|
||||||
cls.user_d2a_secretkey = user.secretkey
|
cls.user_d2a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
# Create admin user account
|
# Create admin user account
|
||||||
|
|
||||||
cls.account_a = Account.create(
|
cls.account_a = Account.create(
|
||||||
|
|
@ -350,8 +349,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
cleanup_resources(cls.apiclient, cls.cleanup)
|
cleanup_resources(cls.apiclient, cls.cleanup)
|
||||||
raise Exception("Failed to create the setup required to execute the test cases: %s" % e)
|
raise Exception("Failed to create the setup required to execute the test cases: %s" % e)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls):
|
def tearDownClass(cls):
|
||||||
cls.apiclient = super(TestVolumeList, cls).getClsTestClient().getApiClient()
|
cls.apiclient = super(TestVolumeList, cls).getClsTestClient().getApiClient()
|
||||||
|
|
@ -361,7 +358,8 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
try:
|
try:
|
||||||
cls.domain_2.delete(cls.apiclient, cleanup="true")
|
cls.domain_2.delete(cls.apiclient, cleanup="true")
|
||||||
cls.domain_1.delete(cls.apiclient, cleanup="true")
|
cls.domain_1.delete(cls.apiclient, cleanup="true")
|
||||||
except: pass
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
def setUp(cls):
|
def setUp(cls):
|
||||||
cls.apiclient = cls.testClient.getApiClient()
|
cls.apiclient = cls.testClient.getApiClient()
|
||||||
|
|
@ -711,7 +709,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when domainId is passed with listall=false
|
## Domain Admin - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -794,7 +791,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when domainId is passed with no listall parameter
|
## Domain Admin - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -878,7 +874,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when account and domainId is passed with listall =true
|
## Domain Admin - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -956,7 +951,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Domain Admin - Test cases when account and domainId is passed with listall=false
|
## Domain Admin - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1271,7 +1265,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_rootadmin_listall_false_rec_false(self):
|
def test_listVolume_as_rootadmin_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1284,7 +1277,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
volumeList = Volume.list(self.apiclient, listall="false", isrecursive="false")
|
volumeList = Volume.list(self.apiclient, listall="false", isrecursive="false")
|
||||||
self.debug("List as ROOT Admin - listall=false,isrecursive=false %s" % volumeList)
|
self.debug("List as ROOT Admin - listall=false,isrecursive=false %s" % volumeList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(volumeList) == 1,
|
self.assertEqual(len(volumeList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -1298,7 +1290,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases without passing listall paramter
|
## ROOT Admin - Test cases without passing listall paramter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1313,7 +1304,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
volumeList = Volume.list(self.apiclient)
|
volumeList = Volume.list(self.apiclient)
|
||||||
self.debug("List as ROOT Admin %s" % volumeList)
|
self.debug("List as ROOT Admin %s" % volumeList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(volumeList) == 1,
|
self.assertEqual(len(volumeList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -1461,7 +1451,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when domainId is passed with listall=false
|
## ROOT Admin - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1546,7 +1535,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when domainId is passed with no listall parameter
|
## ROOT Admin - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1631,7 +1619,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall =true
|
## ROOT Admin - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1709,7 +1696,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall=false
|
## ROOT Admin - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1787,7 +1773,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## ROOT Admin - Test cases when account and domainId is passed with listall not passed
|
## ROOT Admin - Test cases when account and domainId is passed with listall not passed
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1865,7 +1850,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases with listall =true
|
## Regular User - Test cases with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -1995,7 +1979,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_listall_false_rec_false(self):
|
def test_listVolume_as_regularuser_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2008,7 +1991,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
volumeList = Volume.list(self.apiclient, listall="false", isrecursive="false")
|
volumeList = Volume.list(self.apiclient, listall="false", isrecursive="false")
|
||||||
self.debug("List as Regular User - listall=false,isrecursive=false %s" % volumeList)
|
self.debug("List as Regular User - listall=false,isrecursive=false %s" % volumeList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(volumeList) == 1,
|
self.assertEqual(len(volumeList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -2022,7 +2004,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases without passing listall paramter
|
## Regular User - Test cases without passing listall paramter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2037,7 +2018,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
volumeList = Volume.list(self.apiclient)
|
volumeList = Volume.list(self.apiclient)
|
||||||
self.debug("List as Regular User %s" % volumeList)
|
self.debug("List as Regular User %s" % volumeList)
|
||||||
|
|
||||||
|
|
||||||
self.assertEqual(len(volumeList) == 1,
|
self.assertEqual(len(volumeList) == 1,
|
||||||
True,
|
True,
|
||||||
"Number of items in list response check failed!!")
|
"Number of items in list response check failed!!")
|
||||||
|
|
@ -2178,7 +2158,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when domainId is passed with listall=false
|
## Regular User - Test cases when domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2206,7 +2185,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid_listall_false_rec_true(self):
|
def test_listVolume_as_regularuser_domainid_listall_false_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2232,8 +2210,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid_listall_false_rec_false(self):
|
def test_listVolume_as_regularuser_domainid_listall_false_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2259,7 +2235,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when domainId is passed with no listall parameter
|
## Regular User - Test cases when domainId is passed with no listall parameter
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2287,7 +2262,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid_true_rec_true(self):
|
def test_listVolume_as_regularuser_domainid_true_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2313,8 +2287,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid__rec_false(self):
|
def test_listVolume_as_regularuser_domainid__rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2340,7 +2312,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall =true
|
## Regular User - Test cases when account and domainId is passed with listall =true
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2418,7 +2389,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall=false
|
## Regular User - Test cases when account and domainId is passed with listall=false
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2446,7 +2416,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid_accountid_listall_false_rec_true(self):
|
def test_listVolume_as_regularuser_domainid_accountid_listall_false_rec_true(self):
|
||||||
# Test listing of Volumes by passing domainid,account,listall="false" and isrecusrive="true" parameter as regular user
|
# Test listing of Volumes by passing domainid,account,listall="false" and isrecusrive="true" parameter as regular user
|
||||||
|
|
@ -2495,7 +2464,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
## Regular User - Test cases when account and domainId is passed with listall not passed
|
## Regular User - Test cases when account and domainId is passed with listall not passed
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -2523,7 +2491,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid_accountid_rec_true(self):
|
def test_listVolume_as_regularuser_domainid_accountid_rec_true(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2549,7 +2516,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Account access check failed!!")
|
"Account access check failed!!")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_regularuser_domainid_accountid_rec_false(self):
|
def test_listVolume_as_regularuser_domainid_accountid_rec_false(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2605,7 +2571,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as Regular User passing domainId of a domain that user does not belong to %s" % e)
|
self.debug("List as Regular User passing domainId of a domain that user does not belong to %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_domainadmin_cross_domainid_accountid(self):
|
def test_listVolume_as_domainadmin_cross_domainid_accountid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2620,7 +2585,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as domain admin passing domainId and accountId of another account %s" % e)
|
self.debug("List as domain admin passing domainId and accountId of another account %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_as_domainadmin_cross_domainid(self):
|
def test_listVolume_as_domainadmin_cross_domainid(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2635,7 +2599,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("List as domain admin passing domainId of a domain that user does not belong to %s" % e)
|
self.debug("List as domain admin passing domainId of a domain that user does not belong to %s" % e)
|
||||||
|
|
||||||
|
|
||||||
## List test cases relating to filter - id
|
## List test cases relating to filter - id
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_by_id_as_domainadmin_owns(self):
|
def test_listVolume_by_id_as_domainadmin_owns(self):
|
||||||
|
|
@ -2723,7 +2686,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
1,
|
1,
|
||||||
"Domain Admin is not able to list Volumes from his sub domains")
|
"Domain Admin is not able to list Volumes from his sub domains")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_listVolume_by_id_as_rootadmin_owns(self):
|
def test_listVolume_by_id_as_rootadmin_owns(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -2774,7 +2736,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
self.apiclient.connection.securityKey = self.user_d11a_secretkey
|
self.apiclient.connection.securityKey = self.user_d11a_secretkey
|
||||||
VMList1 = Volume.list(self.apiclient, id=self.vm_d11a_volume[0].id)
|
VMList1 = Volume.list(self.apiclient, id=self.vm_d11a_volume[0].id)
|
||||||
|
|
||||||
|
|
||||||
self.assertNotEqual(VMList1,
|
self.assertNotEqual(VMList1,
|
||||||
None,
|
None,
|
||||||
"Regular User is not able to list Volumes that he owns")
|
"Regular User is not able to list Volumes that he owns")
|
||||||
|
|
@ -2811,7 +2772,6 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
None,
|
None,
|
||||||
"Regular User is able to list Volumes from other domains")
|
"Regular User is able to list Volumes from other domains")
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generateKeysForUser(apiclient, account):
|
def generateKeysForUser(apiclient, account):
|
||||||
user = User.list(
|
user = User.list(
|
||||||
|
|
@ -2834,4 +2794,3 @@ class TestVolumeList(cloudstackTestCase):
|
||||||
if list[num].id == attributeValue:
|
if list[num].id == attributeValue:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ import time
|
||||||
|
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
||||||
|
|
||||||
class TestSharedNetworkImpersonation(cloudstackTestCase):
|
class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -112,7 +113,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
cls.user_d1a_apikey = user.apikey
|
cls.user_d1a_apikey = user.apikey
|
||||||
cls.user_d1a_secretkey = user.secretkey
|
cls.user_d1a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
cls.account_d1b = Account.create(
|
cls.account_d1b = Account.create(
|
||||||
cls.apiclient,
|
cls.apiclient,
|
||||||
cls.acldata["accountD1B"],
|
cls.acldata["accountD1B"],
|
||||||
|
|
@ -222,7 +222,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
cls.user_d2a_apikey = user.apikey
|
cls.user_d2a_apikey = user.apikey
|
||||||
cls.user_d2a_secretkey = user.secretkey
|
cls.user_d2a_secretkey = user.secretkey
|
||||||
|
|
||||||
|
|
||||||
# Create 1 user account and admin account in "ROOT" domain
|
# Create 1 user account and admin account in "ROOT" domain
|
||||||
|
|
||||||
cls.account_roota = Account.create(
|
cls.account_roota = Account.create(
|
||||||
|
|
@ -370,7 +369,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"ROOT admin is not able to deploy a VM for other users in a shared network with scope=all")
|
"ROOT admin is not able to deploy a VM for other users in a shared network with scope=all")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_all_domainadminuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -399,7 +397,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"ROOT admin is not able to deploy a VM for a domain admin users in a shared network with scope=all")
|
"ROOT admin is not able to deploy a VM for a domain admin users in a shared network with scope=all")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_all_subdomainuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -510,7 +507,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"ROOT admin is not able to deploy a VM for domain user in a shared network with scope=domain with no subdomain access")
|
"ROOT admin is not able to deploy a VM for domain user in a shared network with scope=domain with no subdomain access")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_domainadminuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -567,8 +563,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for sub domain user in a shared network with scope=domain with no subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for sub domain user in a shared network with scope=domain with no subdomain access ")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_subdomainadminuser(self):
|
||||||
|
|
@ -597,8 +593,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a admin user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a admin user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for sub domain admin user in a shared network with scope=domain with no subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for sub domain admin user in a shared network with scope=domain with no subdomain access")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainuser(self):
|
||||||
|
|
@ -627,8 +623,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for parent domain user in a shared network with scope=domain with no subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for parent domain user in a shared network with scope=domain with no subdomain access")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_parentdomainadminuser(self):
|
||||||
|
|
@ -657,9 +653,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access ")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_ROOTuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_nosubdomainaccess_ROOTuser(self):
|
||||||
|
|
@ -688,7 +683,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a regular user from ROOT domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a regular user from ROOT domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for parent domain admin user in a shared network with scope=domain with no subdomain access")
|
||||||
|
|
||||||
## Test cases relating to deploying Virtual Machine as ROOT admin for other users in shared network with scope=Domain and with subdomain access
|
## Test cases relating to deploying Virtual Machine as ROOT admin for other users in shared network with scope=Domain and with subdomain access
|
||||||
|
|
||||||
|
|
@ -720,7 +716,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"ROOT admin is NOT able to deploy a VM for domain user in a shared network with scope=domain with subdomain access")
|
"ROOT admin is NOT able to deploy a VM for domain user in a shared network with scope=domain with subdomain access")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_domainadminuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -830,7 +825,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for parent domain user in a shared network with scope=domain with subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for parent domain user in a shared network with scope=domain with subdomain access ")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_parentdomainadminuser(self):
|
||||||
|
|
@ -859,8 +855,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for parent domain admin user in a shared network with scope=domain with subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for parent domain admin user in a shared network with scope=domain with subdomain access ")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_ROOTuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_domain_withsubdomainaccess_ROOTuser(self):
|
||||||
|
|
@ -889,8 +885,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from ROOT domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
self.debug("When a user from ROOT domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for user in ROOT domain in a shared network with scope=domain with subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for user in ROOT domain in a shared network with scope=domain with subdomain access")
|
||||||
|
|
||||||
## Test cases relating to deploying Virtual Machine as ROOT admin for other users in shared network with scope=account
|
## Test cases relating to deploying Virtual Machine as ROOT admin for other users in shared network with scope=account
|
||||||
|
|
||||||
|
|
@ -921,8 +917,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for user in the same domain but in a different account in a shared network with scope=account")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for user in the same domain but in a different account in a shared network with scope=account")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_account_domainadminuser(self):
|
||||||
|
|
@ -951,7 +947,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for admin user in the same domain but in a different account in a shared network with scope=account")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for admin user in the same domain but in a different account in a shared network with scope=account")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_account_user(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_account_user(self):
|
||||||
|
|
@ -1008,8 +1005,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("account %s" % e)
|
self.debug("account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for a admin user in a shared network with scope=account which the admin user does not have access to ")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for a admin user in a shared network with scope=account which the admin user does not have access to ")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser(self):
|
def test_deployVM_in_sharedNetwork_as_admin_scope_account_ROOTuser(self):
|
||||||
|
|
@ -1038,7 +1035,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from ROOT domain deploys a VM in a shared network with scope=account %s" % e)
|
self.debug("When a user from ROOT domain deploys a VM in a shared network with scope=account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
||||||
self.fail("Error message validation failed when ROOT admin tries to deploy a VM for a user in ROOT domain in a shared network with scope=account which the user does not have access to ")
|
self.fail(
|
||||||
|
"Error message validation failed when ROOT admin tries to deploy a VM for a user in ROOT domain in a shared network with scope=account which the user does not have access to ")
|
||||||
|
|
||||||
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=all
|
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=all
|
||||||
|
|
||||||
|
|
@ -1069,7 +1067,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Domain admin is not able to deploy a VM for a domain user in a shared network with scope=all")
|
"Domain admin is not able to deploy a VM for a domain user in a shared network with scope=all")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_domainadminuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1097,7 +1094,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Domain admin is not able to deploy a VM for a domain admin user in a shared network with scope=all")
|
"Domain admin is not able to deploy a VM for a domain admin user in a shared network with scope=all")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_subdomainuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1178,7 +1174,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=all")
|
self.fail("Error message validation failed when Domain admin is NOT able to deploy a VM for user in ROOT domain in a shared network with scope=all")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomainuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_all_crossdomainuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1205,7 +1200,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a Domain admin user deploys a VM for a domain user he does not have access to in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a Domain admin user deploys a VM for a domain user he does not have access to in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
||||||
self.fail("Error mesage validation failed when Domain admin user tries to Deploy VM for a domain user he does not have access to in a shared network with scope=domain with no subdomain access ")
|
self.fail(
|
||||||
|
"Error mesage validation failed when Domain admin user tries to Deploy VM for a domain user he does not have access to in a shared network with scope=domain with no subdomain access ")
|
||||||
|
|
||||||
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=Domain and no subdomain access
|
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=Domain and no subdomain access
|
||||||
|
|
||||||
|
|
@ -1236,7 +1232,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Domain admin is not able to deploy a VM for domain user in a shared network with scope=Domain and no subdomain access")
|
"Domain admin is not able to deploy a VM for domain user in a shared network with scope=Domain and no subdomain access")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_domainadminuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1292,8 +1287,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for sub domain user in a shared network with scope=Domain and no subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for sub domain user in a shared network with scope=Domain and no subdomain access")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_subdomainadminuser(self):
|
||||||
|
|
@ -1322,8 +1317,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a admin user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a admin user from a subdomain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for sub domain admin user in a shared network with scope=Domain and no subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for sub domain admin user in a shared network with scope=Domain and no subdomain access ")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainuser(self):
|
||||||
|
|
@ -1352,8 +1347,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for parent domain user in a shared network with scope=Domain and no subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for parent domain user in a shared network with scope=Domain and no subdomain access ")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_parentdomainadminuser(self):
|
||||||
|
|
@ -1382,9 +1377,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for parent domain admin user in a shared network with scope=Domain and no subdomain access ")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for parent domain admin user in a shared network with scope=Domain and no subdomain access ")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_ROOTuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_nosubdomainaccess_ROOTuser(self):
|
||||||
|
|
@ -1412,9 +1406,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a regular user from ROOT domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
self.debug("When a regular user from ROOT domain deploys a VM in a shared network with scope=domain with no subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for user in ROOT domain in a shared network with scope=Domain and no subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for user in ROOT domain in a shared network with scope=Domain and no subdomain access")
|
||||||
|
|
||||||
|
|
||||||
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=Domain and with subdomain access
|
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=Domain and with subdomain access
|
||||||
|
|
||||||
|
|
@ -1445,7 +1438,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
True,
|
True,
|
||||||
"Domain admin is not able to deploy a VM for regular user in domain in a shared network with scope=Domain and subdomain access")
|
"Domain admin is not able to deploy a VM for regular user in domain in a shared network with scope=Domain and subdomain access")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_domainadminuser(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1551,7 +1543,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
self.debug("When a user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for regular user in parent domain in a shared network with scope=Domain and subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for regular user in parent domain in a shared network with scope=Domain and subdomain access")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_parentdomainadminuser(self):
|
||||||
|
|
@ -1580,8 +1573,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
self.debug("When an admin user from parent domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NOT_AVAILABLE_IN_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for admin user in parent domain in a shared network with scope=Domain and subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for admin user in parent domain in a shared network with scope=Domain and subdomain access")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_ROOTuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_domain_withsubdomainaccess_ROOTuser(self):
|
||||||
|
|
@ -1609,8 +1602,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from ROOT domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
self.debug("When a user from ROOT domain deploys a VM in a shared network with scope=domain with subdomain access %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for user in ROOT domain in a shared network with scope=Domain and subdomain access")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for user in ROOT domain in a shared network with scope=Domain and subdomain access")
|
||||||
|
|
||||||
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=account
|
## Test cases relating to deploying Virtual Machine as Domain admin for other users in shared network with scope=account
|
||||||
|
|
||||||
|
|
@ -1640,8 +1633,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for user in the same domain but belonging to a different account in a shared network with scope=account")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for user in the same domain but belonging to a different account in a shared network with scope=account")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainadminuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_domainadminuser(self):
|
||||||
|
|
@ -1669,8 +1662,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
self.debug("When a user from same domain but different account deploys a VM in a shared network with scope=account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.UNABLE_TO_USE_NETWORK):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for user in the same domain but belonging to a different account in a shared network with scope=account")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for user in the same domain but belonging to a different account in a shared network with scope=account")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_user(self):
|
||||||
|
|
@ -1725,8 +1718,8 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("When a user from different domain deploys a VM in a shared network with scope=account %s" % e)
|
self.debug("When a user from different domain deploys a VM in a shared network with scope=account %s" % e)
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_DOMAIN):
|
||||||
self.fail("Error message validation failed when Domain admin tries to deploy a VM for an regular user from a differnt domain in a shared network with scope=account")
|
self.fail(
|
||||||
|
"Error message validation failed when Domain admin tries to deploy a VM for an regular user from a differnt domain in a shared network with scope=account")
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser(self):
|
def test_deployVM_in_sharedNetwork_as_domainadmin_scope_account_ROOTuser(self):
|
||||||
|
|
@ -1786,7 +1779,6 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_ACCOUNT):
|
if not CloudstackAclException.verifyMsginException(e, CloudstackAclException.NO_PERMISSION_TO_OPERATE_ACCOUNT):
|
||||||
self.fail("Error message validation failed when Regular user tries to deploy a VM for another user in the same domain in a shared network with scope=all")
|
self.fail("Error message validation failed when Regular user tries to deploy a VM for another user in the same domain in a shared network with scope=all")
|
||||||
|
|
||||||
|
|
||||||
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain(self):
|
def test_deployVM_in_sharedNetwork_as_regularuser_scope_all_crossdomain(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -1827,5 +1819,3 @@ class TestSharedNetworkImpersonation(cloudstackTestCase):
|
||||||
apiclient,
|
apiclient,
|
||||||
user.id
|
user.id
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ Tests of acquiring a specified public IP for isolated network or vpc
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import createVlanIpRange
|
from marvin.cloudstackAPI import createVlanIpRange
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
cleanup_resources)
|
cleanup_resources)
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,8 @@
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from ddt import ddt, data
|
from ddt import ddt, data
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
|
|
@ -66,6 +67,7 @@ from marvin.codes import PASS
|
||||||
import random
|
import random
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
class Services:
|
class Services:
|
||||||
"""Test Add Remove Network Services
|
"""Test Add Remove Network Services
|
||||||
"""
|
"""
|
||||||
|
|
@ -178,6 +180,7 @@ class Services:
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ddt
|
@ddt
|
||||||
class TestAddNetworkToVirtualMachine(cloudstackTestCase):
|
class TestAddNetworkToVirtualMachine(cloudstackTestCase):
|
||||||
|
|
||||||
|
|
@ -735,6 +738,7 @@ class TestAddNetworkToVirtualMachine(cloudstackTestCase):
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class TestRemoveNetworkFromVirtualMachine(cloudstackTestCase):
|
class TestRemoveNetworkFromVirtualMachine(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -1058,7 +1062,7 @@ class TestRemoveNetworkFromVirtualMachine(cloudstackTestCase):
|
||||||
networkids=[self.isolated_network.id, self.ntwk2.id, self.ntwk3.id]
|
networkids=[self.isolated_network.id, self.ntwk2.id, self.ntwk3.id]
|
||||||
)
|
)
|
||||||
self.assertIsNotNone(self.test_vm, "Failed to create vm with 3 nics")
|
self.assertIsNotNone(self.test_vm, "Failed to create vm with 3 nics")
|
||||||
map(lambda x: self.cleanup.append(x), [self.test_vm, self.ntwk2, self.ntwk3])
|
list(map(lambda x: self.cleanup.append(x), [self.test_vm, self.ntwk2, self.ntwk3]))
|
||||||
vm_res = VirtualMachine.list(
|
vm_res = VirtualMachine.list(
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
id=self.test_vm.id
|
id=self.test_vm.id
|
||||||
|
|
@ -1120,6 +1124,7 @@ class TestRemoveNetworkFromVirtualMachine(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class TestUpdateVirtualMachineNIC(cloudstackTestCase):
|
class TestUpdateVirtualMachineNIC(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -1338,6 +1343,7 @@ class TestUpdateVirtualMachineNIC(cloudstackTestCase):
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class TestFailureScenariosAddNetworkToVM(cloudstackTestCase):
|
class TestFailureScenariosAddNetworkToVM(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -1576,6 +1582,7 @@ class TestFailureScenariosAddNetworkToVM(cloudstackTestCase):
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class TestFailureScenariosRemoveNicFromVM(cloudstackTestCase):
|
class TestFailureScenariosRemoveNicFromVM(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -1760,6 +1767,7 @@ class TestFailureScenariosRemoveNicFromVM(cloudstackTestCase):
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class TestFailureScenariosUpdateVirtualMachineNIC(cloudstackTestCase):
|
class TestFailureScenariosUpdateVirtualMachineNIC(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@
|
||||||
|
|
||||||
""" P1 tests for networks in advanced zone with security groups
|
""" P1 tests for networks in advanced zone with security groups
|
||||||
"""
|
"""
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from ddt import ddt, data
|
from ddt import ddt, data
|
||||||
from marvin.lib.base import (Zone,
|
from marvin.lib.base import (Zone,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
@ -2162,7 +2163,7 @@ class TestNetworksInAdvancedSG_VmOperations(cloudstackTestCase):
|
||||||
name=self.services["test_34_DeployVM_in_SecondSGNetwork"]["zone"]
|
name=self.services["test_34_DeployVM_in_SecondSGNetwork"]["zone"]
|
||||||
)
|
)
|
||||||
status = validateList(zone_list)
|
status = validateList(zone_list)
|
||||||
self.assertEquals(status[0], PASS, "Failed to list the zones")
|
self.assertEqual(status[0], PASS, "Failed to list the zones")
|
||||||
count = 0
|
count = 0
|
||||||
"""
|
"""
|
||||||
In simulator environment default guest os template should be in ready state immediately after the ssvm is up.
|
In simulator environment default guest os template should be in ready state immediately after the ssvm is up.
|
||||||
|
|
@ -2260,7 +2261,7 @@ class TestNetworksInAdvancedSG_VmOperations(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
#construct ip list using start and end ips in the network
|
#construct ip list using start and end ips in the network
|
||||||
for i in range(0,nwIPs):
|
for i in range(0,nwIPs):
|
||||||
ips_in_new_network.append(str(ip_gen.next()))
|
ips_in_new_network.append(str(next(ip_gen)))
|
||||||
if vm_ip not in ips_in_new_network:
|
if vm_ip not in ips_in_new_network:
|
||||||
self.fail("vm did not get the ip from new SG enabled shared network")
|
self.fail("vm did not get the ip from new SG enabled shared network")
|
||||||
self.cleanup_vms.append(vm_2)
|
self.cleanup_vms.append(vm_2)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@
|
||||||
# KIND, either express or implied. See the License for the
|
# KIND, either express or implied. See the License for the
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import deleteAffinityGroup
|
from marvin.cloudstackAPI import deleteAffinityGroup
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
random_gen)
|
random_gen)
|
||||||
|
|
@ -187,8 +188,8 @@ class TestCreateAffinityGroup(cloudstackTestCase):
|
||||||
acc=self.account.name, domainid=self.account.domainid)
|
acc=self.account.name, domainid=self.account.domainid)
|
||||||
self.debug("Created Affinity Group: %s" % aff_grp.name)
|
self.debug("Created Affinity Group: %s" % aff_grp.name)
|
||||||
list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
|
list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
|
||||||
self.assert_(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
self.assertTrue(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
||||||
self.assert_(list_aff_grps[0].id == aff_grp.id)
|
self.assertTrue(list_aff_grps[0].id == aff_grp.id)
|
||||||
self.cleanup.append(aff_grp)
|
self.cleanup.append(aff_grp)
|
||||||
|
|
||||||
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
||||||
|
|
@ -455,7 +456,7 @@ class TestListAffinityGroups(cloudstackTestCase):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
|
self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
|
||||||
print self.aff_grp[0].__dict__
|
print(self.aff_grp[0].__dict__)
|
||||||
list_aff_grps = AffinityGroup.list(self.api_client)
|
list_aff_grps = AffinityGroup.list(self.api_client)
|
||||||
list_aff_grps = AffinityGroup.list(self.api_client, id=list_aff_grps[0].id)
|
list_aff_grps = AffinityGroup.list(self.api_client, id=list_aff_grps[0].id)
|
||||||
self.assertEqual(list_aff_grps[0].name, self.aff_grp[0].name,
|
self.assertEqual(list_aff_grps[0].name, self.aff_grp[0].name,
|
||||||
|
|
@ -646,7 +647,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
|
||||||
|
|
||||||
def delete_aff_group(self, apiclient, **kwargs):
|
def delete_aff_group(self, apiclient, **kwargs):
|
||||||
cmd = deleteAffinityGroup.deleteAffinityGroupCmd()
|
cmd = deleteAffinityGroup.deleteAffinityGroupCmd()
|
||||||
[setattr(cmd, k, v) for k, v in kwargs.items()]
|
[setattr(cmd, k, v) for k, v in list(kwargs.items())]
|
||||||
return apiclient.deleteAffinityGroup(cmd)
|
return apiclient.deleteAffinityGroup(cmd)
|
||||||
|
|
||||||
@attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
|
@attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
|
||||||
|
|
@ -658,7 +659,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
|
||||||
aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
|
aff_0 = self.create_aff_grp(aff_grp=self.services["host_anti_affinity"])
|
||||||
AffinityGroup.list(self.api_client, name=aff_0.name)
|
AffinityGroup.list(self.api_client, name=aff_0.name)
|
||||||
self.delete_aff_group(self.api_client, name=aff_0.name)
|
self.delete_aff_group(self.api_client, name=aff_0.name)
|
||||||
self.assert_(AffinityGroup.list(self.api_client, name=aff_0.name) is None)
|
self.assertTrue(AffinityGroup.list(self.api_client, name=aff_0.name) is None)
|
||||||
|
|
||||||
@attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
|
@attr(tags=["simulator", "basic", "advanced", "multihost"], required_hardware="false")
|
||||||
def test_02_delete_aff_grp_for_acc(self):
|
def test_02_delete_aff_grp_for_acc(self):
|
||||||
|
|
@ -688,7 +689,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
|
||||||
vm, hostid = self.create_vm_in_aff_grps([aff_0.name, aff_1.name], account_name=self.account.name, domain_id=self.domain.id)
|
vm, hostid = self.create_vm_in_aff_grps([aff_0.name, aff_1.name], account_name=self.account.name, domain_id=self.domain.id)
|
||||||
aff_0.delete(self.api_client)
|
aff_0.delete(self.api_client)
|
||||||
vm_list = list_virtual_machines(self.apiclient, id=vm.id)
|
vm_list = list_virtual_machines(self.apiclient, id=vm.id)
|
||||||
self.assert_(vm_list is not None)
|
self.assertTrue(vm_list is not None)
|
||||||
vm.delete(self.api_client)
|
vm.delete(self.api_client)
|
||||||
#Wait for expunge interval to cleanup VM
|
#Wait for expunge interval to cleanup VM
|
||||||
wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
|
wait_for_cleanup(self.apiclient, ["expunge.delay", "expunge.interval"])
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@
|
||||||
# KIND, either express or implied. See the License for the
|
# KIND, either express or implied. See the License for the
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import deleteAffinityGroup
|
from marvin.cloudstackAPI import deleteAffinityGroup
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
random_gen)
|
random_gen)
|
||||||
|
|
@ -218,9 +219,9 @@ class TestCreateAffinityGroup(cloudstackTestCase):
|
||||||
aff_grp = self.create_aff_grp()
|
aff_grp = self.create_aff_grp()
|
||||||
self.debug("Created Affinity Group: %s" % aff_grp.name)
|
self.debug("Created Affinity Group: %s" % aff_grp.name)
|
||||||
list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
|
list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
|
||||||
self.assert_(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
self.assertTrue(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
||||||
self.assert_(list_aff_grps[0].id == aff_grp.id)
|
self.assertTrue(list_aff_grps[0].id == aff_grp.id)
|
||||||
self.assert_(list_aff_grps[0].projectid == self.project.id)
|
self.assertTrue(list_aff_grps[0].projectid == self.project.id)
|
||||||
self.cleanup.append(aff_grp)
|
self.cleanup.append(aff_grp)
|
||||||
|
|
||||||
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
||||||
|
|
@ -231,9 +232,9 @@ class TestCreateAffinityGroup(cloudstackTestCase):
|
||||||
"""
|
"""
|
||||||
aff_grp = self.create_aff_grp(api_client=self.domain_api_client)
|
aff_grp = self.create_aff_grp(api_client=self.domain_api_client)
|
||||||
list_aff_grps = AffinityGroup.list(self.domain_api_client, id=aff_grp.id)
|
list_aff_grps = AffinityGroup.list(self.domain_api_client, id=aff_grp.id)
|
||||||
self.assert_(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
self.assertTrue(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
||||||
self.assert_(list_aff_grps[0].id == aff_grp.id)
|
self.assertTrue(list_aff_grps[0].id == aff_grp.id)
|
||||||
self.assert_(list_aff_grps[0].projectid == self.project.id)
|
self.assertTrue(list_aff_grps[0].projectid == self.project.id)
|
||||||
self.cleanup.append(aff_grp)
|
self.cleanup.append(aff_grp)
|
||||||
|
|
||||||
@attr(tags=["vogxn", "simulator", "basic", "advanced"], required_hardware="false")
|
@attr(tags=["vogxn", "simulator", "basic", "advanced"], required_hardware="false")
|
||||||
|
|
@ -244,9 +245,9 @@ class TestCreateAffinityGroup(cloudstackTestCase):
|
||||||
"""
|
"""
|
||||||
aff_grp = self.create_aff_grp(api_client=self.account_api_client)
|
aff_grp = self.create_aff_grp(api_client=self.account_api_client)
|
||||||
list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
|
list_aff_grps = AffinityGroup.list(self.api_client, id=aff_grp.id)
|
||||||
self.assert_(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
self.assertTrue(isinstance(list_aff_grps, list) and len(list_aff_grps) > 0)
|
||||||
self.assert_(list_aff_grps[0].id == aff_grp.id)
|
self.assertTrue(list_aff_grps[0].id == aff_grp.id)
|
||||||
self.assert_(list_aff_grps[0].projectid == self.project.id)
|
self.assertTrue(list_aff_grps[0].projectid == self.project.id)
|
||||||
self.cleanup.append(aff_grp)
|
self.cleanup.append(aff_grp)
|
||||||
|
|
||||||
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
@attr(tags=["simulator", "basic", "advanced"], required_hardware="false")
|
||||||
|
|
@ -670,7 +671,7 @@ class TestDeleteAffinityGroups(cloudstackTestCase):
|
||||||
|
|
||||||
def delete_aff_group(self, apiclient, **kwargs):
|
def delete_aff_group(self, apiclient, **kwargs):
|
||||||
cmd = deleteAffinityGroup.deleteAffinityGroupCmd()
|
cmd = deleteAffinityGroup.deleteAffinityGroupCmd()
|
||||||
[setattr(cmd, k, v) for k, v in kwargs.items()]
|
[setattr(cmd, k, v) for k, v in list(kwargs.items())]
|
||||||
return apiclient.deleteAffinityGroup(cmd)
|
return apiclient.deleteAffinityGroup(cmd)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,8 @@
|
||||||
from marvin.codes import (PASS,
|
from marvin.codes import (PASS,
|
||||||
RECURRING)
|
RECURRING)
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
|
|
||||||
from marvin.lib.base import (ServiceOffering,
|
from marvin.lib.base import (ServiceOffering,
|
||||||
Account,
|
Account,
|
||||||
|
|
@ -419,7 +420,7 @@ class TestBaseImageUpdate(cloudstackTestCase):
|
||||||
|
|
||||||
hypervisor = host_list_validation_result[1].hypervisor
|
hypervisor = host_list_validation_result[1].hypervisor
|
||||||
|
|
||||||
for k, v in self.services["templates"].items():
|
for k, v in list(self.services["templates"].items()):
|
||||||
if k.lower() == hypervisor.lower():
|
if k.lower() == hypervisor.lower():
|
||||||
# Register new template
|
# Register new template
|
||||||
template = Template.register(
|
template = Template.register(
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,8 @@ from marvin.lib.common import (get_zone,
|
||||||
get_builtin_template_info)
|
get_builtin_template_info)
|
||||||
|
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import restartNetwork
|
from marvin.cloudstackAPI import restartNetwork
|
||||||
from marvin.codes import PASS
|
from marvin.codes import PASS
|
||||||
import time
|
import time
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import (listPhysicalNetworks,
|
from marvin.cloudstackAPI import (listPhysicalNetworks,
|
||||||
listNetworkServiceProviders,
|
listNetworkServiceProviders,
|
||||||
addNetworkServiceProvider,
|
addNetworkServiceProvider,
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@
|
||||||
|
|
||||||
import marvin
|
import marvin
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import *
|
from marvin.cloudstackAPI import *
|
||||||
from marvin.lib.utils import *
|
from marvin.lib.utils import *
|
||||||
from marvin.lib.base import *
|
from marvin.lib.base import *
|
||||||
|
|
@ -160,7 +161,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -284,7 +285,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -377,7 +378,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -427,7 +428,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -477,7 +478,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
time.sleep(60)
|
time.sleep(60)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -545,7 +546,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
id=volid
|
id=volid
|
||||||
)
|
)
|
||||||
print list_volume_response[0]
|
print(list_volume_response[0])
|
||||||
vmlist.attach_volume(
|
vmlist.attach_volume(
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
list_volume_response[0]
|
list_volume_response[0]
|
||||||
|
|
@ -612,7 +613,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
id=volid
|
id=volid
|
||||||
)
|
)
|
||||||
print list_volume_response[0]
|
print(list_volume_response[0])
|
||||||
vmdetails.detach_volume(self.apiclient,list_volume_response[0])
|
vmdetails.detach_volume(self.apiclient,list_volume_response[0])
|
||||||
|
|
||||||
# Sleep to ensure the current state will reflected in other calls
|
# Sleep to ensure the current state will reflected in other calls
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
|
|
||||||
import marvin
|
import marvin
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import *
|
from marvin.cloudstackAPI import *
|
||||||
from marvin.lib.utils import *
|
from marvin.lib.utils import *
|
||||||
from marvin.lib.base import *
|
from marvin.lib.base import *
|
||||||
|
|
@ -32,7 +33,7 @@ import random
|
||||||
import string
|
import string
|
||||||
import telnetlib
|
import telnetlib
|
||||||
import os
|
import os
|
||||||
import urllib
|
import urllib.request, urllib.parse, urllib.error
|
||||||
import time
|
import time
|
||||||
import tempfile
|
import tempfile
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,8 @@
|
||||||
|
|
||||||
import marvin
|
import marvin
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import *
|
from marvin.cloudstackAPI import *
|
||||||
from marvin.lib.utils import *
|
from marvin.lib.utils import *
|
||||||
from marvin.lib.base import *
|
from marvin.lib.base import *
|
||||||
|
|
@ -39,7 +40,7 @@ import string
|
||||||
|
|
||||||
import telnetlib
|
import telnetlib
|
||||||
import os
|
import os
|
||||||
import urllib
|
import urllib.request, urllib.parse, urllib.error
|
||||||
import time
|
import time
|
||||||
import tempfile
|
import tempfile
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
@ -136,7 +137,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -213,7 +214,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -299,7 +300,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -425,7 +426,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
time.sleep(60)
|
time.sleep(60)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code == 200:
|
if results.status_code == 200:
|
||||||
self.fail("Upload URL is allowed to reuse")
|
self.fail("Upload URL is allowed to reuse")
|
||||||
|
|
||||||
|
|
@ -547,7 +548,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
time.sleep(60)
|
time.sleep(60)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -593,7 +594,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
time.sleep(60)
|
time.sleep(60)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -647,7 +648,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
id=volid
|
id=volid
|
||||||
)
|
)
|
||||||
print list_volume_response[0]
|
print(list_volume_response[0])
|
||||||
vmlist.attach_volume(
|
vmlist.attach_volume(
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
list_volume_response[0]
|
list_volume_response[0]
|
||||||
|
|
@ -715,7 +716,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
id=volid
|
id=volid
|
||||||
)
|
)
|
||||||
print list_volume_response[0]
|
print(list_volume_response[0])
|
||||||
vmdetails.detach_volume(self.apiclient,list_volume_response[0])
|
vmdetails.detach_volume(self.apiclient,list_volume_response[0])
|
||||||
|
|
||||||
# Sleep to ensure the current state will reflected in other calls
|
# Sleep to ensure the current state will reflected in other calls
|
||||||
|
|
@ -821,9 +822,9 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
extract_vol = self.apiclient.extractVolume(cmd)
|
extract_vol = self.apiclient.extractVolume(cmd)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
formatted_url = urllib.unquote_plus(extract_vol.url)
|
formatted_url = urllib.parse.unquote_plus(extract_vol.url)
|
||||||
self.debug("Attempting to download volume at url %s" % formatted_url)
|
self.debug("Attempting to download volume at url %s" % formatted_url)
|
||||||
response = urllib.urlopen(formatted_url)
|
response = urllib.request.urlopen(formatted_url)
|
||||||
self.debug("response from volume url %s" % response.getcode())
|
self.debug("response from volume url %s" % response.getcode())
|
||||||
fd, path = tempfile.mkstemp()
|
fd, path = tempfile.mkstemp()
|
||||||
self.debug("Saving volume %s to path %s" %(volumeid, path))
|
self.debug("Saving volume %s to path %s" %(volumeid, path))
|
||||||
|
|
@ -1185,7 +1186,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
templatefilter='self')
|
templatefilter='self')
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
templates_before_size + 1,
|
templates_before_size + 1,
|
||||||
len(list_templates_after),
|
len(list_templates_after),
|
||||||
"Template creation failed from snapshot"
|
"Template creation failed from snapshot"
|
||||||
|
|
@ -1763,7 +1764,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -1808,7 +1809,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -1916,7 +1917,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code !=200:
|
if results.status_code !=200:
|
||||||
self.fail("Upload is not fine")
|
self.fail("Upload is not fine")
|
||||||
|
|
||||||
|
|
@ -1955,7 +1956,7 @@ class TestBrowseUploadVolume(cloudstackTestCase):
|
||||||
|
|
||||||
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
results = requests.post(posturl,files=files,headers=headers,verify=False)
|
||||||
|
|
||||||
print results.status_code
|
print(results.status_code)
|
||||||
if results.status_code ==200:
|
if results.status_code ==200:
|
||||||
return("FAIL")
|
return("FAIL")
|
||||||
return("PASS")
|
return("PASS")
|
||||||
|
|
|
||||||
|
|
@ -19,18 +19,12 @@
|
||||||
and password reset functionality with
|
and password reset functionality with
|
||||||
ConfigDrive
|
ConfigDrive
|
||||||
"""
|
"""
|
||||||
import base64
|
|
||||||
import os
|
|
||||||
import socket
|
|
||||||
# Import Local Modules
|
|
||||||
import subprocess
|
|
||||||
import tempfile
|
|
||||||
from contextlib import contextmanager
|
|
||||||
|
|
||||||
import time
|
# Import Local Modules
|
||||||
from marvin.cloudstackAPI import (restartVPC)
|
from marvin.cloudstackAPI import (restartVPC)
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (
|
||||||
|
Account,
|
||||||
createVlanIpRange,
|
createVlanIpRange,
|
||||||
Configurations,
|
Configurations,
|
||||||
FireWallRule,
|
FireWallRule,
|
||||||
|
|
@ -51,12 +45,20 @@ from marvin.lib.base import (Account,
|
||||||
VPC,
|
VPC,
|
||||||
VpcOffering,
|
VpcOffering,
|
||||||
Hypervisor, Template)
|
Hypervisor, Template)
|
||||||
from marvin.lib.common import (get_domain,
|
from marvin.lib.common import (
|
||||||
get_template,
|
get_domain,
|
||||||
get_zone, get_test_template,
|
get_zone, get_test_template,
|
||||||
is_config_suitable)
|
is_config_suitable)
|
||||||
from marvin.lib.utils import random_gen
|
from marvin.lib.utils import random_gen
|
||||||
|
|
||||||
# Import System Modules
|
# Import System Modules
|
||||||
|
import base64
|
||||||
|
import os
|
||||||
|
import socket
|
||||||
|
import subprocess
|
||||||
|
import tempfile
|
||||||
|
import time
|
||||||
|
from contextlib import contextmanager
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from retry import retry
|
from retry import retry
|
||||||
|
|
||||||
|
|
@ -1000,7 +1002,7 @@ class ConfigDriveUtils:
|
||||||
:rtype: str
|
:rtype: str
|
||||||
"""
|
"""
|
||||||
self.debug("Updating userdata for VM - %s" % vm.name)
|
self.debug("Updating userdata for VM - %s" % vm.name)
|
||||||
updated_user_data = base64.b64encode(new_user_data)
|
updated_user_data = base64.encodestring(new_user_data.encode()).decode()
|
||||||
with self.stopped_vm(vm):
|
with self.stopped_vm(vm):
|
||||||
vm.update(self.api_client, userdata=updated_user_data)
|
vm.update(self.api_client, userdata=updated_user_data)
|
||||||
|
|
||||||
|
|
@ -2371,7 +2373,6 @@ class TestConfigDrive(cloudstackTestCase, ConfigDriveUtils):
|
||||||
vm1, public_ip_1,
|
vm1, public_ip_1,
|
||||||
metadata=True)
|
metadata=True)
|
||||||
|
|
||||||
|
|
||||||
# =====================================================================
|
# =====================================================================
|
||||||
# Network restart tests
|
# Network restart tests
|
||||||
# =====================================================================
|
# =====================================================================
|
||||||
|
|
|
||||||
|
|
@ -191,7 +191,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
|
||||||
users = {self.domain: self.admin,
|
users = {self.domain: self.admin,
|
||||||
self.child_domain: self.child_do_admin
|
self.child_domain: self.child_do_admin
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -267,7 +267,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
|
||||||
users = {self.domain: self.admin,
|
users = {self.domain: self.admin,
|
||||||
self.child_domain: self.child_do_admin
|
self.child_domain: self.child_do_admin
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -328,7 +328,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
|
||||||
users = {self.domain: self.admin,
|
users = {self.domain: self.admin,
|
||||||
self.child_domain: self.child_do_admin
|
self.child_domain: self.child_do_admin
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -392,7 +392,7 @@ class TestDomainCPULimitsUpdateResources(cloudstackTestCase):
|
||||||
users = {self.domain: self.admin,
|
users = {self.domain: self.admin,
|
||||||
self.child_domain: self.child_do_admin
|
self.child_domain: self.child_do_admin
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -435,7 +435,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -510,7 +510,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -570,7 +570,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -633,7 +633,7 @@ class TestDomainCPULimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
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.utils import (cleanup_resources,
|
||||||
random_gen,
|
random_gen,
|
||||||
get_hypervisor_type)
|
get_hypervisor_type)
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
# Test from the Marvin - Testing in Python wiki
|
# Test from the Marvin - Testing in Python wiki
|
||||||
|
|
||||||
# All tests inherit from cloudstackTestCase
|
# All tests inherit from cloudstackTestCase
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import changeServiceForVirtualMachine, startVirtualMachine
|
from marvin.cloudstackAPI import changeServiceForVirtualMachine, startVirtualMachine
|
||||||
|
|
||||||
# Import Integration Libraries
|
# Import Integration Libraries
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ class TestDeployVmWithUserDataMultiNic(cloudstackTestCase):
|
||||||
"""Test userdata update when non default nic is without userdata for deploy and update
|
"""Test userdata update when non default nic is without userdata for deploy and update
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.userdata = base64.b64encode(self.userdata)
|
self.userdata = base64.encodestring(self.userdata.encode()).decode()
|
||||||
|
|
||||||
network1 = Network.create(
|
network1 = Network.create(
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
|
|
@ -166,10 +166,10 @@ class TestDeployVmWithUserDataMultiNic(cloudstackTestCase):
|
||||||
domainid=self.account.domainid,
|
domainid=self.account.domainid,
|
||||||
id=deployVmResponse.id
|
id=deployVmResponse.id
|
||||||
)
|
)
|
||||||
self.assert_(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
self.assertTrue(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
||||||
vm = vms[0]
|
vm = vms[0]
|
||||||
self.assert_(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
self.assertTrue(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
||||||
self.assert_(vm.state == "Running", "VM is not in Running state")
|
self.assertTrue(vm.state == "Running", "VM is not in Running state")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
updateresponse = deployVmResponse.update(self.apiclient, userdata=self.userdata)
|
updateresponse = deployVmResponse.update(self.apiclient, userdata=self.userdata)
|
||||||
|
|
|
||||||
|
|
@ -110,8 +110,7 @@ class TestDeployVmWithUserData(cloudstackTestCase):
|
||||||
"""Test userdata as POST, size > 2k
|
"""Test userdata as POST, size > 2k
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
self.userdata = base64.encodestring(self.userdata.encode()).decode()
|
||||||
self.userdata=base64.b64encode(self.userdata)
|
|
||||||
self.services["virtual_machine"]["userdata"] = self.userdata
|
self.services["virtual_machine"]["userdata"] = self.userdata
|
||||||
|
|
||||||
deployVmResponse = VirtualMachine.create(
|
deployVmResponse = VirtualMachine.create(
|
||||||
|
|
@ -132,10 +131,10 @@ class TestDeployVmWithUserData(cloudstackTestCase):
|
||||||
domainid=self.account.domainid,
|
domainid=self.account.domainid,
|
||||||
id=deployVmResponse.id
|
id=deployVmResponse.id
|
||||||
)
|
)
|
||||||
self.assert_(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
self.assertTrue(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
||||||
vm = vms[0]
|
vm = vms[0]
|
||||||
self.assert_(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
self.assertTrue(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
||||||
self.assert_(vm.state == "Running", "VM is not in Running state")
|
self.assertTrue(vm.state == "Running", "VM is not in Running state")
|
||||||
ip_addr=deployVmResponse.ipaddress
|
ip_addr=deployVmResponse.ipaddress
|
||||||
if self.zone.networktype == "Basic":
|
if self.zone.networktype == "Basic":
|
||||||
list_router_response = list_routers(
|
list_router_response = list_routers(
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
""" Tests for DHCP DNS offload feature
|
""" Tests for DHCP DNS offload feature
|
||||||
"""
|
"""
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (random_gen, validateList, cleanup_resources, get_hypervisor_type)
|
from marvin.lib.utils import (random_gen, validateList, cleanup_resources, get_hypervisor_type)
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
NIC,
|
NIC,
|
||||||
|
|
@ -321,7 +322,7 @@ class TestDeployVMs(cloudstackTestCase):
|
||||||
self.assertEqual(validateList(qresultset)[0], PASS, "sql query returned invalid response")
|
self.assertEqual(validateList(qresultset)[0], PASS, "sql query returned invalid response")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
metadata["vm-id.txt"][0],
|
metadata["vm-id.txt"][0],
|
||||||
unicode(qresultset[0][0]),
|
str(qresultset[0][0]),
|
||||||
"vm id in metadata does not match with the vm id from cloud db"
|
"vm id in metadata does not match with the vm id from cloud db"
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
Feature Specifications: https://cwiki.apache.org/confluence/display/
|
Feature Specifications: https://cwiki.apache.org/confluence/display/
|
||||||
CLOUDSTACK/Dynamic+Compute+Offering+FS
|
CLOUDSTACK/Dynamic+Compute+Offering+FS
|
||||||
"""
|
"""
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
validateList,
|
validateList,
|
||||||
random_gen,
|
random_gen,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
Domain,
|
Domain,
|
||||||
Router,
|
Router,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import (authorizeSecurityGroupIngress,
|
from marvin.cloudstackAPI import (authorizeSecurityGroupIngress,
|
||||||
disassociateIpAddress,
|
disassociateIpAddress,
|
||||||
deleteLoadBalancerRule)
|
deleteLoadBalancerRule)
|
||||||
|
|
@ -167,7 +168,7 @@ class TestEIP(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
if isinstance(ip_addrs, list):
|
if isinstance(ip_addrs, list):
|
||||||
cls.source_nat = ip_addrs[0]
|
cls.source_nat = ip_addrs[0]
|
||||||
print "source_nat ipaddress : ", cls.source_nat.ipaddress
|
print("source_nat ipaddress : ", cls.source_nat.ipaddress)
|
||||||
else:
|
else:
|
||||||
raise Exception(
|
raise Exception(
|
||||||
"No Source NAT IP found for guest network: %s" %
|
"No Source NAT IP found for guest network: %s" %
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -121,7 +121,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -189,13 +189,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
isofilter=self.services["templatefilter"]
|
isofilter=self.services["templatefilter"]
|
||||||
)
|
)
|
||||||
status = validateList(list_iso_after)
|
status = validateList(list_iso_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO's creation failed"
|
"ISO's creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is pagesize + 1
|
# Verifying that list size is pagesize + 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"] + 1,
|
self.services["pagesize"] + 1,
|
||||||
len(list_iso_after),
|
len(list_iso_after),
|
||||||
"Failed to create pagesize + 1 number of ISO's"
|
"Failed to create pagesize + 1 number of ISO's"
|
||||||
|
|
@ -209,13 +209,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_iso_page1)
|
status = validateList(list_iso_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list ISO's in page 1"
|
"Failed to list ISO's in page 1"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_iso_page1),
|
len(list_iso_page1),
|
||||||
"Size of ISO's in page 1 is not matching"
|
"Size of ISO's in page 1 is not matching"
|
||||||
|
|
@ -229,13 +229,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_iso_page2)
|
status = validateList(list_iso_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list ISo's in page 2"
|
"Failed to list ISo's in page 2"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to 1
|
# Verifying the list size to be equal to 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_iso_page2),
|
len(list_iso_page2),
|
||||||
"Size of ISO's in page 2 is not matching"
|
"Size of ISO's in page 2 is not matching"
|
||||||
|
|
@ -251,7 +251,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
id=iso_created.id
|
id=iso_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_iso)
|
status = validateList(list_iso)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list ISO by Id"
|
"Failed to list ISO by Id"
|
||||||
|
|
@ -335,13 +335,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
isofilter=self.services["templatefilter"]
|
isofilter=self.services["templatefilter"]
|
||||||
)
|
)
|
||||||
status = validateList(list_iso_after)
|
status = validateList(list_iso_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO's creation failed"
|
"ISO's creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_iso_after),
|
len(list_iso_after),
|
||||||
"Failed to create an ISO's"
|
"Failed to create an ISO's"
|
||||||
|
|
@ -357,7 +357,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
id=iso_created.id
|
id=iso_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_iso)
|
status = validateList(list_iso)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list ISO by Id"
|
"Failed to list ISO by Id"
|
||||||
|
|
@ -386,7 +386,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
"Download ISO failed"
|
"Download ISO failed"
|
||||||
)
|
)
|
||||||
# Verifying the details of downloaded ISO
|
# Verifying the details of downloaded ISO
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
"DOWNLOAD_URL_CREATED",
|
"DOWNLOAD_URL_CREATED",
|
||||||
download_iso.state,
|
download_iso.state,
|
||||||
"Download URL not created for ISO"
|
"Download URL not created for ISO"
|
||||||
|
|
@ -395,7 +395,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
download_iso.url,
|
download_iso.url,
|
||||||
"Download URL not created for ISO"
|
"Download URL not created for ISO"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
iso_created.id,
|
iso_created.id,
|
||||||
download_iso.id,
|
download_iso.id,
|
||||||
"Download ISO details are not same as ISO created"
|
"Download ISO details are not same as ISO created"
|
||||||
|
|
@ -451,13 +451,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
isofilter=self.services["templatefilter"]
|
isofilter=self.services["templatefilter"]
|
||||||
)
|
)
|
||||||
status = validateList(list_iso_after)
|
status = validateList(list_iso_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO's creation failed"
|
"ISO's creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_iso_after),
|
len(list_iso_after),
|
||||||
"Failed to create an ISO's"
|
"Failed to create an ISO's"
|
||||||
|
|
@ -473,7 +473,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
id=iso_created.id
|
id=iso_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_iso)
|
status = validateList(list_iso)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list ISO by Id"
|
"Failed to list ISO by Id"
|
||||||
|
|
@ -534,7 +534,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
# Editing the ISO name, displaytext, ostypeid
|
# Editing the ISO name, displaytext, ostypeid
|
||||||
ostype_list = list_os_types(self.userapiclient)
|
ostype_list = list_os_types(self.userapiclient)
|
||||||
status = validateList(ostype_list)
|
status = validateList(ostype_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list OS Types"
|
"Failed to list OS Types"
|
||||||
|
|
@ -618,7 +618,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
available=True
|
available=True
|
||||||
)
|
)
|
||||||
status = validateList(zones_list)
|
status = validateList(zones_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list Zones"
|
"Failed to list Zones"
|
||||||
|
|
@ -669,13 +669,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
zoneid=zones_list[0].id
|
zoneid=zones_list[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_isos_zone1)
|
status = validateList(list_isos_zone1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO creation failed in Zone1"
|
"ISO creation failed in Zone1"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_isos_zone1),
|
len(list_isos_zone1),
|
||||||
"Failed to create a Template"
|
"Failed to create a Template"
|
||||||
|
|
@ -703,7 +703,7 @@ class TestIsos(cloudstackTestCase):
|
||||||
id=iso_created.id
|
id=iso_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_iso)
|
status = validateList(list_iso)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list ISO by Id"
|
"Failed to list ISO by Id"
|
||||||
|
|
@ -739,13 +739,13 @@ class TestIsos(cloudstackTestCase):
|
||||||
zoneid=zones_list[0].id
|
zoneid=zones_list[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_isos_zone1)
|
status = validateList(list_isos_zone1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO creation failed in Zone1"
|
"ISO creation failed in Zone1"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_isos_zone1),
|
len(list_isos_zone1),
|
||||||
"Failed to create a Template"
|
"Failed to create a Template"
|
||||||
|
|
@ -758,23 +758,23 @@ class TestIsos(cloudstackTestCase):
|
||||||
zoneid=zones_list[1].id
|
zoneid=zones_list[1].id
|
||||||
)
|
)
|
||||||
status = validateList(list_isos_zone2)
|
status = validateList(list_isos_zone2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO failed to copy into Zone2"
|
"ISO failed to copy into Zone2"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_isos_zone2),
|
len(list_isos_zone2),
|
||||||
"ISO failed to copy into Zone2"
|
"ISO failed to copy into Zone2"
|
||||||
)
|
)
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
"Connection refused",
|
"Connection refused",
|
||||||
list_isos_zone2[0].status,
|
list_isos_zone2[0].status,
|
||||||
"Failed to copy ISO"
|
"Failed to copy ISO"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
True,
|
True,
|
||||||
list_isos_zone2[0].isready,
|
list_isos_zone2[0].isready,
|
||||||
"Failed to copy ISO"
|
"Failed to copy ISO"
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -168,7 +168,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
id=self.zone.id
|
id=self.zone.id
|
||||||
)
|
)
|
||||||
status = validateList(list_zones)
|
status = validateList(list_zones)
|
||||||
self.assertEquals(PASS, status[0], "No Zones found for a given id")
|
self.assertEqual(PASS, status[0], "No Zones found for a given id")
|
||||||
self.test_data["network_without_acl"]["zoneid"] = list_zones[0].id
|
self.test_data["network_without_acl"]["zoneid"] = list_zones[0].id
|
||||||
# Listing the networks for a user
|
# Listing the networks for a user
|
||||||
list_networks_before = Network.list(
|
list_networks_before = Network.list(
|
||||||
|
|
@ -226,7 +226,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
type="Isolated")
|
type="Isolated")
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(list_networks_after),
|
len(list_networks_after),
|
||||||
|
|
@ -242,7 +242,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_page1)
|
status = validateList(list_networks_page1)
|
||||||
self.assertEquals(PASS, status[0], "No networks found at page 1")
|
self.assertEqual(PASS, status[0], "No networks found at page 1")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(list_networks_page1),
|
len(list_networks_page1),
|
||||||
self.test_data["pagesize"],
|
self.test_data["pagesize"],
|
||||||
|
|
@ -257,7 +257,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_page2)
|
status = validateList(list_networks_page2)
|
||||||
self.assertEquals(PASS, status[0], "No networks found at page 2")
|
self.assertEqual(PASS, status[0], "No networks found at page 2")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(list_networks_page2),
|
len(list_networks_page2),
|
||||||
1,
|
1,
|
||||||
|
|
@ -267,7 +267,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
network_page2 = list_networks_page2[0]
|
network_page2 = list_networks_page2[0]
|
||||||
for i in range(0, len(list_networks_page1)):
|
for i in range(0, len(list_networks_page1)):
|
||||||
network_page1 = list_networks_page1[i]
|
network_page1 = list_networks_page1[i]
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
network_page2.id,
|
network_page2.id,
|
||||||
network_page1.id,
|
network_page1.id,
|
||||||
"Network listed in page 2 is also listed in page 1"
|
"Network listed in page 2 is also listed in page 1"
|
||||||
|
|
@ -341,7 +341,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# verify no vpc is present for newly created user
|
# verify no vpc is present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(FAIL, status[0], "VPCs found for newly created user")
|
self.assertEqual(FAIL, status[0], "VPCs found for newly created user")
|
||||||
for i in range(0, (self.test_data["pagesize"] + 1)):
|
for i in range(0, (self.test_data["pagesize"] + 1)):
|
||||||
vpc_1 = VPC.create(
|
vpc_1 = VPC.create(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
|
|
@ -354,13 +354,13 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
# verify vpc is created and not none
|
# verify vpc is created and not none
|
||||||
self.assertIsNotNone(vpc_1, "VPC is not created")
|
self.assertIsNotNone(vpc_1, "VPC is not created")
|
||||||
# Verify VPC name with test data
|
# Verify VPC name with test data
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
-1,
|
-1,
|
||||||
vpc_1.name.find(self.test_data["vpc"]["name"]),
|
vpc_1.name.find(self.test_data["vpc"]["name"]),
|
||||||
"VPC name not matched"
|
"VPC name not matched"
|
||||||
)
|
)
|
||||||
# verify zone with test data
|
# verify zone with test data
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.zone.id,
|
self.zone.id,
|
||||||
vpc_1.zoneid,
|
vpc_1.zoneid,
|
||||||
"Zone is not matching in the vpc created"
|
"Zone is not matching in the vpc created"
|
||||||
|
|
@ -370,7 +370,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.test_data["listall"])
|
listall=self.test_data["listall"])
|
||||||
status = validateList(vpc_count_after)
|
status = validateList(vpc_count_after)
|
||||||
self.assertEquals(PASS, status[0], "VPC list count is null")
|
self.assertEqual(PASS, status[0], "VPC list count is null")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(vpc_count_after),
|
len(vpc_count_after),
|
||||||
(self.test_data["pagesize"] + 1),
|
(self.test_data["pagesize"] + 1),
|
||||||
|
|
@ -384,7 +384,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
pagesize=self.test_data["pagesize"]
|
pagesize=self.test_data["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpcs_page1)
|
status = validateList(list_vpcs_page1)
|
||||||
self.assertEquals(PASS, status[0], "No vpcs found in Page 1")
|
self.assertEqual(PASS, status[0], "No vpcs found in Page 1")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
len(list_vpcs_page1),
|
len(list_vpcs_page1),
|
||||||
self.test_data["pagesize"],
|
self.test_data["pagesize"],
|
||||||
|
|
@ -398,7 +398,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
pagesize=self.test_data["pagesize"]
|
pagesize=self.test_data["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpcs_page2)
|
status = validateList(list_vpcs_page2)
|
||||||
self.assertEquals(PASS, status[0], "No vpc found in Page 2")
|
self.assertEqual(PASS, status[0], "No vpc found in Page 2")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpcs_page2),
|
len(list_vpcs_page2),
|
||||||
|
|
@ -410,7 +410,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
# is not present in page1
|
# is not present in page1
|
||||||
for i in range(0, len(list_vpcs_page1)):
|
for i in range(0, len(list_vpcs_page1)):
|
||||||
vpc_page1 = list_vpcs_page1[i]
|
vpc_page1 = list_vpcs_page1[i]
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
vpc_page2.id,
|
vpc_page2.id,
|
||||||
vpc_page1.id,
|
vpc_page1.id,
|
||||||
"VPC listed in page 2 is also listed in page 1"
|
"VPC listed in page 2 is also listed in page 1"
|
||||||
|
|
@ -456,7 +456,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# No VPCs should be present for newly created user
|
# No VPCs should be present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(FAIL, status[0], "VPCs found for newly created user")
|
self.assertEqual(FAIL, status[0], "VPCs found for newly created user")
|
||||||
vpc_count_before = 0
|
vpc_count_before = 0
|
||||||
vpc_1 = VPC.create(
|
vpc_1 = VPC.create(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
|
|
@ -472,8 +472,8 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(PASS, status[0], "VPC is not created")
|
self.assertEqual(PASS, status[0], "VPC is not created")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
vpc_count_before + 1,
|
vpc_count_before + 1,
|
||||||
len(vpc_list),
|
len(vpc_list),
|
||||||
"VPC is not created"
|
"VPC is not created"
|
||||||
|
|
@ -500,7 +500,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
network_offering_before_count = NetworkOffering.list(
|
network_offering_before_count = NetworkOffering.list(
|
||||||
self.userapiclient)
|
self.userapiclient)
|
||||||
status = validateList(network_offering_before_count)
|
status = validateList(network_offering_before_count)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present")
|
"Default network offering not present")
|
||||||
|
|
@ -515,7 +515,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_true_before_count)
|
status = validateList(network_offering_vpc_true_before_count)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = true")
|
"Default network offering not present for vpc = true")
|
||||||
|
|
@ -530,7 +530,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_false_before_count)
|
status = validateList(network_offering_vpc_false_before_count)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = false")
|
"Default network offering not present for vpc = false")
|
||||||
|
|
@ -548,12 +548,12 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
# List network offering
|
# List network offering
|
||||||
network_offering_after_count = NetworkOffering.list(self.userapiclient)
|
network_offering_after_count = NetworkOffering.list(self.userapiclient)
|
||||||
status = validateList(network_offering_after_count)
|
status = validateList(network_offering_after_count)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Network Offering list results in null")
|
"Network Offering list results in null")
|
||||||
# Verify that count is incremented by 1
|
# Verify that count is incremented by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(network_offering_before_count) + 1,
|
len(network_offering_before_count) + 1,
|
||||||
len(network_offering_after_count),
|
len(network_offering_after_count),
|
||||||
"Network offering is not created"
|
"Network offering is not created"
|
||||||
|
|
@ -569,12 +569,12 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_true_after_count)
|
status = validateList(network_offering_vpc_true_after_count)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Network Offering list results in null")
|
"Network Offering list results in null")
|
||||||
# Verify that its count is same as step 1
|
# Verify that its count is same as step 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(network_offering_vpc_true_before_count),
|
len(network_offering_vpc_true_before_count),
|
||||||
len(network_offering_vpc_true_after_count),
|
len(network_offering_vpc_true_after_count),
|
||||||
"Default Network offering is created with vpc as true"
|
"Default Network offering is created with vpc as true"
|
||||||
|
|
@ -590,12 +590,12 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_false_after_count)
|
status = validateList(network_offering_vpc_false_after_count)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Network Offering list results in null")
|
"Network Offering list results in null")
|
||||||
# Verify that its count is same as step 3
|
# Verify that its count is same as step 3
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(network_offering_vpc_false_before_count) + 1,
|
len(network_offering_vpc_false_before_count) + 1,
|
||||||
len(network_offering_vpc_false_after_count),
|
len(network_offering_vpc_false_after_count),
|
||||||
"Default Network offering is not created with vpc as false"
|
"Default Network offering is not created with vpc as false"
|
||||||
|
|
@ -632,7 +632,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# No VPCs should be present for newly created user
|
# No VPCs should be present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(FAIL, status[0], "VPCs found for newly created user")
|
self.assertEqual(FAIL, status[0], "VPCs found for newly created user")
|
||||||
vpc_count_before = 0
|
vpc_count_before = 0
|
||||||
vpc_1 = VPC.create(
|
vpc_1 = VPC.create(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
|
|
@ -647,8 +647,8 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(PASS, status[0], "VPC is not created")
|
self.assertEqual(PASS, status[0], "VPC is not created")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
vpc_count_before + 1,
|
vpc_count_before + 1,
|
||||||
len(vpc_list),
|
len(vpc_list),
|
||||||
"VPC is not created"
|
"VPC is not created"
|
||||||
|
|
@ -673,7 +673,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_true_list)
|
status = validateList(network_offering_vpc_true_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = true")
|
"Default network offering not present for vpc = true")
|
||||||
|
|
@ -733,7 +733,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
type="Isolated")
|
type="Isolated")
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
|
|
@ -746,7 +746,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_in_vpc)
|
status = validateList(list_networks_in_vpc)
|
||||||
self.assertEquals(PASS, status[0], "No networks found in vpc")
|
self.assertEqual(PASS, status[0], "No networks found in vpc")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
|
|
@ -760,7 +760,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# verify no vpc is present for newly created user
|
# verify no vpc is present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(PASS, status[0], "VPCs not found.")
|
self.assertEqual(PASS, status[0], "VPCs not found.")
|
||||||
# verify vpc name matches for newly created vpc name and vpc list name
|
# verify vpc name matches for newly created vpc name and vpc list name
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
vpc_1.name,
|
vpc_1.name,
|
||||||
|
|
@ -799,7 +799,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_false_list)
|
status = validateList(network_offering_vpc_false_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = false")
|
"Default network offering not present for vpc = false")
|
||||||
|
|
@ -845,7 +845,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
|
|
@ -861,14 +861,14 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_after_delete)
|
status = validateList(list_networks_after_delete)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_networks_after_delete),
|
len(list_networks_after_delete),
|
||||||
"Number of networks created is not matching expected"
|
"Number of networks created is not matching expected"
|
||||||
)
|
)
|
||||||
# Verify deleted network is not present
|
# Verify deleted network is not present
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
network_created.id,
|
network_created.id,
|
||||||
list_networks_after_delete[0].id,
|
list_networks_after_delete[0].id,
|
||||||
"Deleted network present"
|
"Deleted network present"
|
||||||
|
|
@ -894,7 +894,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
self.assertIsNotNone(
|
self.assertIsNotNone(
|
||||||
list_networks_before,
|
list_networks_before,
|
||||||
"Network create failed at class level")
|
"Network create failed at class level")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_networks_before),
|
len(list_networks_before),
|
||||||
"More than 1 network created at class level"
|
"More than 1 network created at class level"
|
||||||
|
|
@ -910,7 +910,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_false_list)
|
status = validateList(network_offering_vpc_false_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = false")
|
"Default network offering not present for vpc = false")
|
||||||
|
|
@ -949,7 +949,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
type="Isolated")
|
type="Isolated")
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
|
|
@ -969,7 +969,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
type="Isolated")
|
type="Isolated")
|
||||||
status = validateList(list_networks_after_update)
|
status = validateList(list_networks_after_update)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
len(list_networks_after_update),
|
len(list_networks_after_update),
|
||||||
|
|
@ -1056,7 +1056,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
networkid=list_networks_before[0].id
|
networkid=list_networks_before[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_instances_after)
|
status = validateList(list_instances_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of instances after creation failed"
|
"Listing of instances after creation failed"
|
||||||
|
|
@ -1076,7 +1076,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
networkid=list_networks_before[0].id
|
networkid=list_networks_before[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_instances_page1)
|
status = validateList(list_instances_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of instances in page1 failed"
|
"Listing of instances in page1 failed"
|
||||||
|
|
@ -1096,7 +1096,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
networkid=list_networks_before[0].id
|
networkid=list_networks_before[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_instances_page2)
|
status = validateList(list_instances_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of instances in page2 failed"
|
"Listing of instances in page2 failed"
|
||||||
|
|
@ -1155,7 +1155,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# No VPCs should be present for newly created user
|
# No VPCs should be present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(FAIL, status[0], "VPCs found for newly created user")
|
self.assertEqual(FAIL, status[0], "VPCs found for newly created user")
|
||||||
vpc_count_before = 0
|
vpc_count_before = 0
|
||||||
vpc_1 = VPC.create(
|
vpc_1 = VPC.create(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
|
|
@ -1170,8 +1170,8 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(PASS, status[0], "VPC is not created")
|
self.assertEqual(PASS, status[0], "VPC is not created")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
vpc_count_before + 1,
|
vpc_count_before + 1,
|
||||||
len(vpc_list),
|
len(vpc_list),
|
||||||
"VPC is not created"
|
"VPC is not created"
|
||||||
|
|
@ -1196,7 +1196,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_true_list)
|
status = validateList(network_offering_vpc_true_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = true")
|
"Default network offering not present for vpc = true")
|
||||||
|
|
@ -1246,7 +1246,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
type="Isolated")
|
type="Isolated")
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
|
|
@ -1261,7 +1261,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_in_vpc)
|
status = validateList(list_networks_in_vpc)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Verify network name matches for newly created network name and name
|
# Verify network name matches for newly created network name and name
|
||||||
# from network list
|
# from network list
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
|
|
@ -1298,7 +1298,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# verify no vpc is present for newly created user
|
# verify no vpc is present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(FAIL, status[0], "VPCs found for newly created user")
|
self.assertEqual(FAIL, status[0], "VPCs found for newly created user")
|
||||||
vpc_1 = VPC.create(
|
vpc_1 = VPC.create(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
self.test_data["vpc"],
|
self.test_data["vpc"],
|
||||||
|
|
@ -1309,13 +1309,13 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
self.cleanup.append(vpc_1)
|
self.cleanup.append(vpc_1)
|
||||||
# verify vpc is created and not none
|
# verify vpc is created and not none
|
||||||
# Verify VPC name with test data
|
# Verify VPC name with test data
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
-1,
|
-1,
|
||||||
vpc_1.name.find(self.test_data["vpc"]["name"]),
|
vpc_1.name.find(self.test_data["vpc"]["name"]),
|
||||||
"VPC name not matched"
|
"VPC name not matched"
|
||||||
)
|
)
|
||||||
# verify zone with test data
|
# verify zone with test data
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.zone.id,
|
self.zone.id,
|
||||||
vpc_1.zoneid,
|
vpc_1.zoneid,
|
||||||
"Zone is not matching in the vpc created"
|
"Zone is not matching in the vpc created"
|
||||||
|
|
@ -1325,7 +1325,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.test_data["listall"])
|
listall=self.test_data["listall"])
|
||||||
status = validateList(vpc_count_after)
|
status = validateList(vpc_count_after)
|
||||||
self.assertEquals(PASS, status[0], "VPC list count is null")
|
self.assertEqual(PASS, status[0], "VPC list count is null")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(vpc_count_after),
|
len(vpc_count_after),
|
||||||
|
|
@ -1344,7 +1344,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpcs_after_update)
|
status = validateList(list_vpcs_after_update)
|
||||||
self.assertEquals(PASS, status[0], "No vpcs found using list call")
|
self.assertEqual(PASS, status[0], "No vpcs found using list call")
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpcs_after_update),
|
len(list_vpcs_after_update),
|
||||||
|
|
@ -1403,7 +1403,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# No VPCs should be present for newly created user
|
# No VPCs should be present for newly created user
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(FAIL, status[0], "VPCs found for newly created user")
|
self.assertEqual(FAIL, status[0], "VPCs found for newly created user")
|
||||||
vpc_count_before = 0
|
vpc_count_before = 0
|
||||||
vpc_1 = VPC.create(
|
vpc_1 = VPC.create(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
|
|
@ -1418,8 +1418,8 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(vpc_list)
|
status = validateList(vpc_list)
|
||||||
self.assertEquals(PASS, status[0], "VPC is not created")
|
self.assertEqual(PASS, status[0], "VPC is not created")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
vpc_count_before + 1,
|
vpc_count_before + 1,
|
||||||
len(vpc_list),
|
len(vpc_list),
|
||||||
"VPC is not created"
|
"VPC is not created"
|
||||||
|
|
@ -1445,7 +1445,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
state="Enabled"
|
state="Enabled"
|
||||||
)
|
)
|
||||||
status = validateList(network_offering_vpc_true_list)
|
status = validateList(network_offering_vpc_true_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default network offering not present for vpc = true")
|
"Default network offering not present for vpc = true")
|
||||||
|
|
@ -1505,7 +1505,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
type="Isolated")
|
type="Isolated")
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(PASS, status[0], "No networks found using list call")
|
self.assertEqual(PASS, status[0], "No networks found using list call")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
|
|
@ -1518,7 +1518,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_in_vpc)
|
status = validateList(list_networks_in_vpc)
|
||||||
self.assertEquals(PASS, status[0], "No networks found in vpc")
|
self.assertEqual(PASS, status[0], "No networks found in vpc")
|
||||||
# Asserting for the length of the networks
|
# Asserting for the length of the networks
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
|
|
@ -1554,7 +1554,7 @@ class TestNetworks_1(cloudstackTestCase):
|
||||||
networkid=network_created.id
|
networkid=network_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_network_acl)
|
status = validateList(list_network_acl)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"No networks acls found after creating")
|
"No networks acls found after creating")
|
||||||
|
|
@ -1654,7 +1654,7 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -1703,13 +1703,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
# Listing the vpc for a user after creating a vpc
|
# Listing the vpc for a user after creating a vpc
|
||||||
list_vpc_after = VPC.list(self.userapiclient)
|
list_vpc_after = VPC.list(self.userapiclient)
|
||||||
status = validateList(list_vpc_after)
|
status = validateList(list_vpc_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPC not as expected"
|
"list VPC not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpc size is increased by 1
|
# Verifying the list vpc size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpc_after),
|
len(list_vpc_after),
|
||||||
"list VPC not equal as expected"
|
"list VPC not equal as expected"
|
||||||
|
|
@ -1721,13 +1721,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpc_byid)
|
status = validateList(list_vpc_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPC not as expected"
|
"list VPC not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpc size is 1
|
# Verifying the list vpc size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpc_byid),
|
len(list_vpc_byid),
|
||||||
"list VPC not equal as expected"
|
"list VPC not equal as expected"
|
||||||
|
|
@ -1829,13 +1829,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
# ipaddress for network
|
# ipaddress for network
|
||||||
list_public_ipaddress_after = PublicIPAddress.list(self.userapiclient)
|
list_public_ipaddress_after = PublicIPAddress.list(self.userapiclient)
|
||||||
status = validateList(list_public_ipaddress_after)
|
status = validateList(list_public_ipaddress_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list Public IPAddress not as expected"
|
"list Public IPAddress not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list public ipaddress size is increased by 1
|
# Verifying the list public ipaddress size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_public_ipaddress_after),
|
len(list_public_ipaddress_after),
|
||||||
"list Public IPAddress not equal as expected"
|
"list Public IPAddress not equal as expected"
|
||||||
|
|
@ -1847,13 +1847,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_public_ipaddress_byid)
|
status = validateList(list_public_ipaddress_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list public ipaddress not as expected"
|
"list public ipaddress not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list public ipaddress size is 1
|
# Verifying the list public ipaddress size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_public_ipaddress_byid),
|
len(list_public_ipaddress_byid),
|
||||||
"list public ipaddress not equal as expected"
|
"list public ipaddress not equal as expected"
|
||||||
|
|
@ -1966,8 +1966,8 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying PrivateGateways are listed
|
# Verifying PrivateGateways are listed
|
||||||
status = validateList(list_private_gateways_after)
|
status = validateList(list_private_gateways_after)
|
||||||
self.assertEquals(PASS, status[0], "Private Gateway Creation Failed")
|
self.assertEqual(PASS, status[0], "Private Gateway Creation Failed")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_private_gateways_after),
|
len(list_private_gateways_after),
|
||||||
"list Private Gateway not equal as expected"
|
"list Private Gateway not equal as expected"
|
||||||
|
|
@ -1979,13 +1979,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
vpcid=vpc_created.id
|
vpcid=vpc_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_privategateway_byvpcid)
|
status = validateList(list_privategateway_byvpcid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list private gateway not as expected"
|
"list private gateway not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list private gateway size is 1
|
# Verifying the list private gateway size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_privategateway_byvpcid),
|
len(list_privategateway_byvpcid),
|
||||||
"list private gateway not equal as expected"
|
"list private gateway not equal as expected"
|
||||||
|
|
@ -2089,13 +2089,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
type="Isolated"
|
type="Isolated"
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_after)
|
status = validateList(list_networks_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Network Creation Failed"
|
"Network Creation Failed"
|
||||||
)
|
)
|
||||||
# Verifying network list count is increased by 1
|
# Verifying network list count is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_networks_after),
|
len(list_networks_after),
|
||||||
"Network Creation Failed"
|
"Network Creation Failed"
|
||||||
|
|
@ -2131,13 +2131,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
networkid=network.id
|
networkid=network.id
|
||||||
)
|
)
|
||||||
status = validateList(list_egressfirewallrule_bynetworkid)
|
status = validateList(list_egressfirewallrule_bynetworkid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list EgressFirewall Rule not as expected"
|
"list EgressFirewall Rule not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list EgressFirewall Rule size is 1
|
# Verifying the list EgressFirewall Rule size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_egressfirewallrule_bynetworkid),
|
len(list_egressfirewallrule_bynetworkid),
|
||||||
"list EgressFirewall Rule not equal as expected"
|
"list EgressFirewall Rule not equal as expected"
|
||||||
|
|
@ -2215,13 +2215,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
# Listing the vpc for a user after creating a vpc
|
# Listing the vpc for a user after creating a vpc
|
||||||
list_vpc_after = VPC.list(self.userapiclient)
|
list_vpc_after = VPC.list(self.userapiclient)
|
||||||
status = validateList(list_vpc_after)
|
status = validateList(list_vpc_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPC not as expected"
|
"list VPC not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpc size is increased by 1
|
# Verifying the list vpc size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpc_after),
|
len(list_vpc_after),
|
||||||
"list VPC not equal as expected"
|
"list VPC not equal as expected"
|
||||||
|
|
@ -2238,13 +2238,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"]
|
listall=self.test_data["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpc_byid)
|
status = validateList(list_vpc_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPC not as expected"
|
"list VPC not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpc size is 1
|
# Verifying the list vpc size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpc_byid),
|
len(list_vpc_byid),
|
||||||
"list VPC not equal as expected"
|
"list VPC not equal as expected"
|
||||||
|
|
@ -2291,13 +2291,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
# Listing the vpc for a user after creating a vpc
|
# Listing the vpc for a user after creating a vpc
|
||||||
list_vpc_after = VPC.list(self.userapiclient)
|
list_vpc_after = VPC.list(self.userapiclient)
|
||||||
status = validateList(list_vpc_after)
|
status = validateList(list_vpc_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPC not as expected"
|
"list VPC not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpc size is increased by 1
|
# Verifying the list vpc size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpc_after),
|
len(list_vpc_after),
|
||||||
"list VPC not equal as expected"
|
"list VPC not equal as expected"
|
||||||
|
|
@ -2329,13 +2329,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
vpcid=vpc_created.id
|
vpcid=vpc_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vpngateway_after)
|
status = validateList(list_vpngateway_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"List VPN Gateway not equal as expected"
|
"List VPN Gateway not equal as expected"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpngateway_after
|
len(list_vpngateway_after
|
||||||
),
|
),
|
||||||
|
|
@ -2410,13 +2410,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
# Listing the vpc for a user after creating a vpc
|
# Listing the vpc for a user after creating a vpc
|
||||||
list_vpc_after = VPC.list(self.userapiclient)
|
list_vpc_after = VPC.list(self.userapiclient)
|
||||||
status = validateList(list_vpc_after)
|
status = validateList(list_vpc_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPC not as expected"
|
"list VPC not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpc size is increased by 1
|
# Verifying the list vpc size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpc_after),
|
len(list_vpc_after),
|
||||||
"list VPC not equal as expected"
|
"list VPC not equal as expected"
|
||||||
|
|
@ -2448,13 +2448,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
vpcid=vpc_created.id
|
vpcid=vpc_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vpngateway_after)
|
status = validateList(list_vpngateway_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"List VPN Gateway not equal as expected"
|
"List VPN Gateway not equal as expected"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpngateway_after
|
len(list_vpngateway_after
|
||||||
),
|
),
|
||||||
|
|
@ -2491,13 +2491,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
listall=self.test_data["listall"],
|
listall=self.test_data["listall"],
|
||||||
)
|
)
|
||||||
status = validateList(list_vpncustomergateways_after)
|
status = validateList(list_vpncustomergateways_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"VPN Customer Gateway list failed"
|
"VPN Customer Gateway list failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpncustomergateways_after),
|
len(list_vpncustomergateways_after),
|
||||||
"Failed to list VPN Customer Gateways"
|
"Failed to list VPN Customer Gateways"
|
||||||
|
|
@ -2530,13 +2530,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
vpcid=vpc_created.id
|
vpcid=vpc_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vpn_connection_after)
|
status = validateList(list_vpn_connection_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPN Connection not as expected"
|
"list VPN Connection not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpn connection size is increased by 1
|
# Verifying the list vpn connection size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpn_connection_after),
|
len(list_vpn_connection_after),
|
||||||
"list VPC Connection equal as expected"
|
"list VPC Connection equal as expected"
|
||||||
|
|
@ -2553,13 +2553,13 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
vpcid=vpc_created.id
|
vpcid=vpc_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vpn_connection_after_reset)
|
status = validateList(list_vpn_connection_after_reset)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"list VPN Connection not as expected"
|
"list VPN Connection not as expected"
|
||||||
)
|
)
|
||||||
# Verifying the list vpn connection size is increased by 1
|
# Verifying the list vpn connection size is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpn_connection_after_reset),
|
len(list_vpn_connection_after_reset),
|
||||||
"list VPN Connection not equal as expected"
|
"list VPN Connection not equal as expected"
|
||||||
|
|
@ -2664,7 +2664,7 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
"Failed to list network acl list")
|
"Failed to list network acl list")
|
||||||
# Verfying list is not none
|
# Verfying list is not none
|
||||||
status = validateList(list_networkacl)
|
status = validateList(list_networkacl)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list network acl list"
|
"Failed to list network acl list"
|
||||||
|
|
@ -2711,8 +2711,8 @@ class TestNetworks_2(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying PrivateGateways are listed
|
# Verifying PrivateGateways are listed
|
||||||
status = validateList(list_private_gateways_after)
|
status = validateList(list_private_gateways_after)
|
||||||
self.assertEquals(PASS, status[0], "Failed to list Private Gateway")
|
self.assertEqual(PASS, status[0], "Failed to list Private Gateway")
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_private_gateways_after),
|
len(list_private_gateways_after),
|
||||||
"list Private Gateway not equal as expected"
|
"list Private Gateway not equal as expected"
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -134,13 +134,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that default security group is created
|
# Verifying that default security group is created
|
||||||
status = validateList(list_securitygroups_before)
|
status = validateList(list_securitygroups_before)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default Security Groups creation failed"
|
"Default Security Groups creation failed"
|
||||||
)
|
)
|
||||||
# Verifying the size of the list is 1
|
# Verifying the size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_before),
|
len(list_securitygroups_before),
|
||||||
"Count of Security Groups list is not matching"
|
"Count of Security Groups list is not matching"
|
||||||
|
|
@ -167,13 +167,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_securitygroups_after)
|
status = validateList(list_securitygroups_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Security Groups creation failed"
|
"Security Groups creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is pagesize + 1
|
# Verifying that list size is pagesize + 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"] + 1,
|
self.services["pagesize"] + 1,
|
||||||
len(list_securitygroups_after),
|
len(list_securitygroups_after),
|
||||||
"Failed to create pagesize + 1 number of Security Groups"
|
"Failed to create pagesize + 1 number of Security Groups"
|
||||||
|
|
@ -186,13 +186,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_securitygroups_page1)
|
status = validateList(list_securitygroups_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list security groups in page 1"
|
"Failed to list security groups in page 1"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_securitygroups_page1),
|
len(list_securitygroups_page1),
|
||||||
"Size of security groups in page 1 is not matching"
|
"Size of security groups in page 1 is not matching"
|
||||||
|
|
@ -205,13 +205,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_securitygroups_page2)
|
status = validateList(list_securitygroups_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list security groups in page 2"
|
"Failed to list security groups in page 2"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_page2),
|
len(list_securitygroups_page2),
|
||||||
"Size of security groups in page 2 is not matching"
|
"Size of security groups in page 2 is not matching"
|
||||||
|
|
@ -262,13 +262,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that default security group is created
|
# Verifying that default security group is created
|
||||||
status = validateList(list_securitygroups_before)
|
status = validateList(list_securitygroups_before)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default Security Groups creation failed"
|
"Default Security Groups creation failed"
|
||||||
)
|
)
|
||||||
# Verifying the size of the list is 1
|
# Verifying the size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_before),
|
len(list_securitygroups_before),
|
||||||
"Count of Security Groups list is not matching"
|
"Count of Security Groups list is not matching"
|
||||||
|
|
@ -293,13 +293,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_securitygroups_after)
|
status = validateList(list_securitygroups_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Security Groups creation failed"
|
"Security Groups creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 2
|
# Verifying that list size is 2
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
len(list_securitygroups_after),
|
len(list_securitygroups_after),
|
||||||
"Failed to create Security Group"
|
"Failed to create Security Group"
|
||||||
|
|
@ -320,13 +320,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that security group is listed
|
# Verifying that security group is listed
|
||||||
status = validateList(list_securitygroups_byid)
|
status = validateList(list_securitygroups_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of Security Groups by id failed"
|
"Listing of Security Groups by id failed"
|
||||||
)
|
)
|
||||||
# Verifying size of the list is 1
|
# Verifying size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_byid),
|
len(list_securitygroups_byid),
|
||||||
"Count of the listing security group by id is not matching"
|
"Count of the listing security group by id is not matching"
|
||||||
|
|
@ -334,12 +334,12 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
securitygroup_ingress = list_securitygroups_byid[0].ingressrule
|
securitygroup_ingress = list_securitygroups_byid[0].ingressrule
|
||||||
# Validating the Ingress rule
|
# Validating the Ingress rule
|
||||||
status = validateList(securitygroup_ingress)
|
status = validateList(securitygroup_ingress)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Security Groups Ingress rule authorization failed"
|
"Security Groups Ingress rule authorization failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(securitygroup_ingress),
|
len(securitygroup_ingress),
|
||||||
"Security Group Ingress rules count is not matching"
|
"Security Group Ingress rules count is not matching"
|
||||||
|
|
@ -378,13 +378,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that security group is listed
|
# Verifying that security group is listed
|
||||||
status = validateList(list_securitygroups_byid)
|
status = validateList(list_securitygroups_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of Security Groups by id failed"
|
"Listing of Security Groups by id failed"
|
||||||
)
|
)
|
||||||
# Verifying size of the list is 1
|
# Verifying size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_byid),
|
len(list_securitygroups_byid),
|
||||||
"Count of the listing security group by id is not matching"
|
"Count of the listing security group by id is not matching"
|
||||||
|
|
@ -392,7 +392,7 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
securitygroup_ingress = list_securitygroups_byid[0].ingressrule
|
securitygroup_ingress = list_securitygroups_byid[0].ingressrule
|
||||||
# Verifying that Ingress rule is empty(revoked)
|
# Verifying that Ingress rule is empty(revoked)
|
||||||
status = validateList(securitygroup_ingress)
|
status = validateList(securitygroup_ingress)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
EMPTY_LIST,
|
EMPTY_LIST,
|
||||||
status[2],
|
status[2],
|
||||||
"Security Groups Ingress rule is not revoked"
|
"Security Groups Ingress rule is not revoked"
|
||||||
|
|
@ -426,13 +426,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that default security group is created
|
# Verifying that default security group is created
|
||||||
status = validateList(list_securitygroups_before)
|
status = validateList(list_securitygroups_before)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Default Security Groups creation failed"
|
"Default Security Groups creation failed"
|
||||||
)
|
)
|
||||||
# Verifying the size of the list is 1
|
# Verifying the size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_before),
|
len(list_securitygroups_before),
|
||||||
"Count of Security Groups list is not matching"
|
"Count of Security Groups list is not matching"
|
||||||
|
|
@ -457,13 +457,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_securitygroups_after)
|
status = validateList(list_securitygroups_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Security Groups creation failed"
|
"Security Groups creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 2
|
# Verifying that list size is 2
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
2,
|
2,
|
||||||
len(list_securitygroups_after),
|
len(list_securitygroups_after),
|
||||||
"Failed to create Security Group"
|
"Failed to create Security Group"
|
||||||
|
|
@ -484,13 +484,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that security group is listed
|
# Verifying that security group is listed
|
||||||
status = validateList(list_securitygroups_byid)
|
status = validateList(list_securitygroups_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of Security Groups by id failed"
|
"Listing of Security Groups by id failed"
|
||||||
)
|
)
|
||||||
# Verifying size of the list is 1
|
# Verifying size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_byid),
|
len(list_securitygroups_byid),
|
||||||
"Count of the listing security group by id is not matching"
|
"Count of the listing security group by id is not matching"
|
||||||
|
|
@ -498,12 +498,12 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
securitygroup_egress = list_securitygroups_byid[0].egressrule
|
securitygroup_egress = list_securitygroups_byid[0].egressrule
|
||||||
# Validating the Ingress rule
|
# Validating the Ingress rule
|
||||||
status = validateList(securitygroup_egress)
|
status = validateList(securitygroup_egress)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Security Groups Egress rule authorization failed"
|
"Security Groups Egress rule authorization failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(securitygroup_egress),
|
len(securitygroup_egress),
|
||||||
"Security Group Egress rules count is not matching"
|
"Security Group Egress rules count is not matching"
|
||||||
|
|
@ -542,13 +542,13 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
# Verifying that security group is listed
|
# Verifying that security group is listed
|
||||||
status = validateList(list_securitygroups_byid)
|
status = validateList(list_securitygroups_byid)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of Security Groups by id failed"
|
"Listing of Security Groups by id failed"
|
||||||
)
|
)
|
||||||
# Verifying size of the list is 1
|
# Verifying size of the list is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_securitygroups_byid),
|
len(list_securitygroups_byid),
|
||||||
"Count of the listing security group by id is not matching"
|
"Count of the listing security group by id is not matching"
|
||||||
|
|
@ -556,7 +556,7 @@ class TestSecurityGroups(cloudstackTestCase):
|
||||||
securitygroup_egress = list_securitygroups_byid[0].egressrule
|
securitygroup_egress = list_securitygroups_byid[0].egressrule
|
||||||
# Verifying that Ingress rule is empty(revoked)
|
# Verifying that Ingress rule is empty(revoked)
|
||||||
status = validateList(securitygroup_egress)
|
status = validateList(securitygroup_egress)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
EMPTY_LIST,
|
EMPTY_LIST,
|
||||||
status[2],
|
status[2],
|
||||||
"Security Groups Egress rule is not revoked"
|
"Security Groups Egress rule is not revoked"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (VmSnapshot,
|
from marvin.lib.base import (VmSnapshot,
|
||||||
Snapshot,
|
Snapshot,
|
||||||
DiskOffering,
|
DiskOffering,
|
||||||
|
|
@ -138,7 +139,7 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -188,13 +189,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(volumes_list)
|
status = validateList(volumes_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Root volume did not get created while deploying a VM"
|
"Root volume did not get created while deploying a VM"
|
||||||
)
|
)
|
||||||
# Verifying list size to be 1
|
# Verifying list size to be 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(volumes_list),
|
len(volumes_list),
|
||||||
"More than 1 root volume created for deployed VM"
|
"More than 1 root volume created for deployed VM"
|
||||||
|
|
@ -218,13 +219,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vol_snaps_after)
|
status = validateList(list_vol_snaps_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Volume snapshot creation failed"
|
"Volume snapshot creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is pagesize + 1
|
# Verifying that list size is pagesize + 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"] + 1,
|
self.services["pagesize"] + 1,
|
||||||
len(list_vol_snaps_after),
|
len(list_vol_snaps_after),
|
||||||
"Failed to create pagesize + 1 number of Volume snapshots"
|
"Failed to create pagesize + 1 number of Volume snapshots"
|
||||||
|
|
@ -237,13 +238,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vol_snaps_page1)
|
status = validateList(list_vol_snaps_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list volume snapshots in page 1"
|
"Failed to list volume snapshots in page 1"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_vol_snaps_page1),
|
len(list_vol_snaps_page1),
|
||||||
"Size of volume snapshots in page 1 is not matching"
|
"Size of volume snapshots in page 1 is not matching"
|
||||||
|
|
@ -256,13 +257,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vol_snaps_page2)
|
status = validateList(list_vol_snaps_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list volume snapshots in page 2"
|
"Failed to list volume snapshots in page 2"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vol_snaps_page2),
|
len(list_vol_snaps_page2),
|
||||||
"Size of volume snapshots in page 2 is not matching"
|
"Size of volume snapshots in page 2 is not matching"
|
||||||
|
|
@ -319,13 +320,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(volumes_list)
|
status = validateList(volumes_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Root volume did not get created while deploying a VM"
|
"Root volume did not get created while deploying a VM"
|
||||||
)
|
)
|
||||||
# Verifying list size to be 1
|
# Verifying list size to be 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(volumes_list),
|
len(volumes_list),
|
||||||
"More than 1 root volume created for deployed VM"
|
"More than 1 root volume created for deployed VM"
|
||||||
|
|
@ -347,13 +348,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vol_snaps_after)
|
status = validateList(list_vol_snaps_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Volume snapshot creation failed"
|
"Volume snapshot creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vol_snaps_after),
|
len(list_vol_snaps_after),
|
||||||
"Failed to create Volume snapshot"
|
"Failed to create Volume snapshot"
|
||||||
|
|
@ -365,13 +366,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
id=snapshot_created.id
|
id=snapshot_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vol_snapshot)
|
status = validateList(list_vol_snapshot)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list Volume snapshot by Id"
|
"Failed to list Volume snapshot by Id"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vol_snapshot),
|
len(list_vol_snapshot),
|
||||||
"Size of the list volume snapshot by Id is not matching"
|
"Size of the list volume snapshot by Id is not matching"
|
||||||
|
|
@ -454,13 +455,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vm_snaps_after)
|
status = validateList(list_vm_snaps_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"VM snapshot creation failed"
|
"VM snapshot creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is pagesize + 1
|
# Verifying that list size is pagesize + 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"] + 1,
|
self.services["pagesize"] + 1,
|
||||||
len(list_vm_snaps_after),
|
len(list_vm_snaps_after),
|
||||||
"Failed to create pagesize + 1 number of VM snapshots"
|
"Failed to create pagesize + 1 number of VM snapshots"
|
||||||
|
|
@ -473,13 +474,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vm_snaps_page1)
|
status = validateList(list_vm_snaps_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list vm snapshots in page 1"
|
"Failed to list vm snapshots in page 1"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_vm_snaps_page1),
|
len(list_vm_snaps_page1),
|
||||||
"Size of vm snapshots in page 1 is not matching"
|
"Size of vm snapshots in page 1 is not matching"
|
||||||
|
|
@ -492,13 +493,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vm_snaps_page2)
|
status = validateList(list_vm_snaps_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list vm snapshots in page 2"
|
"Failed to list vm snapshots in page 2"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vm_snaps_page2),
|
len(list_vm_snaps_page2),
|
||||||
"Size of vm snapshots in page 2 is not matching"
|
"Size of vm snapshots in page 2 is not matching"
|
||||||
|
|
@ -526,13 +527,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"],
|
listall=self.services["listall"],
|
||||||
)
|
)
|
||||||
status = validateList(list_vm_snaps)
|
status = validateList(list_vm_snaps)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"All VM snapshots deleted"
|
"All VM snapshots deleted"
|
||||||
)
|
)
|
||||||
# Verifying that list size is equal to page size
|
# Verifying that list size is equal to page size
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_vm_snaps),
|
len(list_vm_snaps),
|
||||||
"VM Snapshots count is not matching"
|
"VM Snapshots count is not matching"
|
||||||
|
|
@ -586,13 +587,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vm_snaps_after)
|
status = validateList(list_vm_snaps_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"VM snapshot creation failed"
|
"VM snapshot creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vm_snaps_after),
|
len(list_vm_snaps_after),
|
||||||
"Failed to create VM snapshot"
|
"Failed to create VM snapshot"
|
||||||
|
|
@ -604,13 +605,13 @@ class TestSnapshots(cloudstackTestCase):
|
||||||
vmsnapshotid=snapshot_created.id
|
vmsnapshotid=snapshot_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vm_snapshot)
|
status = validateList(list_vm_snapshot)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list VM snapshot by Id"
|
"Failed to list VM snapshot by Id"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vm_snapshot),
|
len(list_vm_snapshot),
|
||||||
"Size of the list vm snapshot by Id is not matching"
|
"Size of the list vm snapshot by Id is not matching"
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
validateList)
|
validateList)
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
|
|
@ -118,7 +119,7 @@ class TestTemplates(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -231,13 +232,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
templatefilter=self.services["templatefilter"]
|
templatefilter=self.services["templatefilter"]
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_after)
|
status = validateList(list_templates_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Templates creation failed"
|
"Templates creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is pagesize + 1
|
# Verifying that list size is pagesize + 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"] + 1,
|
self.services["pagesize"] + 1,
|
||||||
len(list_templates_after),
|
len(list_templates_after),
|
||||||
"Failed to create pagesize + 1 number of Templates"
|
"Failed to create pagesize + 1 number of Templates"
|
||||||
|
|
@ -251,13 +252,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_page1)
|
status = validateList(list_templates_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list Templates in page 1"
|
"Failed to list Templates in page 1"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_templates_page1),
|
len(list_templates_page1),
|
||||||
"Size of Templates in page 1 is not matching"
|
"Size of Templates in page 1 is not matching"
|
||||||
|
|
@ -271,13 +272,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_page2)
|
status = validateList(list_templates_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list Templates in page 2"
|
"Failed to list Templates in page 2"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to 1
|
# Verifying the list size to be equal to 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_templates_page2),
|
len(list_templates_page2),
|
||||||
"Size of Templates in page 2 is not matching"
|
"Size of Templates in page 2 is not matching"
|
||||||
|
|
@ -354,13 +355,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
templatefilter=self.services["templatefilter"]
|
templatefilter=self.services["templatefilter"]
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_after)
|
status = validateList(list_templates_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Templates creation failed"
|
"Templates creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_templates_after),
|
len(list_templates_after),
|
||||||
"Failed to create a Template"
|
"Failed to create a Template"
|
||||||
|
|
@ -381,7 +382,7 @@ class TestTemplates(cloudstackTestCase):
|
||||||
"Download Template failed"
|
"Download Template failed"
|
||||||
)
|
)
|
||||||
# Verifying the details of downloaded template
|
# Verifying the details of downloaded template
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
"DOWNLOAD_URL_CREATED",
|
"DOWNLOAD_URL_CREATED",
|
||||||
download_template.state,
|
download_template.state,
|
||||||
"Download URL not created for Template"
|
"Download URL not created for Template"
|
||||||
|
|
@ -390,7 +391,7 @@ class TestTemplates(cloudstackTestCase):
|
||||||
download_template.url,
|
download_template.url,
|
||||||
"Download URL not created for Template"
|
"Download URL not created for Template"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
template_created.id,
|
template_created.id,
|
||||||
download_template.id,
|
download_template.id,
|
||||||
"Download Template details are not same as Template created"
|
"Download Template details are not same as Template created"
|
||||||
|
|
@ -453,13 +454,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
templatefilter=self.services["templatefilter"]
|
templatefilter=self.services["templatefilter"]
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_after)
|
status = validateList(list_templates_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Templates creation failed"
|
"Templates creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_templates_after),
|
len(list_templates_after),
|
||||||
"Failed to create a Template"
|
"Failed to create a Template"
|
||||||
|
|
@ -551,7 +552,7 @@ class TestTemplates(cloudstackTestCase):
|
||||||
# Editing the Template ostypeid
|
# Editing the Template ostypeid
|
||||||
ostype_list = list_os_types(self.userapiclient)
|
ostype_list = list_os_types(self.userapiclient)
|
||||||
status = validateList(ostype_list)
|
status = validateList(ostype_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list OS Types"
|
"Failed to list OS Types"
|
||||||
|
|
@ -716,7 +717,7 @@ class TestTemplates(cloudstackTestCase):
|
||||||
available=True
|
available=True
|
||||||
)
|
)
|
||||||
status = validateList(zones_list)
|
status = validateList(zones_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list Zones"
|
"Failed to list Zones"
|
||||||
|
|
@ -756,7 +757,7 @@ class TestTemplates(cloudstackTestCase):
|
||||||
zoneid=zones_list[0].id
|
zoneid=zones_list[0].id
|
||||||
)
|
)
|
||||||
status = validateList(zones_list)
|
status = validateList(zones_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list Hypervisors in Zone 1"
|
"Failed to list Hypervisors in Zone 1"
|
||||||
|
|
@ -780,13 +781,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
zoneid=zones_list[0].id
|
zoneid=zones_list[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_zone1)
|
status = validateList(list_templates_zone1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Templates creation failed in Zone1"
|
"Templates creation failed in Zone1"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_templates_zone1),
|
len(list_templates_zone1),
|
||||||
"Failed to create a Template"
|
"Failed to create a Template"
|
||||||
|
|
@ -825,13 +826,13 @@ class TestTemplates(cloudstackTestCase):
|
||||||
zoneid=zones_list[0].id
|
zoneid=zones_list[0].id
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_zone1)
|
status = validateList(list_templates_zone1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Templates creation failed in Zone1"
|
"Templates creation failed in Zone1"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_templates_zone1),
|
len(list_templates_zone1),
|
||||||
"Failed to create a Template"
|
"Failed to create a Template"
|
||||||
|
|
@ -844,23 +845,23 @@ class TestTemplates(cloudstackTestCase):
|
||||||
zoneid=zones_list[1].id
|
zoneid=zones_list[1].id
|
||||||
)
|
)
|
||||||
status = validateList(list_templates_zone2)
|
status = validateList(list_templates_zone2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Template failed to copy into Zone2"
|
"Template failed to copy into Zone2"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_templates_zone2),
|
len(list_templates_zone2),
|
||||||
"Template failed to copy into Zone2"
|
"Template failed to copy into Zone2"
|
||||||
)
|
)
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
"Connection refused",
|
"Connection refused",
|
||||||
list_templates_zone2[0].status,
|
list_templates_zone2[0].status,
|
||||||
"Failed to copy Template"
|
"Failed to copy Template"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
True,
|
True,
|
||||||
list_templates_zone2[0].isready,
|
list_templates_zone2[0].isready,
|
||||||
"Failed to copy Template"
|
"Failed to copy Template"
|
||||||
|
|
|
||||||
|
|
@ -252,7 +252,7 @@ class TestVMware(cloudstackTestCase):
|
||||||
isready="true"
|
isready="true"
|
||||||
)
|
)
|
||||||
status = validateList(list_default_iso_response)
|
status = validateList(list_default_iso_response)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO list is empty")
|
"ISO list is empty")
|
||||||
|
|
@ -316,7 +316,7 @@ class TestVMware(cloudstackTestCase):
|
||||||
isready="true"
|
isready="true"
|
||||||
)
|
)
|
||||||
status = validateList(list_default_iso_response)
|
status = validateList(list_default_iso_response)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"ISO list is empty")
|
"ISO list is empty")
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import createVolume, createTemplate
|
from marvin.cloudstackAPI import createVolume, createTemplate
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
random_gen, validateList)
|
random_gen, validateList)
|
||||||
|
|
@ -149,7 +150,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -266,7 +267,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
# Verifying that the volume on page 2 is not present in page1
|
# Verifying that the volume on page 2 is not present in page1
|
||||||
for i in range(0, len(list_volumes_page1)):
|
for i in range(0, len(list_volumes_page1)):
|
||||||
volume_page1 = list_volumes_page1[i]
|
volume_page1 = list_volumes_page1[i]
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
volume_page2.id,
|
volume_page2.id,
|
||||||
volume_page1.id,
|
volume_page1.id,
|
||||||
"Volume listed in page 2 is also listed in page 1"
|
"Volume listed in page 2 is also listed in page 1"
|
||||||
|
|
@ -482,7 +483,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
list_volumes_after = Volume.list(
|
list_volumes_after = Volume.list(
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Data volume creation failed"
|
"Data volume creation failed"
|
||||||
|
|
@ -505,7 +506,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -563,7 +564,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
self.assertIsNotNone(resized_volume, "Resize Volume failed")
|
self.assertIsNotNone(resized_volume, "Resize Volume failed")
|
||||||
# Verifying data volume size is increased
|
# Verifying data volume size is increased
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
new_size,
|
new_size,
|
||||||
(resized_volume.size / (1024 * 1024 * 1024)),
|
(resized_volume.size / (1024 * 1024 * 1024)),
|
||||||
"volume not resized to expected value"
|
"volume not resized to expected value"
|
||||||
|
|
@ -637,7 +638,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
|
|
||||||
# Verifyign that volume list is increased by 1 after creation of
|
# Verifyign that volume list is increased by 1 after creation of
|
||||||
# custion volume
|
# custion volume
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Custom volume did not get created"
|
"Custom volume did not get created"
|
||||||
|
|
@ -659,7 +660,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -691,7 +692,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
size=new_size)
|
size=new_size)
|
||||||
self.assertIsNotNone(resized_volume, "Resize Volume failed")
|
self.assertIsNotNone(resized_volume, "Resize Volume failed")
|
||||||
# Verifying that custom disk size is increased
|
# Verifying that custom disk size is increased
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
new_size,
|
new_size,
|
||||||
(resized_volume.size / (1024 * 1024 * 1024)),
|
(resized_volume.size / (1024 * 1024 * 1024)),
|
||||||
"volume not resized to expected value"
|
"volume not resized to expected value"
|
||||||
|
|
@ -731,7 +732,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -753,7 +754,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -911,7 +912,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
templatefilter='self')
|
templatefilter='self')
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
templates_before_size + 1,
|
templates_before_size + 1,
|
||||||
len(list_templates_after),
|
len(list_templates_after),
|
||||||
"Template creation failed from snapshot"
|
"Template creation failed from snapshot"
|
||||||
|
|
@ -955,7 +956,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -978,7 +979,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -1049,7 +1050,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
list_snapshot_policy_after,
|
list_snapshot_policy_after,
|
||||||
"Hourly Snapshot policy creation failed"
|
"Hourly Snapshot policy creation failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
snapshot_policy_before_size + 1,
|
snapshot_policy_before_size + 1,
|
||||||
len(list_snapshot_policy_after),
|
len(list_snapshot_policy_after),
|
||||||
"Hourly Snapshot policy creation failed"
|
"Hourly Snapshot policy creation failed"
|
||||||
|
|
@ -1093,7 +1094,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -1115,7 +1116,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -1186,7 +1187,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
list_snapshot_policy_after,
|
list_snapshot_policy_after,
|
||||||
"Daily Snapshot policy creation failed"
|
"Daily Snapshot policy creation failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
snapshot_policy_before_size + 1,
|
snapshot_policy_before_size + 1,
|
||||||
len(list_snapshot_policy_after),
|
len(list_snapshot_policy_after),
|
||||||
"Daily Snapshot policy creation failed"
|
"Daily Snapshot policy creation failed"
|
||||||
|
|
@ -1230,7 +1231,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -1252,7 +1253,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -1323,7 +1324,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
list_snapshot_policy_after,
|
list_snapshot_policy_after,
|
||||||
"Weekly Snapshot policy creation failed"
|
"Weekly Snapshot policy creation failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
snapshot_policy_before_size + 1,
|
snapshot_policy_before_size + 1,
|
||||||
len(list_snapshot_policy_after),
|
len(list_snapshot_policy_after),
|
||||||
"Weekly Snapshot policy creation failed"
|
"Weekly Snapshot policy creation failed"
|
||||||
|
|
@ -1369,7 +1370,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -1390,7 +1391,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -1459,7 +1460,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
list_snapshot_policy_after,
|
list_snapshot_policy_after,
|
||||||
"Monthly Snapshot policy creation failed"
|
"Monthly Snapshot policy creation failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
snapshot_policy_before_size + 1,
|
snapshot_policy_before_size + 1,
|
||||||
len(list_snapshot_policy_after),
|
len(list_snapshot_policy_after),
|
||||||
"Monthly Snapshot policy creation failed"
|
"Monthly Snapshot policy creation failed"
|
||||||
|
|
@ -1518,7 +1519,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
self.userapiclient,
|
self.userapiclient,
|
||||||
listall=self.services["listall"])
|
listall=self.services["listall"])
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -1539,7 +1540,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -1579,7 +1580,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
self.assertIsNotNone(snapshot_created, "Snapshot not created")
|
self.assertIsNotNone(snapshot_created, "Snapshot not created")
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
volume_created.id,
|
volume_created.id,
|
||||||
snapshot_created.volumeid,
|
snapshot_created.volumeid,
|
||||||
"Snapshot not created for given volume"
|
"Snapshot not created for given volume"
|
||||||
|
|
@ -1630,7 +1631,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
# Verifying that the snapshot on page 2 is not present in page1
|
# Verifying that the snapshot on page 2 is not present in page1
|
||||||
for i in range(0, len(list_snapshots_page1)):
|
for i in range(0, len(list_snapshots_page1)):
|
||||||
snapshot_page1 = list_snapshots_page1[i]
|
snapshot_page1 = list_snapshots_page1[i]
|
||||||
self.assertNotEquals(
|
self.assertNotEqual(
|
||||||
snapshot_page2.id,
|
snapshot_page2.id,
|
||||||
snapshot_page1.id,
|
snapshot_page1.id,
|
||||||
"Snapshot listed in page 2 is also listed in page 1"
|
"Snapshot listed in page 2 is also listed in page 1"
|
||||||
|
|
@ -1705,7 +1706,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
list_volumes_after,
|
list_volumes_after,
|
||||||
"volume creation failed"
|
"volume creation failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"Volume not created"
|
"Volume not created"
|
||||||
|
|
@ -1726,7 +1727,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM is not attached to Volume"
|
"VM is not attached to Volume"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.virtual_machine.name,
|
self.virtual_machine.name,
|
||||||
attached_volume.vmname,
|
attached_volume.vmname,
|
||||||
"VM Name is not matching with attached vm"
|
"VM Name is not matching with attached vm"
|
||||||
|
|
@ -1758,7 +1759,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
extract_volume_response,
|
extract_volume_response,
|
||||||
"Extract/Download volume failed")
|
"Extract/Download volume failed")
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
"DOWNLOAD_URL_CREATED",
|
"DOWNLOAD_URL_CREATED",
|
||||||
extract_volume_response.state,
|
extract_volume_response.state,
|
||||||
"Failed to create Download URL"
|
"Failed to create Download URL"
|
||||||
|
|
@ -1771,7 +1772,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
(extract_volume_response.url.find("http") != -1),
|
(extract_volume_response.url.find("http") != -1),
|
||||||
"Extract/Download volume URL doesnot contain http"
|
"Extract/Download volume URL doesnot contain http"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
volume_created.id,
|
volume_created.id,
|
||||||
extract_volume_response.id,
|
extract_volume_response.id,
|
||||||
"Extracted/Downloaded volume is not matching with original volume"
|
"Extracted/Downloaded volume is not matching with original volume"
|
||||||
|
|
@ -1815,7 +1816,7 @@ class TestVolumes(cloudstackTestCase):
|
||||||
"volume not created for the vm launched at class level"
|
"volume not created for the vm launched at class level"
|
||||||
)
|
)
|
||||||
# Asserting that the list volume length after upload is increased by 1
|
# Asserting that the list volume length after upload is increased by 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(list_volumes_before) + 1,
|
len(list_volumes_before) + 1,
|
||||||
len(list_volumes_after),
|
len(list_volumes_after),
|
||||||
"upload volume failed"
|
"upload volume failed"
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||||
if len(expected_vals) != len(actual_vals):
|
if len(expected_vals) != len(actual_vals):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
keys = expected_vals.keys()
|
keys = list(expected_vals.keys())
|
||||||
for i in range(0, len(expected_vals)):
|
for i in range(0, len(expected_vals)):
|
||||||
exp_val = expected_vals[keys[i]]
|
exp_val = expected_vals[keys[i]]
|
||||||
act_val = actual_vals[keys[i]]
|
act_val = actual_vals[keys[i]]
|
||||||
|
|
@ -186,13 +186,13 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpncustomergateways_after)
|
status = validateList(list_vpncustomergateways_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"VPN Customer Gateway creation failed"
|
"VPN Customer Gateway creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is pagesize + 1
|
# Verifying that list size is pagesize + 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"] + 1,
|
self.services["pagesize"] + 1,
|
||||||
len(list_vpncustomergateways_after),
|
len(list_vpncustomergateways_after),
|
||||||
"Failed to create pagesize + 1 number of VPN Customer Gateways"
|
"Failed to create pagesize + 1 number of VPN Customer Gateways"
|
||||||
|
|
@ -205,13 +205,13 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpncustomergateways_page1)
|
status = validateList(list_vpncustomergateways_page1)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list VPN Customer Gateways in page 1"
|
"Failed to list VPN Customer Gateways in page 1"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to pagesize
|
# Verifying the list size to be equal to pagesize
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.services["pagesize"],
|
self.services["pagesize"],
|
||||||
len(list_vpncustomergateways_page1),
|
len(list_vpncustomergateways_page1),
|
||||||
"Size of VPN Customer Gateways in page 1 is not matching"
|
"Size of VPN Customer Gateways in page 1 is not matching"
|
||||||
|
|
@ -224,13 +224,13 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||||
pagesize=self.services["pagesize"]
|
pagesize=self.services["pagesize"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpncustomergateways_page2)
|
status = validateList(list_vpncustomergateways_page2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list VPN Customer Gateways in page 2"
|
"Failed to list VPN Customer Gateways in page 2"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to 1
|
# Verifying the list size to be equal to 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpncustomergateways_page2),
|
len(list_vpncustomergateways_page2),
|
||||||
"Size of VPN Customer Gateways in page 2 is not matching"
|
"Size of VPN Customer Gateways in page 2 is not matching"
|
||||||
|
|
@ -301,13 +301,13 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||||
listall=self.services["listall"]
|
listall=self.services["listall"]
|
||||||
)
|
)
|
||||||
status = validateList(list_vpncustomergateways_after)
|
status = validateList(list_vpncustomergateways_after)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"VPN Customer Gateway creation failed"
|
"VPN Customer Gateway creation failed"
|
||||||
)
|
)
|
||||||
# Verifying that list size is 1
|
# Verifying that list size is 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpncustomergateways_after),
|
len(list_vpncustomergateways_after),
|
||||||
"Failed to create VPN Customer Gateways"
|
"Failed to create VPN Customer Gateways"
|
||||||
|
|
@ -332,13 +332,13 @@ class TestVpnCustomerGateways(cloudstackTestCase):
|
||||||
id=vpncustomergateway_created.id
|
id=vpncustomergateway_created.id
|
||||||
)
|
)
|
||||||
status = validateList(list_vpncustomergateway)
|
status = validateList(list_vpncustomergateway)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Failed to list VPN Customer Gateways by Id"
|
"Failed to list VPN Customer Gateways by Id"
|
||||||
)
|
)
|
||||||
# Verifying the list size to be equal to 1
|
# Verifying the list size to be equal to 1
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
1,
|
1,
|
||||||
len(list_vpncustomergateway),
|
len(list_vpncustomergateway),
|
||||||
"Size of VPN Customer Gateways by id is not matching"
|
"Size of VPN Customer Gateways by id is not matching"
|
||||||
|
|
|
||||||
|
|
@ -412,7 +412,7 @@ class TestHAProxyStickyness(cloudstackTestCase):
|
||||||
self.virtual_machine_2],
|
self.virtual_machine_2],
|
||||||
services=services)
|
services=services)
|
||||||
|
|
||||||
for method, params in configs.items():
|
for method, params in list(configs.items()):
|
||||||
self.debug("Creating stickiness policy for the LB rule: %s" %
|
self.debug("Creating stickiness policy for the LB rule: %s" %
|
||||||
lb_rule.id)
|
lb_rule.id)
|
||||||
policies = self.configure_Stickiness_Policy(lb_rule,
|
policies = self.configure_Stickiness_Policy(lb_rule,
|
||||||
|
|
@ -496,7 +496,7 @@ class TestHAProxyStickyness(cloudstackTestCase):
|
||||||
#TODO: Add code to check the AppCookie and LbCookie Stickiness policies
|
#TODO: Add code to check the AppCookie and LbCookie Stickiness policies
|
||||||
configs = {"SourceBased": {"tablesize": '100k'}}
|
configs = {"SourceBased": {"tablesize": '100k'}}
|
||||||
for lb_method in lb_methods:
|
for lb_method in lb_methods:
|
||||||
for method, params in configs.items():
|
for method, params in list(configs.items()):
|
||||||
self.debug("Creating load balancing rule on IP %s & algo %s" %
|
self.debug("Creating load balancing rule on IP %s & algo %s" %
|
||||||
(self.public_ip.ipaddress.ipaddress, lb_method))
|
(self.public_ip.ipaddress.ipaddress, lb_method))
|
||||||
|
|
||||||
|
|
@ -566,7 +566,7 @@ class TestHAProxyStickyness(cloudstackTestCase):
|
||||||
#TODO: Add code to check the AppCookie and LbCookie Stickiness policies
|
#TODO: Add code to check the AppCookie and LbCookie Stickiness policies
|
||||||
configs = {"SourceBased": {"tablesize": '100k'}}
|
configs = {"SourceBased": {"tablesize": '100k'}}
|
||||||
for lb_method in lb_methods:
|
for lb_method in lb_methods:
|
||||||
for method, params in configs.items():
|
for method, params in list(configs.items()):
|
||||||
self.debug("Creating load balancing rule on IP %s & algo %s" %
|
self.debug("Creating load balancing rule on IP %s & algo %s" %
|
||||||
(self.public_ip.ipaddress.ipaddress, lb_method))
|
(self.public_ip.ipaddress.ipaddress, lb_method))
|
||||||
|
|
||||||
|
|
@ -632,7 +632,7 @@ class TestHAProxyStickyness(cloudstackTestCase):
|
||||||
configs = {"SourceBased": {"tablesize": '100k'}}
|
configs = {"SourceBased": {"tablesize": '100k'}}
|
||||||
|
|
||||||
for lb_method in lb_methods:
|
for lb_method in lb_methods:
|
||||||
for method, params in configs.items():
|
for method, params in list(configs.items()):
|
||||||
self.debug("Setting up environment - acquire public IP")
|
self.debug("Setting up environment - acquire public IP")
|
||||||
public_ip = self.acquire_Public_Ip()
|
public_ip = self.acquire_Public_Ip()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
# KIND, either express or implied. See the License for the
|
# KIND, either express or implied. See the License for the
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from __builtin__ import False
|
|
||||||
""" BVT tests for Hosts Test
|
""" BVT tests for Hosts Test
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
# KIND, either express or implied. See the License for the
|
# KIND, either express or implied. See the License for the
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from __builtin__ import False
|
|
||||||
""" BVT tests for Hosts Maintenance
|
""" BVT tests for Hosts Maintenance
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -198,7 +197,7 @@ class TestHostHA(cloudstackTestCase):
|
||||||
"Check if listStoragePools returns a valid response"
|
"Check if listStoragePools returns a valid response"
|
||||||
)
|
)
|
||||||
for storage_pool in storage_pools:
|
for storage_pool in storage_pools:
|
||||||
if storage_pool.type == u'NetworkFilesystem':
|
if storage_pool.type == 'NetworkFilesystem':
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
@ -218,7 +217,7 @@ class TestHostHA(cloudstackTestCase):
|
||||||
"Check if listStoragePools returns a valid response"
|
"Check if listStoragePools returns a valid response"
|
||||||
)
|
)
|
||||||
for storage_pool in storage_pools:
|
for storage_pool in storage_pools:
|
||||||
if storage_pool.type == u'NetworkFilesystem':
|
if storage_pool.type == 'NetworkFilesystem':
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
@ -238,7 +237,7 @@ class TestHostHA(cloudstackTestCase):
|
||||||
"Check if listStoragePools returns a valid response"
|
"Check if listStoragePools returns a valid response"
|
||||||
)
|
)
|
||||||
for storage_pool in storage_pools:
|
for storage_pool in storage_pools:
|
||||||
if storage_pool.type == u'NetworkFilesystem':
|
if storage_pool.type == 'NetworkFilesystem':
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
|
||||||
|
|
@ -1156,10 +1156,10 @@ class TestXDCCPInterop(cloudstackTestCase):
|
||||||
domainid=self.account.domainid,
|
domainid=self.account.domainid,
|
||||||
id=deployVmResponse.id
|
id=deployVmResponse.id
|
||||||
)
|
)
|
||||||
self.assert_(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
self.assertTrue(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
||||||
vm = vms[0]
|
vm = vms[0]
|
||||||
self.assert_(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
self.assertTrue(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
||||||
self.assert_(vm.state == "Running", "VM is not in Running state")
|
self.assertTrue(vm.state == "Running", "VM is not in Running state")
|
||||||
return
|
return
|
||||||
|
|
||||||
@attr(tags=["devcloud", "basic", "advanced"], required_hardware="true")
|
@attr(tags=["devcloud", "basic", "advanced"], required_hardware="true")
|
||||||
|
|
@ -1181,10 +1181,10 @@ class TestXDCCPInterop(cloudstackTestCase):
|
||||||
domainid=self.account.domainid,
|
domainid=self.account.domainid,
|
||||||
id=deployVmResponse.id
|
id=deployVmResponse.id
|
||||||
)
|
)
|
||||||
self.assert_(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
self.assertTrue(len(vms) > 0, "There are no Vms deployed in the account %s" % self.account.name)
|
||||||
vm = vms[0]
|
vm = vms[0]
|
||||||
self.assert_(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
self.assertTrue(vm.id == str(deployVmResponse.id), "Vm deployed is different from the test")
|
||||||
self.assert_(vm.state == "Running", "VM is not in Running state")
|
self.assertTrue(vm.state == "Running", "VM is not in Running state")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@
|
||||||
|
|
||||||
Feature Specifications: https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+-+IP+Range+Reservation+within+a+Network
|
Feature Specifications: https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+-+IP+Range+Reservation+within+a+Network
|
||||||
"""
|
"""
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import validateList, cleanup_resources, verifyRouterState
|
from marvin.lib.utils import validateList, cleanup_resources, verifyRouterState
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
Network,
|
Network,
|
||||||
|
|
@ -762,7 +763,7 @@ class TestUpdateIPReservation(cloudstackTestCase):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
virtual_machine_1 = createVirtualMachine(self, network_id=isolated_network.id,
|
virtual_machine_1 = createVirtualMachine(self, network_id=isolated_network.id,
|
||||||
ip_address=u"10.1."+random_subnet+".3")
|
ip_address="10.1."+random_subnet+".3")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.fail("VM creation failed: %s" % e)
|
self.fail("VM creation failed: %s" % e)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
else:
|
else:
|
||||||
self.delflag = 1
|
self.delflag = 1
|
||||||
self.acctRes = self.apiClient.createAccount(self.acct)
|
self.acctRes = self.apiClient.createAccount(self.acct)
|
||||||
self.assertEquals(self.delflag, 1, "LDAP account details are not provided,please check the configuration")
|
self.assertEqual(self.delflag, 1, "LDAP account details are not provided,please check the configuration")
|
||||||
return
|
return
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
|
|
@ -134,13 +134,13 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.services["configurableData"]["ldap_configuration"]["ldapUsername"],
|
self.services["configurableData"]["ldap_configuration"]["ldapUsername"],
|
||||||
self.services["configurableData"]["ldap_configuration"]["ldapPassword"])
|
self.services["configurableData"]["ldap_configuration"]["ldapPassword"])
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
||||||
self.debug("LDAP Configuration failed with exception")
|
self.debug("LDAP Configuration failed with exception")
|
||||||
|
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.ldapconfRes,
|
self.ldapconfRes,
|
||||||
1,
|
1,
|
||||||
self.reason)
|
self.reason)
|
||||||
|
|
@ -250,7 +250,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
tn = telnetlib.Telnet(ldapConfiguration['hostname'], ldapConfiguration['port'], timeout=15)
|
tn = telnetlib.Telnet(ldapConfiguration['hostname'], ldapConfiguration['port'], timeout=15)
|
||||||
if tn is not None:
|
if tn is not None:
|
||||||
tn.set_debuglevel(1)
|
tn.set_debuglevel(1)
|
||||||
print tn.msg("Connected to the server")
|
print(tn.msg("Connected to the server"))
|
||||||
self.debug("Ldap Server is Up and listening on the port %s" % tn.msg("Connected to the server"))
|
self.debug("Ldap Server is Up and listening on the port %s" % tn.msg("Connected to the server"))
|
||||||
flag = True
|
flag = True
|
||||||
tn.close()
|
tn.close()
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ def checkLdapConfiguration(cls, ldapConfiguration):
|
||||||
timeout=15)
|
timeout=15)
|
||||||
if tn is not None:
|
if tn is not None:
|
||||||
tn.set_debuglevel(1)
|
tn.set_debuglevel(1)
|
||||||
print tn.msg("Connected to the server")
|
print(tn.msg("Connected to the server"))
|
||||||
cls.debug(
|
cls.debug(
|
||||||
"Ldap Server is Up and listening on the port %s" %
|
"Ldap Server is Up and listening on the port %s" %
|
||||||
tn.msg("Connected to the server"))
|
tn.msg("Connected to the server"))
|
||||||
|
|
@ -251,7 +251,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
else:
|
else:
|
||||||
self.delflag1 = 1
|
self.delflag1 = 1
|
||||||
self.ldaplinkRes = self.apiClient.linkDomainToLdap(self.ldaplink)
|
self.ldaplinkRes = self.apiClient.linkDomainToLdap(self.ldaplink)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.delflag1,
|
self.delflag1,
|
||||||
1,
|
1,
|
||||||
"Linking LDAP failed,please check the configuration")
|
"Linking LDAP failed,please check the configuration")
|
||||||
|
|
@ -260,7 +260,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
lsap_user = Account.list(self.api_client,
|
lsap_user = Account.list(self.api_client,
|
||||||
domainid=self.parent_domain.id,
|
domainid=self.parent_domain.id,
|
||||||
|
|
@ -328,7 +328,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_03_ldap(self):
|
def test_03_ldap(self):
|
||||||
|
|
@ -340,7 +340,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, None, self.reason)
|
self.assertEqual(loginRes, None, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_04_ldap(self):
|
def test_04_ldap(self):
|
||||||
|
|
@ -353,7 +353,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
"",
|
"",
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, None, self.reason)
|
self.assertEqual(loginRes, None, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_05_ldap(self):
|
def test_05_ldap(self):
|
||||||
|
|
@ -362,7 +362,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, None, self.reason)
|
self.assertEqual(loginRes, None, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_06_ldap(self):
|
def test_06_ldap(self):
|
||||||
|
|
@ -395,7 +395,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_07_ldap(self):
|
def test_07_ldap(self):
|
||||||
|
|
@ -414,7 +414,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, None, self.reason)
|
self.assertEqual(loginRes, None, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_08_ldap(self):
|
def test_08_ldap(self):
|
||||||
|
|
@ -428,7 +428,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
self.domain2 = Domain.create(
|
self.domain2 = Domain.create(
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
|
|
@ -465,7 +465,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.delflag2 = 1
|
self.delflag2 = 1
|
||||||
self.ldaplinkRes2 = self.apiClient.linkDomainToLdap(
|
self.ldaplinkRes2 = self.apiClient.linkDomainToLdap(
|
||||||
self.ldaplink2)
|
self.ldaplink2)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.delflag2,
|
self.delflag2,
|
||||||
1,
|
1,
|
||||||
"Linking LDAP failed,please check the configuration")
|
"Linking LDAP failed,please check the configuration")
|
||||||
|
|
@ -477,7 +477,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.domain2.name,
|
self.domain2.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
self.domain3 = Domain.create(
|
self.domain3 = Domain.create(
|
||||||
self.apiclient,
|
self.apiclient,
|
||||||
|
|
@ -511,7 +511,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.delflag3 = 1
|
self.delflag3 = 1
|
||||||
self.ldaplinkRes3 = self.apiClient.linkDomainToLdap(
|
self.ldaplinkRes3 = self.apiClient.linkDomainToLdap(
|
||||||
self.ldaplink3)
|
self.ldaplink3)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
self.delflag3,
|
self.delflag3,
|
||||||
1,
|
1,
|
||||||
"Linking LDAP failed,please check the configuration")
|
"Linking LDAP failed,please check the configuration")
|
||||||
|
|
@ -522,7 +522,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.domain2.name,
|
self.domain2.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
try:
|
try:
|
||||||
|
|
@ -556,7 +556,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
self.parent_domain.name,
|
self.parent_domain.name,
|
||||||
method="POST")
|
method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, 1, self.reason)
|
self.assertEqual(loginRes, 1, self.reason)
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_10_ldap(self):
|
def test_10_ldap(self):
|
||||||
|
|
@ -584,7 +584,7 @@ class TestLdap(cloudstackTestCase):
|
||||||
dbChecking[0][2]) == \
|
dbChecking[0][2]) == \
|
||||||
self.services["configurableData"]["link_ldap_details"]["accounttype"]:
|
self.services["configurableData"]["link_ldap_details"]["accounttype"]:
|
||||||
db_check = 0
|
db_check = 0
|
||||||
self.assertEquals(db_check, 0, "DB check failed")
|
self.assertEqual(db_check, 0, "DB check failed")
|
||||||
|
|
||||||
@attr(tags=["advanced", "basic"], required_hardware="true")
|
@attr(tags=["advanced", "basic"], required_hardware="true")
|
||||||
def test_11_ldap(self):
|
def test_11_ldap(self):
|
||||||
|
|
@ -593,6 +593,6 @@ class TestLdap(cloudstackTestCase):
|
||||||
self,
|
self,
|
||||||
"", "", self.parent_domain.name, method="POST")
|
"", "", self.parent_domain.name, method="POST")
|
||||||
self.debug(loginRes)
|
self.debug(loginRes)
|
||||||
self.assertEquals(loginRes, None, self.reason)
|
self.assertEqual(loginRes, None, self.reason)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
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.utils import (cleanup_resources)
|
||||||
from marvin.lib.base import (Pod, Cluster, Capacities)
|
from marvin.lib.base import (Pod, Cluster, Capacities)
|
||||||
from marvin.cloudstackAPI import (updateConfiguration)
|
from marvin.cloudstackAPI import (updateConfiguration)
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
""" P1 tests for memory resource limits
|
""" P1 tests for memory resource limits
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
from nose.plugins.attrib import attr
|
from marvin.codes import ERROR_NO_HOST_FOR_MIGRATION
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
@ -34,7 +33,9 @@ from marvin.lib.common import (get_domain,
|
||||||
get_resource_type
|
get_resource_type
|
||||||
)
|
)
|
||||||
from marvin.lib.utils import cleanup_resources
|
from marvin.lib.utils import cleanup_resources
|
||||||
from marvin.codes import ERROR_NO_HOST_FOR_MIGRATION
|
# Import Local Modules
|
||||||
|
from nose.plugins.attrib import attr
|
||||||
|
|
||||||
|
|
||||||
class Services:
|
class Services:
|
||||||
"""Test memory resource limit services
|
"""Test memory resource limit services
|
||||||
|
|
@ -87,6 +88,7 @@ class Services:
|
||||||
# Networking mode: Advanced, Basic
|
# Networking mode: Advanced, Basic
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class TestMemoryLimits(cloudstackTestCase):
|
class TestMemoryLimits(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -370,6 +372,7 @@ class TestMemoryLimits(cloudstackTestCase):
|
||||||
"Resource count should match with the expected resource count")
|
"Resource count should match with the expected resource count")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
class TestDomainMemoryLimitsConfiguration(cloudstackTestCase):
|
class TestDomainMemoryLimitsConfiguration(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
@ -499,7 +502,7 @@ class TestDomainMemoryLimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -574,7 +577,7 @@ class TestDomainMemoryLimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -634,7 +637,7 @@ class TestDomainMemoryLimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -698,7 +701,7 @@ class TestDomainMemoryLimitsConfiguration(cloudstackTestCase):
|
||||||
users = {self.child_domain_1: self.child_do_admin_1,
|
users = {self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
@ -225,7 +226,7 @@ class TestDomainMemoryLimits(cloudstackTestCase):
|
||||||
users = { self.child_domain_1: self.child_do_admin_1,
|
users = { self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -369,7 +370,7 @@ class TestDomainMemoryLimits(cloudstackTestCase):
|
||||||
users = { self.child_domain_1: self.child_do_admin_1,
|
users = { self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
self.debug("Creating an instance with service offering: %s" %
|
self.debug("Creating an instance with service offering: %s" %
|
||||||
|
|
@ -430,7 +431,7 @@ class TestDomainMemoryLimits(cloudstackTestCase):
|
||||||
users = { self.child_domain_1: self.child_do_admin_1,
|
users = { self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
self.debug("Creating an instance with service offering: %s" %
|
self.debug("Creating an instance with service offering: %s" %
|
||||||
|
|
@ -490,7 +491,7 @@ class TestDomainMemoryLimits(cloudstackTestCase):
|
||||||
users = { self.child_domain_1: self.child_do_admin_1,
|
users = { self.child_domain_1: self.child_do_admin_1,
|
||||||
self.child_domain_2: self.child_do_admin_2
|
self.child_domain_2: self.child_do_admin_2
|
||||||
}
|
}
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
self.debug("Creating an instance with service offering: %s" %
|
self.debug("Creating an instance with service offering: %s" %
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.sshClient import SshClient
|
from marvin.sshClient import SshClient
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
cleanup_resources,
|
cleanup_resources,
|
||||||
|
|
|
||||||
|
|
@ -1011,7 +1011,7 @@ class TestVPCPortForwarding(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
logger.debug("Created network with ID: %s" % obj_network.id)
|
logger.debug("Created network with ID: %s" % obj_network.id)
|
||||||
return obj_network
|
return obj_network
|
||||||
except Exception, e:
|
except Exception as e:
|
||||||
self.fail('Unable to create a Network with offering=%s because of %s ' % (net_offerring, e))
|
self.fail('Unable to create a Network with offering=%s because of %s ' % (net_offerring, e))
|
||||||
|
|
||||||
def deployvm_in_network(self, network, host_id=None):
|
def deployvm_in_network(self, network, host_id=None):
|
||||||
|
|
@ -1231,7 +1231,7 @@ class TestVPCStaticNat(cloudstackTestCase):
|
||||||
)
|
)
|
||||||
logger.debug("Created network with ID: %s" % obj_network.id)
|
logger.debug("Created network with ID: %s" % obj_network.id)
|
||||||
return obj_network
|
return obj_network
|
||||||
except Exception, e:
|
except Exception as e:
|
||||||
self.fail('Unable to create a Network with offering=%s because of %s ' % (net_offerring, e))
|
self.fail('Unable to create a Network with offering=%s because of %s ' % (net_offerring, e))
|
||||||
|
|
||||||
def deployvm_in_network(self, network, host_id=None):
|
def deployvm_in_network(self, network, host_id=None):
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ Tests of acquiring IPs in multiple subnets for isolated network or vpc
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackAPI import rebootRouter
|
from marvin.cloudstackAPI import rebootRouter
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
get_host_credentials,
|
get_host_credentials,
|
||||||
get_process_status,
|
get_process_status,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ Tests of acquiring IPs in multiple subnets for isolated network or vpc
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackAPI import rebootRouter
|
from marvin.cloudstackAPI import rebootRouter
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
get_host_credentials,
|
get_host_credentials,
|
||||||
get_process_status,
|
get_process_status,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ Tests of acquiring IPs in multiple subnets for isolated network or vpc
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackAPI import rebootRouter
|
from marvin.cloudstackAPI import rebootRouter
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
get_host_credentials,
|
get_host_credentials,
|
||||||
get_process_status,
|
get_process_status,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ Tests of acquiring IPs in multiple subnets for isolated network or vpc
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackAPI import rebootRouter
|
from marvin.cloudstackAPI import rebootRouter
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
get_host_credentials,
|
get_host_credentials,
|
||||||
get_process_status,
|
get_process_status,
|
||||||
|
|
|
||||||
|
|
@ -785,7 +785,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
|
||||||
issystem = "true"
|
issystem = "true"
|
||||||
)
|
)
|
||||||
status = validateList(vr_sys_off_res)
|
status = validateList(vr_sys_off_res)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of VR system offering failed"
|
"Listing of VR system offering failed"
|
||||||
|
|
@ -815,17 +815,17 @@ class TestNOVirtualRouter(cloudstackTestCase):
|
||||||
id=self.network_offering.id
|
id=self.network_offering.id
|
||||||
)
|
)
|
||||||
status = validateList(network_off_res)
|
status = validateList(network_off_res)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of network offerings failed"
|
"Listing of network offerings failed"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
len(network_off_res),
|
len(network_off_res),
|
||||||
1,
|
1,
|
||||||
"More than one network offerings are created"
|
"More than one network offerings are created"
|
||||||
)
|
)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
network_off_res[0].serviceofferingid,
|
network_off_res[0].serviceofferingid,
|
||||||
vr_sys_off.id,
|
vr_sys_off.id,
|
||||||
"FAIL: Network offering has been created with default system offering"
|
"FAIL: Network offering has been created with default system offering"
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@ class TestNonContiguousVLANRanges(cloudstackTestCase):
|
||||||
vlans = xsplit(vlan,[','])
|
vlans = xsplit(vlan,[','])
|
||||||
|
|
||||||
for virtualLan in vlans:
|
for virtualLan in vlans:
|
||||||
self.assert_(physicalnetworks[0].vlan.find(virtualLan) != -1, "vlan range %s \
|
self.assertTrue(physicalnetworks[0].vlan.find(virtualLan) != -1, "vlan range %s \
|
||||||
is not present in physical network: %s" % (virtualLan, physicalNetworkId))
|
is not present in physical network: %s" % (virtualLan, physicalNetworkId))
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
@ -193,7 +193,7 @@ class TestNonContiguousVLANRanges(cloudstackTestCase):
|
||||||
vlan1 = self.existingvlan + "," + self.vlan["partial_range"][0]
|
vlan1 = self.existingvlan + "," + self.vlan["partial_range"][0]
|
||||||
updatePhysicalNetworkResponse = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan1)
|
updatePhysicalNetworkResponse = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan1)
|
||||||
|
|
||||||
self.assert_(updatePhysicalNetworkResponse is not None,
|
self.assertTrue(updatePhysicalNetworkResponse is not None,
|
||||||
msg="couldn't add non contiguous range in the physical network with vlan %s"%vlan1)
|
msg="couldn't add non contiguous range in the physical network with vlan %s"%vlan1)
|
||||||
|
|
||||||
self.debug("Verifying the VLAN of the updated physical network: %s, It should match with \
|
self.debug("Verifying the VLAN of the updated physical network: %s, It should match with \
|
||||||
|
|
@ -204,7 +204,7 @@ class TestNonContiguousVLANRanges(cloudstackTestCase):
|
||||||
vlan2 = vlan1 + "," + self.vlan["partial_range"][1]
|
vlan2 = vlan1 + "," + self.vlan["partial_range"][1]
|
||||||
updatePhysicalNetworkResponse2 = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan2)
|
updatePhysicalNetworkResponse2 = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan2)
|
||||||
|
|
||||||
self.assert_(updatePhysicalNetworkResponse2 is not None,
|
self.assertTrue(updatePhysicalNetworkResponse2 is not None,
|
||||||
msg="couldn't add non contiguous range in the physical network with vlan %s"%vlan2)
|
msg="couldn't add non contiguous range in the physical network with vlan %s"%vlan2)
|
||||||
|
|
||||||
self.debug("Verifying the VLAN of the updated physical network: %s, It should match with \
|
self.debug("Verifying the VLAN of the updated physical network: %s, It should match with \
|
||||||
|
|
@ -252,7 +252,7 @@ class TestNonContiguousVLANRanges(cloudstackTestCase):
|
||||||
vlan2 = vlan1 + "," + self.vlan["full_range"]
|
vlan2 = vlan1 + "," + self.vlan["full_range"]
|
||||||
updatePhysicalNetworkResponse = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan2)
|
updatePhysicalNetworkResponse = self.physicalnetwork.update(self.apiClient, id = self.physicalnetworkid, vlan = vlan2)
|
||||||
|
|
||||||
self.assert_(updatePhysicalNetworkResponse is not None,
|
self.assertTrue(updatePhysicalNetworkResponse is not None,
|
||||||
msg="couldn't extend the physical network with vlan %s"%vlan2)
|
msg="couldn't extend the physical network with vlan %s"%vlan2)
|
||||||
|
|
||||||
extendedvlan = self.existingvlan + "," + self.vlan["full_range"]
|
extendedvlan = self.existingvlan + "," + self.vlan["full_range"]
|
||||||
|
|
@ -289,7 +289,7 @@ class TestNonContiguousVLANRanges(cloudstackTestCase):
|
||||||
|
|
||||||
vlanranges= physicalnetworks[0].vlan
|
vlanranges= physicalnetworks[0].vlan
|
||||||
|
|
||||||
self.assert_(vlanranges.find(self.vlan["partial_range"][0]) == -1, "vlan range is not removed")
|
self.assertTrue(vlanranges.find(self.vlan["partial_range"][0]) == -1, "vlan range is not removed")
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,29 +19,32 @@
|
||||||
Test cases relating to enabling/diabling of zone/pod/cluster/host
|
Test cases relating to enabling/diabling of zone/pod/cluster/host
|
||||||
|
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
|
||||||
import marvin
|
|
||||||
from marvin.cloudstackTestCase import *
|
|
||||||
from marvin.cloudstackAPI import *
|
|
||||||
from marvin.lib.utils import *
|
|
||||||
from marvin.lib.base import *
|
|
||||||
from marvin.lib.common import *
|
|
||||||
from marvin.cloudstackException import CloudstackAclException
|
|
||||||
from nose.plugins.attrib import attr
|
|
||||||
# Import System modules
|
# Import System modules
|
||||||
import time
|
# Import System modules
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
from marvin.cloudstackAPI import *
|
||||||
|
from marvin.cloudstackAPI import *
|
||||||
|
# Import Local Modules
|
||||||
|
from marvin.cloudstackTestCase import *
|
||||||
|
# Import Local Modules
|
||||||
|
from marvin.cloudstackTestCase import *
|
||||||
|
from marvin.lib.base import *
|
||||||
|
from marvin.lib.base import *
|
||||||
|
from marvin.lib.common import *
|
||||||
|
from marvin.lib.common import *
|
||||||
|
from marvin.lib.utils import *
|
||||||
|
from marvin.lib.utils import *
|
||||||
|
from nose.plugins.attrib import attr
|
||||||
|
|
||||||
_multiprocess_shared_ = True
|
_multiprocess_shared_ = True
|
||||||
|
|
||||||
|
|
||||||
class TestOrganizationStates(cloudstackTestCase):
|
class TestOrganizationStates(cloudstackTestCase):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
cls.testclient = super(TestOrganizationStates, cls).getClsTestClient()
|
cls.testclient = super(TestOrganizationStates, cls).getClsTestClient()
|
||||||
cls.apiclient = cls.testclient.getApiClient()
|
cls.apiclient = cls.testclient.getApiClient()
|
||||||
cls.testdata = cls.testClient.getParsedTestDataConfig()
|
cls.testdata = cls.testClient.getParsedTestDataConfig()
|
||||||
|
|
@ -72,7 +75,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
userAccountName = "-".join(("TestOrgUser", random_gen()))
|
userAccountName = "-".join(("TestOrgUser", random_gen()))
|
||||||
adminAccountName = "-".join(("TestOrgAdmin", random_gen()))
|
adminAccountName = "-".join(("TestOrgAdmin", random_gen()))
|
||||||
|
|
||||||
|
|
||||||
cls.user_apiclient = cls.testclient.getUserApiClient(
|
cls.user_apiclient = cls.testclient.getUserApiClient(
|
||||||
UserName=userAccountName,
|
UserName=userAccountName,
|
||||||
DomainName="ROOT"
|
DomainName="ROOT"
|
||||||
|
|
@ -163,7 +165,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Disabled",
|
"Disabled",
|
||||||
"Disabling Zone did not set the alloctionstate to Disabled")
|
"Disabling Zone did not set the alloctionstate to Disabled")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_12_disableZone_admin_deployVM(self):
|
def test_12_disableZone_admin_deployVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -181,7 +182,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Running",
|
"Running",
|
||||||
"Admin is not able to deploy Vm in a disabled Zone! ")
|
"Admin is not able to deploy Vm in a disabled Zone! ")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_13_disableZone_admin_stop_startVM(self):
|
def test_13_disableZone_admin_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -218,7 +218,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("Exception thrown when deploying Virtual Machine on a disabled zone - %s" % e)
|
self.debug("Exception thrown when deploying Virtual Machine on a disabled zone - %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_15_disableZone_user_stop_startVM(self):
|
def test_15_disableZone_user_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -280,7 +279,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Disabled",
|
"Disabled",
|
||||||
"Disabling Pod did not set the alloctionstate to Disabled")
|
"Disabling Pod did not set the alloctionstate to Disabled")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_22_disablePod_admin_deployVM(self):
|
def test_22_disablePod_admin_deployVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -298,7 +296,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Running",
|
"Running",
|
||||||
"Admin is not able to deploy Vm in a disabled Pod! ")
|
"Admin is not able to deploy Vm in a disabled Pod! ")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_23_disablePod_admin_stop_startVM(self):
|
def test_23_disablePod_admin_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -335,7 +332,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("Exception thrown when deploying Virtual Machine on a disabled zone - %s" % e)
|
self.debug("Exception thrown when deploying Virtual Machine on a disabled zone - %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_25_disablePod_user_stop_startVM(self):
|
def test_25_disablePod_user_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -375,7 +371,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Enabled",
|
"Enabled",
|
||||||
"Enabling Pod did not set the alloctionstate to Enabled")
|
"Enabling Pod did not set the alloctionstate to Enabled")
|
||||||
|
|
||||||
|
|
||||||
## Test cases relating to disabling and enabling cluster
|
## Test cases relating to disabling and enabling cluster
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
|
|
@ -398,7 +393,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Disabled",
|
"Disabled",
|
||||||
"Disabling Cluster did not set the alloctionstate to Disabled")
|
"Disabling Cluster did not set the alloctionstate to Disabled")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_32_disableCluster_admin_deployVM(self):
|
def test_32_disableCluster_admin_deployVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -416,7 +410,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Running",
|
"Running",
|
||||||
"Admin is not able to deploy Vm in a disabled Cluster! ")
|
"Admin is not able to deploy Vm in a disabled Cluster! ")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_33_disableCluster_admin_stop_startVM(self):
|
def test_33_disableCluster_admin_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -453,7 +446,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("Exception thrown when deploying Virtual Machine on a disabled cluster - %s" % e)
|
self.debug("Exception thrown when deploying Virtual Machine on a disabled cluster - %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_35_disableCluster_user_stop_startVM(self):
|
def test_35_disableCluster_user_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -515,7 +507,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Disabled",
|
"Disabled",
|
||||||
"Disabling Host did not set the alloctionstate to Disabled")
|
"Disabling Host did not set the alloctionstate to Disabled")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_42_disableHost_admin_deployVM(self):
|
def test_42_disableHost_admin_deployVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -534,7 +525,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Running",
|
"Running",
|
||||||
"Admin is not able to deploy Vm in a disabled Host! ")
|
"Admin is not able to deploy Vm in a disabled Host! ")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_43_disableHost_admin_deployVM(self):
|
def test_43_disableHost_admin_deployVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -555,7 +545,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
"Running",
|
"Running",
|
||||||
"Admin is not able to deploy Vm in a disabled Host! ")
|
"Admin is not able to deploy Vm in a disabled Host! ")
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_44_disableHost_admin_stop_startVM(self):
|
def test_44_disableHost_admin_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -594,7 +583,6 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.debug("Exception thrown when deploying Virtual Machine on a disabled host - %s" % e)
|
self.debug("Exception thrown when deploying Virtual Machine on a disabled host - %s" % e)
|
||||||
|
|
||||||
|
|
||||||
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
@attr("disruptive", "simulator_only", tags=["advanced"], required_hardware="false")
|
||||||
def test_46_disableHost_user_stop_startVM(self):
|
def test_46_disableHost_user_stop_startVM(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -636,4 +624,3 @@ class TestOrganizationStates(cloudstackTestCase):
|
||||||
self.assertEqual(hostlistResp[0].resourcestate,
|
self.assertEqual(hostlistResp[0].resourcestate,
|
||||||
"Enabled",
|
"Enabled",
|
||||||
"Enabling Host did not set the alloctionstate to Enabled")
|
"Enabling Host did not set the alloctionstate to Enabled")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -394,7 +394,7 @@ class Overcommit (cloudstackTestCase):
|
||||||
"check list cluster response for zone id %s" %
|
"check list cluster response for zone id %s" %
|
||||||
self.zone.id)
|
self.zone.id)
|
||||||
k = len(list_cluster)
|
k = len(list_cluster)
|
||||||
for id in xrange(k):
|
for id in range(k):
|
||||||
Configurations.update(self.apiclient,
|
Configurations.update(self.apiclient,
|
||||||
clusterid=list_cluster[id].id,
|
clusterid=list_cluster[id].id,
|
||||||
name="mem.overprovisioning.factor",
|
name="mem.overprovisioning.factor",
|
||||||
|
|
@ -414,7 +414,7 @@ class Overcommit (cloudstackTestCase):
|
||||||
"check list capacity response for zone id %s" %
|
"check list capacity response for zone id %s" %
|
||||||
self.zone.id)
|
self.zone.id)
|
||||||
cpu, mem = capacity_parser(capacity)
|
cpu, mem = capacity_parser(capacity)
|
||||||
for id in xrange(k):
|
for id in range(k):
|
||||||
Configurations.update(self.apiclient,
|
Configurations.update(self.apiclient,
|
||||||
clusterid=list_cluster[id].id,
|
clusterid=list_cluster[id].id,
|
||||||
name="mem.overprovisioning.factor",
|
name="mem.overprovisioning.factor",
|
||||||
|
|
@ -452,7 +452,7 @@ class Overcommit (cloudstackTestCase):
|
||||||
self.assertEqual(mem[2],
|
self.assertEqual(mem[2],
|
||||||
mem1[2],
|
mem1[2],
|
||||||
"check mem capacity % used")
|
"check mem capacity % used")
|
||||||
for id in xrange(k):
|
for id in range(k):
|
||||||
Configurations.update(self.apiclient,
|
Configurations.update(self.apiclient,
|
||||||
clusterid=list_cluster[id].id,
|
clusterid=list_cluster[id].id,
|
||||||
name="mem.overprovisioning.factor",
|
name="mem.overprovisioning.factor",
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,8 @@ from marvin.lib.common import (get_domain,
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.codes import PASS, FAIL, FAILED
|
from marvin.codes import PASS, FAIL, FAILED
|
||||||
from marvin.sshClient import SshClient
|
from marvin.sshClient import SshClient
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from ddt import ddt, data
|
from ddt import ddt, data
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
#from marvin.cloudstackAPI import *
|
#from marvin.cloudstackAPI import *
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
validateList)
|
validateList)
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
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,
|
from marvin.lib.base import (VirtualMachine,
|
||||||
Account,
|
Account,
|
||||||
Project,
|
Project,
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
"""
|
"""
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import deleteVolume
|
from marvin.cloudstackAPI import deleteVolume
|
||||||
from marvin.lib.utils import (cleanup_resources, validateList)
|
from marvin.lib.utils import (cleanup_resources, validateList)
|
||||||
from marvin.lib.base import (Project,
|
from marvin.lib.base import (Project,
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,8 @@ Tests protocol number support for security groups
|
||||||
|
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import authorizeSecurityGroupIngress, revokeSecurityGroupIngress, authorizeSecurityGroupEgress, revokeSecurityGroupEgress
|
from marvin.cloudstackAPI import authorizeSecurityGroupIngress, revokeSecurityGroupIngress, authorizeSecurityGroupEgress, revokeSecurityGroupEgress
|
||||||
from marvin.sshClient import SshClient
|
from marvin.sshClient import SshClient
|
||||||
from marvin.lib.utils import (validateList,
|
from marvin.lib.utils import (validateList,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
VirtualMachine,
|
VirtualMachine,
|
||||||
|
|
@ -366,7 +367,7 @@ class TestMultipleChildDomain(cloudstackTestCase):
|
||||||
|
|
||||||
templatesize = (self.template.size / (1024 ** 3))
|
templatesize = (self.template.size / (1024 ** 3))
|
||||||
|
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -454,7 +455,7 @@ class TestMultipleChildDomain(cloudstackTestCase):
|
||||||
|
|
||||||
templatesize = (self.template.size / (1024 ** 3))
|
templatesize = (self.template.size / (1024 ** 3))
|
||||||
|
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -562,7 +563,7 @@ class TestMultipleChildDomain(cloudstackTestCase):
|
||||||
result[1])
|
result[1])
|
||||||
users = result[2]
|
users = result[2]
|
||||||
|
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
|
|
||||||
|
|
@ -724,7 +725,7 @@ class TestMultipleChildDomain(cloudstackTestCase):
|
||||||
self.assertEqual(result[0], PASS, result[1])
|
self.assertEqual(result[0], PASS, result[1])
|
||||||
users = result[2]
|
users = result[2]
|
||||||
|
|
||||||
for domain, admin in users.items():
|
for domain, admin in list(users.items()):
|
||||||
self.account = admin
|
self.account = admin
|
||||||
self.domain = domain
|
self.domain = domain
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,16 @@
|
||||||
|
|
||||||
Feature Specifications: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Limit+Resources+to+domains+and+accounts
|
Feature Specifications: https://cwiki.apache.org/confluence/display/CLOUDSTACK/Limit+Resources+to+domains+and+accounts
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
import unittest
|
||||||
from nose.plugins.attrib import attr
|
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from ddt import ddt, data
|
||||||
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
from marvin.codes import (
|
||||||
|
PASS,
|
||||||
|
FAIL,
|
||||||
|
RESOURCE_PRIMARY_STORAGE,
|
||||||
|
CHILD_DOMAIN_ADMIN,
|
||||||
|
ROOT_DOMAIN_ADMIN)
|
||||||
from marvin.lib.base import (
|
from marvin.lib.base import (
|
||||||
Account,
|
Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
|
|
@ -33,7 +40,8 @@ from marvin.lib.base import (
|
||||||
Domain,
|
Domain,
|
||||||
Volume,
|
Volume,
|
||||||
DiskOffering)
|
DiskOffering)
|
||||||
from marvin.lib.common import (get_domain,
|
from marvin.lib.common import (
|
||||||
|
get_domain,
|
||||||
get_zone,
|
get_zone,
|
||||||
get_template,
|
get_template,
|
||||||
matchResourceCount,
|
matchResourceCount,
|
||||||
|
|
@ -42,12 +50,9 @@ from marvin.lib.common import (get_domain,
|
||||||
find_storage_pool_type)
|
find_storage_pool_type)
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
validateList)
|
validateList)
|
||||||
from marvin.codes import (PASS,
|
# Import Local Modules
|
||||||
FAIL,
|
from nose.plugins.attrib import attr
|
||||||
RESOURCE_PRIMARY_STORAGE,
|
|
||||||
CHILD_DOMAIN_ADMIN,
|
|
||||||
ROOT_DOMAIN_ADMIN)
|
|
||||||
from ddt import ddt, data
|
|
||||||
|
|
||||||
@ddt
|
@ddt
|
||||||
class TestVolumeLimits(cloudstackTestCase):
|
class TestVolumeLimits(cloudstackTestCase):
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
VirtualMachine,
|
VirtualMachine,
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
VirtualMachine,
|
VirtualMachine,
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
VirtualMachine,
|
VirtualMachine,
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,8 @@ from marvin.lib.common import (get_domain,
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
random_gen,
|
random_gen,
|
||||||
validateList)
|
validateList)
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.codes import PASS, RUNNING
|
from marvin.codes import PASS, RUNNING
|
||||||
|
|
||||||
#Import System modules
|
#Import System modules
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@
|
||||||
"""
|
"""
|
||||||
# Import Local Modules
|
# Import Local Modules
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
ServiceOffering,
|
ServiceOffering,
|
||||||
VirtualMachine,
|
VirtualMachine,
|
||||||
|
|
@ -641,7 +642,7 @@ class TestResizeVolume(cloudstackTestCase):
|
||||||
list(self.apiclient,
|
list(self.apiclient,
|
||||||
vmsnapshotid=virtualmachine_snapshot.id)
|
vmsnapshotid=virtualmachine_snapshot.id)
|
||||||
status = validateList(virtulmachine_snapshot_list)
|
status = validateList(virtulmachine_snapshot_list)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"Listing of configuration failed")
|
"Listing of configuration failed")
|
||||||
|
|
@ -1030,7 +1031,7 @@ class TestResizeVolume(cloudstackTestCase):
|
||||||
self.assertNotEqual(res[2], INVALID_INPUT, "Check DB Query result set")
|
self.assertNotEqual(res[2], INVALID_INPUT, "Check DB Query result set")
|
||||||
qresult = int(qresultsize[0][0])
|
qresult = int(qresultsize[0][0])
|
||||||
self.debug("Query result: %s" % qresult)
|
self.debug("Query result: %s" % qresult)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
qresult,
|
qresult,
|
||||||
(newsize * 1024 * 1024 * 1024),
|
(newsize * 1024 * 1024 * 1024),
|
||||||
"Usage event not logged properly with right volume"
|
"Usage event not logged properly with right volume"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@
|
||||||
# KIND, either express or implied. See the License for the
|
# KIND, either express or implied. See the License for the
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from __builtin__ import False
|
|
||||||
""" Tests for Secondary Storage with Local Storage
|
""" Tests for Secondary Storage with Local Storage
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
@ -93,7 +92,7 @@ class TestSecSRMount(cloudstackTestCase):
|
||||||
"Check if listStoragePools returns a valid response"
|
"Check if listStoragePools returns a valid response"
|
||||||
)
|
)
|
||||||
for storage_pool in storage_pools:
|
for storage_pool in storage_pools:
|
||||||
if storage_pool.type == u'NetworkFilesystem':
|
if storage_pool.type == 'NetworkFilesystem':
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,8 @@
|
||||||
""" P1 tests for shared networks
|
""" P1 tests for shared networks
|
||||||
"""
|
"""
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.cloudstackAPI import rebootRouter, stopRouter, startRouter
|
from marvin.cloudstackAPI import rebootRouter, stopRouter, startRouter
|
||||||
from marvin.lib.base import (Account,
|
from marvin.lib.base import (Account,
|
||||||
Network,
|
Network,
|
||||||
|
|
@ -796,10 +797,10 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
|
|
||||||
ip_range = list(
|
ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["shared_network"]["startip"]), unicode(
|
self.testdata["shared_network"]["startip"]), str(
|
||||||
self.testdata["shared_network"]["endip"])))
|
self.testdata["shared_network"]["endip"])))
|
||||||
if netaddr.IPAddress(unicode(vms[0].nic[0].ipaddress)) not in ip_range:
|
if netaddr.IPAddress(str(vms[0].nic[0].ipaddress)) not in ip_range:
|
||||||
self.fail(
|
self.fail(
|
||||||
"Virtual machine ip should be from the ip range assigned to\
|
"Virtual machine ip should be from the ip range assigned to\
|
||||||
network created.")
|
network created.")
|
||||||
|
|
@ -834,10 +835,10 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
|
|
||||||
ip_range = list(
|
ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["shared_network"]["startip"]), unicode(
|
self.testdata["shared_network"]["startip"]), str(
|
||||||
self.testdata["shared_network"]["endip"])))
|
self.testdata["shared_network"]["endip"])))
|
||||||
if netaddr.IPAddress(unicode(vms[0].nic[0].ipaddress)) not in ip_range:
|
if netaddr.IPAddress(str(vms[0].nic[0].ipaddress)) not in ip_range:
|
||||||
self.fail(
|
self.fail(
|
||||||
"Virtual machine ip should be from the ip range assigned to\
|
"Virtual machine ip should be from the ip range assigned to\
|
||||||
network created.")
|
network created.")
|
||||||
|
|
@ -1107,10 +1108,10 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
|
|
||||||
ip_range = list(
|
ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["shared_network"]["startip"]), unicode(
|
self.testdata["shared_network"]["startip"]), str(
|
||||||
self.testdata["shared_network"]["endip"])))
|
self.testdata["shared_network"]["endip"])))
|
||||||
if netaddr.IPAddress(unicode(vms[0].nic[0].ipaddress)) not in ip_range:
|
if netaddr.IPAddress(str(vms[0].nic[0].ipaddress)) not in ip_range:
|
||||||
self.fail(
|
self.fail(
|
||||||
"Virtual machine ip should be from the ip range assigned\
|
"Virtual machine ip should be from the ip range assigned\
|
||||||
to network created.")
|
to network created.")
|
||||||
|
|
@ -1449,10 +1450,10 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
|
|
||||||
ip_range = list(
|
ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["shared_network"]["startip"]), unicode(
|
self.testdata["shared_network"]["startip"]), str(
|
||||||
self.testdata["shared_network"]["endip"])))
|
self.testdata["shared_network"]["endip"])))
|
||||||
if netaddr.IPAddress(unicode(vms[0].nic[0].ipaddress)) not in ip_range:
|
if netaddr.IPAddress(str(vms[0].nic[0].ipaddress)) not in ip_range:
|
||||||
self.fail(
|
self.fail(
|
||||||
"Virtual machine ip should be from the ip range\
|
"Virtual machine ip should be from the ip range\
|
||||||
assigned to network created.")
|
assigned to network created.")
|
||||||
|
|
@ -1484,10 +1485,10 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
|
|
||||||
ip_range = list(
|
ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["shared_network"]["startip"]), unicode(
|
self.testdata["shared_network"]["startip"]), str(
|
||||||
self.testdata["shared_network"]["endip"])))
|
self.testdata["shared_network"]["endip"])))
|
||||||
if netaddr.IPAddress(unicode(vms[0].nic[0].ipaddress)) not in ip_range:
|
if netaddr.IPAddress(str(vms[0].nic[0].ipaddress)) not in ip_range:
|
||||||
self.fail(
|
self.fail(
|
||||||
"Virtual machine ip should be from the ip range assigne\
|
"Virtual machine ip should be from the ip range assigne\
|
||||||
to network created.")
|
to network created.")
|
||||||
|
|
@ -1777,10 +1778,10 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
|
|
||||||
ip_range = list(
|
ip_range = list(
|
||||||
netaddr.iter_iprange(
|
netaddr.iter_iprange(
|
||||||
unicode(
|
str(
|
||||||
self.testdata["shared_network"]["startip"]), unicode(
|
self.testdata["shared_network"]["startip"]), str(
|
||||||
self.testdata["shared_network"]["endip"])))
|
self.testdata["shared_network"]["endip"])))
|
||||||
if netaddr.IPAddress(unicode(vms[0].nic[0].ipaddress)) not in ip_range:
|
if netaddr.IPAddress(str(vms[0].nic[0].ipaddress)) not in ip_range:
|
||||||
self.fail(
|
self.fail(
|
||||||
"Virtual machine ip should be from the ip range assigned\
|
"Virtual machine ip should be from the ip range assigned\
|
||||||
to network created.")
|
to network created.")
|
||||||
|
|
@ -3144,7 +3145,7 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
id=self.shared_network_offering.id
|
id=self.shared_network_offering.id
|
||||||
)
|
)
|
||||||
status = validateList(list_network_offerings_response)
|
status = validateList(list_network_offerings_response)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"listNetworkOfferings returned invalid object in response."
|
"listNetworkOfferings returned invalid object in response."
|
||||||
|
|
@ -3170,7 +3171,7 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
id=self.shared_network_offering.id
|
id=self.shared_network_offering.id
|
||||||
)
|
)
|
||||||
status = validateList(list_network_offerings_response)
|
status = validateList(list_network_offerings_response)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"listNetworkOfferings returned invalid object in\
|
"listNetworkOfferings returned invalid object in\
|
||||||
|
|
@ -3200,7 +3201,7 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
id=self.network.id
|
id=self.network.id
|
||||||
)
|
)
|
||||||
status = validateList(list_accounts_response)
|
status = validateList(list_accounts_response)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"listNetworks returned invalid object in response."
|
"listNetworks returned invalid object in response."
|
||||||
|
|
@ -3246,7 +3247,7 @@ class TestSharedNetworks(cloudstackTestCase):
|
||||||
id=self.network2.id
|
id=self.network2.id
|
||||||
)
|
)
|
||||||
status = validateList(list_networks_response)
|
status = validateList(list_networks_response)
|
||||||
self.assertEquals(
|
self.assertEqual(
|
||||||
PASS,
|
PASS,
|
||||||
status[0],
|
status[0],
|
||||||
"listNetworks returned invalid object in response after\
|
"listNetworks returned invalid object in response after\
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,8 @@
|
||||||
|
|
||||||
#Import Local Modules
|
#Import Local Modules
|
||||||
from marvin.cloudstackAPI import *
|
from marvin.cloudstackAPI import *
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
from marvin.lib.utils import (cleanup_resources,
|
from marvin.lib.utils import (cleanup_resources,
|
||||||
validateList)
|
validateList)
|
||||||
from marvin.lib.base import (ServiceOffering,
|
from marvin.lib.base import (ServiceOffering,
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,8 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from nose.plugins.attrib import attr
|
from nose.plugins.attrib import attr
|
||||||
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
from marvin.cloudstackTestCase import cloudstackTestCase
|
||||||
|
import unittest
|
||||||
#from marvin.cloudstackAPI import *
|
#from marvin.cloudstackAPI import *
|
||||||
from marvin.lib.utils import (
|
from marvin.lib.utils import (
|
||||||
is_snapshot_on_nfs,
|
is_snapshot_on_nfs,
|
||||||
|
|
@ -190,7 +191,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
|
||||||
|
|
||||||
# Create a snapshot from the ROOTDISK
|
# Create a snapshot from the ROOTDISK
|
||||||
cls.snapshot = Snapshot.create(cls.api_client, volume.id)
|
cls.snapshot = Snapshot.create(cls.api_client, volume.id)
|
||||||
except Exception, e:
|
except Exception as e:
|
||||||
cls.tearDownClass()
|
cls.tearDownClass()
|
||||||
unittest.SkipTest("setupClass fails for %s" % cls.__name__)
|
unittest.SkipTest("setupClass fails for %s" % cls.__name__)
|
||||||
raise e
|
raise e
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue