PageRenderTime 33ms CodeModel.GetById 30ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/boto-2.5.2/bin/bundle_image

#
#! | 27 lines | 25 code | 2 blank | 0 comment | 0 complexity | 1f4c42b1bda1e7dd033351a7a297429c MD5 | raw file
 1#!/usr/bin/env python
 2from boto.manage.server import Server
 3if __name__ == "__main__":
 4    from optparse import OptionParser
 5    parser = OptionParser(version="%prog 1.0", usage="Usage: %prog [options] instance-id [instance-id-2]")
 6
 7    # Commands
 8    parser.add_option("-b", "--bucket", help="Destination Bucket", dest="bucket", default=None)
 9    parser.add_option("-p", "--prefix", help="AMI Prefix", dest="prefix", default=None)
10    parser.add_option("-k", "--key", help="Private Key File", dest="key_file", default=None)
11    parser.add_option("-c", "--cert", help="Public Certificate File", dest="cert_file", default=None)
12    parser.add_option("-s", "--size", help="AMI Size", dest="size", default=None)
13    parser.add_option("-i", "--ssh-key", help="SSH Keyfile", dest="ssh_key", default=None)
14    parser.add_option("-u", "--user-name", help="SSH Username", dest="uname", default="root")
15    parser.add_option("-n", "--name", help="Name of Image", dest="name")
16    (options, args) = parser.parse_args()
17
18    for instance_id in args:
19        try:
20            s = Server.find(instance_id=instance_id).next()
21            print "Found old server object"
22        except StopIteration:
23            print "New Server Object Created"
24            s = Server.create_from_instance_id(instance_id, options.name)
25        assert(s.hostname is not None)
26        b = s.get_bundler(uname=options.uname)
27        b.bundle(bucket=options.bucket,prefix=options.prefix,key_file=options.key_file,cert_file=options.cert_file,size=int(options.size),ssh_key=options.ssh_key)