def make_user(user_name): audit_log("Creating user %s" % (user_name)) iam_root = get_root_IAM_connection() iam_delete_user(iam_root, user_name) iam_root.create_user(user_name) iam_root.add_user_to_group("students", user_name) iam_root.put_user_policy( user_name, "%s-user" % (user_name), simplejson.dumps(simplejson.loads(get_user_policy(user_name)))) password = random_password() iam_root.create_login_profile(user_name, password) now = datetime.datetime.utcnow().isoformat() dbh.execute("BEGIN EXCLUSIVE") dbh.execute( """ INSERT OR REPLACE INTO users (user_name, create_time, create_account, login_password) VALUES (?, ?, ?, ?) """, [user_name, now, real_username(), password]) dbh.execute("COMMIT;") user = User(user_name) return user
def make_user(user_name): audit_log("Creating user %s" % (user_name)) iam_root = get_root_IAM_connection() iam_delete_user(iam_root, user_name) iam_root.create_user(user_name) iam_root.add_user_to_group("students", user_name) iam_root.put_user_policy( user_name, "%s-user" % (user_name), simplejson.dumps(simplejson.loads(get_user_policy(user_name))) ) password = random_password() iam_root.create_login_profile(user_name, password) now = datetime.datetime.utcnow().isoformat() dbh.execute("BEGIN EXCLUSIVE") dbh.execute(""" INSERT OR REPLACE INTO users (user_name, create_time, create_account, login_password) VALUES (?, ?, ?, ?) """, [user_name, now, real_username(), password]) dbh.execute("COMMIT;") user = User(user_name) return user
parser = OptionParser() parser.add_option('--init', action='store_true', default=False) parser.add_option('--create-ssh-key', action='store_true', default=False) parser.add_option('--delete-ssh-key', action='store_true', default=False) parser.add_option('--key-name', default=None) parser.add_option('--rotate-secret', action='store_true', default=False) parser.add_option('--list', action='store_true', default=False) parser.add_option('--dump-ssh-key', action='store_true', default=False) parser.add_option('--delete-account', action='store_true', default=False) parser.add_option('--show-password', action='store_true', default=False) parser.add_option('--set-password', action='store_true', default=False) (options, args) = parser.parse_args(sys.argv[1:]) opt = vars(options) REAL_USERNAME = audit.real_username() if not REAL_USERNAME.startswith("cs61c"): raise Error("Only for CS61C accounts") need_config_setup = False need_initial_keys = False user = None if opt['delete_account']: print "Deleting EC2 account..." subaccounts.delete_user(REAL_USERNAME) if !opt['init']: sys.exit(0) if opt['init']:
#!/usr/bin/python import record_usage import audit from sys import argv username = audit.real_username() if ((audit.real_username() == 'cs61c' or audit.real_username().startswith('cs61c-t') or audit.real_username() == 'charles') and len(argv) > 1): username = argv[1] if username != 'ALL': (desc, total) = record_usage.user_report(username) print "Usage report for %s:\n%s" % (username, desc) print "estimated total spending = $%6.3f" % (total) else: overall_total = 0.0 for user in record_usage.users(): (desc, total) = record_usage.user_report(user, include_live=False) print "%-20s $%6.3f" % (user, total) overall_total += total print "(sum = $%6.3f)" % (overall_total)
def running_time(start_time): now = datetime.datetime.utcnow() return str(now - iso8601.parse_date(start_time)) INSTANCE_FORMAT = "%(id)-13s %(type)-8s %(time)15s %(host)40s %(group)20s" SPOT_FROMAT = "%(id)-13s %(type)-8s %(time)15s" parser = OptionParser() parser.add_option("--terminate-all", action="store_true", default=False) parser.add_option("--cancel-spot-requests", action="store_true", default=False) (options, args) = parser.parse_args(sys.argv[1:]) opt = vars(options) user = subaccounts.User(audit.real_username()) instances = user.running_instances() spot_requests = user.running_spot_requests() have_any = instances or spot_requests print "Username: %s" % (audit.real_username()) if len(instances): print "Running EC2 Instances:" print INSTANCE_FORMAT % { "id": "INSTANCE-ID", "type": "INSTANCE-TYPE", "time": "RUNNING FOR", "host": "PUBLIC HOSTNAME", "ip": "INTERNAL IP",
import sys def running_time(start_time): now = datetime.datetime.utcnow() return str(now - iso8601.parse_date(start_time)) INSTANCE_FORMAT = "%(id)-13s %(type)-8s %(time)15s %(host)40s %(group)20s" SPOT_FROMAT = "%(id)-13s %(type)-8s %(time)15s" parser = OptionParser() parser.add_option('--terminate-all', action='store_true', default=False) parser.add_option('--cancel-spot-requests', action='store_true', default=False) (options, args) = parser.parse_args(sys.argv[1:]) opt = vars(options) user = subaccounts.User(audit.real_username()) instances = user.running_instances() spot_requests = user.running_spot_requests() have_any = instances or spot_requests print "Username: %s" % (audit.real_username()) if len(instances): print "Running EC2 Instances:" print INSTANCE_FORMAT % { 'id': "INSTANCE-ID", 'type': 'INSTANCE-TYPE', 'time': 'RUNNING FOR', 'host': 'PUBLIC HOSTNAME', 'ip': 'INTERNAL IP',