tabs
diff --git a/planetstack/observer/steps/sync_network_slivers.py b/planetstack/observer/steps/sync_network_slivers.py
index 4466174..a803053 100644
--- a/planetstack/observer/steps/sync_network_slivers.py
+++ b/planetstack/observer/steps/sync_network_slivers.py
@@ -5,71 +5,71 @@
 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()
diff --git a/planetstack/observer/steps/sync_site_privileges.py b/planetstack/observer/steps/sync_site_privileges.py
index e02dde7..6ec917c 100644
--- a/planetstack/observer/steps/sync_site_privileges.py
+++ b/planetstack/observer/steps/sync_site_privileges.py
@@ -5,14 +5,14 @@
 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) 
diff --git a/planetstack/observer/steps/sync_sites.py b/planetstack/observer/steps/sync_sites.py
index ece34af..d7a0ab7 100644
--- a/planetstack/observer/steps/sync_sites.py
+++ b/planetstack/observer/steps/sync_sites.py
@@ -5,29 +5,29 @@
 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() # 
 
diff --git a/planetstack/observer/steps/sync_slices.py b/planetstack/observer/steps/sync_slices.py
index 4f10a14..d5ed266 100644
--- a/planetstack/observer/steps/sync_slices.py
+++ b/planetstack/observer/steps/sync_slices.py
@@ -5,58 +5,58 @@
 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
+    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')
+            # 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)
+            # 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 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 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)
+            # 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)   
+        if slice.id and slice.tenant_id:
+            self.driver.update_tenant(slice.tenant_id,
+                                      description=slice.description,
+                                      enabled=slice.enabled)   
 
-		slice.save()
+        slice.save()
diff --git a/planetstack/observer/steps/sync_slivers.py b/planetstack/observer/steps/sync_slivers.py
index e119b0e..74a1b50 100644
--- a/planetstack/observer/steps/sync_slivers.py
+++ b/planetstack/observer/steps/sync_slivers.py
@@ -5,14 +5,14 @@
 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 @@
             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()