def create_user(username: str, password: str, email: str, is_superuser: bool = True): """ Method to create Airflow user :param username: (str) - Airflow User name :param password: (str) - Airflow Password :param email: (str) - Email of the user :param is_superuser: (str) - Is super user - True/False Note: Modified date: 10-04-2021 Author: TB """ user = PasswordUser(models.User()) user.username = username user.email = email user.password = password user.superuser = is_superuser session = settings.Session() session.add(user) session.commit() session.close()
def create_user(username, password, email): # This import depends on flask_bcrypt # You should get it via installation of: 'apache-airflow[google_auth]' # More info: http://airflow.apache.org/docs/stable/security.html from airflow.contrib.auth.backends.password_auth import PasswordUser from airflow import models from airflow.settings import Session # Create user for experimental api users session = Session() print("sql_alchemy_conn: %s" % str(session.bind)) try: user = ( session.query(PasswordUser) .filter(PasswordUser.username == username) .one_or_none() ) if not user: user = PasswordUser(models.User()) user.username = username user.password = password user.email = email session.add(user) session.commit() session.close() print("User %s created successfully." % username) except Exception as e: print("Could not create user. %s" % e)
def create_superuser(): """ Creates a superuser (admin level) for accessing the web UI for Airflow :return: None """ # get path to config file relative to this file current_dir = os.path.dirname(__file__) filepath = os.path.join(current_dir, 'config.ini') # read config.ini file config = ConfigParser() config.read(filepath) # create User object user = PasswordUser(models.User()) user.username = config['web_authentication']['username'] user.email = config['web_authentication']['email'] user.password = config['web_authentication']['password'] user.superuser = True # Add user to Airflow session session = settings.Session() session.add(user) session.commit() session.close()
def create_admin_user(admin_user): """ Create a user in Airflow metadata database to allow login with password_auth backend. :param admin_user: User properties as dictionary. :return: Job done. """ print('Creating admin user...') user = PasswordUser(models.User()) user.username = admin_user['username'] user.password = admin_user['password'] user.email = admin_user['email'] session = settings.Session() try: existing = session.query( models.User).filter_by(username=user.username).first() if not existing: session.add(user) session.commit() print('\tCREATED: Admin user %s' % user.username) else: print('\tSKIPPED: Admin user %s already exists' % user.username) finally: session.close()
def add_user(username: Optional[str] = None, email: Optional[str] = None, password: Optional[str] = None) -> None: """ Create the admin user. If user already exists, the process will ignore the error. :param username: airflow admin ui's username :param email: email of admin :param password: admin's password """ user = PasswordUser(models.User()) user.username = username if username else os.environ[ AIRFLOW_WEBSERVER_USER_ENV_VAR] user.email = email if email else os.environ[AIRFLOW_WEBSERVER_EMAIL_ENV_VAR] user.password = password if password else os.environ[ AIRFLOW_WEBSERVER_PASSWORD_ENV_VAR] session = settings.Session() try: session.add(user) session.commit() except IntegrityError as error_object: print(error_object) finally: session.close()
def create_account(name, password): user = PasswordUser(models.User()) user.username = name user.password = password session = settings.Session() session.add(user) session.commit() session.close()
def userSetUp(apiUser, apiPassword): session = Session() user = models.User() password_user = PasswordUser(user) password_user.username = apiUser password_user.password = apiPassword session.add(password_user) session.commit() session.close()
def add_user(username, email, password): user = PasswordUser(models.User()) user.username = username user.email = email user.password = password session = settings.Session() session.add(user) session.commit() session.close()
def create_user(): user = PasswordUser(models.User()) user.username = '******' user.email = '*****@*****.**' user.password = '******' session = settings.Session() session.add(user) session.commit() session.close()
def make_user(username, email): user = PasswordUser(models.User()) user.username = username user.email = email user.superuser = True user.password = click.prompt("Password") session = settings.Session() session.add(user) session.commit() session.close()
def generate_admin_user(password): """ Creates the new Airflow admin user. """ user = PasswordUser(models.User()) user.username = '******' user.email = get_email_address() user.password = password user.superuser = True return user
def main(): print(">>>> create airflow user...") user = PasswordUser(models.User()) user.username = '******' user.email = '*****@*****.**' user.password = '******' session = settings.Session() session.add(user) session.commit() session.close() print(">>>> create airflow user OK : user_id : user, password : 123")
def setUp(self): self.app = application.create_app(testing=True) session = Session() user = models.User() password_user = PasswordUser(user) password_user.username = '******' password_user.password = '******' session.add(password_user) session.commit() session.close()
def create_user(username, password, email): """This programm creates users for airflow.""" user = PasswordUser(models.User()) user.username = username user.email = email user.password = password session = settings.Session() session.add(user) session.commit() session.close() click.echo(f'Account {username} created successfully!')
def set_user(username, password): print('Creating user {0}...'.format(username)) user = PasswordUser(models.User()) user.username = username user.password = password session = settings.Session() session.add(user) session.commit() session.close() print('Done.') exit()
def create(self): """ create user """ user = PasswordUser(models.User()) user.username = self.params.get('name') user.email = self.params.get('email') user.password = self.params.get('password') session = settings.Session() session.add(user) session.commit() session.close()
def add_default_user(session=None): from airflow import models from airflow.contrib.auth.backends.password_auth import PasswordUser user = PasswordUser(models.User()) user.username = '******' user.email = '*****@*****.**' user.password = '******' user.superuser = True session.add(user) session.commit()
def create_user(opts): from airflow.contrib.auth.backends.password_auth import PasswordUser from airflow import models, settings u = PasswordUser(models.User()) u.username = opts['username'] u.email = opts['email'] u._set_password = opts['password'] s = settings.Session() s.add(u) s.commit() s.close()
def createuser(): userdata = json.loads(request.data) username = userdata.get('user') or '' email = userdata.get('email') or '' password = userdata.get('password') or username + '123' superuser = userdata.get('superuser') or False if not superuser: superuser = 0 else: superuser = 1 data = {} try: if not username: data['status'] = '200' data[ 'message'] = "Username has missed, unable to create user in Airflow server" return jsonify(data) session = settings.Session() user = session.query( models.User).filter(models.User.username == username).first() if user: user.superuser = superuser session.commit() data['status'] = '200' data['message'] = 'SuperUser status is updated successfully!' else: user = PasswordUser(models.User()) user.username = username user.email = email user.password = password user.superuser = superuser session.add(user) session.commit() data['status'] = '200' data['message'] = "User Created successfully!" except Exception as e: data['status'] = '400' data['message'] = e.message return jsonify(data)
def setUp(self): configuration.conf.set("webserver", "authenticate", "True") configuration.conf.set("webserver", "auth_backend", "airflow.contrib.auth.backends.password_auth") app = application.create_app() app.config['TESTING'] = True self.app = app.test_client() from airflow.contrib.auth.backends.password_auth import PasswordUser session = Session() user = models.User() password_user = PasswordUser(user) password_user.username = '******' password_user.password = '******' print(password_user._password) session.add(password_user) session.commit() session.close()
def add_user(c): from airflow import models, settings from airflow.contrib.auth.backends.password_auth import PasswordUser import sqlalchemy user = PasswordUser(models.User()) user.username = c.config.auth.username user.email = c.config.auth.email user.password = c.config.auth.password session = settings.Session() session.add(user) try: session.commit() except sqlalchemy.exc.IntegrityError as e: logging.exception(e) finally: session.close()
def setUp(self): configuration.load_test_config() try: configuration.conf.add_section("api") except DuplicateSectionError: pass configuration.conf.set("api", "auth_backend", "airflow.contrib.auth.backends.password_auth") self.app = application.create_app(testing=True) session = Session() user = models.User() password_user = PasswordUser(user) password_user.username = '******' password_user.password = '******' session.add(password_user) session.commit() session.close()
def add_user(username=os.environ['AIRFLOW_WEB_USER'], email=os.environ['AIRFLOW_WEB_EMAIL'], password=os.environ['AIRFLOW_WEB_PASSWORD']): """Create the admin user :param username: airflow admin ui's username :param email: email of admin :param password: admin's password :return: None """ user = PasswordUser(models.User()) user.username = username user.email = email user.password = password session = settings.Session() try: session.add(user) session.commit() except IntegrityError as error_object: print(error_object) finally: session.close()
def createuser(): username = request.args.get('user') email = request.args.get('email', '') superuser = request.args.get('superuser', False) if superuser == 'False': superuser = 0 else: superuser = 1 try: user = PasswordUser(models.User()) user.username = username user.email = email user.password = username + '123' user.superuser = superuser session = settings.Session() session.add(user) session.commit() return jsonify("User Created") except: return jsonify("Raised Exception")
import airflow from airflow import models, settings from airflow.contrib.auth.backends.password_auth import PasswordUser from flask_bcrypt import generate_password_hash user = PasswordUser(models.User()) user.username = '******' user.email = '*****@*****.**' user._password = generate_password_hash("password_here", 12).decode('utf-8') session = settings.Session() session.add(user) session.commit() session.close() exit()
def create_airflow_rest_connection(): from airflow.contrib.auth.backends.password_auth import PasswordUser import base64 import os session = settings.Session() exists = session.query(models.User).filter(models.User.username == 'application').scalar() if exists is None: LoggingMixin().log.info("creating 'application' user for mini-BRS...") # create 'application' user random_key = str(base64.urlsafe_b64encode(os.urandom(32))) user = PasswordUser(models.User()) user.username = '******' user.email = '*****@*****.**' user.password = random_key session.add(user) session.commit() session.close() # create 'application' airflow connection rest = Connection( conn_id='rest', login='******', password=random_key ) session = settings.Session() session.add(rest) session.commit() session.close() # create 'admin' user # admin_password = str(base64.urlsafe_b64encode(os.urandom(32))) config_parser = configuration.AirflowConfigParser() config_parser.read( configuration.get_airflow_config( configuration.get_airflow_home() ) ) u = config_parser.get( section='core', key='username' ) p = config_parser.get( section='core', key='password' ) user = PasswordUser(models.User()) user.username = u user.email = '*****@*****.**' user.password = p user.superuser = True session = settings.Session() session.add(user) session.commit() session.close() config_parser.remove_option( section='core', option='username' ) config_parser.remove_option( section='core', option='password' ) file = open(configuration.get_airflow_config(configuration.get_airflow_home()), 'w') config_parser.write(file) file.close()