summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorRob Vermaas <rob.vermaas@gmail.com>2015-01-05 09:34:34 +0100
committerRob Vermaas <rob.vermaas@gmail.com>2015-01-05 09:35:48 +0100
commitbc09e53343857c9e52a480e0acd95f5995d77568 (patch)
treebcd0b7a0021303eaebccd13da6c29716d53fd437 /nixos
parent1a4164b71d6fe97664c1fa025275d9af111cfe5c (diff)
downloadnixlib-bc09e53343857c9e52a480e0acd95f5995d77568.tar
nixlib-bc09e53343857c9e52a480e0acd95f5995d77568.tar.gz
nixlib-bc09e53343857c9e52a480e0acd95f5995d77568.tar.bz2
nixlib-bc09e53343857c9e52a480e0acd95f5995d77568.tar.lz
nixlib-bc09e53343857c9e52a480e0acd95f5995d77568.tar.xz
nixlib-bc09e53343857c9e52a480e0acd95f5995d77568.tar.zst
nixlib-bc09e53343857c9e52a480e0acd95f5995d77568.zip
Minor fixes to EC2 image generation script. Set autoresponder, so no interaction is necessary. Write output in a format that can be easily included in ec2-amis.nix of nixops.
(cherry picked from commit 96904915d9e3e5f69b0c5bf58db1a0f0130a977a)
Diffstat (limited to 'nixos')
-rwxr-xr-xnixos/maintainers/scripts/ec2/create-ebs-amis.py31
1 files changed, 20 insertions, 11 deletions
diff --git a/nixos/maintainers/scripts/ec2/create-ebs-amis.py b/nixos/maintainers/scripts/ec2/create-ebs-amis.py
index 8c686139fef8..44af56c4091b 100755
--- a/nixos/maintainers/scripts/ec2/create-ebs-amis.py
+++ b/nixos/maintainers/scripts/ec2/create-ebs-amis.py
@@ -12,7 +12,7 @@ from nixops.statefile import StateFile, get_default_state_file
 
 parser = argparse.ArgumentParser(description='Create an EBS-backed NixOS AMI')
 parser.add_argument('--region', dest='region', required=True, help='EC2 region to create the image in')
-parser.add_argument('--channel', dest='channel', default="13.10", help='Channel to use')
+parser.add_argument('--channel', dest='channel', default="14.12", help='Channel to use')
 parser.add_argument('--keep', dest='keep', action='store_true', help='Keep NixOps machine after use')
 parser.add_argument('--hvm', dest='hvm', action='store_true', help='Create HVM image')
 parser.add_argument('--key', dest='key_name', action='store_true', help='Keypair used for HVM instance creation', default="rob")
@@ -54,7 +54,7 @@ try:
 except Exception:
     depl = db.create_deployment()
     depl.name = "ebs-creator"
-depl.auto_response = "y"
+depl.logger.set_autoresponse("y")
 depl.nix_exprs = [os.path.abspath("./ebs-creator.nix"), os.path.abspath("./ebs-creator-config.nix")]
 if not args.keep: depl.destroy_resources()
 depl.deploy(allow_reboot=True)
@@ -140,6 +140,7 @@ common_args = dict(
         )
 if not args.hvm:
     common_args['kernel_id']=aki.id
+
 ami_id = m._conn.register_image(**common_args)
 
 print >> sys.stderr, "registered AMI {0}".format(ami_id)
@@ -185,23 +186,31 @@ test_depl.deploy(create_only=True)
 test_depl.machines['machine'].run_command("nixos-version")
 
 # Log the AMI ID.
-f = open("{0}.{1}.ami-id".format(args.region, image_type), "w")
-f.write("{0}".format(ami_id))
-f.close()
+f = open("ec2-amis.nix".format(args.region, image_type), "w")
+f.write("{\n")
 
 for dest in [ 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', 'eu-central-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'sa-east-1']:
+    copy_image = None
     if args.region != dest:
-        print >> sys.stderr, "copying image from region {0} to {1}".format(args.region, dest)
-        conn = boto.ec2.connect_to_region(dest)
-        copy_image = conn.copy_image(args.region, ami_id, ami_name, description=None, client_token=None)
+        try:
+            print >> sys.stderr, "copying image from region {0} to {1}".format(args.region, dest)
+            conn = boto.ec2.connect_to_region(dest)
+            copy_image = conn.copy_image(args.region, ami_id, ami_name, description=None, client_token=None)
+        except :
+            print >> sys.stderr, "FAILED!"
 
         # Log the AMI ID.
-        f = open("{0}.{1}.ami-id".format(dest, image_type), "w")
-        f.write("{0}".format(copy_image.image_id))
-        f.close()
+        if copy_image != None:
+            f.write('  "{0}"."{1}".{2} = "{3}";\n'.format(args.channel,dest,"hvm" if args.hvm else "ebs",copy_image.image_id))
+    else:
+        f.write('  "{0}"."{1}".{2} = "{3}";\n'.format(args.channel,args.region,"hvm" if args.hvm else "ebs",ami_id))
 
 
+f.write("}\n")
+f.close()
+
 if not args.keep:
+    test_depl.logger.set_autoresponse("y")
     test_depl.destroy_resources()
     test_depl.delete()