From: Tony Mack Date: Wed, 17 Apr 2013 14:45:12 +0000 (-0400) Subject: initial checkin. Fills in null sliver ips X-Git-Tag: 1.0~95 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=cafd0b0293dde6c6404e1d6e3566f2f491a42086;p=plstackapi.git initial checkin. Fills in null sliver ips --- diff --git a/plstackapi/openstack/sliveragent.py b/plstackapi/openstack/sliveragent.py new file mode 100644 index 0000000..322cdfd --- /dev/null +++ b/plstackapi/openstack/sliveragent.py @@ -0,0 +1,29 @@ +import os +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "plstackapi.planetstack.settings") +import time +from plstackapi.core.models.sliver import Sliver +from plstackapi.openstack.client import OpenStackClient + +class SliverAgent: + + def run(self): + client = OpenStackClient() + while True: + # fill in null ip addresses + slivers = Sliver.objects.filter(ip=None) + for sliver in slivers: + servers = client.nova.servers.findall(id=sliver.instance_id) + if not servers: + continue + server = servers[0] + ips = server.addresses.get(sliver.slice.name, []) + if not ips: + continue + sliver.ip = ips[0]['addr'] + sliver.save() + time.sleep(7) + + +if __name__ == '__main__': + SliverAgent().run() +