D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
orphanedaccountscanner
/
Filename :
generate_sot.py
back
Copy
#! /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")