File: //opt/alt/python37/lib/python3.7/site-packages/orphanedaccountscanner/generate_sot.py
#! /Users/ejordan/.pyenv/shims/python
import os
import sys
import json
import mysql.connector
query = ("SELECT customer_databases.name, username FROM servers "
"INNER JOIN accounts on accounts.server_id = servers.id "
"INNER JOIN customer_databases on customer_databases.account_id = accounts.id "
"WHERE servers.status != 'retired' "
"AND accounts.status = 'setup' "
"AND capacity > 0 "
"AND servers.short_host_name = %s "
"LIMIT 4000")
def main(server_name: str):
server_name = server_name.split('.')[0]
print(server_name)
def get_cnx(server: str = os.getenv("DIABLO_SERVER"),
user: str = os.getenv("DIABLO_USER"),
password: str = os.getenv("DIABLO_PASSWORD"),
database: str = os.getenv("DIABLO_DB"),
port: int = 3307):
return mysql.connector.connect(
user=user,
password=password,
host=server,
database=database,
port=port
)
cnx = get_cnx()
if not cnx:
raise Exception("DB Connection is not available")
cursor = cnx.cursor()
cursor.execute(query, (server_name,))
result = dict()
users, dbs = list(), list()
for db_name, username in cursor:
dbs.append(db_name)
if username not in users:
users.append(username)
result['users'] = users
result['databases'] = dbs
with open(f'.tmp/{server_name}.json', 'w') as f:
json.dump(result, f)
if __name__ == "__main__":
try:
server = sys.argv[1]
main(server)
except TypeError:
raise Exception("We need a script arguement of server name to run against")