(originalContext devspacecontext.Context, devPodConfig *latest.DevPod, options Options)
| 157 | } |
| 158 | |
| 159 | func (d *devPodManager) Start(originalContext devspacecontext.Context, devPodConfig *latest.DevPod, options Options) (*devPod, error) { |
| 160 | lock := d.lockFactory.GetLock(devPodConfig.Name) |
| 161 | lock.Lock() |
| 162 | defer lock.Unlock() |
| 163 | |
| 164 | var dp *devPod |
| 165 | d.m.Lock() |
| 166 | dp = d.devPods[devPodConfig.Name] |
| 167 | if dp != nil { |
| 168 | select { |
| 169 | case <-dp.Done(): |
| 170 | default: |
| 171 | d.m.Unlock() |
| 172 | return nil, DevPodAlreadyExists{} |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | // create a new dev pod |
| 177 | dp = newDevPod() |
| 178 | d.devPods[devPodConfig.Name] = dp |
| 179 | d.m.Unlock() |
| 180 | |
| 181 | // create a DevPod logger |
| 182 | prefix := "dev:" + devPodConfig.Name + " " |
| 183 | unionLogger := originalContext.Log().WithPrefix(prefix).WithSink(logpkg.GetDevPodFileLogger(prefix)) |
| 184 | |
| 185 | // start the dev pod |
| 186 | err := dp.Start(originalContext.WithLogger(unionLogger), devPodConfig, options) |
| 187 | if err != nil { |
| 188 | return nil, err |
| 189 | } |
| 190 | |
| 191 | return dp, nil |
| 192 | } |
| 193 | |
| 194 | func (d *devPodManager) Reset(ctx devspacecontext.Context, name string, options *deploy.PurgeOptions) error { |
| 195 | lock := d.lockFactory.GetLock(name) |
no test coverage detected