diff --git a/ec2ui/content/ec2ui/dialog_instance_type.xul b/ec2ui/content/ec2ui/dialog_instance_type.xul index 7a65925..2fd7b89 100644 --- a/ec2ui/content/ec2ui/dialog_instance_type.xul +++ b/ec2ui/content/ec2ui/dialog_instance_type.xul @@ -46,22 +46,35 @@ + + + diff --git a/ec2ui/content/ec2ui/instancesview.js b/ec2ui/content/ec2ui/instancesview.js index 54d6a8e..ff0bd67 100644 --- a/ec2ui/content/ec2ui/instancesview.js +++ b/ec2ui/content/ec2ui/instancesview.js @@ -1092,22 +1092,40 @@ var ec2ui_InstancesTreeView = { var instanceLabel = instanceLabels[0] var returnValue = {accepted:false , result:null}; - ec2ui_session.controller.describeInstanceAttribute(instanceId, "instanceType", function(value) { - openDialog('chrome://ec2ui/content/dialog_instance_type.xul', - null, - 'chrome,centerscreen,modal', - instanceLabel, - value, - returnValue); + ec2ui_session.controller.describeInstanceAttribute(instanceId, "instanceType", function(instanceType) { + ec2ui_session.controller.describeInstanceAttribute(instanceId, "ebsOptimized", function(ebsOptimized) { + ebsOptimized = (ebsOptimized == 'true') + + openDialog('chrome://ec2ui/content/dialog_instance_type.xul', + null, + 'chrome,centerscreen,modal', + instanceLabel, + instanceType, + ebsOptimized, + returnValue); + + if (returnValue.result == null) { + return; + } - if (returnValue.result == null) { - return; - } + if(returnValue.result.instanceType != instanceType) { + var attribute = ['InstanceType', returnValue.result.instanceType]; + ec2ui_session.controller.modifyInstanceAttribute(instanceId, attribute, function() { + if(returnValue.result.ebsOptimized == ebsOptimized) { + refreshed = true; + ec2ui_InstancesTreeView.refresh(); + ec2ui_InstancesTreeView.selectByInstanceIds(); + } + }); + } - var attribute = ['InstanceType', returnValue.result]; - ec2ui_session.controller.modifyInstanceAttribute(instanceId, attribute, function() { - ec2ui_InstancesTreeView.refresh(); - ec2ui_InstancesTreeView.selectByInstanceIds(); + if(returnValue.result.ebsOptimized != ebsOptimized) { + var attribute = ['EbsOptimized', returnValue.result.ebsOptimized]; + ec2ui_session.controller.modifyInstanceAttribute(instanceId, attribute, function() { + ec2ui_InstancesTreeView.refresh(); + ec2ui_InstancesTreeView.selectByInstanceIds(); + }); + } }); }); },