Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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']:
Beispiel #4
0
#!/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)
Beispiel #5
0
#!/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)
Beispiel #6
0
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",
Beispiel #7
0
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',