This section is empty.


This section is empty.


func Base64HookArgs

func Base64HookArgs(match []string, debugAt string) string

Base64HookArgs returns the encoded arguments for defining debug-hook behavior. This is a base64 encoded yaml blob containing serialized arguments.

func ClientScript

func ClientScript(c *HooksContext, match []string, debugAt string) string

ClientScript returns a bash script suitable for executing on the unit system to intercept matching hooks or actions via tmux shell.


type HooksContext

type HooksContext struct {
	Unit     string
	FlockDir string

func NewHooksContext

func NewHooksContext(unitName string) *HooksContext

func (*HooksContext) ClientExitFileLock

func (c *HooksContext) ClientExitFileLock() string

func (*HooksContext) ClientFileLock

func (c *HooksContext) ClientFileLock() string

func (*HooksContext) FindSession

func (c *HooksContext) FindSession() (*ServerSession, error)

FindSession attempts to find a debug hooks session for the unit specified in the context, and returns a new ServerSession structure for it.

type ServerSession

type ServerSession struct {
	// contains filtered or unexported fields

ServerSession represents a "juju debug-hooks" session.

func (*ServerSession) DebugAt

func (s *ServerSession) DebugAt() string

DebugAt returns the location for the charm to stop for debugging, if it is set.

func (*ServerSession) MatchHook

func (s *ServerSession) MatchHook(hookName string) bool

MatchHook returns true if the specified hook name matches the hook specified by the debug-hooks client.

func (*ServerSession) RunHook

func (s *ServerSession) RunHook(hookName, charmDir string, env []string, hookRunner string) error

RunHook "runs" the hook with the specified name via debug-hooks. The hookRunner parameters specifies the name of the binary that users can invoke to handle the hook. When using the legacy hook system, hookRunner will be equal to the hookName; otherwise, it will point to a script that acts as the dispatcher for all hooks/actions.