sysmgr-1 - API for controlling overall system state
#include <rad/client/1/sysmgr.h> cc [ flag... ] file... -lsysmgr1_client [ library... ] interface SystemManager rc_err_t sysmgr_SystemManager_beginMaintenance(rc_instance_t *inst, sysmgr_Maintenance_t *typeref, sysmgr_Error_t **error); rc_err_t sysmgr_SystemManager_listMaintenance(rc_instance_t *inst, sysmgr_Maintenance_t ***result, int *result_cnt, sysmgr_Error_t **error); rc_err_t sysmgr_SystemManager_endMaintenance(rc_instance_t *inst, const char *type, sysmgr_Error_t **error); Enumerated Types enum ErrorDomain typedef enum sysmgr_ErrorDomain { SED_SYSTEM = 0, SED_ZONECFG = 1, } sysmgr_ErrorDomain_t; Structured Types struct Errno typedef struct sysmgr_Errno sysmgr_Errno_t; struct sysmgr_Errno { sysmgr_ErrorDomain_t se_domain; int se_errno; }; void sysmgr_Errno_free(sysmgr_Errno_t *in); struct Error typedef struct sysmgr_Error sysmgr_Error_t; struct sysmgr_Error { sysmgr_Errno_t *se_err; char *se_str; }; void sysmgr_Error_free(sysmgr_Error_t *in); struct Maintenance typedef struct sysmgr_Maintenance sysmgr_Maintenance_t; struct sysmgr_Maintenance { char *sm_type; char *sm_user; struct timespec sm_timestamp; char *sm_message; }; void sysmgr_Maintenance_free(sysmgr_Maintenance_t *in);
SYSMGR-1(3rad) RAD Module Definitions SYSMGR-1(3rad) NAME sysmgr - API for controlling overall system state SYNOPSIS #include <rad/client/1/sysmgr.h> cc [ flag... ] file... -lsysmgr1_client [ library... ] interface SystemManager rc_err_t sysmgr_SystemManager_beginMaintenance(rc_instance_t *inst, sysmgr_Maintenance_t *typeref, sysmgr_Error_t **error); rc_err_t sysmgr_SystemManager_listMaintenance(rc_instance_t *inst, sysmgr_Maintenance_t ***result, int *result_cnt, sysmgr_Error_t **error); rc_err_t sysmgr_SystemManager_endMaintenance(rc_instance_t *inst, const char *type, sysmgr_Error_t **error); Enumerated Types enum ErrorDomain typedef enum sysmgr_ErrorDomain { SED_SYSTEM = 0, SED_ZONECFG = 1, } sysmgr_ErrorDomain_t; Structured Types struct Errno typedef struct sysmgr_Errno sysmgr_Errno_t; struct sysmgr_Errno { sysmgr_ErrorDomain_t se_domain; int se_errno; }; void sysmgr_Errno_free(sysmgr_Errno_t *in); struct Error typedef struct sysmgr_Error sysmgr_Error_t; struct sysmgr_Error { sysmgr_Errno_t *se_err; char *se_str; }; void sysmgr_Error_free(sysmgr_Error_t *in); struct Maintenance typedef struct sysmgr_Maintenance sysmgr_Maintenance_t; struct sysmgr_Maintenance { char *sm_type; char *sm_user; struct timespec sm_timestamp; char *sm_message; }; void sysmgr_Maintenance_free(sysmgr_Maintenance_t *in); DESCRIPTION API com.oracle.solaris.rad.sysmgr [1] This API provides functionality for controlling overall system state. INTERFACES interface SystemManager Manage the operating system instance SystemManager Methods rc_err_t sysmgr_SystemManager_beginMaintenance(rc_instance_t *inst, sysmgr_Maintenance_t *typeref, sysmgr_Error_t **error); Initiate a maintenance mode If the maintenance type is "admin", then any zones evacuation state is cleared. While in this maintenance mode, zones cannot be attached or booted (including migrations into the system). No other maintenance types are currently supported. Arguments: inst -- RAD instance typeref -- The maintenance data The caller should populate .user (typically a UNIX username, but the value is freeform). The timestamp will be automatically generated. error rc_err_t sysmgr_SystemManager_listMaintenance(rc_instance_t *inst, sysmgr_Maintenance_t ***result, int *result_cnt, sysmgr_Error_t **error); List enabled maintenance modes Arguments: inst -- RAD instance result result_cnt -- Number of items in result array error rc_err_t sysmgr_SystemManager_endMaintenance(rc_instance_t *inst, const char *type, sysmgr_Error_t **error); End a maintenance mode. Arguments: inst -- RAD instance type -- The type of maintenance to end error SystemManager Retrieve rc_err_t sysmgr_SystemManager__rad_get_name(adr_name_t **result, int n, ...); Obtain RAD name of a SystemManager object. Arguments: result -- RAD name n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t sysmgr_SystemManager__rad_lookup(rc_conn_t *c, boolean_t strict, rc_instance_t **result, int n, ...); Lookup a SystemManager instance. Construct a RAD name for the interface based on the provided key-value pairs and perform a lookup. If successful, instance reference is returned in the result. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning result -- RAD instance n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key rc_err_t sysmgr_SystemManager__rad_list(rc_conn_t *c, boolean_t strict, adr_pattern_scheme_t scheme, adr_name_t ***result, int *result_count, int n, ...); List RAD names of a available SystemManager instances. Returns an array and array size of matching object names. Arguments: c -- RAD connection handle strict -- Strict (B_TRUE) or relaxed (B_FALSE) versioning scheme -- Apply glob (NS_GLOB) or regex (NS_REGEX) matching result -- Array of RAD names result_count -- Number of names in result array n -- Number of key-value pairs provided as variadic arguments ... -- Optional key-value pairs that compose the primary key ENUMERATED TYPES enum ErrorDomain -- Type of error number typedef enum sysmgr_ErrorDomain { SED_SYSTEM = 0, SED_ZONECFG = 1, } sysmgr_ErrorDomain_t; SED_SYSTEM (0) -- As per strerror() SED_ZONECFG (1) -- As per zonecfg_strerror() STRUCTURED TYPES struct Errno -- Error number description typedef struct sysmgr_Errno sysmgr_Errno_t; struct sysmgr_Errno { sysmgr_ErrorDomain_t se_domain; int se_errno; }; void sysmgr_Errno_free(sysmgr_Errno_t *in); Fields: se_domain se_errno struct Error -- An error occurred for the given operation typedef struct sysmgr_Error sysmgr_Error_t; struct sysmgr_Error { sysmgr_Errno_t *se_err; char *se_str; }; void sysmgr_Error_free(sysmgr_Error_t *in); Note that the error string includes any expanded strerror() equivalent. Fields: se_err se_str struct Maintenance -- A maintenance mode typedef struct sysmgr_Maintenance sysmgr_Maintenance_t; struct sysmgr_Maintenance { char *sm_type; char *sm_user; struct timespec sm_timestamp; char *sm_message; }; void sysmgr_Maintenance_free(sysmgr_Maintenance_t *in); Fields: sm_type -- The type of maintenance sm_user -- The user who set the mode sm_timestamp -- Time the mode was set, in seconds since the epoch sm_message -- Free-form message used to indicate reason for maintenance. VERSION 1.0 ATTRIBUTES See attributes(7) for descriptions of the following attributes: +--------------------+-----------------------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +--------------------+-----------------------------------------+ |Availability | system/management/rad/module/rad-sysmgr | +--------------------+-----------------------------------------+ |Interface Stability | Private | +--------------------+-----------------------------------------+ SEE ALSO rad(8) NOTES 1. Accessing Python documentation for this module: $ pydoc rad.bindings.com.oracle.solaris.rad.sysmgr_1 Solaris 11.4 2017-02-01 SYSMGR-1(3rad)