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)