# under the License.
# @author: Dan Wendlandt, Nicira Networks, Inc.
-import httplib
import logging as LOG
-import json
-import socket
+from optparse import OptionParser
import sys
-import urllib
+from quantum.client import Client
from quantum.manager import QuantumManager
-from optparse import OptionParser
-from quantum.common.wsgi import Serializer
-from quantum.cli import MiniClient
FORMAT = "json"
CONTENT_TYPE = "application/" + FORMAT
-def delete_all_nets(client, tenant_id):
- res = client.do_request(tenant_id, 'GET', "/networks." + FORMAT)
- resdict = json.loads(res.read())
- LOG.debug(resdict)
- for n in resdict["networks"]:
+def delete_all_nets(client):
+ res = client.list_networks()
+ for n in res["networks"]:
nid = n["id"]
- res = client.do_request(tenant_id, 'GET',
- "/networks/%s/ports.%s" % (nid, FORMAT))
- output = res.read()
- if res.status != 200:
- LOG.error("Failed to list ports: %s" % output)
- continue
- rd = json.loads(output)
- LOG.debug(rd)
- for port in rd["ports"]:
- pid = port["id"]
-
- data = {'port': {'attachment-id': ''}}
- body = Serializer().serialize(data, CONTENT_TYPE)
- res = client.do_request(tenant_id, 'DELETE',
- "/networks/%s/ports/%s/attachment.%s" % \
- (nid, pid, FORMAT), body=body)
- output = res.read()
- LOG.debug(output)
- if res.status != 202:
- LOG.error("Failed to unplug iface from port \"%s\": %s" % (vid,
- pid, output))
- continue
- LOG.info("Unplugged interface from port:%s on network:%s" % (pid,
- nid))
-
- res = client.do_request(tenant_id, 'DELETE',
- "/networks/%s/ports/%s.%s" % (nid, pid, FORMAT))
- output = res.read()
- if res.status != 202:
- LOG.error("Failed to delete port: %s" % output)
- continue
+ 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)
-
- res = client.do_request(tenant_id, 'DELETE',
- "/networks/" + nid + "." + FORMAT)
- status = res.status
- if status != 202:
- Log.error("Failed to delete network: %s" % nid)
- output = res.read()
- print output
- else:
- print "Deleted Virtual Network with ID:%s" % nid
+ client.delete_network(nid)
+ print "Deleted Virtual Network with ID:%s" % nid
-def create_net_with_attachments(net_name, iface_ids):
+def create_net_with_attachments(client, net_name, iface_ids):
data = {'network': {'net-name': '%s' % net_name}}
- body = Serializer().serialize(data, CONTENT_TYPE)
- res = client.do_request(tenant_id, 'POST',
- "/networks." + FORMAT, body=body)
- rd = json.loads(res.read())
- LOG.debug(rd)
- nid = rd["networks"]["network"]["id"]
+ 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.do_request(tenant_id, 'POST',
- "/networks/%s/ports.%s" % (nid, FORMAT))
- output = res.read()
- if res.status != 200:
- LOG.error("Failed to create port: %s" % output)
- continue
- rd = json.loads(output)
- new_port_id = rd["ports"]["port"]["id"]
+ 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}}
- body = Serializer().serialize(data, CONTENT_TYPE)
- res = client.do_request(tenant_id, 'PUT',
- "/networks/%s/ports/%s/attachment.%s" %\
- (nid, new_port_id, FORMAT), body=body)
- output = res.read()
- LOG.debug(output)
- if res.status != 202:
- LOG.error("Failed to plug iface \"%s\" to port \"%s\": %s" % \
- (iface_id, new_port_id, output))
- continue
+ 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 len(args) < 1:
parser.print_help()
- help()
sys.exit(1)
nets = {}
print "nets: %s" % str(nets)
- client = MiniClient(options.host, options.port, options.ssl)
+ client = Client(options.host, options.port, options.ssl, tenant=tenant_id)
if options.delete:
- delete_all_nets(client, tenant_id)
+ delete_all_nets(client)
for net_name, iface_ids in nets.items():
- create_net_with_attachments(net_name, iface_ids)
+ create_net_with_attachments(client, net_name, iface_ids)
sys.exit(0)