Documentation
¶
Overview ¶
Copyright © 2020 Marvin
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright © 2020 Marvin ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright © 2020 Marvin ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright © 2020 Marvin ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright © 2020 Marvin ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright © 2020 Marvin ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright © 2020 Marvin ¶
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
Constants ¶
const ( SystemdScopeSystem = "system" SystemdScopeUser = "user" SystemdScopeGlobal = "global" )
scope can be either "system", "user" or "global"
const ( // UserActionAdd UserActionAdd = "add" UserActionDel = "del" )
const ( // DefaultSystemdSleepTime unit: seconds DefaultSystemdSleepTime = 1 // DefaultSystemdExecuteTimeout unit: seconds DefaultSystemdExecuteTimeout = 60 )
Variables ¶
var ( ErrUserAddFailed = errNSUser.NewType("user_add_failed") ErrUserDeleteFailed = errNSUser.NewType("user_delete_failed") )
Functions ¶
func Retry ¶
func Retry(doFunc func() error, opts ...RetryOption) error
Retry retries the func until it returns no error or reaches attempts limit or timed out, either one is earlier
Types ¶
type LaunchdModule ¶
type LaunchdModule struct {
// contains filtered or unexported fields
}
LaunchdModule is the module used to control systemd units
func NewLaunchdModule ¶
func NewLaunchdModule(config LaunchdModuleConfig) *LaunchdModule
NewLaunchdModule builds and returns a LaunchdModule object base on given config.
type LaunchdModuleConfig ¶
type LaunchdModuleConfig struct {
Unit string // the name of systemd unit(s)
Action string // the action to perform with the unit
Timeout time.Duration // timeout to execute the command
SystemdMode string
}
LaunchdModuleConfig is the configurations used to initialize a LaunchdModule
type RetryOption ¶
RetryOption is options for Retry()
type ShellModule ¶
type ShellModule struct {
// contains filtered or unexported fields
}
ShellModule is the module used to control systemd units
func NewShellModule ¶
func NewShellModule(config ShellModuleConfig) *ShellModule
NewShellModule builds and returns a ShellModule object base on given config.
type ShellModuleConfig ¶
type ShellModuleConfig struct {
Command string // the command to run
Sudo bool // whether use root privilege to run the command
Chdir string // change working directory before running the command
UseShell bool // whether use shell to invoke the command
}
ShellModuleConfig is the configurations used to initialize
type SystemdModule ¶
type SystemdModule struct {
// contains filtered or unexported fields
}
SystemdModule is the module used to control systemd units
func NewSystemdModule ¶
func NewSystemdModule(config SystemdModuleConfig) *SystemdModule
NewSystemdModule builds and returns a SystemdModule object base on given config.
type SystemdModuleConfig ¶
type SystemdModuleConfig struct {
Unit string // the name of systemd unit(s)
Action string // the action to perform with the unit
ReloadDaemon bool // run daemon-reload before other actions
CheckActive bool // run is-active before action
Scope string // user, system or global
Force bool // add the `--force` arg to systemctl command
Signal string // specify the signal to send to process
Timeout time.Duration // timeout to execute the command
SystemdMode string
}
SystemdModuleConfig is the configurations used to initialize a SystemdModule
type UserModule ¶
type UserModule struct {
// contains filtered or unexported fields
}
UserModule is the module used to control systemd units
func NewUserModule ¶
func NewUserModule(config UserModuleConfig) *UserModule
type UserModuleConfig ¶
type UserModuleConfig struct {
Action string // Create, delete or change users
Name string // username
Group string // user group
Home string // user home
Shell string // user login shell
Sudoer bool // When true, the user will be added to the sudoers list
}
UserModuleConfig is the configuration used to initialize UserModule
type WaitFor ¶
type WaitFor struct {
// contains filtered or unexported fields
}
WaitFor is the module used to wait for some condition.
type WaitForConfig ¶
type WaitForConfig struct {
OS string // OS version
Port int // Port number to poll.
Sleep time.Duration // Duration to sleep between checks, default 1 second.
// Choices:
// started
// stopped
// When checking a port started will ensure the port is open, stopped will check that it is closed
State string
Timeout time.Duration // Maximum duration to wait for.
}
WaitForConfig is the configurations of WaitFor module.