property to get client from library, function to sanitize account names
authorScott Baker <smbaker@gmail.com>
Tue, 7 Jan 2014 00:05:46 +0000 (16:05 -0800)
committerScott Baker <smbaker@gmail.com>
Tue, 7 Jan 2014 00:05:46 +0000 (16:05 -0800)
planetstack/hpc_observer/hpclib.py
planetstack/hpc_observer/steps/sync_hpcservices.py

index 97e2a30..f6e875b 100644 (file)
@@ -1,5 +1,6 @@
 import os
 import base64
+import string
 import sys
 import xmlrpclib
 
@@ -53,6 +54,17 @@ class CmiClient:
         self.onev = APIHelper(onev, onev_auth)
 
 class HpcLibrary:
+    def __init__(self):
+        self._client = None
+
+    def make_account_name(self, x):
+        x=x.lower()
+        y = ""
+        for c in x:
+            if (c in (string.lowercase + string.digits)):
+                y = y + c
+        return y
+
     def extract_slice_info(self, service):
         """ Produce a dict that describes the slices for the CMI
 
@@ -143,15 +155,20 @@ PUPPET_MASTER_HOSTNAME="%(hostname_cmi)s"
 PUPPET_MASTER_PORT="8140"
 """ % mapping)
 
+    @property
+    def client(self):
+        if self._client is None:
+            self._client = CmiClient(self.get_cmi_hostname())
+        return self._client
+
 if __name__ == '__main__':
     print "testing write_slices_file"
     lib = HpcLibrary()
     lib.write_slices_file()
 
     print "testing API connection"
-    client = CmiClient(lib.get_cmi_hostname())
-    client.cob.GetNewObjects()
-    client.onev.ListAll("CDN")
+    lib.client.cob.GetNewObjects()
+    lib.client.onev.ListAll("CDN")
 
 
 
index a747cea..a4c9e77 100644 (file)
@@ -21,6 +21,10 @@ class SyncHpcService(SyncStep, HpcLibrary):
     provides=[HpcService]
     requested_interval=0
 
+    def __init__(self, **args):
+        SyncStep.__init__(self, **args)
+        HpcLibrary.__init__(self)
+
     def fetch_pending(self):
         return HpcService.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None))