diff options
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | doc/Makefile.inc | 1 | ||||
-rw-r--r-- | doc/eclat-mkinst.1 | 5 | ||||
-rw-r--r-- | doc/eclat-reboot.1 | 4 | ||||
-rw-r--r-- | doc/eclat-terminate.1 | 58 | ||||
-rw-r--r-- | etc/Makefile.am | 3 | ||||
-rw-r--r-- | etc/terminate-instances.fln | 23 | ||||
-rw-r--r-- | src/eclat.c | 4 | ||||
-rw-r--r-- | src/eclat.h | 1 | ||||
-rw-r--r-- | src/startstop.c | 14 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/terminate-instances.at | 39 | ||||
-rw-r--r-- | tests/testsuite.at | 1 |
13 files changed, 149 insertions, 7 deletions
@@ -153,3 +153,3 @@ StartInstances start [X] [X] | |||
153 | StopInstances stop [X] [X] | 153 | StopInstances stop [X] [X] |
154 | TerminateInstances killinst [ ] [ ] | 154 | TerminateInstances terminate [X] [X] |
155 | UnassignPrivateIpAddresses - [ ] [ ] | 155 | UnassignPrivateIpAddresses - [ ] [ ] |
diff --git a/doc/Makefile.inc b/doc/Makefile.inc index 143f579..43b62b3 100644 --- a/doc/Makefile.inc +++ b/doc/Makefile.inc | |||
@@ -63,2 +63,3 @@ MANPAGES1=\ | |||
63 | eclat-stop.1\ | 63 | eclat-stop.1\ |
64 | eclat-terminate.1\ | ||
64 | ispeek.1 | 65 | ispeek.1 |
diff --git a/doc/eclat-mkinst.1 b/doc/eclat-mkinst.1 index f934484..4db3c7e 100644 --- a/doc/eclat-mkinst.1 +++ b/doc/eclat-mkinst.1 | |||
@@ -15,3 +15,3 @@ | |||
15 | .\" along with Eclat. If not, see <http://www.gnu.org/licenses/>. | 15 | .\" along with Eclat. If not, see <http://www.gnu.org/licenses/>. |
16 | .TH ECLAT-MKINST 1 "January 26, 2015" "ECLAT" "Eclat User Reference" | 16 | .TH ECLAT-MKINST 1 "November 17, 2018" "ECLAT" "Eclat User Reference" |
17 | .SH NAME | 17 | .SH NAME |
@@ -168,2 +168,3 @@ command | |||
168 | .BR eclat (1), | 168 | .BR eclat (1), |
169 | .BR eclat\-terminate (1), | ||
169 | .BR eclat\-lsiattr (1), | 170 | .BR eclat\-lsiattr (1), |
@@ -180,3 +181,3 @@ Report bugs to <bug\-eclat@gnu.org.ua>. | |||
180 | .SH COPYRIGHT | 181 | .SH COPYRIGHT |
181 | Copyright \(co 2012-2015 Sergey Poznyakoff | 182 | Copyright \(co 2012-2018 Sergey Poznyakoff |
182 | .br | 183 | .br |
diff --git a/doc/eclat-reboot.1 b/doc/eclat-reboot.1 index 1addd87..d234808 100644 --- a/doc/eclat-reboot.1 +++ b/doc/eclat-reboot.1 | |||
@@ -15,3 +15,3 @@ | |||
15 | .\" along with Eclat. If not, see <http://www.gnu.org/licenses/>. | 15 | .\" along with Eclat. If not, see <http://www.gnu.org/licenses/>. |
16 | .TH ECLAT-REBOOT 1 "January 26, 2015" "ECLAT" "Eclat User Reference" | 16 | .TH ECLAT-REBOOT 1 "November 17, 2018" "ECLAT" "Eclat User Reference" |
17 | .SH NAME | 17 | .SH NAME |
@@ -31,3 +31,3 @@ reboots running Amazon EBS-backed instances. | |||
31 | .SH OUTPUT | 31 | .SH OUTPUT |
32 | The default output format lists o each line the instance ID, its | 32 | The default output format lists on each line the instance ID, its |
33 | previous and current states, separated by single horizontal tab | 33 | previous and current states, separated by single horizontal tab |
diff --git a/doc/eclat-terminate.1 b/doc/eclat-terminate.1 new file mode 100644 index 0000000..a70a1ee --- /dev/null +++ b/doc/eclat-terminate.1 | |||
@@ -0,0 +1,58 @@ | |||
1 | .\" This file is part of Eclat -*- nroff -*- | ||
2 | .\" Copyright (C) 2012-2018 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 | .TH ECLAT-TERMINATE 1 "November 17, 2018" "ECLAT" "Eclat User Reference" | ||
17 | .SH NAME | ||
18 | eclat-terminate, eclat-terminate-instances \- terminate EC2 instances | ||
19 | .SH SYNOPSIS | ||
20 | .nh | ||
21 | .na | ||
22 | \fBeclat terminate\fR \fIID\fR [\fIID\fR...] | ||
23 | .PP | ||
24 | \fBeclat terminate\fR \fB\-\-help\fR | ||
25 | .ad | ||
26 | .hy | ||
27 | .SH DESCRIPTION | ||
28 | Terminates the listed Amazon EBS-backed instances. | ||
29 | .SH OUTPUT | ||
30 | The default output format lists on each line the instance ID, its | ||
31 | previous and current states, separated by single horizontal tab | ||
32 | characters. | ||
33 | .SH "SEE ALSO" | ||
34 | .BR eclat (1), | ||
35 | .BR eclat\-mkinst (1), | ||
36 | .BR eclat\-start (1), | ||
37 | .BR eclat\-stop (1). | ||
38 | .SH AUTHORS | ||
39 | Sergey Poznyakoff | ||
40 | .SH "BUG REPORTS" | ||
41 | Report bugs to <bug\-eclat@gnu.org.ua>. | ||
42 | .SH COPYRIGHT | ||
43 | Copyright \(co 2012-2018 Sergey Poznyakoff | ||
44 | .br | ||
45 | .na | ||
46 | License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> | ||
47 | .br | ||
48 | .ad | ||
49 | This is free software: you are free to change and redistribute it. | ||
50 | There is NO WARRANTY, to the extent permitted by law. | ||
51 | .\" Local variables: | ||
52 | .\" eval: (add-hook 'write-file-hooks 'time-stamp) | ||
53 | .\" time-stamp-start: ".TH [A-Z_][A-Z0-9_.\\-]* [0-9] \"" | ||
54 | .\" time-stamp-format: "%:B %:d, %:y" | ||
55 | .\" time-stamp-end: "\"" | ||
56 | .\" time-stamp-line-limit: 20 | ||
57 | .\" end: | ||
58 | |||
diff --git a/etc/Makefile.am b/etc/Makefile.am index 21b958b..2376583 100644 --- a/etc/Makefile.am +++ b/etc/Makefile.am | |||
@@ -83,3 +83,4 @@ FLNFILES=\ | |||
83 | start-instances.fln\ | 83 | start-instances.fln\ |
84 | stop-instances.fln | 84 | stop-instances.fln\ |
85 | terminate-instances.fln | ||
85 | 86 | ||
diff --git a/etc/terminate-instances.fln b/etc/terminate-instances.fln new file mode 100644 index 0000000..12995c3 --- /dev/null +++ b/etc/terminate-instances.fln | |||
@@ -0,0 +1,23 @@ | |||
1 | /* This file is part of Eclat. | ||
2 | Copyright (C) 2012-2018 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 | |||
17 | if (.TerminateInstancesResponse) { | ||
18 | for (var in .TerminateInstancesResponse.instancesSet.item) { | ||
19 | print(var.instanceId,": ", | ||
20 | var.previousState.name," => ", | ||
21 | var.currentState.name,"\n"); | ||
22 | } | ||
23 | } | ||
diff --git a/src/eclat.c b/src/eclat.c index 12b4dd1..26a8f9f 100644 --- a/src/eclat.c +++ b/src/eclat.c | |||
@@ -92,2 +92,5 @@ struct eclat_command cmdtab[] = { | |||
92 | CMD_MOD }, | 92 | CMD_MOD }, |
93 | { "terminate", "terminate-instances", "TerminateInstances", | ||
94 | eclat_terminate_instances, CMD_MOD|CMD_DESTR }, | ||
95 | |||
93 | { "lsaddr", "describe-addresses", "DescribeAddresses", | 96 | { "lsaddr", "describe-addresses", "DescribeAddresses", |
@@ -207,2 +210,3 @@ struct eclat_command cmdtab[] = { | |||
207 | { "route", NULL, NULL, eclat_route }, | 210 | { "route", NULL, NULL, eclat_route }, |
211 | |||
208 | }; | 212 | }; |
diff --git a/src/eclat.h b/src/eclat.h index 21e89e1..1948234 100644 --- a/src/eclat.h +++ b/src/eclat.h | |||
@@ -128,2 +128,3 @@ int eclat_stop_instance(eclat_command_env_t *env, int argc, char **argv); | |||
128 | int eclat_reboot_instance(eclat_command_env_t *env, int argc, char **argv); | 128 | int eclat_reboot_instance(eclat_command_env_t *env, int argc, char **argv); |
129 | int eclat_terminate_instances(eclat_command_env_t *env, int argc, char **argv); | ||
129 | int eclat_describe_tags(eclat_command_env_t *env, int argc, char **argv); | 130 | int eclat_describe_tags(eclat_command_env_t *env, int argc, char **argv); |
diff --git a/src/startstop.c b/src/startstop.c index 2460682..78c581c 100644 --- a/src/startstop.c +++ b/src/startstop.c | |||
@@ -46,3 +46,2 @@ start_stop_instance(eclat_command_env_t *env, int argc, char **argv) | |||
46 | } | 46 | } |
47 | |||
48 | return 0; | 47 | return 0; |
@@ -92 +91,14 @@ eclat_reboot_instance(eclat_command_env_t *env, int argc, char **argv) | |||
92 | } | 91 | } |
92 | |||
93 | int | ||
94 | eclat_terminate_instances(eclat_command_env_t *env, int argc, char **argv) | ||
95 | { | ||
96 | int i; | ||
97 | |||
98 | parse_options(env->cmd, | ||
99 | "Terminate named instances", | ||
100 | argc, argv, &i); | ||
101 | |||
102 | debug(ECLAT_DEBCAT_MAIN, 1, ("terminate instances")); | ||
103 | return start_stop_instance(env, argc - i, argv + i); | ||
104 | } | ||
diff --git a/tests/Makefile.am b/tests/Makefile.am index 61046ba..36927c7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am | |||
@@ -86,2 +86,3 @@ TESTSUITE_AT = \ | |||
86 | stop-instances.at\ | 86 | stop-instances.at\ |
87 | terminate-instances.at\ | ||
87 | tagshairy.at\ | 88 | tagshairy.at\ |
diff --git a/tests/terminate-instances.at b/tests/terminate-instances.at new file mode 100644 index 0000000..7242986 --- /dev/null +++ b/tests/terminate-instances.at | |||
@@ -0,0 +1,39 @@ | |||
1 | # This file is part of Eclat -*- Autotest -*- | ||
2 | # Copyright (C) 2012-2018 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 | |||
17 | ECLAT_TEST_FORMAT([TerminateInstances], | ||
18 | [TerminateInstances], | ||
19 | [terminate-instances.fln], | ||
20 | [<TerminateInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/"> | ||
21 | <requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId> | ||
22 | <instancesSet> | ||
23 | <item> | ||
24 | <instanceId>i-1234567890abcdef0</instanceId> | ||
25 | <currentState> | ||
26 | <code>32</code> | ||
27 | <name>shutting-down</name> | ||
28 | </currentState> | ||
29 | <previousState> | ||
30 | <code>16</code> | ||
31 | <name>running</name> | ||
32 | </previousState> | ||
33 | </item> | ||
34 | </instancesSet> | ||
35 | </TerminateInstancesResponse> | ||
36 | ], | ||
37< |