Blob Blame History Raw
--- euca2ools-1.3.1/bin/euca-describe-instances.space	2010-09-04 08:01:51.000000000 -0500
+++ euca2ools-1.3.1/bin/euca-describe-instances	2010-11-18 14:32:09.693527928 -0600
@@ -37,7 +37,7 @@ import getopt
 import sys
 import os
 from euca2ools import Euca2ool, InstanceValidationError, Util, \
-    ConnectionFailed
+    ConnectionFailed, print_instances
 
 usage_string = \
     """
@@ -85,35 +85,7 @@ def display_reservations(reservations, i
             reservation_string += '%s%s' % (group_delim, group.id)
             group_delim = ', '
         print 'RESERVATION\t%s' % reservation_string
-        for instance in instances:
-            if instance:
-                instance_string = '%s\t%s\t%s\t%s\t%s' % (instance.id,
-                        instance.image_id, instance.public_dns_name,
-                        instance.private_dns_name, instance.state)
-                if instance.key_name:
-                    instance_string += ' \t%s' % instance.key_name
-                if instance.ami_launch_index:
-                    instance_string += ' \t%s' \
-                        % instance.ami_launch_index
-                if instance.product_codes:
-                    first = True
-                    for p in instance.product_codes:
-                        if first:
-                            instance_string += ' \t%s' % p
-                            first = False
-                        else:
-                            instance_string += ',%s' % p
-                if instance.instance_type:
-                    instance_string += ' \t%s' % instance.instance_type
-                if instance.launch_time:
-                    instance_string += ' \t%s' % instance.launch_time
-                if instance.placement:
-                    instance_string += ' \t%s' % instance.placement
-                if instance.kernel:
-                    instance_string += ' \t%s' % instance.kernel
-                if instance.ramdisk:
-                    instance_string += ' \t%s' % instance.ramdisk
-                print 'INSTANCE\t%s' % instance_string
+        print_instances(instances)
 
 
 def main():
--- euca2ools-1.3.1/bin/euca-run-instances.space	2010-09-04 08:01:51.000000000 -0500
+++ euca2ools-1.3.1/bin/euca-run-instances	2010-11-18 14:35:22.495492578 -0600
@@ -36,7 +36,7 @@
 import getopt
 import sys
 import os
-from euca2ools import Euca2ool, Util, ConnectionFailed
+from euca2ools import Euca2ool, Util, ConnectionFailed, print_instances
 
 usage_string = \
     """
@@ -101,19 +101,7 @@ def display_reservations(reservation):
         reservation_string += '%s%s' % (group_delim, group.id)
         group_delim = ', '
     print 'RESERVATION\t%s' % reservation_string
-    for instance in reservation.instances:
-        instance_string = '%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s' % (
-            instance.id,
-            instance.image_id,
-            instance.public_dns_name,
-            instance.private_dns_name,
-            instance.state,
-            instance.key_name,
-            instance.launch_time,
-            instance.kernel,
-            instance.ramdisk,
-            )
-        print 'INSTANCE\t%s' % instance_string
+    print_instances(reservation.instances)
 
 
 def read_user_data(user_data_filename):
--- euca2ools-1.3.1/euca2ools/euca2ools/__init__.py.space	2010-11-18 14:22:17.869135285 -0600
+++ euca2ools-1.3.1/euca2ools/euca2ools/__init__.py	2010-11-18 14:38:24.345118937 -0600
@@ -1459,3 +1459,23 @@ def parse_config(config, dict, keylist):
             dict[keylist[i]] = values[i]
 
 
+def print_instances(instances, nil=""):
+    members=( "id", "image_id", "public_dns_name", "private_dns_name",
+        "state", "key_name", "ami_launch_index", "product_codes",
+        "instance_type", "launch_time", "placement", "kernel",
+        "ramdisk" )
+
+    for instance in instances:
+        # in old describe-instances, there was a check for 'if instance:'
+        # I (smoser) have carried this over, but dont know how instance
+        # could be false
+        if not instance: continue
+        items=[ ]
+        for member in members:
+            val = getattr(instance,member,nil)
+            # product_codes is a list
+            if val is None: val = nil
+            if hasattr(val,'__iter__'):
+                val = ','.join(val)
+            items.append(val)
+        print "INSTANCE\t%s" % '\t'.join(items)