Moving toward classes for next MySlice version
authorLoic Baron <loic.baron@lip6.fr>
Thu, 20 Nov 2014 15:21:44 +0000 (16:21 +0100)
committerLoic Baron <loic.baron@lip6.fr>
Thu, 20 Nov 2014 15:21:44 +0000 (16:21 +0100)
portal/account.py [new file with mode: 0644]
portal/platform.py [new file with mode: 0644]

diff --git a/portal/account.py b/portal/account.py
new file mode 100644 (file)
index 0000000..7d08e1c
--- /dev/null
@@ -0,0 +1,45 @@
+from manifold.core.query                import Query
+from manifoldapi.manifoldapi            import execute_query
+
+from datetime import datetime
+import time
+import dateutil.parser
+import calendar
+
+import json, os, re, itertools
+
+class Account:
+    def __init__ (self, platform_id, user_id):
+        account_query  = Query().get('local:account').select('user_id','platform_id','auth_type','config').filter_by('platform_id', '==', platform_id).filter_by('user_id', '==', user_id)
+        account_details = execute_query(self.request, account_query)
+        self.user_id     = account_details['user_id']
+        self.platform_id = account_details['platform_id']
+        self.auth_type   = account_details['auth_type']
+        self.config      = account_details['config']
+        account_config = json.loads(account_details['config'])
+
+        self.usr_hrn = account_config.get('user_hrn',None)
+        self.pub_key = account_config.get('user_public_key',None)
+        self.reference = account_config.get ('reference_platform',None)
+
+        self.user_cred = account_config.get('delegated_user_credential',None)
+        self.user_cred_expiration = get_expiration(self.user_cred)
+        
+        slice_creds = account_config.get('delegated_slice_credentials',None)
+        for slice_name, slice_cred in slice_creds.iteritems():
+            self.slice_cred_expiration = get_expiration(self.slice_cred)
+
+        self.auth_cred = account_config.get('delegated_authority_credentials',None)
+        self.auth_cred_expiration = get_expiration(self.auth_cred)
+
+def get_expiration (credential, format = 'UTC'):
+    exp_date = re.search('<expires>(.*)</expires>', credential)
+    if exp_date:
+        exp_date = exp_date.group(1)
+        if format == 'timestamp':
+            exp_date = calendar.timegm(dateutil.parser.parse(exp_date).utctimetuple())
+    else:
+        exp_date = None
+    return exp_date
+
diff --git a/portal/platform.py b/portal/platform.py
new file mode 100644 (file)
index 0000000..f224056
--- /dev/null
@@ -0,0 +1,21 @@
+from manifold.core.query                import Query
+from manifoldapi.manifoldapi            import execute_query
+
+class Platform:
+    def __init__ (self, id = None, name = None):
+        if id is not None:
+            platform_query  = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled').filter_by('platform_id', '==', platform_id)
+        if name is not None:
+            platform_query  = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled').filter_by('platform', '==', platform)
+        self.id       = platform_query['platform_id']
+        self.name     = platform_query['platform']
+        self.type     = platform_query['gateway_type']
+        self.disabled = platform_query['disabled']
+
+#class Platforms:
+#    def __init__ (self):
+#        platforms_query  = Query().get('local:platform').select('platform_id','platform','gateway_type','disabled')
+#        platforms_details = execute_query(self.request, platform_query)
+#        for platform_detail in platforms_details:
+#            Platform(id = platform_detail['platform_id'])