Esempio n. 1
0
def operations():
    import paramiko
    from app.utils.operations import remote
    from config import basedir
    from app.forms import OperationsForm

    def isup(hostname):
        import socket

        conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        conn.settimeout(2)
        try:
            conn.connect((hostname, 22))
            conn.close()
        except:
            return False
        return True

    form = OperationsForm()
    if form.validate_on_submit():
        username = "******"
        pkey = basedir + "/sshkeys/id_rsa"

        hostname = form.hostname.data
        cmd = form.cmd.data

        if not isup(hostname):
            return render_template("operations.html", form=form, failed_host=hostname)

        blacklist = ["reboot", "shutdown", "poweroff", "rm", "mv", "-delete", "source", "sudo", "<", "<<", ">>", ">"]
        for item in blacklist:
            if item in cmd.split():
                return render_template("operations.html", form=form, blacklisted_word=item)

        try:
            out = remote(cmd, hostname=hostname, username=username, pkey=pkey)
        except paramiko.AuthenticationException:
            return render_template("operations.html", form=form, hostname=hostname, failed_auth=True)

        failed_cmd = out.failed
        succeeded_cmd = out.succeeded

        return render_template(
            "operations.html",
            form=form,
            cmd=cmd,
            hostname=hostname,
            out=out,
            failed_cmd=failed_cmd,
            succeeded_cmd=succeeded_cmd,
        )

    return render_template("operations.html", form=form)
Esempio n. 2
0
def operations():
    import paramiko
    from app.utils.operations import remote
    from config import basedir
    from app.forms import OperationsForm

    def isup(hostname):
        import socket

        conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        conn.settimeout(2)
        try:
            conn.connect((hostname, 22))
            conn.close()
        except:
            return False
        return True

    form = OperationsForm()
    if form.validate_on_submit():
        username = '******'
        pkey = basedir + '/sshkeys/id_rsa'

        hostname = form.hostname.data
        cmd = form.cmd.data

        if not isup(hostname):
            return render_template('operations.html', form=form, failed_host=hostname)

        blacklist = ['reboot', 'shutdown', 'poweroff',
                     'rm', 'mv', '-delete', 'source', 'sudo',
                     '<', '<<', '>>', '>']
        for item in blacklist:
            if item in cmd.split():
                return render_template('operations.html', form=form, blacklisted_word=item)

        try:
            out = remote(cmd, hostname=hostname, username=username, pkey=pkey)
        except paramiko.AuthenticationException:
            return render_template('operations.html', form=form, hostname=hostname, failed_auth=True)

        failed_cmd = out.failed
        succeeded_cmd = out.succeeded

        return render_template('operations.html',
                               form=form,
                               cmd=cmd,
                               hostname=hostname,
                               out=out,
                               failed_cmd=failed_cmd,
                               succeeded_cmd=succeeded_cmd)

    return render_template('operations.html', form=form)
Esempio n. 3
0
def hadoop():
    import paramiko
    from app.utils.operations import remote
    from config import basedir
    from app.forms import HadoopForm

    def isup(hostname):
        import socket

        conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        conn.settimeout(2)
        try:
            conn.connect((hostname, 22))
            conn.close()
        except:
            return False
        return True

    form = HadoopForm()
    if form.validate_on_submit():
        username = '******'
        pkey = basedir + '/sshkeys/id_rsa'

        param_do = form.do_action.data
        slave_hostname = form.slave_hostname.data
        master_hostname = form.master_hostname.data

        if master_hostname == 'none':
            return render_template('hadoop.html', form=form, none_host=True)

        if master_hostname in ['idc1-hnn1', 'idc2-hnn1']:
            script = '/root/bin/excludedn'

        if master_hostname in ['idc1-hrm1', 'idc2-hrm1']:
            script = '/root/bin/excludeyn'

        if param_do == 'exclude':
            cmd = "sudo {0} {1}".format(script, slave_hostname)

        if param_do == 'recover':
            cmd = "sudo {0} -r {1}".format(script, slave_hostname)

        if not isup(master_hostname):
            return render_template('hadoop.html',
                                   form=form,
                                   failed_host=master_hostname)

        try:
            out = remote(cmd,
                         hostname=master_hostname,
                         username=username,
                         pkey=pkey)
        except paramiko.AuthenticationException:
            return render_template('hadoop.html',
                                   form=form,
                                   master_hostname=master_hostname,
                                   failed_auth=True)

        failed_cmd = out.failed
        succeeded_cmd = out.succeeded

        return render_template('hadoop.html',
                               form=form,
                               cmd=cmd,
                               master_hostname=master_hostname,
                               out=out,
                               failed_cmd=failed_cmd,
                               succeeded_cmd=succeeded_cmd)

    return render_template('hadoop.html', form=form)
Esempio n. 4
0
def hadoop():
    import paramiko
    from app.utils.operations import remote
    from config import basedir
    from app.forms import HadoopForm

    def isup(hostname):
        import socket

        conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        conn.settimeout(2)
        try:
            conn.connect((hostname, 22))
            conn.close()
        except:
            return False
        return True

    form = HadoopForm()
    if form.validate_on_submit():
        username = "******"
        pkey = basedir + "/sshkeys/id_rsa"

        param_do = form.do_action.data
        slave_hostname = form.slave_hostname.data
        master_hostname = form.master_hostname.data

        if master_hostname == "none":
            return render_template("hadoop.html", form=form, none_host=True)

        if master_hostname in ["idc1-hnn1", "idc2-hnn1"]:
            script = "/root/bin/excludedn"

        if master_hostname in ["idc1-hrm1", "idc2-hrm1"]:
            script = "/root/bin/excludeyn"

        if param_do == "exclude":
            cmd = "sudo {0} {1}".format(script, slave_hostname)

        if param_do == "recover":
            cmd = "sudo {0} -r {1}".format(script, slave_hostname)

        if not isup(master_hostname):
            return render_template("hadoop.html", form=form, failed_host=master_hostname)

        try:
            out = remote(cmd, hostname=master_hostname, username=username, pkey=pkey)
        except paramiko.AuthenticationException:
            return render_template("hadoop.html", form=form, master_hostname=master_hostname, failed_auth=True)

        failed_cmd = out.failed
        succeeded_cmd = out.succeeded

        return render_template(
            "hadoop.html",
            form=form,
            cmd=cmd,
            master_hostname=master_hostname,
            out=out,
            failed_cmd=failed_cmd,
            succeeded_cmd=succeeded_cmd,
        )

    return render_template("hadoop.html", form=form)