Merge "Add option for whether the cloud supports floating ips"
This commit is contained in:
commit
9b4214b6ff
@ -0,0 +1,5 @@
|
||||
---
|
||||
features:
|
||||
- A new config option in the network-feature-enabled section, floating_ips,
|
||||
to specify whether floating ips are available in the cloud under test. By
|
||||
default this is set to True.
|
@ -29,6 +29,12 @@ class FloatingIPsTestJSON(base.BaseFloatingIPsTest):
|
||||
server_id = None
|
||||
floating_ip = None
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(FloatingIPsTestJSON, cls).skip_checks()
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(FloatingIPsTestJSON, cls).setup_clients()
|
||||
|
@ -27,6 +27,12 @@ CONF = config.CONF
|
||||
|
||||
class FloatingIPsNegativeTestJSON(base.BaseFloatingIPsTest):
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(FloatingIPsNegativeTestJSON, cls).skip_checks()
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(FloatingIPsNegativeTestJSON, cls).setup_clients()
|
||||
|
@ -23,6 +23,12 @@ CONF = config.CONF
|
||||
|
||||
class FloatingIPDetailsTestJSON(base.BaseV2ComputeTest):
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(FloatingIPDetailsTestJSON, cls).skip_checks()
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(FloatingIPDetailsTestJSON, cls).setup_clients()
|
||||
|
@ -25,6 +25,12 @@ CONF = config.CONF
|
||||
|
||||
class FloatingIPDetailsNegativeTestJSON(base.BaseV2ComputeTest):
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(FloatingIPDetailsNegativeTestJSON, cls).skip_checks()
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
super(FloatingIPDetailsNegativeTestJSON, cls).setup_clients()
|
||||
|
@ -65,6 +65,8 @@ class ServerRescueTestJSON(base.BaseV2ComputeTest):
|
||||
@decorators.idempotent_id('4842e0cf-e87d-4d9d-b61f-f4791da3cacc')
|
||||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
@testtools.skipUnless(CONF.network_feature_enabled.floating_ips,
|
||||
"Floating ips are not available")
|
||||
def test_rescued_vm_associate_dissociate_floating_ip(self):
|
||||
# Association of floating IP to a rescued vm
|
||||
floating_ip_body = self.floating_ips_client.create_floating_ip(
|
||||
|
@ -10,11 +10,16 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import testtools
|
||||
|
||||
from tempest.api.network import base
|
||||
from tempest import config
|
||||
from tempest.lib.common.utils import data_utils
|
||||
from tempest.lib.common.utils import test_utils
|
||||
from tempest.lib import decorators
|
||||
|
||||
CONF = config.CONF
|
||||
|
||||
|
||||
class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
||||
|
||||
@ -91,6 +96,8 @@ class ExternalNetworksTestJSON(base.BaseAdminNetworkTest):
|
||||
self.assertFalse(show_net['router:external'])
|
||||
|
||||
@decorators.idempotent_id('82068503-2cf2-4ed4-b3be-ecb89432e4bb')
|
||||
@testtools.skipUnless(CONF.network_feature_enabled.floating_ips,
|
||||
'Floating ips are not availabled')
|
||||
def test_delete_external_networks_with_floating_ip(self):
|
||||
# Verifies external network can be deleted while still holding
|
||||
# (unassociated) floating IPs
|
||||
|
@ -34,6 +34,8 @@ class FloatingIPAdminTestJSON(base.BaseAdminNetworkTest):
|
||||
if not CONF.network.public_network_id:
|
||||
msg = "The public_network_id option must be specified."
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_clients(cls):
|
||||
|
@ -49,6 +49,8 @@ class FloatingIPTestJSON(base.BaseNetworkTest):
|
||||
if not CONF.network.public_network_id:
|
||||
msg = "The public_network_id option must be specified."
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
|
@ -40,6 +40,8 @@ class FloatingIPNegativeTestJSON(base.BaseNetworkTest):
|
||||
if not CONF.network.public_network_id:
|
||||
msg = "The public_network_id option must be specified."
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def resource_setup(cls):
|
||||
|
@ -647,6 +647,9 @@ NetworkFeaturesGroup = [
|
||||
cfg.BoolOpt('port_security',
|
||||
default=False,
|
||||
help="Does the test environment support port security?"),
|
||||
cfg.BoolOpt('floating_ips',
|
||||
default=True,
|
||||
help='Does the test environment support floating_ips')
|
||||
]
|
||||
|
||||
validation_group = cfg.OptGroup(name='validation',
|
||||
|
@ -103,6 +103,8 @@ class TestMinimumBasicScenario(manager.ScenarioTest):
|
||||
@decorators.idempotent_id('bdbb5441-9204-419d-a225-b4fdbfb1a1a8')
|
||||
@testtools.skipUnless(CONF.network.public_network_id,
|
||||
'The public_network_id option must be specified.')
|
||||
@testtools.skipUnless(CONF.network_feature_enabled.floating_ips,
|
||||
'Floating ips are not available')
|
||||
@test.services('compute', 'volume', 'image', 'network')
|
||||
def test_minimum_basic_scenario(self):
|
||||
image = self.glance_image_create()
|
||||
|
@ -48,6 +48,8 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest):
|
||||
msg = ('Either project_networks_reachable must be "true", or '
|
||||
'public_network_id must be defined.')
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_credentials(cls):
|
||||
|
@ -90,6 +90,8 @@ class TestNetworkBasicOps(manager.NetworkScenarioTest):
|
||||
if not test.is_extension_enabled(ext, 'network'):
|
||||
msg = "%s extension not enabled." % ext
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_credentials(cls):
|
||||
|
@ -51,6 +51,8 @@ class TestGettingAddress(manager.NetworkScenarioTest):
|
||||
if CONF.network.shared_physical_network:
|
||||
msg = 'Deployment uses a shared physical network'
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_credentials(cls):
|
||||
|
@ -148,6 +148,8 @@ class TestSecurityGroupsBasicOps(manager.NetworkScenarioTest):
|
||||
msg = ('Deployment uses a shared physical network, security '
|
||||
'groups not supported')
|
||||
raise cls.skipException(msg)
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
@classmethod
|
||||
def setup_credentials(cls):
|
||||
|
@ -43,6 +43,12 @@ class TestServerBasicOps(manager.ScenarioTest):
|
||||
* Terminate the instance
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def skip_checks(cls):
|
||||
super(TestServerBasicOps, cls).skip_checks()
|
||||
if not CONF.network_feature_enabled.floating_ips:
|
||||
raise cls.skipException("Floating ips are not available")
|
||||
|
||||
def setUp(self):
|
||||
super(TestServerBasicOps, self).setUp()
|
||||
self.run_ssh = CONF.validation.run_validation
|
||||
|
Loading…
Reference in New Issue
Block a user