Admin Service
This service provides a handle to admin related APIs which currently has logging related APIs.
Creation of Admin Service
To create Admin client
- Typescript
-
source
const adminService: AdminService = await AdminService()
Usages of Admin Service
Type definitions for all Admin Service methods can be found here.
Fetching LogMetadata & Setting log level
For instance, we need logging configuration to be known before setting log level of a component if it is not set to desired log level.
Type definitions for getLogMetadata can be found here. Type definitions for setLogLevel can be found here.
In the given example, we want to set ERROR log level for the component if it’s not already set to ERROR.
- Typescript
-
source
const prefix = new Prefix('TCS', 'filter.wheel') const componentId = new ComponentId(prefix, 'HCD') const logMetaData: LogMetadata = await adminService.getLogMetadata(componentId) if (logMetaData.componentLevel !== 'ERROR') { const actionStatus: Done = await adminService.setLogLevel(componentId, 'ERROR') }
Component & Container level actions
Admin actions like restarting, shutting down or making component(HCD, Assembly) or container to go online/offline are provided in Admin Service. Following examples represents admin actions provided on Admin Service.
Type definitions for restart can be found here. Type definitions for shutdown can be found here. Type definitions for goOffline can be found here. Type definitions for goOnline can be found here.
- Typescript
-
source
const restartResponse: Done = await adminService.restart(componentId) const shutdownResponse: Done = await adminService.shutdown(componentId) const goOfflineResponse: Done = await adminService.goOffline(componentId) const goOnlineResponse: Done = await adminService.goOnline(componentId)
Querying lifecycle states of Component & Container
Component(HCD, Assembly) lifecycle states are queried using getComponentLifecycleState API Method.
Container lifecycle state is queried using getContainerLifecycleState API Method.
Following examples shows how to make use of these API’s.
Type definitions for getContainerLifecycleState can be found here Type definitions for getComponentLifecycleState can be found here
- Typescript
-
source
// component lifecycle state const response: Done = await adminService.goOnline(componentId) if (response === 'Done') { const state: SupervisorLifecycleState = await adminService.getComponentLifecycleState(componentId) switch (state) { case 'Idle': break case 'Running': break case 'Shutdown': break default: console.log('unhandled state') } } // container lifecycle state const containerPrefix = Prefix.fromString('ESW.container1') const state: ContainerLifecycleState = await adminService.getContainerLifecycleState(containerPrefix) switch (state) { case 'Idle': break case 'Running': break }