def save_seed(**kwargs): """ Save the configuration seed to the system Variables: None Arguments: None Data Block: { "KEY": "value", # Dictionary of key/value pair ... } Result example: { "success": true # Was the update successful? } """ seed = request.json old_seed = STORAGE.get_blob("seed") STORAGE.save_blob("previous_seed", old_seed) STORAGE.save_blob("seed", seed) return make_api_response({"success": True})
def set_cluster_config(name, **kwargs): data = request.json if not data: return make_api_response({}, "There are no provisionning config to save", 400) if 'allocation' not in data or 'flex' not in data or 'overrides' not in data: return make_api_response({}, "Invalid provisioning config", 400) STORAGE.save_blob("prov_conf_%s" % name, data) return make_api_response({"success": True})
def login(): if request.environ.get("HTTP_X_REMOTE_CERT_VERIFIED", "FAILURE") == "SUCCESS": dn = ",".join( request.environ.get("HTTP_X_REMOTE_DN").split("/")[::-1][:-1]) else: dn = "" avatar = None username = '' alternate_login = '******' if dn: u_list = STORAGE.advanced_search('user', 'dn:"%s"' % dn, args=[('fl', '_yz_rk') ])['response']['docs'] if len(u_list): username = u_list[0]['_yz_rk'] avatar = STORAGE.get_user_avatar( username) or "/static/images/user_default.png" alternate_login = '******' else: try: username = dn.rsplit('CN=', 1)[1] except IndexError: username = dn avatar = "/static/images/user_default.png" alternate_login = '******' if config.auth.get('encrypted_login', True): public_key = STORAGE.get_blob('id_rsa.pub') if not public_key: public_key, private_key = generate_async_keys( key_size=config.ui.get('rsa_key_size', 2048)) STORAGE.save_blob('id_rsa.pub', public_key) STORAGE.save_blob('id_rsa', private_key) else: public_key = None next_url = angular_safe(request.args.get('next', "/")) return custom_render("login.html", next=next_url, public_key=public_key, avatar=avatar, username=username, alternate_login=alternate_login)