Add service stopped state
This commit is contained in:
29
app/classes/state/os/ServiceStoppedState.js
Normal file
29
app/classes/state/os/ServiceStoppedState.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const State = require('../State')
|
||||
|
||||
class ServiceStoppedState extends State {
|
||||
constructor(host, config) {
|
||||
if ( !host.services ) {
|
||||
throw new Error(`Cannot apply service stopped state to host ${host.name}: missing service manager API.`)
|
||||
}
|
||||
super(host, config)
|
||||
}
|
||||
|
||||
async reverse() {
|
||||
const services = Array.isArray(this._config.service) ? this._config.service : [this._config.service]
|
||||
return this._host.services.start(...services)
|
||||
}
|
||||
|
||||
async check() {
|
||||
const services = Array.isArray(this._config.service) ? this._config.service : [this._config.service]
|
||||
let states = await this._host.services.status(...services)
|
||||
if ( !Array.isArray(states) ) states = [states]
|
||||
return !states.some(x => x.status === 'running')
|
||||
}
|
||||
|
||||
async apply() {
|
||||
const services = Array.isArray(this._config.service) ? this._config.service : [this._config.service]
|
||||
return this._host.services.stop(...services)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = ServiceStoppedState
|
||||
Reference in New Issue
Block a user