Пример #1
0
def upload_p():
	def get(name):
		return request.values.get(name)
	if request.method == 'POST':
		dic={}
		dic['e'] = int(get('e'))
		dic['lb'] = int (get('lb'))
		dic['lr'] = float (get('lr'))
		dic['tp'] = float (get('tp'))
		ssh_s=SSHConnection(dic_s['host'],dic_s['port'],dic_s['username'],dic_s['password'])
		ssh_s.connect(  )
		s='cd py2;source bin/activate;cd ..;cd FlaskIndexPrediction;python main.py -e {e} -lb {lb} -lr {lr} -tp{tp}'
		ssh_s.cmd(s.format(e=dic['e'],lb=dic['lb'],lr=dic['lr'],tp=dic['tp']))

		
		ssh_s.download(dic_s['remote work directory path'] + '/FlaskIndexPrediction/output/outputTest.csv', str(os.getcwd())  + '\\' +  'outputTest.csv')
		ssh_s.download(dic_s['remote work directory path'] + '/FlaskIndexPrediction/output/outputTrain.csv',str(os.getcwd())  + '\\' +  'outputTrain.csv')
		ssh_s.download(dic_s['remote work directory path'] + '/FlaskIndexPrediction/output/outputTrainTest.csv',str(os.getcwd())  + '\\' +  'outputTrainTest.csv')


		outputTest = pd.read_csv('outputTest.csv')
		outputTrain = pd.read_csv('outputTrain.csv')
		outputTrainTest = pd.read_csv('outputTrainTest.csv')
		Test_time = outputTest['Unnamed: 0']
		Test_origin = outputTest['origin']
		Test_predict = outputTest['predict']
		Train_time = outputTrain['Unnamed: 0']
		Train_origin = outputTrain['origin']
		Train_predict = outputTrain['predict']
		TrainTest_time = outputTrainTest['Unnamed: 0']
		TrainTest_origin = outputTrainTest['origin']
		TrainTest_predict = outputTrainTest['predict']
		
		stock_data={'Test_time':Test_time,'Test_origin':Test_origin,
		'Test_predict':Test_predict,'Train_time':Train_time,
		'Train_origin':Train_origin,'Train_predict':Train_predict,
		'TrainTest_time':TrainTest_time,'TrainTest_origin':TrainTest_origin,
		'TrainTest_predict':TrainTest_predict}
		return render_template('ZhangYD.html',stock_data = stock_data)
	else:
		return render_template('index_p.html')
Пример #2
0
def Stockdata_parameter():
    def get(
        name
    ):  ##  get values from the HTML part ,'name' is the 'id' of HTML <input>
        return request.values.get(name)

    if request.method == 'POST':
        ## step 1. get the parameters of stock data from HTML
        stock_parameter = {
        }  ##  stock_parameter is a dic to store teh parameters user input in HTML
        stock_parameter['e'] = int(get('e'))
        stock_parameter['lb'] = int(get('lb'))
        stock_parameter['lr'] = float(get('lr'))
        stock_parameter['tp'] = float(get('tp'))

        ## step 2. running the LSTM module in service
        ssh_s = SSHConnection(dic_s['host'], dic_s['port'], dic_s['username'],
                              dic_s['password'])
        ssh_s.connect()
        s = 'cd FlaskIndexPrediction;python main.py -e {e} -lb {lb} -lr {lr} -tp{tp}'
        ssh_s.cmd(
            s.format(e=stock_parameter['e'],
                     lb=stock_parameter['lb'],
                     lr=stock_parameter['lr'],
                     tp=stock_parameter['tp']))

        ## step 3.download the main.py output file to local
        ssh_s.download(
            dic_s['remote work directory path'] +
            '/FlaskIndexPrediction/output/outputTest.csv',
            str(os.getcwd()) + '/module/YD/' + 'outputTest.csv')
        ssh_s.download(
            dic_s['remote work directory path'] +
            '/FlaskIndexPrediction/output/outputTrain.csv',
            str(os.getcwd()) + '/module/YD/' + 'outputTrain.csv')
        ssh_s.download(
            dic_s['remote work directory path'] +
            '/FlaskIndexPrediction/output/outputTrainTest.csv',
            str(os.getcwd()) + '/module/YD/' + 'outputTrainTest.csv')

        ## step 4. read csv from local
        outputTest = pd.read_csv('module/YD/outputTest.csv')
        outputTrain = pd.read_csv('module/YD/outputTrain.csv')
        outputTrainTest = pd.read_csv('module/YD/outputTrainTest.csv')
        Test_time = outputTest['Unnamed: 0']
        Test_origin = outputTest['origin']
        Test_predict = outputTest['predict']
        Train_time = outputTrain['Unnamed: 0']
        Train_origin = outputTrain['origin']
        Train_predict = outputTrain['predict']
        TrainTest_time = outputTrainTest['Unnamed: 0']
        TrainTest_origin = outputTrainTest['origin']
        TrainTest_predict = outputTrainTest['predict']

        stock_data = {
            'Test_time': Test_time,
            'Test_origin': Test_origin,
            'Test_predict': Test_predict,
            'Train_time': Train_time,
            'Train_origin': Train_origin,
            'Train_predict': Train_predict,
            'TrainTest_time': TrainTest_time,
            'TrainTest_origin': TrainTest_origin,
            'TrainTest_predict': TrainTest_predict
        }
        return render_template('Stock_final_output.html',
                               stock_data=stock_data)
    else:
        return render_template('Stockdata_parameter.html')
Пример #3
0
class PostgresManager(object):
    """docstring for PostgresManager"""
    def __init__(self, node):
        super(PostgresManager, self).__init__()
        self.node = node
        if not node['local'] == 'true':
            self.connection = SSHConnection(
                node['hostname'],
                node['username'],
                node['password'])

    def run(self, cmd):
        if self.node['local'] == 'true':
            return local.shell(cmd)
        else:
            return self.connection.execute(cmd)

    def start(self):
        self.run('sudo /etc/init.d/postgresql start')

    def stop(self):
        self.run('sudo /etc/init.d/postgresql stop')

    def restart(self):
        self.run('sudo /etc/init.d/postgresql restart')

    def reload(self):
        self.run('sudo /etc/init.d/postgresql reload')

    def write_file(self, path, data):
        if self.node['local'] == 'true':
            local.write_file(path, data)
        else:
            self.connection.upload_data(data, path)

    def read_file(self, path):
        if self.node['local'] == 'true':
            return local.read_file(path)
        else:
            return self.connection.download(path)

    def init(self, master):
        environ = os.environ.copy()
        environ['PATH'] = '/usr/lib/pgclust:' + environ['PATH']

        self.stop()
        self.run('sudo pg_dropcluster %(pgversion)s %(cluster)s' % self.node)
        self.run('sudo pg_createcluster %(pgversion)s %(cluster)s' % self.node)
        self.run('sudo chown -R %(pguser)s:%(pguser)s /var/lib/postgresql/%(pgversion)s/%(cluster)s' % self.node)
        self.write_file('/tmp/pgpostgresql.conf', template.PG_CONFIG_TEMPLATE % self.node)
        self.write_file('/tmp/pgpg_hba.conf', template.PG_HBA_CONFIG_TEMPLATE % self.node)
        self.write_file('/tmp/pgrepmgr.conf', template.REPMGR_CONFIG_TEMPLATE % self.node)
        self.run('sudo cp /tmp/pgpostgresql.conf /etc/postgresql/%(pgversion)s/%(cluster)s/postgresql.conf' % self.node)
        self.run('sudo cp /tmp/pgpg_hba.conf /etc/postgresql/%(pgversion)s/%(cluster)s/pg_hba.conf' % self.node)
        self.run('sudo cp /tmp/pgrepmgr.conf /etc/postgresql/%(pgversion)s/%(cluster)s/repmgr.conf' % self.node)
        self.run('sudo chmod 644 /etc/postgresql/%(pgversion)s/%(cluster)s/*' % self.node)
        self.run('sudo rm /tmp/pgpostgresql.conf /tmp/pgpg_hba.conf /tmp/pgrepmgr.conf')
        self.run('sudo chown %(pguser)s:%(pguser)s -R /etc/postgresql' % self.node)

        self.write_file('/tmp/sshid_rsa' % self.node, local.read_file(self.node['privkey']))
        self.write_file('/tmp/sshid_rsa.pub' % self.node, local.read_file(self.node['pubkey']))
        self.write_file('/tmp/sshconfig', template.SSH_CONFIG)
        self.run('sudo -u %(pguser)s mkdir -p ~%(pguser)s/.ssh' % self.node)
        self.run('sudo cp /tmp/sshid_rsa ~%(pguser)s/.ssh/id_rsa' % self.node)
        self.run('sudo cp /tmp/sshid_rsa.pub ~%(pguser)s/.ssh/id_rsa.pub' % self.node)
        self.run('sudo cp /tmp/sshconfig ~%(pguser)s/.ssh/config' % self.node)
        self.run('sudo rm /tmp/sshconfig /tmp/sshid_rsa /tmp/sshid_rsa.pub')
        self.run('sudo chown %(pguser)s:%(pguser)s ~%(pguser)s/.ssh/config' % self.node)
        self.run('sudo chown %(pguser)s:%(pguser)s ~%(pguser)s/.ssh/id_rsa' % self.node)
        self.run('sudo chown %(pguser)s:%(pguser)s ~%(pguser)s/.ssh/id_rsa.pub' % self.node)
        self.run('sudo chmod 644 ~%(pguser)s/.ssh/config' % self.node)
        self.run('sudo chmod 600 ~%(pguser)s/.ssh/id_rsa' % self.node)
        self.run('sudo chmod 644 ~%(pguser)s/.ssh/id_rsa.pub' % self.node)
        if self.node['type'] == 'master':
            self.start()
            self.run('sudo -u %(pguser)s createuser --login --superuser repmgr' % self.node)
            self.run('sudo -u %(pguser)s createdb repmgr' % self.node)
            self.run('sudo -u %(pguser)s repmgr --verbose -f /etc/postgresql/%(pgversion)s/%(cluster)s/repmgr.conf master register' % self.node)
        else:
            self.run('sudo -u %(pguser)s rm -rf /var/lib/postgresql/%(pgversion)s/%(cluster)s' % self.node)
            self.run('sudo -u %(pguser)s mkdir /var/lib/postgresql/%(pgversion)s/%(cluster)s' % self.node)
            self.run('sudo -u %(pguser)s chmod 700 /var/lib/postgresql/%(pgversion)s/%(cluster)s' % self.node)
            self.run(('sudo -u %(pguser)s PATH="' + environ['PATH'] + '" repmgr --verbose --force -D /var/lib/postgresql/%(pgversion)s/%(cluster)s -d repmgr -p 5432 -U repmgr -R %(pguser)s standby clone ') % self.node + master['hostname'])
            self.start()
            self.run('sudo -u %(pguser)s repmgr -f /etc/postgresql/%(pgversion)s/%(cluster)s/repmgr.conf --verbose standby register' % self.node)

    def update_nodes(self, nodes):
        records = []
        for node in nodes:
            node['hostname'] = socket.gethostbyname(node['hostname']) + '/32'
            records.append(template.REPLICATION_NODE_TEMPLATE % node)
        pg_hba = '\n\n'.join(records) + template.PG_HBA_CONFIG_TEMPLATE % self.node
        self.write_file('/tmp/pgpg_hba.conf' % self.node, pg_hba)
        self.run('sudo cp /tmp/pgpg_hba.conf /etc/postgresql/%(pgversion)s/%(cluster)s/pg_hba.conf' % self.node)
        self.run('sudo rm /tmp/pgpg_hba.conf')

    def update_keys(self, nodes):
        self.run('sudo -u %(pguser)s mkdir -p ~%(pguser)s/.ssh' % self.node)
        self.run('sudo chmod 700 ~%(pguser)s/.ssh' % self.node)
        keys = []
        for node in nodes:
            key = local.read_file(node['pubkey'])
            keys.append(key)
        self.write_file('/tmp/sshauthorized_keys' % self.node, '\n'.join(keys))
        self.run('sudo cp /tmp/sshauthorized_keys ~%(pguser)s/.ssh/authorized_keys' % self.node)
        self.write_file('/tmp/sshid_rsa' % self.node, local.read_file(self.node['privkey']))
        self.write_file('/tmp/sshid_rsa.pub' % self.node, local.read_file(self.node['pubkey']))
        self.run('sudo cp /tmp/sshid_rsa ~%(pguser)s/.ssh/id_rsa' % self.node)
        self.run('sudo cp /tmp/sshid_rsa.pub ~%(pguser)s/.ssh/id_rsa.pub' % self.node)
        self.run('sudo rm /tmp/sshauthorized_keys /tmp/sshid_rsa /tmp/sshid_rsa.pub')
        self.run('sudo chown %(pguser)s:%(pguser)s ~%(pguser)s/.ssh/authorized_keys' % self.node)
        self.run('sudo chown %(pguser)s:%(pguser)s ~%(pguser)s/.ssh/id_rsa' % self.node)
        self.run('sudo chown %(pguser)s:%(pguser)s ~%(pguser)s/.ssh/id_rsa.pub' % self.node)
        self.run('sudo chmod 600 ~%(pguser)s/.ssh/authorized_keys' % self.node)
        self.run('sudo chmod 600 ~%(pguser)s/.ssh/id_rsa' % self.node)
        self.run('sudo chmod 644 ~%(pguser)s/.ssh/id_rsa.pub' % self.node)

    def update(self, nodes):
        self.update_nodes(nodes.values())
        self.update_keys(nodes.values())
        self.reload()