HEX
Server: Apache
System: Linux sxb1plzcpnl440011.prod.sxb1.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: xfp2mtarcm67 (7705020)
PHP: 7.3.33
Disabled: NONE
Upload Files
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")