Implement Controller interface methods
(ctx context.Context, blockMeta waveobj.MetaMapType, rtOpts *waveobj.RuntimeOpts, force bool)
| 83 | // Implement Controller interface methods |
| 84 | |
| 85 | func (sc *ShellController) Start(ctx context.Context, blockMeta waveobj.MetaMapType, rtOpts *waveobj.RuntimeOpts, force bool) error { |
| 86 | // Get the block data |
| 87 | blockData, err := wstore.DBMustGet[*waveobj.Block](ctx, sc.BlockId) |
| 88 | if err != nil { |
| 89 | return fmt.Errorf("error getting block: %w", err) |
| 90 | } |
| 91 | |
| 92 | // Use the existing run method which handles all the start logic |
| 93 | go sc.run(ctx, blockData, blockData.Meta, rtOpts, force) |
| 94 | return nil |
| 95 | } |
| 96 | |
| 97 | func (sc *ShellController) Stop(graceful bool, newStatus string, destroy bool) { |
| 98 | sc.Lock.Lock() |