From d02898fda76a87c176feb12d9fce017fe91ef166 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Tue, 5 Jul 2022 08:53:42 -0500 Subject: [PATCH] Cleanup: Remove unused task feature. This functionality did not make the cut for the 0.6.x stable release series. I may revisit this in the future. --- level_3/controller/c/common/private-common.h | 1 - level_3/controller/c/common/private-task.c | 129 -------- level_3/controller/c/common/private-task.h | 364 --------------------- level_3/controller/c/task/private-task.c | 11 - level_3/controller/c/task/private-task.h | 19 -- level_3/controller/c/task/private-task_print.c | 12 - level_3/controller/c/task/private-task_print.h | 19 -- level_3/controller/data/build/settings | 3 +- .../data/settings/tasks/system/reboot.task | 95 ------ .../data/settings/tasks/system/shutdown.task | 92 ------ level_3/controller/documents/entry.txt | 4 - level_3/controller/documents/task.txt | 39 --- 12 files changed, 1 insertion(+), 787 deletions(-) delete mode 100644 level_3/controller/c/common/private-task.c delete mode 100644 level_3/controller/c/common/private-task.h delete mode 100644 level_3/controller/c/task/private-task.c delete mode 100644 level_3/controller/c/task/private-task.h delete mode 100644 level_3/controller/c/task/private-task_print.c delete mode 100644 level_3/controller/c/task/private-task_print.h delete mode 100644 level_3/controller/data/settings/tasks/system/reboot.task delete mode 100644 level_3/controller/data/settings/tasks/system/shutdown.task delete mode 100644 level_3/controller/documents/task.txt diff --git a/level_3/controller/c/common/private-common.h b/level_3/controller/c/common/private-common.h index e265982..c528612 100644 --- a/level_3/controller/c/common/private-common.h +++ b/level_3/controller/c/common/private-common.h @@ -17,7 +17,6 @@ extern "C" { #include "private-execute_set.h" #include "private-lock.h" #include "private-rule.h" -#include "private-task.h" #include "private-process.h" #include "private-entry.h" #include "private-control.h" diff --git a/level_3/controller/c/common/private-task.c b/level_3/controller/c/common/private-task.c deleted file mode 100644 index d50f4e9..0000000 --- a/level_3/controller/c/common/private-task.c +++ /dev/null @@ -1,129 +0,0 @@ -#include "../controller.h" -#include "private-common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _di_controller_task_action_delete_simple_ - void controller_task_action_delete_simple(controller_task_action_t * const action) { - - f_string_dynamic_resize(0, &action->help); - f_string_dynamics_resize(0, &action->parameters); - } -#endif // _di_controller_task_action_delete_simple_ - -#ifndef _di_controller_task_actions_delete_simple_ - void controller_task_actions_delete_simple(controller_task_actions_t * const actions) { - - actions->used = actions->size; - - while (actions->used) { - controller_task_action_delete_simple(&actions->array[--actions->used]); - } // while - - f_memory_delete(actions->size, sizeof(controller_task_action_t), (void **) & actions->array); - actions->size = 0; - } -#endif // _di_controller_task_actions_delete_simple_ - -#ifndef _di_controller_task_actions_increase_by_ - f_status_t controller_task_actions_increase_by(const f_array_length_t amount, controller_task_actions_t * const actions) { - - if (actions->used + amount > actions->size) { - if (actions->used + amount > F_array_length_t_size_d) { - return F_status_set_error(F_array_too_large); - } - - const f_status_t status = f_memory_resize(actions->size, actions->used + amount, sizeof(controller_task_action_t), (void **) & actions->array); - - if (F_status_is_error_not(status)) { - actions->size = actions->used + amount; - } - - return status; - } - - return F_data_not; - } -#endif // _di_controller_task_actions_increase_by_ - -#ifndef _di_controller_task_delete_simple_ - void controller_task_delete_simple(controller_task_t * const task) { - - f_string_dynamic_resize(0, &task->alias); - f_string_dynamic_resize(0, &task->engine); - f_string_dynamic_resize(0, &task->help); - f_string_dynamic_resize(0, &task->name); - f_string_dynamic_resize(0, &task->path); - - f_string_maps_resize(0, &task->arguments); - f_string_maps_resize(0, &task->defines); - f_string_maps_resize(0, &task->parameters); - - f_string_dynamics_resize(0, &task->environment); - - macro_f_int32s_t_delete_simple(task->affinity) - macro_f_control_group_t_delete_simple(task->cgroup) - macro_f_int32s_t_delete_simple(task->groups) - macro_f_limit_sets_t_delete_simple(task->limits) - - if (task->capability) { - f_capability_delete(&task->capability); - } - - controller_task_actions_delete_simple(&task->actions); - } -#endif // _di_controller_task_delete_simple_ - -#ifndef _di_controller_tasks_delete_simple_ - void controller_tasks_delete_simple(controller_tasks_t * const tasks) { - - controller_tasks_resize(0, tasks); - } -#endif // _di_controller_tasks_delete_simple_ - -#ifndef _di_controller_tasks_increase_ - f_status_t controller_tasks_increase(controller_tasks_t * const tasks) { - - if (tasks->used + 1 > tasks->size) { - f_array_length_t size = tasks->used + controller_common_allocation_small_d; - - if (size > F_array_length_t_size_d) { - if (tasks->used + 1 > F_array_length_t_size_d) { - return F_status_set_error(F_array_too_large); - } - - size = F_array_length_t_size_d; - } - - return controller_tasks_resize(size, tasks); - } - - return F_data_not; - } -#endif // _di_controller_tasks_increase_ - -#ifndef _di_controller_tasks_resize_ - f_status_t controller_tasks_resize(const f_array_length_t length, controller_tasks_t * const tasks) { - - for (f_array_length_t i = length; i < tasks->size; ++i) { - controller_task_delete_simple(&tasks->array[i]); - } // for - - const f_status_t status = f_memory_resize(tasks->size, length, sizeof(controller_task_t), (void **) & tasks->array); - if (F_status_is_error(status)) return status; - - tasks->size = length; - - if (tasks->used > tasks->size) { - tasks->used = length; - } - - return F_none; - } -#endif // _di_controller_tasks_resize_ - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/level_3/controller/c/common/private-task.h b/level_3/controller/c/common/private-task.h deleted file mode 100644 index eec60d3..0000000 --- a/level_3/controller/c/common/private-task.h +++ /dev/null @@ -1,364 +0,0 @@ -/** - * FLL - Level 3 - * - * Project: Controller - * API Version: 0.6 - * Licenses: lgpl-2.1-or-later - */ -#ifndef _PRIVATE_common_task_h -#define _PRIVATE_common_task_h - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * A Task Action. - * - * controller_task_action_method_*: - * - extended: Designate that this Action is represented using FSS Extended. - * - extended_list: Designate that this Action is represented using FSS Extended List. - * - * help: The help text associated with this action. - * line: The line number where the Task Action begins. - * parameters: All parameters associated with the Task Action. - * status: The last execution status of the Task Action. - * type: The Task Action type, this references an index in the controller_task_parameters_t for the parent Task. - */ -#ifndef _di_controller_task_action_t_ - #define controller_task_action_method_string_extended_s "FSS-0001 (Extended)" - #define controller_task_action_method_string_extended_list_s "FSS-0003 (Extended List)" - - #define controller_task_action_method_string_extended_s_length 19 - #define controller_task_action_method_string_extended_list_s_length 24 - - enum { - controller_task_action_method_extended_e = 1, - controller_task_action_method_extended_list_e, - }; - - typedef struct { - f_status_t status; - f_array_length_t type; - f_array_length_t line; - - f_string_dynamic_t help; - f_string_dynamics_t parameters; - } controller_task_action_t; - - #define controller_task_action_t_initialize { \ - F_known_not, \ - 0, \ - 0, \ - f_string_dynamic_t_initialize, \ - f_string_dynamics_t_initialize, \ - } -#endif // _di_controller_task_action_t_ - -/** - * The Task Actions. - * - * array: An array of Task Actions. - * size: Total amount of allocated space. - * used: Total number of allocated spaces used. - */ -#ifndef _di_controller_task_actions_t_ - typedef struct { - controller_task_action_t *array; - - f_array_length_t size; - f_array_length_t used; - } controller_task_actions_t; - - #define controller_task_actions_t_initialize { \ - 0, \ - 0, \ - 0, \ - } -#endif // _di_controller_task_actions_t_ - -/** - * A Task structure. - * - * controller_task_setting_type_*: - * - affinity: Setting type representing an affinity. - * - capability: Setting type representing a capability. - * - cgroup: Setting type representing a cgroup (control group). - * - define: Setting type representing a define. - * - engine: Setting type representing an engine. - * - environment: Setting type representing an environment. - * - group: Setting type representing a group. - * - limit: Setting type representing a limit. - * - name: Setting type representing a name. - * - nice: Setting type representing a nice. - * - parameter: Setting type representing a parameter. - * - path: Setting type representing a path. - * - scheduler: Setting type representing a scheduler. - * - user: Setting type representing a user. - * - * controller_task_has_*: - * - cgroup: Has type representing a cgroup (control group). - * - group: Has type representing a group. - * - nice: Has type representing a nice. - * - scheduler: Has type representing a scheduler. - * - user: Has type representing a user. - * - * affinity: The cpu affinity to be used when executing the Task. - * alias: The distinct ID (machine name) of the Task, such as "service/ssh". - * arguments: The arguments (parameters) passed to the Task, which are exposed via the IKI substitution. - * capability: The capability setting if the Task "has" a capability. - * cgroup: The cgroup (control group) setting if the Task "has" a cgroup (control group). - * define: Any defines (environment variables) made available to the Task for IKI substitution or just as environment variables. - * engine: The program or path to the program of the scripting engine to use when processing scripts in this Task. - * environment: All environment variables allowed to be exposed to the Task when processing. - * group: The group ID if the Task "has" a group. - * groups: A set of group IDs to run the process with (first specified group is the primary group). - * has: Bitwise set of "has" codes representing what the Task has. - * limits: The cpu/resource limits to use when executing the Task. - * name: A human name for the Task (does not have to be distinct), such as "Bash Script". - * nice: The niceness value if the Task "has" nice. - * parameter: Any parameters made available to the Task for IKI substitution. - * path: The path to the Task file. - * scheduler: The scheduler setting if the Task "has" a scheduler. - * state: The current active/inactive state of the Task. - * status: The last returned status of the Task. - * timestamp: The timestamp when the Task was last updated. - * user: The User ID if the Task "has" a user. - */ -#ifndef _di_controller_task_t_ - enum { - controller_task_setting_type_affinity_e = 1, - controller_task_setting_type_capability_e, - controller_task_setting_type_cgroup_e, - controller_task_setting_type_define_e, - controller_task_setting_type_engine_e, - controller_task_setting_type_environment_e, - controller_task_setting_type_group_e, - controller_task_setting_type_limit_e, - controller_task_setting_type_name_e, - controller_task_setting_type_nice_e, - controller_task_setting_type_parameter_e, - controller_task_setting_type_path_e, - controller_task_setting_type_scheduler_e, - controller_task_setting_type_user_e, - }; - - // Bitwise codes representing properties on controller_task_t that have been found in the Task file. - #define controller_task_has_cgroup_d 0x1 - #define controller_task_has_environment_d 0x2 - #define controller_task_has_group_d 0x4 - #define controller_task_has_nice_d 0x8 - #define controller_task_has_scheduler_d 0x10 - #define controller_task_has_user_d 0x20 - - typedef struct { - f_status_t state; - f_status_t status; - - uint8_t has; - int nice; - uid_t user; - gid_t group; - - f_time_spec_t timestamp; - - f_string_dynamic_t alias; - f_string_dynamic_t engine; - f_string_dynamic_t help; - f_string_dynamic_t name; - f_string_dynamic_t path; - - f_string_maps_t arguments; - f_string_maps_t defines; - f_string_maps_t parameters; - - f_string_dynamics_t environment; - - f_int32s_t affinity; - f_capability_t capability; - f_control_group_t cgroup; - f_int32s_t groups; - f_limit_sets_t limits; - f_execute_scheduler_t scheduler; - - controller_task_actions_t actions; - } controller_task_t; - - #define controller_task_t_initialize { \ - F_none, \ - F_none, \ - 0, \ - 0, \ - 0, \ - 0, \ - f_time_spec_t_initialize, \ - f_string_dynamic_t_initialize, \ - f_string_dynamic_t_initialize, \ - f_string_dynamic_t_initialize, \ - f_string_dynamic_t_initialize, \ - f_string_dynamic_t_initialize, \ - f_string_maps_t_initialize, \ - f_string_maps_t_initialize, \ - f_string_maps_t_initialize, \ - f_string_dynamics_t_initialize, \ - f_int32s_t_initialize, \ - f_capability_t_initialize, \ - f_control_group_t_initialize, \ - f_int32s_t_initialize, \ - f_limit_sets_t_initialize, \ - f_execute_scheduler_t_initialize, \ - controller_task_actions_t_initialize, \ - } -#endif // _di_controller_task_t_ - -/** - * The Tasks. - * - * array: An array of Tasks. - * size: Total amount of allocated space. - * used: Total number of allocated spaces used. - */ -#ifndef _di_controller_tasks_t_ - typedef struct { - controller_task_t *array; - - f_array_length_t size; - f_array_length_t used; - } controller_tasks_t; - - #define controller_tasks_t_initialize { \ - 0, \ - 0, \ - 0, \ - } -#endif // _di_controller_tasks_t_ - -/** - * Fully deallocate all memory for the given Task Action without caring about return status. - * - * @param action - * The action to deallocate. - * - * @see f_string_dynamics_resize() - */ -#ifndef _di_controller_task_action_delete_simple_ - extern void controller_task_action_delete_simple(controller_task_action_t * const action) F_attribute_visibility_internal_d; -#endif // _di_controller_task_action_delete_simple_ - -/** - * Fully deallocate all memory for the given Task Actions without caring about return status. - * - * @param actions - * The task_actions to deallocate. - * - * @see f_memory_delete() - * - * @see controller_task_action_delete_simple() - */ -#ifndef _di_controller_task_actions_delete_simple_ - extern void controller_task_actions_delete_simple(controller_task_actions_t *actions) F_attribute_visibility_internal_d; -#endif // _di_controller_task_actions_delete_simple_ - -/** - * Increase the size of the Task Actions array by the specified amount, but only if necessary. - * - * This only increases size if the current used plus amount is greater than the currently allocated size. - * - * @param amount - * A positive number representing how much to increase the size by. - * @param actions - * The actions to resize. - * - * @return - * F_none on success. - * F_array_too_large (with error bit) if the resulting new size is bigger than the max array length. - * - * Errors (with error bit) from: f_memory_resize(). - */ -#ifndef _di_controller_task_actions_increase_by_ - extern f_status_t controller_task_actions_increase_by(const f_array_length_t amount, controller_task_actions_t * const actions) F_attribute_visibility_internal_d; -#endif // _di_controller_task_actions_increase_by_ - -/** - * Fully deallocate all memory for the given Rule without caring about return status. - * - * @param task - * The task to deallocate. - * - * @see macro_f_control_group_t_delete_simple() - * @see macro_f_int32s_t_delete_simple() - * @see macro_f_limit_sets_t_delete_simple() - * @see macro_f_string_dynamics_t_delete_simple() - * @see macro_f_string_maps_t_delete_simple() - * @see macro_f_thread_condition_t_delete_simple() - * @see macro_f_thread_mutex_t_delete_simple() - * - * @see f_capability_delete() - * @see f_string_dynamic_resize() - * - * @see controller_task_items_delete_simple() - */ -#ifndef _di_controller_task_delete_simple_ - extern void controller_task_delete_simple(controller_task_t * const task) F_attribute_visibility_internal_d; -#endif // _di_controller_task_delete_simple_ - -/** - * Fully deallocate all memory for the given Tasks without caring about return status. - * - * @param tasks - * The tasks to deallocate. - * - * @see controller_tasks_resize() - */ -#ifndef _di_controller_tasks_delete_simple_ - extern void controller_tasks_delete_simple(controller_tasks_t * const tasks) F_attribute_visibility_internal_d; -#endif // _di_controller_tasks_delete_simple_ - -/** - * Increase the size of the Task array, but only if necessary. - * - * If the given length is too large for the buffer, then attempt to set max buffer size (F_array_length_t_size_d). - * If already set to the maximum buffer size, then the resize will fail. - * - * @param tasks - * The task array to resize. - * - * @return - * F_none on success. - * F_data_not on success, but there is no reason to increase size (used + controller_common_allocation_small_d <= size). - * - * F_array_too_large (with error bit) if the new array length is too large. - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * @see controller_tasks_resize() - */ -#ifndef _di_controller_tasks_increase_ - extern f_status_t controller_tasks_increase(controller_tasks_t * const tasks) F_attribute_visibility_internal_d; -#endif // _di_controller_task_increase_ - -/** - * Resize the Task array. - * - * @param length - * The new size to use. - * @param tasks - * The task array to resize. - * - * @return - * F_none on success. - * - * F_memory_not (with error bit) on out of memory. - * F_parameter (with error bit) if a parameter is invalid. - * - * @see f_memory_resize() - */ -#ifndef _di_controller_tasks_resize_ - extern f_status_t controller_tasks_resize(const f_array_length_t length, controller_tasks_t * const tasks) F_attribute_visibility_internal_d; -#endif // _di_controller_tasks_resize_ - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _PRIVATE_common_task_h diff --git a/level_3/controller/c/task/private-task.c b/level_3/controller/c/task/private-task.c deleted file mode 100644 index 2436e3d..0000000 --- a/level_3/controller/c/task/private-task.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../controller.h" -#include "../common/private-common.h" -#include "../task/private-task.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/level_3/controller/c/task/private-task.h b/level_3/controller/c/task/private-task.h deleted file mode 100644 index 6003dac..0000000 --- a/level_3/controller/c/task/private-task.h +++ /dev/null @@ -1,19 +0,0 @@ -/** - * FLL - Level 3 - * - * Project: Controller - * API Version: 0.6 - * Licenses: lgpl-2.1-or-later - */ -#ifndef _PRIVATE_task_h -#define _PRIVATE_task_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _PRIVATE_task_h diff --git a/level_3/controller/c/task/private-task_print.c b/level_3/controller/c/task/private-task_print.c deleted file mode 100644 index de1fd02..0000000 --- a/level_3/controller/c/task/private-task_print.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../controller.h" -#include "../common/private-common.h" -#include "../task/private-task.h" -#include "../task/private-task_print.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} // extern "C" -#endif diff --git a/level_3/controller/c/task/private-task_print.h b/level_3/controller/c/task/private-task_print.h deleted file mode 100644 index d827dca..0000000 --- a/level_3/controller/c/task/private-task_print.h +++ /dev/null @@ -1,19 +0,0 @@ -/** - * FLL - Level 3 - * - * Project: Controller - * API Version: 0.6 - * Licenses: lgpl-2.1-or-later - */ -#ifndef _PRIVATE_task_print_h -#define _PRIVATE_task_print_h - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _PRIVATE_task_print_h diff --git a/level_3/controller/data/build/settings b/level_3/controller/data/build/settings index caaeaa1..b6d111c 100644 --- a/level_3/controller/data/build/settings +++ b/level_3/controller/data/build/settings @@ -25,13 +25,12 @@ build_libraries-level -lfll_2 -lfll_1 -lfll_0 build_libraries-monolithic -lfll build_sources_library controller.c common.c -build_sources_library common/private-common.c common/private-cache.c common/private-control.c common/private-entry.c common/private-lock.c common/private-process.c common/private-rule.c common/private-setting.c common/private-task.c common/private-thread.c +build_sources_library common/private-common.c common/private-cache.c common/private-control.c common/private-entry.c common/private-lock.c common/private-process.c common/private-rule.c common/private-setting.c common/private-thread.c build_sources_library control/private-control.c control/private-control_print.c build_sources_library controller/private-controller.c controller/private-controller_print.c build_sources_library entry/private-entry.c entry/private-entry_print.c build_sources_library rule/private-rule.c rule/private-rule_print.c build_sources_library process/private-process.c -build_sources_library task/private-task.c task/private-task_print.c build_sources_library lock/private-lock.c lock/private-lock_print.c build_sources_library thread/private-thread.c thread/private-thread_control.c thread/private-thread_entry.c thread/private-thread_process.c thread/private-thread_rule.c thread/private-thread_signal.c diff --git a/level_3/controller/data/settings/tasks/system/reboot.task b/level_3/controller/data/settings/tasks/system/reboot.task deleted file mode 100644 index 44f3cbd..0000000 --- a/level_3/controller/data/settings/tasks/system/reboot.task +++ /dev/null @@ -1,95 +0,0 @@ -# fss-000d -# -# Task for rebooting the system. -# -# Todo: the idea here is that the controller program supports time based triggers triggers, which includes having status and being able to be canceled. -# Todo: Another idea here is reboot is a separate program that goes into the background like a server when given an "in" or "on", has a status, and can be canceled. - -setting: - name "Reboot System" - environment PATH - script sh - -argument: - in time unit - on date - status - cancel - -help: - This task reboots the system after stopping all controlled processes. - - When no parameters are specified, the reboot happens immediately. - - The following parameters are available: - - in [time] [unit]: Reboot after so many units of time have passed. - - on [date]: Reboot when a given date and time is reached. - - status: Get the current state of the reboot process. - - cancel: Cancel the current reboot process, if active. - -help in: - Reboot after a specified amount of time is reached. - - This acts as a timeout that begins immediately upon execution. - Once the timeout is reached, reboot is performed. - - This command requires two additional parameters: - 1) A whole number representing the time. - 2) A unit of measurement, which must be one of: - - millisecond. - - second. - - minute. - - hour. - - day. - - week. - - month. - - year. - - gigatime. - - megatime. - - kilotime. - - decatime. - - time. - - gigaepochtime. - - megaepochtime. - - kiloepochtime. - - decaepochtime. - - epochtime. - -help on: - Reboot when the specified date is reached. - - This acts as a trigger that waits for the given date and time of the system clock to be reached. - If the clock is changed to on or after the specified date, this trigger is executed. - - This command requires one additional parameter: - 1) A date in ISO-8601 format. - - The date must be in ISO-8601 format, which looks like: "2006-08-14T02:34:56-06:00". - The timezone offset is optional and if it is not provided, UTC is assumed. - TODO: support Time units and date times: "2017:0000". - - Both reboot "on" and reboot "in" may be specified. - In which case the first one to happen will result in the reboot. - -help status: - Get whether the reboot is in progress or not and the current settings, if any. - -help cancel: - Cancel an existing reboot process, if it is not too late. - -script: - in { - reboot in argument:"time" argument:"unit" - } - - on { - reboot on argument:"date" - } - - status { - reboot status - } - - cancel { - reboot cancel - } diff --git a/level_3/controller/data/settings/tasks/system/shutdown.task b/level_3/controller/data/settings/tasks/system/shutdown.task deleted file mode 100644 index 9a51bd9..0000000 --- a/level_3/controller/data/settings/tasks/system/shutdown.task +++ /dev/null @@ -1,92 +0,0 @@ -# fss-000d -# -# Task for shutting down the system. - -setting: - name "Shutdown System" - environment PATH - script sh - -argument: - in time unit - on date - status - cancel - -help: - This task shuts down the system after stopping all controlled processes. - - When no parameters are specified, the shutdown happens immediately. - - The following parameters are available: - - in [time] [unit]: Shutdown after so many units of time have passed. - - on [date]: Shutdown when a given date and time is reached. - - status: Get the current state of the shutdown process. - - cancel: Cancel the current shutdown process, if active. - -help in: - Shutdown after a specified amount of time is reached. - - This acts as a timeout that begins immediately upon execution. - Once the timeout is reached, shutdown is performed. - - This command requires two additional parameters: - 1) A whole number representing the time. - 2) A unit of measurement, which must be one of: - - millisecond. - - second. - - minute. - - hour. - - day. - - week. - - month. - - year. - - gigatime. - - megatime. - - kilotime. - - decatime. - - time. - - gigaepochtime. - - megaepochtime. - - kiloepochtime. - - decaepochtime. - - epochtime. - -help on: - Shutdown when the specified date is reached. - - This acts as a trigger that waits for the given date and time of the system clock to be reached. - If the clock is changed to on or after the specified date, this trigger is executed. - - This command requires one additional parameter: - 1) A date in ISO-8601 format. - - The date must be in ISO-8601 format, which looks like: "2006-08-14T02:34:56-06:00". - The timezone offset is optional and if it is not provided, UTC is assumed. - TODO: support Time units and date times: "2017:0000", "2017::0000". - - Both shutdown "on" and shutdown "in" may be specified. - In which case the first one to happen will result in the shutdown. - -help status: - Get whether the shutdown is in progress or not and the current settings, if any. - -help cancel: - Cancel an existing shutdown process, if it is not too late. - -script: - in { - shutdown in argument:"time" argument:"unit" - } - - on { - shutdown on argument:"date" - } - - status { - shutdown status - } - - cancel { - shutdown cancel - } diff --git a/level_3/controller/documents/entry.txt b/level_3/controller/documents/entry.txt index 30abeae..9e3f660 100644 --- a/level_3/controller/documents/entry.txt +++ b/level_3/controller/documents/entry.txt @@ -13,10 +13,6 @@ Entry Documentation: All other Basic List Objects are not executed unless either an "item" or a "failsafe" specifies a valid Item name. Execution of all Items are top-down. - - The "task" item Object\: - Represents tasks that are available for calling by some control program. - Each task has a name and a path. - - The "setting" item Object\: Represents settings and is not an "item" that can be executed. A number of settings are supported, but if this Item Object is not specified, then defaults are used. diff --git a/level_3/controller/documents/task.txt b/level_3/controller/documents/task.txt deleted file mode 100644 index 2c7cac6..0000000 --- a/level_3/controller/documents/task.txt +++ /dev/null @@ -1,39 +0,0 @@ -# fss-0002 -# -# license: open-standard-license-1.0 -# -# A "Task" is not fully implemented but is provided as a proposal for consideration and is subject to completion or removal. -# Ideally, a task will be used to replace hardcoded "init" mode operations like "kexec", "reboot", and "shutdown". - -Task Documentation: - This describes the intent and purpose of a Task file. - - A Task file, such as "reboot.task", is intended to designate a command for a user-space program, such as "control", to execute. - - The Task file is read top-down, except for the reserved outer most lists "argument", "help", and "setting". - - Similar to a Rule Types, the Task file utilizes Task Types for performing the execution. - - Unlike a Rule Type, the Task Type names are represented by the arguments passed to the task. - - Each Task allows only a single execution instance. - - The task "controller" is reserved for use by the Controller program and provides special commands for manipulating the Controller program. - These are: - - exit: Stop the Controller program and activate the exit cycle. - - rule: Perform a Rule-specific operations, such as starting and stopping a Rule. ([stop|start|etc..] rule [rule_path] [rule_name]). - - status: Get information about the Controller, a Task, or a Rule. (status, status rule [rule_path] [rule_name], status task [task_path] [task_name]). - When [rule_path] or [task_path] is not specified, all Rules or Tasks already loaded with this name are used. - - The following reserved outer lists are available\: - - parameter. - - help. - - setting. - - The following Task Types are supported: - - Command. - - Script. - - Arguments describe parameters - - The help outer list represents the message returned when help is requested. -- 1.8.3.1