Exemple #1
0
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})
Exemple #3
0
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)