diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-09-27 15:01:01 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-09-27 15:04:42 +0300 |
commit | ff8594b8cc916ba665961bd1e4e956810057f0ea (patch) | |
tree | 140e903f09d53ee87ab6e0f564d70ddf21402c69 /src/eclat.conf | |
parent | 0c8a7ab953a86426a13aa0eccaf2b2c46f8271c0 (diff) | |
download | eclat-ff8594b8cc916ba665961bd1e4e956810057f0ea.tar.gz eclat-ff8594b8cc916ba665961bd1e4e956810057f0ea.tar.bz2 |
Implement describe-instances and some bugfixes.
* configure.ac: Change bug-reporting email.
* grecs: Upgrade.
* lib/forlan.c (eval_comp0): Set root.
* lib/xmltree.c (eclat_partial_tree_end_handler): Set type
to grecs_node_block for empty blocks.
* src/Makefile.am: Add new files.
* src/eclat.c: Rewrite and simplify command name matcher.
Implement describe-instances.
* src/eclat.conf (DescribeInstances): New format.
* src/eclat.h (eclat_describe_instances): New proto.
Diffstat (limited to 'src/eclat.conf')
-rw-r--r-- | src/eclat.conf | 68 |
1 files changed, 66 insertions, 2 deletions
diff --git a/src/eclat.conf b/src/eclat.conf index 88cd959..ec371e3 100644 --- a/src/eclat.conf +++ b/src/eclat.conf @@ -50,8 +50,11 @@ if (.DescribeInstanceStatusResponse.instanceStatusSet) { var.instanceState.name); if (var.instanceState.name[running]) { print("\t",var.systemStatus.status); - for (detail in var.systemStatus.details.item.*) { - print("\t",detail.name,"=",detail.status); + for (detail in var.systemStatus.details.item) { + print("\tSys.",detail.name,"=",detail.status); + } + for (detail in var.instanceStatus.details.item) { + print("\tInst.",detail.name,"=",detail.status); } } print("\n"); @@ -97,5 +100,66 @@ else { } EOT; +format "DescribeInstances" <<\EOT +if (.DescribeInstancesResponse.reservationSet) { + for (var in .DescribeInstancesResponse.reservationSet.item) { + print("Reservation ID: ", var.reservationId, "\n"); + print("Owner ID: ", var.ownerId, "\n"); + if (var.groupSet) { + print("Groups:\n"); + for (grp in var.groupSet.item) + print("\t", grp.groupId,"\t", grp.groupName, "\n"); + } + if (var.instancesSet) { + // print("Instances:\n"); + for (inst in var.instancesSet.item) { + print("\nInstance: ", inst.instanceId, "\n"); + print("\tImage ID: ", inst.imageId, "\n"); + print("\tState: ", inst.instanceState.name, "\n"); + print("\tKernel ID: ", inst.kernelId, "\n"); + print("\tArchitecture: ", inst.architecture, "\n"); + print("\tPrivate DNS: ", inst.privateDnsName, "\n"); + print("\tPublic DNS: ", inst.dnsName, "\n"); + print("\tKey: ", inst.keyName, "\n"); + print("\tType: ", inst.instanceType, "\n"); + print("\tLaunch Time: ", inst.launchTime, "\n"); + print("\tAvailability Zone: ", inst.placement.availabilityZone, "\n"); + print("\tGroup Name: ", inst.placement.groupName, "\n"); + print("\tTenancy: ", inst.placement.tenancy, "\n"); + print("\tPrivate IP: ", inst.privateIpAddress, "\n"); + print("\tPublic IP: ", inst.ipAddress, "\n"); + if (inst.groupSet.item) { + print("\tGroups:\n"); + for (grp in inst.groupSet.item) + print("\t\t", inst.groupSet.item.groupId, " -- ", inst.groupSet.item.groupName, "\n"); + } + print("\tRoot Device Type: ", inst.rootDeviceType, "\n"); + print("\tRoot Device Name: ", inst.rootDeviceName, "\n"); + print("\tDevice mapping:\n"); + for (dev in inst.blockDeviceMapping.item) { + print("\t\t", dev.deviceName, " ", dev.ebs.volumeId, " ", + dev.ebs.status, " ", dev.ebs.attachTime, " ", + dev.ebs.deleteOnTermination, "\n"); + } + print("\tVirtualization: ", inst.virtualizationType, "\n"); + print("\tTag Set:\n"); + for (tag in inst.tagSet.item) { + print("\t\t", tag.key, "=", tag.value, "\n"); + } + print("\tHypervisor: ", inst.hypervisor, "\n"); + // FIXME: networkInterfaceSet + print("\tEBS Optimized: ", inst.ebsOptimized, "\n"); + print("End of instance\n\n"); + } + } + } +} else if (.Response.Errors) + error("Error: ",.Response.Errors.Error.Message,"\n"); +else { + error("Unrecognized response:\n"); + dump(.); +} +EOT; + |