2
0
mirror of https://github.com/VinylDNS/vinyldns synced 2025-08-22 02:02:14 +00:00
vinyldns/utils/admin/update-support-user.py
Emerle, Ryan e1743e5342
Updates
- Simplify build config
- Add TTY check to Makefiles for running Docker containers
- Update `fs2` to latest patch
- Update `sbt-assembly` plugin
- Update portal to remove chatty console
- Update portal scripts to add license header
- Update prepare-portal/Gruntfile to combine js and css where applicable
- Remove unused gentelella files from final portal artifact
- Add support for shared zones to quickstart/docker images
- Consolidate built artifacts in `artifacts/` to make eventual release easier
2021-11-02 17:06:24 -04:00

57 lines
1.8 KiB
Python

#!/usr/bin/env python
import mysql.connector
import VinylDNSProto_pb2
import sys
import os
# arguments
if len(sys.argv) != 3:
print("USAGE: update-support-user.py <username> <True|False>")
exit(1)
user_name = sys.argv[1]
make_support = sys.argv[2][0].upper() == 'T'
# environment variables to connect to database
db_user = os.environ.get('DB_USER')
db_pass = os.environ.get('DB_PASS')
db_host = os.environ.get('DB_HOST')
db_name = os.environ.get('DB_NAME')
db_port = os.environ.get('DB_PORT')
cnx = mysql.connector.connect(user=db_user, password=db_pass, host=db_host, database=db_name, port=db_port)
query = "SELECT data FROM user where user_name = %(user_name)s"
update = "UPDATE user SET data = %(pb)s WHERE user_name = %(user_name)s"
cursor = cnx.cursor(dictionary=True)
try:
cursor.execute(query, { 'user_name': user_name })
user = VinylDNSProto_pb2.User()
for row in cursor:
user_raw = row['data']
user = VinylDNSProto_pb2.User()
if isinstance(user_raw, str):
print("Type of user data is string {}".format(user_raw))
user.ParseFromString(base64.encodebytes(user_raw.encode()))
else:
print("Type of user data is bytes")
user.ParseFromString(user_raw)
print("FOUND USER NAME {}, IS SUPPORT = {}".format(user.userName, user.isSupport))
if user.userName is None or len(user.userName) == 0:
sys.exit("User {0} not found; cannot continue.".format(user_name))
if make_support is not None:
print("Updating {}, Support = {}".format(user_name, make_support))
user.isSupport = make_support
cursor.execute(update, { 'pb': user.SerializeToString(), 'user_name': user_name })
cnx.commit()
else:
print("Skipping making support as no make support value provided")
finally:
cursor.close()
cnx.close()