2020-02-10 08:00:54 +00:00
import os , frappe , json
from frappe . commands . site import _new_site
2020-03-20 15:26:23 +00:00
from check_connection import get_config , get_site_config
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
def main ( ) :
site_name = os . environ . get ( " SITE_NAME " , ' site1.localhost ' )
mariadb_root_username = os . environ . get ( " DB_ROOT_USER " , ' root ' )
mariadb_root_password = os . environ . get ( " MYSQL_ROOT_PASSWORD " , ' admin ' )
force = True if os . environ . get ( " FORCE " , None ) else False
install_apps = os . environ . get ( " INSTALL_APPS " , None )
install_apps = install_apps . split ( ' , ' ) if install_apps else [ ]
frappe . init ( site_name , new_site = True )
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
_new_site (
None ,
site_name ,
mariadb_root_username = mariadb_root_username ,
mariadb_root_password = mariadb_root_password ,
admin_password = os . environ . get ( " ADMIN_PASSWORD " , ' admin ' ) ,
verbose = True ,
install_apps = install_apps ,
source_sql = None ,
force = force ,
reinstall = False ,
)
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
config = get_config ( )
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
site_config = get_site_config ( site_name )
2020-02-10 08:00:54 +00:00
2020-03-27 10:37:12 +00:00
mysql_command = ' mysql -h {db_host} -u {mariadb_root_username} -p {mariadb_root_password} -e ' . format (
2020-03-20 15:26:23 +00:00
db_host = config . get ( ' db_host ' ) ,
mariadb_root_username = mariadb_root_username ,
mariadb_root_password = mariadb_root_password
)
2020-03-27 10:37:12 +00:00
# update User's host to '%' required to connect from any container
command = mysql_command + " \" UPDATE mysql.user SET Host = ' % ' where User = ' {db_name} ' ; FLUSH PRIVILEGES; \" " . format (
2020-03-20 15:26:23 +00:00
db_name = site_config . get ( ' db_name ' )
)
os . system ( command )
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
# Set db password
2020-03-27 10:37:12 +00:00
command = mysql_command + " \" UPDATE mysql.user SET authentication_string = PASSWORD( ' {db_password} ' ) WHERE User = \' {db_name} \' AND Host = \' % \' ; \" " . format (
2020-03-20 15:26:23 +00:00
db_name = site_config . get ( ' db_name ' ) ,
db_password = site_config . get ( ' db_password ' )
)
os . system ( command )
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
# Grant permission to database
2020-03-27 10:37:12 +00:00
command = mysql_command + " \" GRANT ALL PRIVILEGES ON \ ` {db_name} \ `.* TO ' {db_name} ' @ ' % ' ; FLUSH PRIVILEGES; \" " . format (
2020-03-20 15:26:23 +00:00
db_name = site_config . get ( ' db_name ' )
)
os . system ( command )
exit ( 0 )
2020-02-10 08:00:54 +00:00
2020-03-20 15:26:23 +00:00
if __name__ == " __main__ " :
main ( )