1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#!/usr/bin/env python
import sys
import logging
import os
import optparse
from ConfigParser import ConfigParser
from aws_controller import AwsController, InstanceRunFailedError
from remote_executor import RemoteExecutor, RemoteCommandFailedError
import linaro_ami
DEFAULT_AMI_TYPE = "build-slave"
if __name__ == "__main__":
logging.basicConfig()
logging.getLogger("linaro-ami").setLevel(logging.DEBUG)
optparser = optparse.OptionParser("%prog (create|delete|list) <options>")
optparser.add_option(
"--config", default="linaro-ami.conf", help="Config file (%default)")
optparser.add_option(
"--type", default=DEFAULT_AMI_TYPE,
help="List images of type (%default, use empty for any) [list]")
optparser.add_option(
"--descr",
help="Extra AMI description [create]")
optparser.add_option(
"-K", "--private-key", metavar="FILE",
help="Private key file (env:EC2_PRIVATE_KEY)")
optparser.add_option(
"-k", "--key", metavar="KEY",
help="Name of EC2-registered key provided by --private-key")
options, args = optparser.parse_args(sys.argv[1:])
if len(args) < 1:
optparser.error("Wrong number of arguments")
if not options.private_key:
options.private_key = os.environ.get("EC2_PRIVATE_KEY")
configuration = ConfigParser()
configuration.read(options.config)
aws_controller = AwsController()
remote_executor = RemoteExecutor()
controller = linaro_ami.LinaroAMI(configuration, aws_controller,
remote_executor,
"ubuntu", options.private_key,
options)
if args[0] == "create":
if len(args) != 2:
optparser.error("Usage: %s create <AMI template name from config>"
% sys.argv[0])
if not controller.has_ami(args[1]):
optparser.error("AMI template '%s' not found" % args[1])
ami_id = controller.command_create(args[1])
print "Created AMI: %s" % ami_id
elif args[0] == "delete":
# TODO
controller.command_delete()
elif args[0] == "list":
controller.command_list()
else:
optparser.error("Unknown command: " + args[0])
|