def main_installer():
    gluster_version = run_helper.get_gluster_version()
    if gluster_version[-7:] != '.tar.gz':
        tarball = gluster_version + '.tar.gz'
    else:
        tarball = gluster_version

    status = install_gluster(tarball)
    if status:
        print 'Installation went Bananas. Please look into it.'

    return status
def install_gluster_rpms(rpms):

    nodes = run_helper.get_nodes_ip()

    clients = run_helper.get_client_ip()
    for client in clients:
        if client not in nodes:
            nodes.append(client)

    g_version = run_helper.get_gluster_version()
    if g_version[-7:] == '.tar.gz':
        gluster_version = g_version[:-7]
    else:
        gluster_version = g_version

    match = re.search(r'glusterfs-([\w.]+)', gluster_version)
    if not match:
        print 'unable to get gluster version to determine the rpm URL. Please check the configfile'
        sys.exit(1)
    version = match.group(1)

    ret_queue = Queue.Queue()
    threads = []
    for node in nodes:
        t = threading.Thread(target=install_rpm, args=(node, version, rpms, ret_queue))
        t.start()
        threads.append(t)

    ret_codes = []
    for t in threads:
        t.join()
        ret_codes.append(ret_queue.get())

    ret_value = 0
    for ret in ret_codes:
        if ret != 0:
            ret_value = 1
            break

    return ret_value