From 13e5f642779d12b22ecc70519241a5f695394f3d Mon Sep 17 00:00:00 2001 From: lwade Date: Mon, 18 Mar 2013 12:00:52 +0000 Subject: [PATCH 1/2] add better OS detection for BDM --- ec2_vol | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ec2_vol b/ec2_vol index 5e92cc86a38..9f1154d1246 100644 --- a/ec2_vol +++ b/ec2_vol @@ -149,12 +149,16 @@ def main(): # In future this needs to be more dynamic but combining block device mapping best practices # (bounds for devices, as above) with instance.block_device_mapping data would be tricky. For me ;) - + + # Use password data attribute to tell whether the instance is Windows or Linux if device_name is None and instance: try: - if inst.root_device_type != 'ebs': + if inst.get_password_data == '': device_name = '/dev/sdf' attach = volume.attach(inst.id, device_name) + while volume.attachment_state() != 'attached': + time.sleep(3) + volume.update() else: device_name = '/dev/sdb' attach = volume.attach(inst.id, device_name) @@ -162,7 +166,7 @@ def main(): time.sleep(3) volume.update() except boto.exception.BotoServerError, e: - module.fail_json(msg = "%s: %s" % (e.error_code, e.error_message)) + module.fail_json(msg = "%s: %s" % (e.error_code, e.error_message)) print json.dumps({ "volume_id": volume.id, From 70acac5e978a9a0580f87bd1d2af0581d2958e60 Mon Sep 17 00:00:00 2001 From: lwade Date: Mon, 18 Mar 2013 17:02:39 +0000 Subject: [PATCH 2/2] adding windows-specific ebs recommendation --- ec2_vol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ec2_vol b/ec2_vol index 9f1154d1246..58846a3dc91 100644 --- a/ec2_vol +++ b/ec2_vol @@ -151,6 +151,7 @@ def main(): # (bounds for devices, as above) with instance.block_device_mapping data would be tricky. For me ;) # Use password data attribute to tell whether the instance is Windows or Linux + if device_name is None and instance: try: if inst.get_password_data == '': @@ -160,7 +161,7 @@ def main(): time.sleep(3) volume.update() else: - device_name = '/dev/sdb' + device_name = '/dev/xvdf' attach = volume.attach(inst.id, device_name) while volume.attachment_state() != 'attached': time.sleep(3)