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)
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)
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)
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)