mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
368 lines
12 KiB
Python
368 lines
12 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
# Import Local Modules
|
|
from nose.plugins.attrib import attr
|
|
from marvin.cloudstackTestCase import cloudstackTestCase, unittest
|
|
from marvin.lib.utils import (validateList,
|
|
cleanup_resources)
|
|
from marvin.lib.base import (Account,
|
|
Configurations,
|
|
Domain,
|
|
Cluster,
|
|
StoragePool)
|
|
from marvin.lib.common import (get_domain,
|
|
get_zone)
|
|
|
|
class TestRestConfigurationSettings(cloudstackTestCase):
|
|
@classmethod
|
|
def setUpClass(self):
|
|
self.testClient = super(
|
|
TestRestConfigurationSettings,
|
|
self).getClsTestClient()
|
|
self.apiclient = self.testClient.getApiClient()
|
|
self.testdata = self.testClient.getParsedTestDataConfig()
|
|
|
|
# Get Zone, Domain
|
|
self.domain = get_domain(self.apiclient)
|
|
self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
|
|
self._cleanup = []
|
|
return
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
super(TestRestConfigurationSettings, cls).tearDownClass()
|
|
return
|
|
|
|
def setUp(self):
|
|
self.apiclient = self.testClient.getApiClient()
|
|
self.dbclient = self.testClient.getDbConnection()
|
|
self.cleanup = []
|
|
|
|
return
|
|
|
|
def tearDown(self):
|
|
super(TestRestConfigurationSettings, self).tearDown()
|
|
return
|
|
|
|
@attr(tags=["advanced", "advancedsg"], required_hardware="false")
|
|
def test_01_test_settings_for_domain(self):
|
|
"""
|
|
1. Get the default value for the setting in domain scope
|
|
2. Change the default value to new value
|
|
3. Make sure updated value is same as new value
|
|
4. Reset the config value
|
|
5. Make sure that current value is same as default value
|
|
:return:
|
|
"""
|
|
config_name="ldap.basedn"
|
|
#1. Get default value
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get domain setting %s " % config_name)
|
|
|
|
orig_value = str(configs[0].value)
|
|
new_value = "testing"
|
|
|
|
#2. Update to new value
|
|
Configurations.update(
|
|
self.apiclient,
|
|
name=config_name,
|
|
value=new_value,
|
|
domainid=self.domain.id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
domainid=self.domain.id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get domain setting %s " % config_name)
|
|
|
|
#3. validate they are same
|
|
self.assertEqual(new_value,
|
|
str(configs[0].value),
|
|
"Failed to set new config value")
|
|
|
|
#4. Reset the value
|
|
Configurations.reset(
|
|
self.apiclient,
|
|
name=config_name,
|
|
domainid=self.domain.id
|
|
)
|
|
|
|
#5. Make sure its same as original value
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
domainid=self.domain.id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get domain setting %s " % config_name)
|
|
|
|
self.assertEqual(orig_value,
|
|
str(configs[0].value),
|
|
"Failed to reset the value")
|
|
|
|
@attr(tags=["advanced", "advancedsg"], required_hardware="false")
|
|
def test_02_test_settings_for_account(self):
|
|
"""
|
|
1. Get the default value for the setting in account scope
|
|
2. Change the default value to new value
|
|
3. Make sure updated value is same as new value
|
|
4. Reset the config value
|
|
5. Make sure that current value is same as default value
|
|
:return:
|
|
"""
|
|
accounts = Account.list(
|
|
self.apiclient,
|
|
domainid=self.domain.id,
|
|
listall=True
|
|
)
|
|
|
|
self.assertIsNotNone(accounts[0],
|
|
"There should be at least 1 account in the zone")
|
|
|
|
config_name = "enable.additional.vm.configuration"
|
|
#1. Get the default value
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get account setting %s " % config_name)
|
|
|
|
orig_value = str(configs[0].value)
|
|
new_value = "true"
|
|
|
|
Configurations.update(
|
|
self.apiclient,
|
|
name=config_name,
|
|
value=new_value,
|
|
accountid=accounts[0].id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
accountid=accounts[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get account setting %s " % config_name)
|
|
|
|
self.assertEqual(new_value,
|
|
str(configs[0].value),
|
|
"Failed to set new config value")
|
|
|
|
Configurations.reset(
|
|
self.apiclient,
|
|
name=config_name,
|
|
accountid=accounts[0].id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
accountid=accounts[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get account setting %s " % config_name)
|
|
|
|
self.assertEqual(orig_value,
|
|
str(configs[0].value),
|
|
"Failed to reset the value")
|
|
|
|
@attr(tags=["advanced", "advancedsg"], required_hardware="false")
|
|
def test_03_test_settings_for_cluster(self):
|
|
"""
|
|
1. Get the default value for the setting in cluster scope
|
|
2. Change the default value to new value
|
|
3. Make sure updated value is same as new value
|
|
4. Reset the config value
|
|
5. Make sure that current value is same as default value
|
|
:return:
|
|
"""
|
|
cluster = Cluster.list(
|
|
self.apiclient
|
|
)
|
|
|
|
self.assertIsNotNone(cluster[0],
|
|
"There should be at least 1 cluster in the zone")
|
|
|
|
config_name = "cluster.storage.operations.exclude"
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
clusterid=cluster[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get cluster setting %s " % config_name)
|
|
|
|
orig_value = str(configs[0].value)
|
|
new_value = "true"
|
|
|
|
Configurations.update(
|
|
self.apiclient,
|
|
name=config_name,
|
|
value=new_value,
|
|
clusterid=cluster[0].id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
clusterid=cluster[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get cluster setting %s " % config_name)
|
|
|
|
self.assertEqual(new_value,
|
|
str(configs[0].value),
|
|
"Failed to set new config value")
|
|
|
|
Configurations.reset(
|
|
self.apiclient,
|
|
name=config_name,
|
|
clusterid=cluster[0].id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
clusterid=cluster[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get cluster setting %s " % config_name)
|
|
|
|
self.assertEqual(orig_value,
|
|
str(configs[0].value),
|
|
"Failed to reset the value")
|
|
|
|
@attr(tags=["advanced", "advancedsg"], required_hardware="false")
|
|
def test_04_test_settings_for_storage(self):
|
|
"""
|
|
1. Get the default value for the setting in storage scope
|
|
2. Change the default value to new value
|
|
3. Make sure updated value is same as new value
|
|
4. Reset the config value
|
|
5. Make sure that current value is same as default value
|
|
:return:
|
|
"""
|
|
storage = StoragePool.list(
|
|
self.apiclient
|
|
)
|
|
|
|
self.assertIsNotNone(storage[0],
|
|
"There should be at least 1 primary storage pool in the zone")
|
|
|
|
config_name = "vmware.create.full.clone"
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
storageid=storage[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get storage pool setting %s " % config_name)
|
|
|
|
orig_value = str(configs[0].value)
|
|
new_value = 'false'
|
|
|
|
Configurations.update(
|
|
self.apiclient,
|
|
name=config_name,
|
|
value=new_value,
|
|
storageid=storage[0].id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
storageid=storage[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get storage pool setting %s " % config_name)
|
|
|
|
self.assertEqual(new_value,
|
|
(configs[0].value),
|
|
"Failed to set new config value")
|
|
|
|
Configurations.reset(
|
|
self.apiclient,
|
|
name=config_name,
|
|
storageid=storage[0].id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
storage=storage[0].id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get storage pool setting %s " % config_name)
|
|
|
|
self.assertEqual(orig_value,
|
|
(configs[0].value),
|
|
"Failed to reset the value for storage pool")
|
|
|
|
@attr(tags=["advanced", "advancedsg"], required_hardware="false")
|
|
def test_05_test_settings_for_zone(self):
|
|
"""
|
|
1. Get the default value for the setting in zone scope
|
|
2. Change the default value to new value
|
|
3. Make sure updated value is same as new value
|
|
4. Reset the config value
|
|
5. Make sure that current value is same as default value
|
|
:return:
|
|
"""
|
|
config_name = "enable.dynamic.scale.vm"
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
zoneid=self.zone.id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get zone setting %s " % config_name)
|
|
|
|
orig_value = str(configs[0].value)
|
|
new_value = 'true'
|
|
|
|
Configurations.update(
|
|
self.apiclient,
|
|
name=config_name,
|
|
value=new_value,
|
|
zoneid=self.zone.id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
zoneid=self.zone.id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get ol setting %s " % config_name)
|
|
|
|
self.assertEqual(new_value,
|
|
(configs[0].value),
|
|
"Failed to set new config value")
|
|
|
|
Configurations.reset(
|
|
self.apiclient,
|
|
name=config_name,
|
|
zoneid=self.zone.id
|
|
)
|
|
|
|
configs = Configurations.list(
|
|
self.apiclient,
|
|
name=config_name,
|
|
zoneid=self.zone.id
|
|
)
|
|
self.assertIsNotNone(configs, "Fail to get zone setting %s " % config_name)
|
|
|
|
self.assertEqual(orig_value,
|
|
(configs[0].value),
|
|
"Failed to reset the value for zone")
|