def stop_in_client_mode(cluster_name, opts):
    # check cluster status trickly
    if utils.check_cluster_status(cluster_name, ['Stopped']):
        print "Cluster %s has been `Stopped`, you can not stop it again." % cluster_name
        sys.exit(1)
    do_validity_check(opts)

    (masters, slaves) = utils.get_masters_and_slaves(opts.mode)
    if len(masters + slaves) <= 0:
        print "There is no master or slave running, check it first please."
        sys.exit(1)

    print "==> Stopping spark cluster..."
    utils.warning()
    msg = "Stopping Spark cluster will stop HDFS, spark-notebook and Hue at the same time. " \
          "Stop %s? (Y/n): " % cluster_name
    to_stop = raw_input(msg)
    if to_stop == "Y":
        if opts.pwd == "":
            opts.pwd = getpass.getpass(
                "You need to provide the password for ECS instance:")
        spark.stop_spark_cluster(masters, slaves, opts)
        hdfs.stop_hdfs(masters, slaves, opts)
        hue.stop_hue(masters, opts)
        spark_notebook.stop_spark_notebook(masters, opts)
        utils.stop_nginx(opts, masters)
        # update cluster status
        os.system("echo Stopped > %s%s" %
                  (GlobalVar.CLUSTER_STATUS, cluster_name))
    else:
        print "Not `Y`, give up stopping cluster %s" % cluster_name
def stop_in_client_mode(cluster_name, opts):
    # check cluster status trickly
    if utils.check_cluster_status(cluster_name, ['Stopped']):
        print "Cluster %s has been `Stopped`, you can not stop it again." % cluster_name
        sys.exit(1)
    do_validity_check(opts)

    (masters, slaves) = utils.get_masters_and_slaves(opts.mode)
    if len(masters + slaves) <= 0:
        print "There is no master or slave running, check it first please."
        sys.exit(1)

    print "==> Stopping spark cluster..."
    utils.warning()
    msg = "Stopping Spark cluster will stop HDFS, spark-notebook and Hue at the same time. " \
          "Stop %s? (Y/n): " % cluster_name
    to_stop = raw_input(msg)
    if to_stop == "Y":
        if opts.pwd == "":
            opts.pwd = getpass.getpass("You need to provide the password for ECS instance:")
        spark.stop_spark_cluster(masters, slaves, opts)
        hdfs.stop_hdfs(masters, slaves, opts)
        hue.stop_hue(masters, opts)
        spark_notebook.stop_spark_notebook(masters, opts)
        utils.stop_nginx(opts,masters)
        # update cluster status
        os.system("echo Stopped > %s%s" % (GlobalVar.CLUSTER_STATUS, cluster_name))
    else:
        print "Not `Y`, give up stopping cluster %s" % cluster_name
def disable_module(name, opts):
    if len(name.split(":")) != 2:
        print "\nYou need to provide a <cluster_name>:<module_name>\n"
        sys.exit(1)
    cluster_name = name.split(":")[0]
    module_name = name.split(":")[1]
    do_validity_check(opts)
    (masters, slaves) = utils.get_masters_and_slaves(opts.mode, cluster_name)
    if module_name == "hdfs":
        hdfs.stop_hdfs(masters, slaves, opts)
    elif module_name == "hue":
        hue.stop_hue(masters, opts)
    elif module_name == "spark-notebook":
        spark_notebook.stop_spark_notebook(masters, opts)
    else:
        print "Now we only support 3 module: hdfs, hue, spark-notebook"
        sys.exit(1)
def disable_module(name, opts):
    if len(name.split(":")) != 2:
        print "\nYou need to provide a <cluster_name>:<module_name>\n"
        sys.exit(1)
    cluster_name = name.split(":")[0]
    module_name = name.split(":")[1]
    do_validity_check(opts)
    (masters, slaves) = utils.get_masters_and_slaves(opts.mode, cluster_name)
    if module_name == "hdfs":
        hdfs.stop_hdfs(masters, slaves, opts)
    elif module_name == "hue":
        hue.stop_hue(masters, opts)
    elif module_name == "spark-notebook":
        spark_notebook.stop_spark_notebook(masters, opts)
    else:
        print "Now we only support 3 module: hdfs, hue, spark-notebook"
        sys.exit(1)