diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/eclat.c | 4 | ||||
-rw-r--r-- | src/eclat.h | 1 | ||||
-rw-r--r-- | src/startstop.c | 14 |
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); +} |