+ results = sfa_client(request, method, hrn, urn, object_type, recursive, options, platforms)
+
+ if display == 'table':
+ return render_to_response('table-default.html', {'data' : data, 'fields' : columns, 'id' : '@component_id', 'options' : None})
+ else:
+ return HttpResponse(json.dumps(results, cls=MyEncoder), content_type="application/json")
+
+def get_user_account(user_email, platform_name):
+ """
+ Returns the user configuration for a given platform.
+ This function does not resolve references.
+ """
+ user = db.query(User).filter(User.email == user_email).one()
+ platform = db.query(Platform).filter(Platform.platform == platform_name).one()
+ accounts = [a for a in user.accounts if a.platform == platform]
+ if not accounts:
+ raise Exception, "this account does not exist"
+
+ if accounts[0].auth_type == 'reference':
+ pf = json.loads(accounts[0].config)['reference_platform']
+ return get_user_account(user_email, pf)
+
+ return accounts[0]
+
+def sfa_client(request, method, hrn=None, urn=None, object_type=None, rspec=None, recursive=None, options=None, platforms=None, admin=False):
+
+ Config = ConfigParser.ConfigParser()
+ Config.read(os.getcwd() + "/myslice/monitor.ini")
+
+ if admin:
+ user_email, admin_password = config.manifold_admin_user_password()
+ else:
+ #logger.debug(request.session['user']['email'])
+ user_email = request.session['user']['email']
+
+ results = dict()
+
+ if hrn is None:
+ hrn = ''
+ if urn is None:
+ urn = ''
+ if object_type is None:
+ object_type = ''
+ if rspec is None:
+ rspec = ''
+ if recursive is None:
+ recursive = False
+ if options is None:
+ options = dict()
+ if platforms is None:
+ platforms = list()
+