예제 #1
0
def get_balance(user_id):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute("SELECT balance from "
                "wallet where owner_id = %s", (user_id, ))
    row = cur.fetchone()
    con.close()
    return row[0]
예제 #2
0
def add_balance(user_id, amount):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute("SELECT balance from wallet where owner_id = %s", (user_id, ))
    row = cur.fetchone()
    cur.execute("update wallet set balance =%s where owner_id = %s",
                (float(row[0]) + float(amount), user_id))
    con.commit()
    con.close()
def add_ssh(user_id, ssh):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "insert into ssh(name, content, owner_id)"
        " values (%s, %s, %s)", (ssh.name, ssh.content, user_id))

    con.commit()
    con.close()
def owns(user_id, user_config_id):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "select id from user_config "
        "where id = %s and owner_id = %s", (user_config_id, user_id))

    row = cur.fetchone()
    con.close()
    return row
예제 #5
0
def is_admin(user_id):
    con = db.get_connection_func()

    cur = con.cursor()
    cur.execute("select  role " "from \"user\" " "where id = %s", (user_id, ))
    row = cur.fetchone()

    con.close()

    return row[0] == 0  # todo check
예제 #6
0
def get_user_id(nasional_number):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute("SELECT id from \"user\" where nasional_number = %s",
                (nasional_number, ))
    row = cur.fetchone()
    con.close()
    if row:
        return row[0]
    else:
        return 0
예제 #7
0
def register_user(nasional_number, fullname, address, password):
    salt = uuid.uuid4().hex
    hashed_password = hashlib.sha512((password + salt).encode()).hexdigest()

    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "insert into registering_users_view (nasional_number, fullname, address, pass, salt)"
        "values (%s,%s,%s,%s,%s)",
        (nasional_number, fullname, address, hashed_password, salt))
    con.commit()
    con.close()
예제 #8
0
def add_snapshot(user_id, user_config_id, size):
    if not (resources_crud.owns(user_id, user_config_id)):
        raise Exception('access denied')

    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "insert into \"snapshot\"(create_date, size, user_config_id)"
        "values (%s, %s, %s)",
        (psycopg2.TimestampFromTicks(time.time()), size, user_config_id))

    con.commit()
    con.close()
def add_user_resource(user_id, ordered):
    con = db.get_connection_func()
    cur = con.cursor()
    if ordered.ssh_id == 'None':
        ordered.ssh_id = None
    cur.execute(
        "insert into user_config (os, ram, cores, disk, cpu_freq, bound_rate,"
        " ssh_id, owner_id, offered_config_id)"
        "values (%s, %s, %s, %s, %s, %s,%s, %s, %s)",
        (ordered.os, ordered.ram, ordered.cores, ordered.disk,
         ordered.cpu_freq, ordered.bound_rate, ordered.ssh_id, user_id,
         ordered.offered_config_id))

    con.commit()
    con.close()
def update_offered_resource(user_id, offered_id, new_offered):
    if not (user_crud.is_admin(user_id)):
        raise Exception('access denied')

    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "update offered_config set os = %s ,  ram = %s ,  cores = %s , "
        " disk = %s ,  cpu_freq = %s ,  bound_rate = %s "
        "where id = %s ",
        (new_offered.os, new_offered.ram, new_offered.cores, new_offered.disk,
         new_offered.cpu_freq, new_offered.bound_rate, offered_id))

    con.commit()
    con.close()
def add_offered_resource(user_id, offered_config):
    if not (user_crud.is_admin(user_id)):
        raise Exception('access denied')

    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "insert into offered_config(os, ram, cores, disk, cpu_freq, bound_rate)"
        "values (%s, %s, %s, %s, %s, %s)",
        (offered_config.os, offered_config.ram, offered_config.cores,
         offered_config.disk, offered_config.cpu_freq,
         offered_config.bound_rate))

    con.commit()
    con.close()
def get_user_resource_info(user_id, ordered_id):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "select id, os, ram, cores, disk, cpu_freq, bound_rate,"
        " ssh_id, owner_id, daily_cost, offered_config_id"
        " from user_config "
        " where owner_id = %s and id = %s ", (user_id, ordered_id))

    row = cur.fetchone()
    p1 = Ordered(row[0], row[1], row[2], row[3], row[4], row[5], row[6],
                 row[7], row[8], row[9], row[10])

    con.close()

    return p1
def get_offered_resources():
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute("select id, os, ram, cores, disk, cpu_freq, bound_rate"
                " from offered_config ")

    rows = cur.fetchall()

    offers = []
    for row in rows:
        p1 = Offered(row[0], row[1], row[2], row[3], row[4], row[5], row[6])
        offers.append(p1)

    con.close()

    return offers
예제 #14
0
def get_snapshots(user_config_id):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "select id, create_date, size, user_config_id from \"snapshot\" "
        "where user_config_id = %s ", (user_config_id, ))
    rows = cur.fetchall()

    snapshots = []
    for row in rows:
        p1 = Snapshot(row[0], row[1], row[2], row[3])
        snapshots.append(p1)

    con.close()

    return snapshots
def update_user_resource(user_id, ordered_id, new_ordered):
    con = db.get_connection_func()
    cur = con.cursor()
    if new_ordered.ssh_id == 'None':
        new_ordered.ssh_id = None
    cur.execute(
        "update user_config set os = %s ,  ram = %s ,  cores = %s , "
        " disk = %s ,  cpu_freq = %s ,  bound_rate = %s ,"
        "  ssh_id = %s ,  offered_config_id = %s"
        "where id = %s and owner_id = %s",
        (new_ordered.os, new_ordered.ram, new_ordered.cores, new_ordered.disk,
         new_ordered.cpu_freq, new_ordered.bound_rate, new_ordered.ssh_id,
         new_ordered.offered_config_id, ordered_id, user_id))

    con.commit()
    con.close()
예제 #16
0
def login_user(nasional_number, password):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "SELECT pass, salt from registering_users_view where nasional_number = %s",
        (nasional_number, ))
    row = cur.fetchone()
    con.close()
    if row:
        hashed = row[0]
        salt = row[1]
        password = hashlib.sha512((password + salt).encode()).hexdigest()
        if hashed == password:
            return True
        return False
    else:
        return False
예제 #17
0
def get_all_users(size, page):
    con = db.get_connection_func()

    cur = con.cursor()
    cur.execute(
        "select  id, nasional_number, fullname, address, register_date "
        "from \"user\" "
        "order by register_date desc "
        "limit %s offset %s", (size, size * (page - 1)))
    rows = cur.fetchall()

    users = []
    for row in rows:
        p1 = User(row[0], row[1], row[2], row[3], row[4])
        users.append(p1)
    con.close()

    return users
def get_all_ssh(ui, user_id):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute("select id, name, content from ssh"
                " where  owner_id = %s", (user_id, ))
    rows = cur.fetchall()

    sshs = []
    for row in rows:
        p1 = SSH(row[0], row[1], row[2])
        sshs.append(p1)

    con.close()
    # ui.textEdit_9.insertPlainText("  id   name                   content")
    ui.textEdit_9.setText("")
    ui.textEdit_9.insertPlainText("id     name")
    for ssh in sshs:
        ui.textEdit_9.insertPlainText("%s   %s" % (ssh.ssh_id, ssh.name))
    return sshs
def get_user_resources(user_id):
    con = db.get_connection_func()
    cur = con.cursor()
    cur.execute(
        "select id, os, ram, cores, disk, cpu_freq, bound_rate,"
        " ssh_id, owner_id, daily_cost, offered_config_id"
        " from user_config "
        " where owner_id = %s ", (user_id, ))

    rows = cur.fetchall()

    ordered = []
    for row in rows:
        p1 = Ordered(row[0], row[1], row[2], row[3], row[4], row[5], row[6],
                     row[7], row[8], row[9], row[10])
        ordered.append(p1)

    con.close()

    return ordered