diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-10-04 01:22:27 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-10-04 01:22:27 +0300 |
commit | 11db69e6d2b292df96845515f7df0e850b60c125 (patch) | |
tree | 9c4bb3a47ead03b6093ceed3e0142fc259a91de0 /etc | |
parent | 256d8b3572532af87ea5b28379cee709ad44cea6 (diff) | |
download | eclat-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.am | 1 | ||||
-rw-r--r-- | etc/describe-security-groups.fln | 59 |
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 |