tabs
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 25 Sep 2013 01:57:16 +0000 (21:57 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 25 Sep 2013 01:57:16 +0000 (21:57 -0400)
planetstack/observer/steps/sync_network_slivers.py
planetstack/observer/steps/sync_site_privileges.py
planetstack/observer/steps/sync_sites.py
planetstack/observer/steps/sync_slices.py
planetstack/observer/steps/sync_slivers.py

index 4466174..a803053 100644 (file)
@@ -5,71 +5,71 @@ from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.network import *
 
 class SyncNetworkSlivers(OpenStackSyncStep):
-       requested_interval = 3600
-       provides=[NetworkSliver]
+    requested_interval = 3600
+    provides=[NetworkSliver]
 
-       def call(self):
-               networkSlivers = NetworkSliver.objects.all()
-               networkSlivers_by_id = {}
-               networkSlivers_by_port = {}
-               for networkSliver in networkSlivers:
-                       networkSlivers_by_id[networkSliver.id] = networkSliver
-                       networkSlivers_by_port[networkSliver.port_id] = networkSliver
+    def call(self):
+        networkSlivers = NetworkSliver.objects.all()
+        networkSlivers_by_id = {}
+        networkSlivers_by_port = {}
+        for networkSliver in networkSlivers:
+            networkSlivers_by_id[networkSliver.id] = networkSliver
+            networkSlivers_by_port[networkSliver.port_id] = networkSliver
 
-               networks = Network.objects.all()
-               networks_by_id = {}
-               for network in networks:
-                       networks_by_id[network.network_id] = network
+        networks = Network.objects.all()
+        networks_by_id = {}
+        for network in networks:
+            networks_by_id[network.network_id] = network
 
-               slivers = Sliver.objects.all()
-               slivers_by_instance_id = {}
-               for sliver in slivers:
-                       slivers_by_instance_id[sliver.instance_id] = sliver
+        slivers = Sliver.objects.all()
+        slivers_by_instance_id = {}
+        for sliver in slivers:
+            slivers_by_instance_id[sliver.instance_id] = sliver
 
-               ports = self.driver.shell.quantum.list_ports()["ports"]
-               for port in ports:
-                       if port["id"] in networkSlivers_by_port:
-                               # we already have it
-                               print "already accounted for port", port["id"]
-                               continue
+        ports = self.driver.shell.quantum.list_ports()["ports"]
+        for port in ports:
+            if port["id"] in networkSlivers_by_port:
+                # we already have it
+                print "already accounted for port", port["id"]
+                continue
 
-                       if port["device_owner"] != "compute:nova":
-                               # we only want the ports that connect to instances
-                               continue
+            if port["device_owner"] != "compute:nova":
+                # we only want the ports that connect to instances
+                continue
 
-                       network = networks_by_id.get(port['network_id'], None)
-                       if not network:
-                               #print "no network for port", port["id"], "network", port["network_id"]
-                               continue
+            network = networks_by_id.get(port['network_id'], None)
+            if not network:
+                #print "no network for port", port["id"], "network", port["network_id"]
+                continue
 
-                       sliver = slivers_by_instance_id.get(port['device_id'], None)
-                       if not sliver:
-                               print "no sliver for port", port["id"], "device_id", port['device_id']
-                               continue
+            sliver = slivers_by_instance_id.get(port['device_id'], None)
+            if not sliver:
+                print "no sliver for port", port["id"], "device_id", port['device_id']
+                continue
 
-                       if network.template.sharedNetworkId is not None:
-                               # If it's a shared network template, then more than one network
-                               # object maps to the quantum network. We have to do a whole bunch
-                               # of extra work to find the right one.
-                               networks = network.template.network_set.all()
-                               network = None
-                               for candidate_network in networks:
-                                       if (candidate_network.owner == sliver.slice):
-                                               print "found network", candidate_network
-                                               network = candidate_network
+            if network.template.sharedNetworkId is not None:
+                # If it's a shared network template, then more than one network
+                # object maps to the quantum network. We have to do a whole bunch
+                # of extra work to find the right one.
+                networks = network.template.network_set.all()
+                network = None
+                for candidate_network in networks:
+                    if (candidate_network.owner == sliver.slice):
+                        print "found network", candidate_network
+                        network = candidate_network
 
-                               if not network:
-                                       print "failed to find the correct network for a shared template for port", port["id"], "network", port["network_id"]
-                                       continue
+                if not network:
+                    print "failed to find the correct network for a shared template for port", port["id"], "network", port["network_id"]
+                    continue
 
-                       if not port["fixed_ips"]:
-                               print "port", port["id"], "has no fixed_ips"
-                               continue
+            if not port["fixed_ips"]:
+                print "port", port["id"], "has no fixed_ips"
+                continue
 
-#                       print "XXX", port
+#             print "XXX", port
 
-                       ns = NetworkSliver(network=network,
-                                                          sliver=sliver,
-                                                          ip=port["fixed_ips"][0]["ip_address"],
-                                                          port_id=port["id"])
-                       ns.save()
+            ns = NetworkSliver(network=network,
+                               sliver=sliver,
+                               ip=port["fixed_ips"][0]["ip_address"],
+                               port_id=port["id"])
+            ns.save()
index e02dde7..6ec917c 100644 (file)
@@ -5,14 +5,14 @@ from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.site import *
 
 class SyncSitePrivileges(OpenStackSyncStep):
-       requested_interval=0
-       provides=[SitePrivilege]
+    requested_interval=0
+    provides=[SitePrivilege]
 
     def fetch_pending(self):
         return Network.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
-       def sync_record(self, user):
-               if site_priv.user.kuser_id and site_priv.site.tenant_id:
-                       self.driver.add_user_role(site_priv.user.kuser_id,
-                                                                         site_priv.site.tenant_id,
-                                                                         site_priv.role.role_type) 
+    def sync_record(self, user):
+        if site_priv.user.kuser_id and site_priv.site.tenant_id:
+            self.driver.add_user_role(site_priv.user.kuser_id,
+                                      site_priv.site.tenant_id,
+                                      site_priv.role.role_type) 
index ece34af..d7a0ab7 100644 (file)
@@ -5,29 +5,29 @@ from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.site import Site
 
 class SyncSites(OpenStackSyncStep):
-       provides=[Site]
-       requested_interval=0
+    provides=[Site]
+    requested_interval=0
 
     def fetch_pending(self):
         return Site.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
-       def sync_record(self, site):
-               save_site = False
-               if not site.tenant_id:
-                       tenant = self.driver.create_tenant(tenant_name=site.login_base,
-                                                                                          description=site.name,
-                                                                                          enabled=site.enabled)
-                       site.tenant_id = tenant.id
-                       save_site = True
-                       # XXX - What's caller?
-                       # self.driver.add_user_role(self.caller.kuser_id, tenant.id, 'admin')
+    def sync_record(self, site):
+        save_site = False
+        if not site.tenant_id:
+            tenant = self.driver.create_tenant(tenant_name=site.login_base,
+                                               description=site.name,
+                                               enabled=site.enabled)
+            site.tenant_id = tenant.id
+            save_site = True
+            # XXX - What's caller?
+            # self.driver.add_user_role(self.caller.kuser_id, tenant.id, 'admin')
 
-               # update the record
-               if site.id and site.tenant_id:
-                       self.driver.update_tenant(site.tenant_id,
-                                                                         description=site.name,
-                                                                         enabled=site.enabled)
+        # update the record
+        if site.id and site.tenant_id:
+            self.driver.update_tenant(site.tenant_id,
+                                      description=site.name,
+                                      enabled=site.enabled)
 
-               if (save_site):
-                       site.save() # 
+        if (save_site):
+            site.save() # 
 
index 4f10a14..d5ed266 100644 (file)
@@ -5,58 +5,58 @@ from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.slice import Slice
 
 class SyncSlices(OpenStackSyncStep):
-       provides=[Slice]
-       requested_interval=0
+    provides=[Slice]
+    requested_interval=0
 
     def fetch_pending(self):
         return Slice.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
-       def sync_record(self, slice):
-               if not slice.tenant_id:
-                       nova_fields = {'tenant_name': slice.name,
-                                  'description': slice.description,
-                                  'enabled': slice.enabled}
-                       tenant = self.driver.create_tenant(**nova_fields)
-                       slice.tenant_id = tenant.id
-
-                       # XXX give caller an admin role at the tenant they've created
-                       self.driver.add_user_role(self.caller.kuser_id, tenant.id, 'admin')
-
-                       # refresh credentials using this tenant
-                       self.driver.shell.connect(username=self.driver.shell.keystone.username,
-                                                                         password=self.driver.shell.keystone.password,
-                                                                         tenant=tenant.name)
-
-                       # create network
-                       network = self.driver.create_network(slice.name)
-                       slice.network_id = network['id']
-
-                       # create router
-                       router = self.driver.create_router(slice.name)
-                       slice.router_id = router['id']
-
-                       # create subnet
-                       next_subnet = self.get_next_subnet()
-                       cidr = str(next_subnet.cidr)
-                       ip_version = next_subnet.version
-                       start = str(next_subnet[2])
-                       end = str(next_subnet[-2]) 
-                       subnet = self.driver.create_subnet(name=slice.name,
-                                                                                          network_id = network['id'],
-                                                                                          cidr_ip = cidr,
-                                                                                          ip_version = ip_version,
-                                                                                          start = start,
-                                                                                          end = end)
-                       slice.subnet_id = subnet['id']
-                       # add subnet as interface to slice's router
-                       self.driver.add_router_interface(router['id'], subnet['id'])
-                       # add external route
-                       self.driver.add_external_route(subnet)
-
-
-               if slice.id and slice.tenant_id:
-                       self.driver.update_tenant(slice.tenant_id,
-                                                                         description=slice.description,
-                                                                         enabled=slice.enabled)   
-
-               slice.save()
+    def sync_record(self, slice):
+        if not slice.tenant_id:
+            nova_fields = {'tenant_name': slice.name,
+                   'description': slice.description,
+                   'enabled': slice.enabled}
+            tenant = self.driver.create_tenant(**nova_fields)
+            slice.tenant_id = tenant.id
+
+            # XXX give caller an admin role at the tenant they've created
+            self.driver.add_user_role(self.caller.kuser_id, tenant.id, 'admin')
+
+            # refresh credentials using this tenant
+            self.driver.shell.connect(username=self.driver.shell.keystone.username,
+                                      password=self.driver.shell.keystone.password,
+                                      tenant=tenant.name)
+
+            # create network
+            network = self.driver.create_network(slice.name)
+            slice.network_id = network['id']
+
+            # create router
+            router = self.driver.create_router(slice.name)
+            slice.router_id = router['id']
+
+            # create subnet
+            next_subnet = self.get_next_subnet()
+            cidr = str(next_subnet.cidr)
+            ip_version = next_subnet.version
+            start = str(next_subnet[2])
+            end = str(next_subnet[-2]) 
+            subnet = self.driver.create_subnet(name=slice.name,
+                                               network_id = network['id'],
+                                               cidr_ip = cidr,
+                                               ip_version = ip_version,
+                                               start = start,
+                                               end = end)
+            slice.subnet_id = subnet['id']
+            # add subnet as interface to slice's router
+            self.driver.add_router_interface(router['id'], subnet['id'])
+            # add external route
+            self.driver.add_external_route(subnet)
+
+
+        if slice.id and slice.tenant_id:
+            self.driver.update_tenant(slice.tenant_id,
+                                      description=slice.description,
+                                      enabled=slice.enabled)   
+
+        slice.save()
index e119b0e..74a1b50 100644 (file)
@@ -5,14 +5,14 @@ from observer.openstacksyncstep import OpenStackSyncStep
 from core.models.sliver import Sliver
 
 class SyncSlivers(OpenStackSyncStep):
-       provides=[Sliver]
-       requested_interval=0
+    provides=[Sliver]
+    requested_interval=0
 
     def fetch_pending(self):
         return Sliver.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))
 
-       def sync_record(self, slice):
-               if not sliver.instance_id:
+    def sync_record(self, slice):
+        if not sliver.instance_id:
             nics = self.get_requested_networks(sliver.slice)
             file("/tmp/scott-manager","a").write("slice: %s\nreq: %s\n" % (str(sliver.slice.name), str(nics)))
             slice_memberships = SliceMembership.objects.filter(slice=sliver.slice)
@@ -27,7 +27,7 @@ class SyncSlivers(OpenStackSyncStep):
             sliver.instance_id = instance.id
             sliver.instance_name = getattr(instance, 'OS-EXT-SRV-ATTR:instance_name')
 
-               if sliver.instance_id and ("numberCores" in sliver.changed_fields):
-                       self.driver.update_instance_metadata(sliver.instance_id, {"cpu_cores": str(sliver.numberCores)})
+        if sliver.instance_id and ("numberCores" in sliver.changed_fields):
+            self.driver.update_instance_metadata(sliver.instance_id, {"cpu_cores": str(sliver.numberCores)})
 
-               sliver.save()   
+        sliver.save()