Wide range of debugging changes
[plstackapi.git] / planetstack / observer / steps / sync_sliver_ips.py
1 import os
2 import base64
3 from planetstack.config import Config
4 from observer.openstacksyncstep import OpenStackSyncStep
5 from core.models.sliver import Sliver
6
7 class SyncSliverIps(OpenStackSyncStep):
8         provides=[Sliver]
9         requested_interval=0
10         def fetch_pending(self):
11                 slivers = Sliver.objects.filter(ip=None)
12                 return slivers
13
14         def sync_record(self, sliver):
15                 self.manager.init_admin(tenant=sliver.slice.name)
16                 servers = self.manager.driver.shell.nova.servers.findall(id=sliver.instance_id)
17                 if not servers:
18                         return
19                 server = servers[0]
20                 ips = server.addresses.get(sliver.slice.name, [])
21                 if not ips:
22                         return
23                 sliver.ip = ips[0]['addr']
24                 sliver.save()
25                 logger.info("saved sliver ip: %s %s" % (sliver, ips[0]))