コード例 #1
0
ファイル: rabbitmq.py プロジェクト: hedenberg/WebSync
def update_blob(body_dict):
    date_format = '%Y-%m-%d %H:%M:%S.%f'
    b0 = datetime.strptime(body_dict["upload_date"], date_format)
    b1 = datetime.strptime(body_dict["file_last_update"], date_format)
    
    b=db_session.query(Blob).get(body_dict["file_id"])
    if b == None:
        b = Blob(b0, b1, b1)
        db_session.add(b)
        db_session.commit()
        b.id = body_dict["file_id"]
        b.upload_date = b0
        b.last_change = b1
        b.last_sync = b1
        db_session.commit()
    else:
        date_format = '%Y-%m-%d %H:%M:%S.%f'
        b.upload_date = b0
        b.last_change = b1
        b.last_sync = b1
        db_session.commit()
    data = {"message_id":body_dict["message_id"],
            "type":body_dict["type"],
            "node_id":body_dict["node_id"],
            "node_ip":body_dict["node_ip"],
            "node_port":body_dict["node_port"], 
            "file_id":body_dict["file_id"], 
            "upload_date":body_dict["upload_date"],
            "file_last_update":body_dict["file_last_update"],
            "file_last_sync":body_dict["file_last_update"]}
    emit_manager(json.dumps(data))
コード例 #2
0
ファイル: rabbitmq.py プロジェクト: hedenberg/WebSync
def add_blob(body_dict):
    date_format = '%Y-%m-%d %H:%M:%S.%f'
    b0 = datetime.strptime(body_dict["upload_date"], date_format)
    b1 = datetime.strptime(body_dict["file_last_update"], date_format)
    b=db_session.query(Blob).get(body_dict["file_id"])
    if b == None:
        print "Blob did not exist"
        b = Blob(b0, b1, b1)
        db_session.add(b)
        db_session.commit()
    b.id = body_dict["file_id"]
    b.upload_date = b0
    b.last_change = b1
    b.last_sync = b1
    db_session.commit()
    print "add_blob"
    bs=db_session.query(Blob).order_by(Blob.id)
    for b_ in bs:
        print "blob: ",b_.id
    data = {"message_id":body_dict["message_id"],
            "type":body_dict["type"],
            "node_id":body_dict["node_id"],
            "node_ip":body_dict["node_ip"],
            "node_port":body_dict["node_port"], 
            "file_id":body_dict["file_id"], 
            "upload_date":body_dict["upload_date"],
            "file_last_update":body_dict["file_last_update"],
            "file_last_sync":body_dict["file_last_update"]}
    emit_manager(json.dumps(data))
コード例 #3
0
ファイル: rabbitmq.py プロジェクト: hedenberg/WebSync
def update_blob(body_dict):
    date_format = '%Y-%m-%d %H:%M:%S.%f'
    b0 = datetime.strptime(body_dict["upload_date"], date_format)
    b1 = datetime.strptime(body_dict["file_last_update"], date_format)

    b = db_session.query(Blob).get(body_dict["file_id"])
    if b == None:
        b = Blob(b0, b1, b1)
        db_session.add(b)
        db_session.commit()
        b.id = body_dict["file_id"]
        b.upload_date = b0
        b.last_change = b1
        b.last_sync = b1
        db_session.commit()
    else:
        date_format = '%Y-%m-%d %H:%M:%S.%f'
        b.upload_date = b0
        b.last_change = b1
        b.last_sync = b1
        db_session.commit()
    data = {
        "message_id": body_dict["message_id"],
        "type": body_dict["type"],
        "node_id": body_dict["node_id"],
        "node_ip": body_dict["node_ip"],
        "node_port": body_dict["node_port"],
        "file_id": body_dict["file_id"],
        "upload_date": body_dict["upload_date"],
        "file_last_update": body_dict["file_last_update"],
        "file_last_sync": body_dict["file_last_update"]
    }
    emit_manager(json.dumps(data))
コード例 #4
0
ファイル: rabbitmq.py プロジェクト: hedenberg/WebSync
def add_blob(body_dict):
    date_format = '%Y-%m-%d %H:%M:%S.%f'
    b0 = datetime.strptime(body_dict["upload_date"], date_format)
    b1 = datetime.strptime(body_dict["file_last_update"], date_format)
    b = db_session.query(Blob).get(body_dict["file_id"])
    if b == None:
        print "Blob did not exist"
        b = Blob(b0, b1, b1)
        db_session.add(b)
        db_session.commit()
    b.id = body_dict["file_id"]
    b.upload_date = b0
    b.last_change = b1
    b.last_sync = b1
    db_session.commit()
    print "add_blob"
    bs = db_session.query(Blob).order_by(Blob.id)
    for b_ in bs:
        print "blob: ", b_.id
    data = {
        "message_id": body_dict["message_id"],
        "type": body_dict["type"],
        "node_id": body_dict["node_id"],
        "node_ip": body_dict["node_ip"],
        "node_port": body_dict["node_port"],
        "file_id": body_dict["file_id"],
        "upload_date": body_dict["upload_date"],
        "file_last_update": body_dict["file_last_update"],
        "file_last_sync": body_dict["file_last_update"]
    }
    emit_manager(json.dumps(data))
コード例 #5
0
ファイル: views.py プロジェクト: Gegga87/WebSync
def machines():
    if request.method == 'GET':
        r = requests.get(r'http://jsonip.com')
        ip= r.json()['ip']
        vms=db_session.query(VM).order_by(VM.id)
        return render_template('show_vms.html', vms=vms)
    elif request.method == 'POST':
        instance = (str(add_instance()).split(":"))[1]
        #instance = str(add_instance())
        print "instance: ", instance
        ip = get_floating() 
        assign_floating(instance, ip)
        vm = VM(ip, instance)
        db_session.add(vm)
        db_session.commit()
        flash('Instance created @',ip)
        return redirect(url_for('machines'))
コード例 #6
0
ファイル: views.py プロジェクト: Gegga87/WebSync
def manager():
    #data = {"message_id":(uuid.uuid4().int & (1<<63)-1), 
            #"type":"STATUS",
            #"node_id":0}
    #rabbitmq.emit_manager(json.dumps(data))
    if request.method == 'GET':
        r = requests.get(r'http://jsonip.com')
        ip= r.json()['ip']
        #vms = [("publicvagrant",ip),("localvagrant","10.10.10.15")]
        vms = [ip, "10.10.10.15"]
        vms_db = db_session.query(VM).order_by(VM.id)
        for vm in vms_db:
            vms.append(vm.ip)
            #vms = vms+[(vm.instance, vm.ip)]
        print vms
        return render_template('show_nodes.html', nodes=db_session.query(Node).order_by(Node.id), blobs=db_session.query(Blob).order_by(Blob.id), vms=vms)
    elif request.method == 'POST':
        r = requests.get(r'http://jsonip.com')
        my_ip= r.json()['ip']
        my_ip2 = "10.10.10.15"
        ip = request.form['vms']
        port = request.form['port']
        if is_valid_port(port):
            n = Node(ip,port)
            db_session.add(n)
            db_session.commit()
            if ip==my_ip or ip==my_ip2:
                n.process_id = run_server_on_container("websync", port, ip, n.id)
                print "Processid: ", n.process_id
                db_session.commit()
                flash('Node created.')
            else:
                n.process_id = run_server_on_openstack("websync", port, ip, n.id)
                print "Processid: ", n.process_id
                db_session.commit()
                flash('Node created.')

        return redirect(url_for('manager'))