New format of inputing data for DVS

Change-Id: I159cd3e024736890cc35fcf9cc9ee1bb3a7069e1
This commit is contained in:
Vasily Gorin 2016-09-15 18:35:27 +03:00
parent 9f13155076
commit c237dc0765
1 changed files with 47 additions and 27 deletions

View File

@ -15,17 +15,17 @@ under the License.
import os
from fuelweb_test import logger
from fuelweb_test.helpers import utils
from proboscis.asserts import assert_true
from fuelweb_test import logger
from fuelweb_test.helpers import utils
# constants
DVS_PLUGIN_PATH = os.environ.get('DVS_PLUGIN_PATH')
DVS_PLUGIN_VERSION = os.environ.get('DVS_PLUGIN_VERSION')
DVS_SWITCHES = os.environ.get('DVS_SWITCHES').split(',')
VCENTER_CLUSTERS = os.environ.get('VCENTER_CLUSTERS').split(',')
DVS_SWITCHES = os.environ.get('DVS_SWITCHES').strip().split(',')
DVS_UPLINKS = os.environ.get('DVS_UPLINKS').strip().split(',')
VCENTER_CLUSTERS = os.environ.get('VCENTER_CLUSTERS').strip().split(',')
msg = "Plugin couldn't be enabled. Check plugin version. Test aborted"
plugin_name = "fuel-plugin-vmware-dvs"
@ -33,31 +33,51 @@ plugin_name = "fuel-plugin-vmware-dvs"
def install_dvs_plugin(master_node):
"""Download and instal DVS plugin on master node."""
# copy plugins to the master node
utils.upload_tarball(
master_node,
DVS_PLUGIN_PATH, "/var")
utils.upload_tarball(master_node, DVS_PLUGIN_PATH, "/var")
# install plugin
utils.install_plugin_check_code(
master_node,
os.path.basename(DVS_PLUGIN_PATH))
utils.install_plugin_check_code(master_node,
os.path.basename(DVS_PLUGIN_PATH))
def enable_plugin(cluster_id, fuel_web_client, multiclusters=True):
"""Enable DVS plugin on cluster."""
assert_true(
fuel_web_client.check_plugin_exists(
cluster_id, plugin_name),
msg)
map_switch_clusters = map(
lambda x, y: "{0}:{1}".format(x, y), VCENTER_CLUSTERS, DVS_SWITCHES)
if multiclusters is True:
options = {'vmware_dvs_net_maps/value': ';'.join(map_switch_clusters)}
else:
options = {'vmware_dvs_net_maps/value': map_switch_clusters[0]}
def enable_plugin(cluster_id, fuel_web_client, multiclusters=True, tu=0, fu=0):
"""Enable DVS plugin on cluster.
:param cluster_id: cluster id
:param fuel_web_client: fuel_web
:param multiclusters: boolean. True if Multicluster is used.
:param tu: int, amount of teaming uplinks
:param fu: int, amount of falback uplinks
:return: None
"""
checker = fuel_web_client.check_plugin_exists(cluster_id, plugin_name)
assert_true(checker, msg)
opts = {'vmware_dvs_net_maps/value': make_map_data(multiclusters, tu, fu)}
logger.info("cluster is {0}".format(cluster_id))
fuel_web_client.update_plugin_settings(cluster_id, plugin_name,
DVS_PLUGIN_VERSION, opts)
fuel_web_client.update_plugin_settings(
cluster_id, plugin_name,
DVS_PLUGIN_VERSION, options)
def make_map_data(multiclusters=False, tu=2, fu=1):
""" Make DVS mapping data to paste it to options
:param multiclusters: boolean. True if Multicluster is used.
:param tu: int, amount of teaming uplinks
:param fu: int, amount of falback uplinks
:return:
"""
assert_true(False if fu > 0 and tu == 0 else True,
"We couldn't set Fallback uplinks "
"if amount of teaming uplinks equals zero."
"tu = {0}, fu = {1}".format(tu, fu))
map_sw_cl = map(lambda x, y: "{0}:{1}".format(x, y),
VCENTER_CLUSTERS, DVS_SWITCHES)
if any([tu, fu]):
assert_true(tu + fu <= len(DVS_UPLINKS), 'Not enough uplinks')
data = [c + ':' + ';'.join(DVS_UPLINKS[:tu]) for c in map_sw_cl]
if fu > 0:
data = [v + ':' + ';'.join(DVS_UPLINKS[tu:tu+fu]) for v in data]
return '\n'.join(data if multiclusters else data[0:1])
else:
return '\n'.join(map_sw_cl if multiclusters else map_sw_cl[0:1])