]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
update batch_config.py to use new client lib, hooray for deleting code
authorDan Wendlandt <dan@nicira.com>
Tue, 9 Aug 2011 07:19:55 +0000 (00:19 -0700)
committerDan Wendlandt <dan@nicira.com>
Tue, 9 Aug 2011 07:19:55 +0000 (00:19 -0700)
tools/batch_config.py

index 8415513d01d0c3592be0eef7ca150cd6610e8c64..705f46fbc11f0d8eb62bf0c0c2fea260c211f264 100644 (file)
 #    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)
 
@@ -149,7 +89,6 @@ if __name__ == "__main__":
 
     if len(args) < 1:
         parser.print_help()
-        help()
         sys.exit(1)
 
     nets = {}
@@ -163,12 +102,12 @@ if __name__ == "__main__":
 
     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)