+@lru_cache(100)
+def translate(rspec, output_format):
+ import urllib
+ import urllib2
+
+ values = {'content' : rspec}
+ url = 'https://demo.fiteagle.org/omnweb/convert/to/' + output_format
+ data = urllib.urlencode(values)
+ req = urllib2.Request(url, data)
+ response = urllib2.urlopen(req)
+ return response.read()
+
+def rename(self,key,new_key):
+ ind = self._keys.index(key) #get the index of old key, O(N) operation
+ self._keys[ind] = new_key #replace old key with new key in self._keys
+ self[new_key] = self[key] #add the new key, this is added at the end of self._keys
+ self._keys.pop(-1) #pop the last item in self._keys
+
+def get_users_in_slice(request, slice_hrn):
+ # select users.user_hrn, users.user_email, users.keys
+ # from myslice:slice
+ # where slice_hrn=='onelab.upmc.r2d2.slice1'
+ users_query = Query().get('myslice:slice').filter_by('slice_hrn', '==', slice_hrn).select('users.user_hrn', 'users.user_urn', 'users.user_email','users.keys')
+ users = execute_admin_query(request, users_query)
+ rmap = {'user_urn':'urn','user_email':'email','user_hrn':'hrn'}
+ res = list()
+ for u in users[0]['users']:
+ r_user = dict()
+ for k,v in u.items():
+ if k in rmap.keys():
+ r_user[rmap[k]] = v
+ else:
+ r_user[k]=v
+ res.append(r_user)
+ return res
+
+def get_user_config(request, user_email, platform_name):
+ account = get_user_account(request, user_email, platform_name)
+ return json.loads(account['config']) if account['config'] else {}