#!/usr/bin/python

import mariadb
from pbkdf2 import crypt
import argparse
import os


parser = argparse.ArgumentParser(description='asadduser')
parser.add_argument('--user', '-u',
                    help='Login', 
                    required=True)
parser.add_argument('--password', '-p',
                    help='Password', 
                    required=True)
parser.add_argument('--application', '-a',
                    help='Application', 
                    required=True)

args = parser.parse_args()
user = args.user
password = args.password
application = args.application


DB_USER = os.environ["DB_USER"]
DB_PASS = os.environ["DB_PASS"]
DB_HOST = os.environ["DB_HOST"]
DB_NAME = os.environ["DB_NAME"]

pwhash = crypt(password, iterations=100000)

conn = None
cur = None
try:
    conn = mariadb.connect(user = DB_USER, password = DB_PASS,
                            host = DB_HOST, database = DB_NAME)
    conn.autocommit = False

    cur = conn.cursor()
    cur.execute("""
INSERT INTO users (login, pwhash)
  VALUES(?, ?)
""", [user, pwhash])
    cur.execute("""
INSERT INTO  user_applications_mapping (application, user)
  VALUES(
      (SELECT id FROM applications WHERE name = ?),
      (SELECT id FROM users WHERE login = ?)
  )
""", [application, user])
    conn.commit()
finally:
    if cur:
        cur.close()
    if conn:
        conn.rollback()
        conn.close()