aboutsummaryrefslogtreecommitdiff
path: root/etc
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2012-10-04 01:22:27 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2012-10-04 01:22:27 +0300
commit11db69e6d2b292df96845515f7df0e850b60c125 (patch)
tree9c4bb3a47ead03b6093ceed3e0142fc259a91de0 /etc
parent256d8b3572532af87ea5b28379cee709ad44cea6 (diff)
downloadeclat-11db69e6d2b292df96845515f7df0e850b60c125.tar.gz
eclat-11db69e6d2b292df96845515f7df0e850b60c125.tar.bz2
Implement eq/ne comparisons in forlan; Implement describe-security-groups command.
* etc/Makefile.am: Add new file. * etc/describe-security-groups.fln: New file. * lib/forlan.c: Implement equality and inequality comparisons. * lib/forlan.h (forlan_opcode_eq) (forlan_opcode_ne): New opcodes. (FORLAN_NTYPES): New constants. * lib/forlangrm.y: Add equality and inequality productions. * lib/forlanlex.l: New tokens: == and != * src/dscrsecgrps-cl.opt: New file. * src/dscrsecgrps.c: New file. * src/Makefile.am: Add new files. * src/eclat.c: Implement describe-security-groups * src/eclat.h (eclat_describe_security_groups): New proto. * src/cretags.c: Fix memory leaks. * src/deltags.c: Likewise. * src/dscrtags.c: Likewise. * tests/describe-security-groups.at: New test case. * tests/testsuite.at: Include new test case. * tests/Makefile.am: Add new test case.
Diffstat (limited to 'etc')
-rw-r--r--etc/Makefile.am1
-rw-r--r--etc/describe-security-groups.fln59
2 files changed, 60 insertions, 0 deletions
diff --git a/etc/Makefile.am b/etc/Makefile.am
index 514993c..3ccb0f4 100644
--- a/etc/Makefile.am
+++ b/etc/Makefile.am
@@ -24,6 +24,7 @@ FLNFILES=\
describe-instance-attribute.fln\
describe-instance-status.fln\
describe-instances.fln\
+ describe-security-groups.fln\
describe-tags.fln\
describe-volumes.fln\
disassociate-address.fln\
diff --git a/etc/describe-security-groups.fln b/etc/describe-security-groups.fln
new file mode 100644
index 0000000..55e2921
--- /dev/null
+++ b/etc/describe-security-groups.fln
@@ -0,0 +1,59 @@
+/* This file is part of Eclat.
+ Copyright (C) 2012 Sergey Poznyakoff.
+
+ Eclat is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
+
+ Eclat is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Eclat. If not, see <http://www.gnu.org/licenses/>. */
+
+if (.DescribeSecurityGroupsResponse.securityGroupInfo) {
+ for (grp in .DescribeSecurityGroupsResponse.securityGroupInfo.item) {
+ print("Group ", grp.groupId,"\t", grp.groupName, "\t",
+ grp.groupDescription, "\n");
+ print("VPC ID: ", grp.vpcId, "\n");
+ for (var in grp.tagSet.item) {
+ print("TAG ", var.key, "\t", var.value, "\n");
+ }
+ print("Incoming:\n");
+ for (var in grp.ipPermissions.item) {
+ for (range in var.ipRanges.item) {
+ print(var.ipProtocol,"\t",range.cidrIp,"\t",var.fromPort);
+ if (var.fromPort != var.toPort)
+ print("-",var.toPort);
+ print("\n");
+ }
+ for (usr in var.groups.item) {
+ print("user ", usr.userId, ", group ", usr.groupId, " (", usr.groupName,
+ ")\t", var.fromPort);
+ if (var.fromPort != var.toPort)
+ print("-",var.toPort);
+ print("\n");
+ }
+ }
+
+ print("Outgoing:\n");
+ for (var in grp.ipPermissionsEgress.item) {
+ for (range in var.ipRanges.item) {
+ print(var.ipProtocol,"\t",range.cidrIp,"\t",var.fromPort);
+ if (var.fromPort != var.toPort)
+ print("-",var.toPort);
+ print("\n");
+ }
+ for (usr in var.groups.item) {
+ print("user ", usr.userId, ", group ", usr.groupId, " (", usr.groupName,
+ ")\t", var.fromPort);
+ if (var.fromPort != var.toPort)
+ print("-",var.toPort);
+ print("\n");
+ }
+ }
+ }
+} \ No newline at end of file

Return to:

Send suggestions and report system problems to the System administrator.