ea9aeb6de0
Fixes bug #1121605 This patch replacest the nvp_controller_connection configuration option with a set of options more intutitive to user which also avoid repetitions in ini files. In order to simplify the configuration of the plugin, this patch also removes named clusters. As the plugin supports a single cluster at the moment, this can be simply specified in the [DEFAULT] configuration section. Also, this patch restrucures nvp_cluster.NvpCluster so that per-cluster configuration options are not store anymore multiple times. Change-Id: Id5f84220122d7c5f3239e3333cb772247d1ed05e
96 lines
3.7 KiB
Python
96 lines
3.7 KiB
Python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
# Copyright 2013 Nicira, Inc.
|
|
# All Rights Reserved
|
|
#
|
|
# Licensed 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 equired 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.
|
|
#
|
|
#
|
|
# @author: Aaron Rosen, VMware
|
|
|
|
import sys
|
|
|
|
from oslo.config import cfg
|
|
|
|
from quantum.common import config
|
|
from quantum.plugins.nicira.common import config as nvp_cfg # noqa
|
|
from quantum.plugins.nicira import nvplib
|
|
from quantum.plugins.nicira import QuantumPlugin
|
|
|
|
config.setup_logging(cfg.CONF)
|
|
|
|
|
|
def help(name):
|
|
print "Usage: %s path/to/nvp.ini" % name
|
|
sys.exit(1)
|
|
|
|
|
|
def get_gateway_services(cluster):
|
|
ret_gw_services = {"L2GatewayServiceConfig": [],
|
|
"L3GatewayServiceConfig": []}
|
|
gw_services = nvplib.get_gateway_services(cluster).get('results', [])
|
|
for gw_service in gw_services:
|
|
ret_gw_services[gw_service['type']].append(gw_service['uuid'])
|
|
return ret_gw_services
|
|
|
|
|
|
def get_transport_zones(cluster):
|
|
transport_zones = nvplib.get_transport_zones(cluster).get('results')
|
|
return [transport_zone['uuid'] for transport_zone in transport_zones]
|
|
|
|
|
|
def main(argv):
|
|
if len(argv) != 2:
|
|
help(argv[0])
|
|
args = ['--config-file']
|
|
args.append(argv[1])
|
|
config.parse(args)
|
|
print "------------------------ Database Options ------------------------"
|
|
print "\tsql_connection: %s" % cfg.CONF.DATABASE.sql_connection
|
|
print "\treconnect_interval: %d" % cfg.CONF.DATABASE.reconnect_interval
|
|
print "\tsql_max_retries: %d" % cfg.CONF.DATABASE.sql_max_retries
|
|
print "------------------------ NVP Options ------------------------"
|
|
print "\tNVP Generation Timeout %d" % cfg.CONF.NVP.nvp_gen_timeout
|
|
print ("\tNumber of concurrent connections to each controller %d" %
|
|
cfg.CONF.NVP.concurrent_connections)
|
|
print "\tmax_lp_per_bridged_ls: %s" % cfg.CONF.NVP.max_lp_per_bridged_ls
|
|
print "\tmax_lp_per_overlay_ls: %s" % cfg.CONF.NVP.max_lp_per_overlay_ls
|
|
print ("\tenable_metadata_access_network: %s" %
|
|
cfg.CONF.NVP.enable_metadata_access_network)
|
|
print "------------------------ Cluster Options ------------------------"
|
|
print "\trequested_timeout: %s" % cfg.CONF.req_timeout
|
|
print "\tretries: %s" % cfg.CONF.retries
|
|
print "\tredirects: %s" % cfg.CONF.redirects
|
|
print "\thttp_timeout: %s" % cfg.CONF.http_timeout
|
|
cluster = QuantumPlugin.create_nvp_cluster(
|
|
cfg.CONF,
|
|
cfg.CONF.NVP.concurrent_connections,
|
|
cfg.CONF.NVP.nvp_gen_timeout)
|
|
num_controllers = len(cluster.nvp_controllers)
|
|
print "Number of controllers found: %s" % num_controllers
|
|
if num_controllers == 0:
|
|
print "You must specify at least one controller!"
|
|
sys.exit(1)
|
|
|
|
for controller in cluster.nvp_controllers:
|
|
print "\tController endpoint: %s" % controller
|
|
nvplib.check_cluster_connectivity(cluster)
|
|
gateway_services = get_gateway_services(cluster)
|
|
for svc_type in ["L2GatewayServiceConfig",
|
|
"L3GatewayServiceConfig"]:
|
|
for uuid in gateway_services[svc_type]:
|
|
print "\t\tGateway(%s) uuid: %s" % (svc_type, uuid)
|
|
transport_zones = get_transport_zones(cluster)
|
|
print "\tTransport zones: %s" % transport_zones
|
|
print "Done."
|