From e2805e5a06a8167105771d5f84770152e21b2f36 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 --- library/ec2_vol | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/library/ec2_vol b/library/ec2_vol index 5e92cc86a38..9f1154d1246 100644 --- a/library/ec2_vol +++ b/library/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 a8de66facc907710b191776e729bf28ab5cf4524 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 --- library/ec2_vol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/ec2_vol b/library/ec2_vol index 9f1154d1246..58846a3dc91 100644 --- a/library/ec2_vol +++ b/library/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)