moving batch config out of quantum-server repo.
a commit to the python-quantumclient repo will add it there. Change-Id: Iefc293adbbf1eab552f2184f021f184511f9ddeb
This commit is contained in:
parent
9c5c2caef1
commit
f25d1d51b8
@ -1,113 +0,0 @@
|
|||||||
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
||||||
|
|
||||||
# Copyright 2011 Nicira Networks, Inc.
|
|
||||||
#
|
|
||||||
# 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 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.
|
|
||||||
# @author: Dan Wendlandt, Nicira Networks, Inc.
|
|
||||||
|
|
||||||
import logging as LOG
|
|
||||||
from optparse import OptionParser
|
|
||||||
import sys
|
|
||||||
|
|
||||||
from quantum.client import Client
|
|
||||||
from quantum.manager import QuantumManager
|
|
||||||
|
|
||||||
FORMAT = "json"
|
|
||||||
CONTENT_TYPE = "application/" + FORMAT
|
|
||||||
|
|
||||||
|
|
||||||
def delete_all_nets(client):
|
|
||||||
res = client.list_networks()
|
|
||||||
for n in res["networks"]:
|
|
||||||
nid = n["id"]
|
|
||||||
pres = client.list_ports(nid)
|
|
||||||
for port in pres["ports"]:
|
|
||||||
pid = port['id']
|
|
||||||
client.detach_resource(nid, pid)
|
|
||||||
client.delete_port(nid, pid)
|
|
||||||
print "Deleted Virtual Port:%s " \
|
|
||||||
"on Virtual Network:%s" % (pid, nid)
|
|
||||||
client.delete_network(nid)
|
|
||||||
print "Deleted Virtual Network with ID:%s" % nid
|
|
||||||
|
|
||||||
|
|
||||||
def create_net_with_attachments(client, net_name, iface_ids):
|
|
||||||
data = {'network': {'net-name': '%s' % net_name}}
|
|
||||||
res = client.create_network(data)
|
|
||||||
nid = res["networks"]["network"]["id"]
|
|
||||||
print "Created a new Virtual Network %s with ID:%s" % (net_name, nid)
|
|
||||||
|
|
||||||
for iface_id in iface_ids:
|
|
||||||
res = client.create_port(nid)
|
|
||||||
new_port_id = res["ports"]["port"]["id"]
|
|
||||||
print "Created Virtual Port:%s " \
|
|
||||||
"on Virtual Network:%s" % (new_port_id, nid)
|
|
||||||
data = {'port': {'attachment-id': '%s' % iface_id}}
|
|
||||||
client.attach_resource(nid, new_port_id, data)
|
|
||||||
print "Plugged interface \"%s\" to port:%s on network:%s" % \
|
|
||||||
(iface_id, new_port_id, nid)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
usagestr = "Usage: %prog [OPTIONS] <tenant-id> <config-string> [args]\n" \
|
|
||||||
"Example config-string: net1=instance-1,instance-2"\
|
|
||||||
":net2=instance-3,instance-4\n" \
|
|
||||||
"This string would create two networks: \n" \
|
|
||||||
"'net1' would have two ports, with iface-ids "\
|
|
||||||
"instance-1 and instance-2 attached\n" \
|
|
||||||
"'net2' would have two ports, with iface-ids"\
|
|
||||||
" instance-3 and instance-4 attached\n"
|
|
||||||
parser = OptionParser(usage=usagestr)
|
|
||||||
parser.add_option("-H", "--host", dest="host",
|
|
||||||
type="string", default="127.0.0.1", help="ip address of api host")
|
|
||||||
parser.add_option("-p", "--port", dest="port",
|
|
||||||
type="int", default=9696, help="api poort")
|
|
||||||
parser.add_option("-s", "--ssl", dest="ssl",
|
|
||||||
action="store_true", default=False, help="use ssl")
|
|
||||||
parser.add_option("-v", "--verbose", dest="verbose",
|
|
||||||
action="store_true", default=False, help="turn on verbose logging")
|
|
||||||
parser.add_option("-d", "--delete", dest="delete",
|
|
||||||
action="store_true", default=False, \
|
|
||||||
help="delete existing tenants networks")
|
|
||||||
|
|
||||||
options, args = parser.parse_args()
|
|
||||||
|
|
||||||
if options.verbose:
|
|
||||||
LOG.basicConfig(level=LOG.DEBUG)
|
|
||||||
else:
|
|
||||||
LOG.basicConfig(level=LOG.WARN)
|
|
||||||
|
|
||||||
if len(args) < 1:
|
|
||||||
parser.print_help()
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
nets = {}
|
|
||||||
tenant_id = args[0]
|
|
||||||
if len(args) > 1:
|
|
||||||
config_str = args[1]
|
|
||||||
for net_str in config_str.split(":"):
|
|
||||||
arr = net_str.split("=")
|
|
||||||
net_name = arr[0]
|
|
||||||
nets[net_name] = arr[1].split(",")
|
|
||||||
|
|
||||||
print "nets: %s" % str(nets)
|
|
||||||
|
|
||||||
client = Client(options.host, options.port, options.ssl,
|
|
||||||
format='json', tenant=tenant_id)
|
|
||||||
|
|
||||||
if options.delete:
|
|
||||||
delete_all_nets(client)
|
|
||||||
|
|
||||||
for net_name, iface_ids in nets.items():
|
|
||||||
create_net_with_attachments(client, net_name, iface_ids)
|
|
||||||
|
|
||||||
sys.exit(0)
|
|
Loading…
Reference in New Issue
Block a user