MCPcopy Index your code
hub / github.com/devspace-sh/devspace / execute

Method execute

pkg/devspace/hook/remote_hook.go:75–115  ·  view source on GitHub ↗
(ctx devspacecontext.Context, hook *latest.HookConfig, imageSelector []imageselector.ImageSelector)

Source from the content-addressed store, hash-verified

73}
74
75func (r *remoteHook) execute(ctx devspacecontext.Context, hook *latest.HookConfig, imageSelector []imageselector.ImageSelector) (bool, error) {
76 labelSelector := ""
77 if len(hook.Container.LabelSelector) > 0 {
78 labelSelector = labels.Set(hook.Container.LabelSelector).String()
79 }
80
81 timeout := int64(150)
82 if hook.Container.Timeout > 0 {
83 timeout = hook.Container.Timeout
84 }
85
86 wait := false
87 if hook.Container.Wait == nil || *hook.Container.Wait {
88 ctx.Log().Infof("Waiting for running containers for hook '%s'", ansi.Color(hookName(hook), "white+b"))
89 wait = true
90 }
91
92 // build target selector
93 targetSelectorOptions := targetselector.NewOptionsFromFlags(hook.Container.ContainerName, labelSelector, targetselector.ToStringImageSelector(imageSelector), hook.Container.Namespace, hook.Container.Pod).
94 WithTimeout(timeout).
95 WithWait(wait).
96 WithWaitingStrategy(r.WaitingStrategy)
97
98 // select container
99 podContainer, err := targetselector.NewTargetSelector(targetSelectorOptions).SelectSingleContainer(ctx.Context(), ctx.KubeClient(), ctx.Log())
100 if err != nil {
101 if _, ok := err.(*targetselector.NotFoundErr); ok {
102 return false, nil
103 }
104
105 return false, err
106 }
107
108 // execute the hook in the container
109 err = r.Hook.ExecuteRemotely(ctx, hook, podContainer)
110 if err != nil {
111 return false, err
112 }
113
114 return true, nil
115}

Callers 1

ExecuteMethod · 0.95

Calls 15

NewOptionsFromFlagsFunction · 0.92
ToStringImageSelectorFunction · 0.92
NewTargetSelectorFunction · 0.92
hookNameFunction · 0.85
WithWaitingStrategyMethod · 0.80
WithWaitMethod · 0.80
WithTimeoutMethod · 0.80
LogMethod · 0.65
SelectSingleContainerMethod · 0.65
ContextMethod · 0.65
KubeClientMethod · 0.65
ExecuteRemotelyMethod · 0.65

Tested by

no test coverage detected