aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2015-11-18 23:25:04 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2015-11-18 23:25:04 +0200
commited8a63afa3482a2036fd134e056a446a408b6357 (patch)
tree8209ee4131550a9ac0cd38dfcd25c22f8939266b
parent48e8aede6696c9b26a1bb1fd92d50f838e8b3178 (diff)
downloadeclat-ed8a63afa3482a2036fd134e056a446a408b6357.tar.gz
eclat-ed8a63afa3482a2036fd134e056a446a408b6357.tar.bz2
Implement VPC and Internet Gateway commands.
New commands: lsvpc, lsvpcattr, mkvpc, setvpcattr, rmvpc, lsigw, mkigw, rmigw, atigw, deigw. * TODO: Update. * doc/Makefile.inc: Add mkvpc manpage. * etc/Makefile.am: Add create-vpc.fl and describe-vpcs.fln * etc/describe-vpc-attribute.fln: New file. * etc/describe-vpcs.fln: New file. * src/Makefile.am: Add new files. * src/igw.c: New file. * src/lsvpc.c: New file. * src/mkvpc-cl.opt: New file. * src/mkvpc.c: New file. * src/rmvpc.c: New file. * src/vpcattr.c: New file. * src/eclat.c (cmdtab): Register new subcommands. * src/eclat.h: Add new prototypes. * src/mksg-cl.opt: New option: --internet-gateway, -g * src/lsinst.c (parse_options): Define args_doc. * src/lsreg.c (parse_options): Remove useless return. * src/lstag-cl.opt: Likewise. * src/mktags-cl.opt: Remove stray character.
-rw-r--r--TODO18
-rw-r--r--doc/Makefile.inc1
-rw-r--r--etc/Makefile.am2
-rw-r--r--etc/describe-vpc-attribute.fln20
-rw-r--r--etc/describe-vpcs.fln22
-rw-r--r--src/Makefile.am8
-rw-r--r--src/eclat.c20
-rw-r--r--src/eclat.h19
-rw-r--r--src/igw.c133
-rw-r--r--src/lsinst.c1
-rw-r--r--src/lsreg.c2
-rw-r--r--src/lstag-cl.opt9
-rw-r--r--src/lsvpc.c59
-rw-r--r--src/mksg-cl.opt2
-rw-r--r--src/mktags-cl.opt10
-rw-r--r--src/mkvpc-cl.opt36
-rw-r--r--src/mkvpc.c38
-rw-r--r--src/rmvpc.c40
-rw-r--r--src/util.c0
-rw-r--r--src/vpcattr.c96
20 files changed, 525 insertions, 11 deletions
diff --git a/TODO b/TODO
index 8953a65..400c91d 100644
--- a/TODO
+++ b/TODO
@@ -13,7 +13,7 @@ AssignPrivateIpAddresses - [ ] [ ]
13AssociateAddress assocaddr [X] [X] 13AssociateAddress assocaddr [X] [X]
14AssociateDhcpOptions - [ ] [ ] 14AssociateDhcpOptions - [ ] [ ]
15AssociateRouteTable - [ ] [ ] 15AssociateRouteTable - [ ] [ ]
16AttachInternetGateway - [ ] [ ] 16AttachInternetGateway atigw [X] [ ]
17AttachNetworkInterface - [ ] [ ] 17AttachNetworkInterface - [ ] [ ]
18AttachVolume atvol [X] [X] 18AttachVolume atvol [X] [X]
19AttachVpnGateway - [ ] [ ] 19AttachVpnGateway - [ ] [ ]
@@ -32,7 +32,7 @@ CreateCustomerGateway - [ ] [ ]
32CreateDhcpOptions - [ ] [ ] 32CreateDhcpOptions - [ ] [ ]
33CreateImage mkimg [X] [X] 33CreateImage mkimg [X] [X]
34CreateInstanceExportTask - [ ] [ ] 34CreateInstanceExportTask - [ ] [ ]
35CreateInternetGateway - [ ] [ ] 35CreateInternetGateway mkigw [X] [ ]
36CreateKeyPair - [ ] [ ] 36CreateKeyPair - [ ] [ ]
37CreateNetworkAcl - [ ] [ ] 37CreateNetworkAcl - [ ] [ ]
38CreateNetworkAclEntry - [ ] [ ] 38CreateNetworkAclEntry - [ ] [ ]
@@ -47,13 +47,13 @@ CreateSpotDatafeedSubscription - [ ] [ ]
47CreateSubnet - [ ] [ ] 47CreateSubnet - [ ] [ ]
48CreateTags mktag [X] [X] 48CreateTags mktag [X] [X]
49CreateVolume mkvol [X] [X] 49CreateVolume mkvol [X] [X]
50CreateVpc - [ ] [ ] 50CreateVpc mkvpc [X] [X]
51CreateVpnConnection - [ ] [ ] 51CreateVpnConnection - [ ] [ ]
52CreateVpnConnectionRoute - [ ] [ ] 52CreateVpnConnectionRoute - [ ] [ ]
53CreateVpnGateway - [ ] [ ] 53CreateVpnGateway - [ ] [ ]
54DeleteCustomerGateway - [ ] [ ] 54DeleteCustomerGateway - [ ] [ ]
55DeleteDhcpOptions - [ ] [ ] 55DeleteDhcpOptions - [ ] [ ]
56DeleteInternetGateway - [ ] [ ] 56DeleteInternetGateway rmigw [X] [ ]
57DeleteKeyPair - [ ] [ ] 57DeleteKeyPair - [ ] [ ]
58DeleteNetworkAcl - [ ] [ ] 58DeleteNetworkAcl - [ ] [ ]
59DeleteNetworkAclEntry - [ ] [ ] 59DeleteNetworkAclEntry - [ ] [ ]
@@ -67,7 +67,7 @@ DeleteSpotDatafeedSubscription - [ ] [ ]
67DeleteSubnet - [ ] [ ] 67DeleteSubnet - [ ] [ ]
68DeleteTags rmtag [X] [X] 68DeleteTags rmtag [X] [X]
69DeleteVolume rmvol [X] [X] 69DeleteVolume rmvol [X] [X]
70DeleteVpc - [ ] [ ] 70DeleteVpc rmvpc [X] [ ]
71DeleteVpnConnection - [ ] [ ] 71DeleteVpnConnection - [ ] [ ]
72DeleteVpnConnectionRoute - [ ] [ ] 72DeleteVpnConnectionRoute - [ ] [ ]
73DeleteVpnGateway - [ ] [ ] 73DeleteVpnGateway - [ ] [ ]
@@ -84,7 +84,7 @@ DescribeImages lsimg [X] [X]
84DescribeInstanceAttribute lsiattr [X] [X] 84DescribeInstanceAttribute lsiattr [X] [X]
85DescribeInstances lsinst [X] [X] 85DescribeInstances lsinst [X] [X]
86DescribeInstanceStatus lsistat [X] [X] 86DescribeInstanceStatus lsistat [X] [X]
87DescribeInternetGateways - [ ] [ ] 87DescribeInternetGateways lsigw [X] [ ]
88DescribeKeyPairs - [ ] [ ] 88DescribeKeyPairs - [ ] [ ]
89DescribeNetworkAcls - [ ] [ ] 89DescribeNetworkAcls - [ ] [ ]
90DescribeNetworkInterfaceAttribute - [ ] [ ] 90DescribeNetworkInterfaceAttribute - [ ] [ ]
@@ -106,10 +106,11 @@ DescribeTags lstag [X] [X]
106DescribeVolumes lsvol [X] [X] 106DescribeVolumes lsvol [X] [X]
107DescribeVolumeAttribute - [ ] [ ] 107DescribeVolumeAttribute - [ ] [ ]
108DescribeVolumeStatus - [ ] [ ] 108DescribeVolumeStatus - [ ] [ ]
109DescribeVpcs - [ ] [ ] 109DescribeVpcAttribute lsvpcattr [X] [ ]
110DescribeVpcs lsvpc [X] [ ]
110DescribeVpnConnections - [ ] [ ] 111DescribeVpnConnections - [ ] [ ]
111DescribeVpnGateways - [ ] [ ] 112DescribeVpnGateways - [ ] [ ]
112DetachInternetGateway - [ ] [ ] 113DetachInternetGateway deigw [X] [ ]
113DetachNetworkInterface - [ ] [ ] 114DetachNetworkInterface - [ ] [ ]
114DetachVolume devol [X] [X] 115DetachVolume devol [X] [X]
115DetachVpnGateway - [ ] [ ] 116DetachVpnGateway - [ ] [ ]
@@ -128,6 +129,7 @@ ModifyInstanceAttribute setiattr [X] [X]
128ModifyNetworkInterfaceAttribute - [ ] [ ] 129ModifyNetworkInterfaceAttribute - [ ] [ ]
129ModifySnapshotAttribute setsattr [X] [X] 130ModifySnapshotAttribute setsattr [X] [X]
130ModifyVolumeAttribute - [ ] [ ] 131ModifyVolumeAttribute - [ ] [ ]
132ModifyVpcAttribute setvpcattr [X] [ ]
131MonitorInstances - [ ] [ ] 133MonitorInstances - [ ] [ ]
132PurchaseReservedInstancesOffering - [ ] [ ] 134PurchaseReservedInstancesOffering - [ ] [ ]
133RebootInstances reboot [X] [X] 135RebootInstances reboot [X] [X]
diff --git a/doc/Makefile.inc b/doc/Makefile.inc
index 5885e21..9997bca 100644
--- a/doc/Makefile.inc
+++ b/doc/Makefile.inc
@@ -49,6 +49,7 @@ MANPAGES1=\
49 eclat-mksnap.1\ 49 eclat-mksnap.1\
50 eclat-mktag.1\ 50 eclat-mktag.1\
51 eclat-mkvol.1\ 51 eclat-mkvol.1\
52 eclat-mkvpc.1\
52 eclat-reboot.1\ 53 eclat-reboot.1\
53 eclat-rmaddr.1\ 54 eclat-rmaddr.1\
54 eclat-rmsg.1\ 55 eclat-rmsg.1\
diff --git a/etc/Makefile.am b/etc/Makefile.am
index 29ae900..10de3fd 100644
--- a/etc/Makefile.am
+++ b/etc/Makefile.am
@@ -27,6 +27,7 @@ FLNFILES=\
27 create-snapshot.fln\ 27 create-snapshot.fln\
28 create-tags.fln\ 28 create-tags.fln\
29 create-volume.fln\ 29 create-volume.fln\
30 create-vpc.fln\
30 delete-security-group.fln\ 31 delete-security-group.fln\
31 delete-snapshot.fln\ 32 delete-snapshot.fln\
32 delete-tags.fln\ 33 delete-tags.fln\
@@ -45,6 +46,7 @@ FLNFILES=\
45 describe-snapshots.fln\ 46 describe-snapshots.fln\
46 describe-tags.fln\ 47 describe-tags.fln\
47 describe-volumes.fln\ 48 describe-volumes.fln\
49 describe-vpcs.fln\
48 detach-volume.fln\ 50 detach-volume.fln\
49 disassociate-address.fln\ 51 disassociate-address.fln\
50 get-console-output.fln\ 52 get-console-output.fln\
diff --git a/etc/describe-vpc-attribute.fln b/etc/describe-vpc-attribute.fln
new file mode 100644
index 0000000..c96f624
--- /dev/null
+++ b/etc/describe-vpc-attribute.fln
@@ -0,0 +1,20 @@
1/* This file is part of Eclat.
2 Copyright (C) 2012-2015 Sergey Poznyakoff.
3
4 Eclat is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3, or (at your option)
7 any later version.
8
9 Eclat is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with Eclat. If not, see <http://www.gnu.org/licenses/>. */
16
17if (.DescribeVpcAttributeResponse.enableDnsHostnames ||
18 .DescribeVpcAttributeResponse.enableDnsSupport) {
19 print(last.value,"\n");
20} \ No newline at end of file
diff --git a/etc/describe-vpcs.fln b/etc/describe-vpcs.fln
new file mode 100644
index 0000000..e53e2fc
--- /dev/null
+++ b/etc/describe-vpcs.fln
@@ -0,0 +1,22 @@
1/* This file is part of Eclat.
2 Copyright (C) 2012-2015 Sergey Poznyakoff.
3
4 Eclat is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3, or (at your option)
7 any later version.
8
9 Eclat is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with Eclat. If not, see <http://www.gnu.org/licenses/>. */
16
17if (.DescribeVpcsResponse.vpcSet) {
18 for (var in .DescribeVpcsResponse.vpcSet.item) {
19 print(var.vpcId, "\t", var.cidrBlock, "\t", var.dhcpOptionsId, "\t",
20 var.state, "\t", var.isDefault, "\n");
21 }
22}
diff --git a/src/Makefile.am b/src/Makefile.am
index 7ec7c66..d46ad42 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -34,6 +34,7 @@ eclat_SOURCES=\
34 eclat.h\ 34 eclat.h\
35 genericcl.c\ 35 genericcl.c\
36 getconout.c\ 36 getconout.c\
37 igw.c\
37 io.c\ 38 io.c\
38 lsaddr.c\ 39 lsaddr.c\