aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/eclat.c4
-rw-r--r--src/eclat.h1
-rw-r--r--src/startstop.c14
3 files changed, 18 insertions, 1 deletions
diff --git a/src/eclat.c b/src/eclat.c
index 12b4dd1..26a8f9f 100644
--- a/src/eclat.c
+++ b/src/eclat.c
@@ -87,12 +87,15 @@ struct eclat_command cmdtab[] = {
{ "start", "start-instances", "StartInstances", eclat_start_instance,
CMD_MOD },
{ "stop", "stop-instances", "StopInstances", eclat_stop_instance,
CMD_MOD },
{ "reboot", "reboot-instances", "RebootInstances", eclat_reboot_instance,
CMD_MOD },
+ { "terminate", "terminate-instances", "TerminateInstances",
+ eclat_terminate_instances, CMD_MOD|CMD_DESTR },
+
{ "lsaddr", "describe-addresses", "DescribeAddresses",
eclat_describe_addresses },
{ "lstag", "describe-tags", "DescribeTags", eclat_describe_tags },
{ "lsiattr", "describe-instance-attribute", "DescribeInstanceAttribute",
eclat_describe_instance_attribute },
{ "lsistat", "describe-instance-status", "DescribeInstanceStatus",
@@ -202,12 +205,13 @@ struct eclat_command cmdtab[] = {
eclat_describe_route_tables },
{ "assocrtab", "associate-route-table", "AssociateRouteTable",
eclat_associate_route_table, CMD_MOD },
{ "disasrtab", "disassociate-route-table", "DisassociateRouteTable",
eclat_disassociate_route_table, CMD_MOD },
{ "route", NULL, NULL, eclat_route },
+
};
size_t cmdcnt = sizeof(cmdtab) / sizeof(cmdtab[0]);
static int
cmdcmp(const void *a, const void *b)
{
diff --git a/src/eclat.h b/src/eclat.h
index 21e89e1..1948234 100644
--- a/src/eclat.h
+++ b/src/eclat.h
@@ -123,12 +123,13 @@ int eclat_trace_fun(CURL *handle, curl_infotype type,
void *userp);
int eclat_start_instance(eclat_command_env_t *env, int argc, char **argv);
int eclat_stop_instance(eclat_command_env_t *env, int argc, char **argv);
int eclat_reboot_instance(eclat_command_env_t *env, int argc, char **argv);
+int eclat_terminate_instances(eclat_command_env_t *env, int argc, char **argv);
int eclat_describe_tags(eclat_command_env_t *env, int argc, char **argv);
int eclat_describe_instance_status(eclat_command_env_t *env, int argc, char **argv);
int eclat_describe_instances(eclat_command_env_t *env, int argc, char **argv);
int eclat_allocate_address(eclat_command_env_t *env, int argc, char **argv);
int eclat_release_address(eclat_command_env_t *env, int argc, char **argv);
int eclat_associate_address(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
@@ -41,13 +41,12 @@ start_stop_instance(eclat_command_env_t *env, int argc, char **argv)
bend = buf + strlen(buf);
bs = sizeof(buf) - strlen(buf);
for (i = 0; i < argc; i++) {
snprintf(bend, bs, "%lu", (unsigned long)(i + 1));
eclat_request_add_param(q, buf, argv[i]);
}
-
return 0;
}
int
eclat_start_instance(eclat_command_env_t *env, int argc, char **argv)
{
@@ -87,6 +86,19 @@ eclat_reboot_instance(eclat_command_env_t *env, int argc, char **argv)
"Reboot named instances",
argc, argv, &i);
debug(ECLAT_DEBCAT_MAIN, 1, ("rebooting instances"));
return start_stop_instance(env, argc - i, argv + i);
}
+
+int
+eclat_terminate_instances(eclat_command_env_t *env, int argc, char **argv)
+{
+ int i;
+
+ parse_options(env->cmd,
+ "Terminate named instances",
+ argc, argv, &i);
+
+ debug(ECLAT_DEBCAT_MAIN, 1, ("terminate instances"));
+ return start_stop_instance(env, argc - i, argv + i);
+}

Return to:

Send suggestions and report system problems to the System administrator.