Add dummy driver
Added dummy driver for ease of testing and development of REST APIs
and internal manila interfaces.
It can be enabled as backend in the same way as all other share drivers.
But, it does not provide any resources.
Also, update tempest to be able to work with share-networks when
networks are defined via config and not API.
CI hooks are configured to run tempest twice using both available
driver modes. Where DHSS=True mode uses StandAloneNetworkPlugin as
network backend.
Change-Id: I9053dddfc643cb5a6602f15235b91bbaea727dbd
Implements BluePrint dummy-driver
diff --git a/manila_tempest_tests/tests/api/base.py b/manila_tempest_tests/tests/api/base.py
index a599196..79c8673 100644
--- a/manila_tempest_tests/tests/api/base.py
+++ b/manila_tempest_tests/tests/api/base.py
@@ -203,7 +203,8 @@
# Provide share network
if CONF.share.multitenancy_enabled:
- if not CONF.service_available.neutron:
+ if (not CONF.service_available.neutron and
+ CONF.share.create_networks_when_multitenancy_enabled):
raise cls.skipException("Neutron support is required")
nc = os.networks_client
share_network_id = cls.provide_share_network(client, nc, ic)
@@ -235,7 +236,8 @@
os.auth_provider)
cls.shares_v2_client = os.shares_v2_client
if CONF.share.multitenancy_enabled:
- if not CONF.service_available.neutron:
+ if (not CONF.service_available.neutron and
+ CONF.share.create_networks_when_multitenancy_enabled):
raise cls.skipException("Neutron support is required")
share_network_id = cls.provide_share_network(
cls.shares_v2_client, os.networks_client)
@@ -282,6 +284,8 @@
"""
sc = shares_client
+ search_word = "reusable"
+ sn_name = "autogenerated_by_tempest_%s" % search_word
if not CONF.share.multitenancy_enabled:
# Assumed usage of a single-tenant driver
@@ -289,13 +293,28 @@
elif sc.share_network_id:
# Share-network already exists, use it
share_network_id = sc.share_network_id
+ elif not CONF.share.create_networks_when_multitenancy_enabled:
+ share_network_id = None
+
+ # Try get suitable share-network
+ share_networks = sc.list_share_networks_with_detail()
+ for sn in share_networks:
+ if (sn["neutron_net_id"] is None and
+ sn["neutron_subnet_id"] is None and
+ sn["name"] and search_word in sn["name"]):
+ share_network_id = sn["id"]
+ break
+
+ # Create new share-network if one was not found
+ if share_network_id is None:
+ sn_desc = "This share-network was created by tempest"
+ sn = sc.create_share_network(name=sn_name, description=sn_desc)
+ share_network_id = sn["id"]
else:
net_id = subnet_id = share_network_id = None
if not isolated_creds_client:
# Search for networks, created in previous runs
- search_word = "reusable"
- sn_name = "autogenerated_by_tempest_%s" % search_word
service_net_name = "share-service"
networks = networks_client.list_networks()
if "networks" in networks.keys():