@@ -10,6 +10,7 @@ import (
1010 "github.com/crc-org/crc/v2/pkg/crc/machine/state"
1111 "github.com/crc-org/crc/v2/pkg/crc/machine/types"
1212 crcPreset "github.com/crc-org/crc/v2/pkg/crc/preset"
13+ "github.com/crc-org/crc/v2/pkg/events"
1314)
1415
1516const startCancelTimeout = 15 * time .Second
@@ -69,6 +70,10 @@ func (s *Synchronized) Delete() error {
6970
7071 err := s .underlying .Delete ()
7172 s .syncOperationDone <- Deleting
73+
74+ if err == nil {
75+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Novm })
76+ }
7277 return err
7378}
7479
@@ -80,6 +85,7 @@ func (s *Synchronized) prepareStart(startCancel context.CancelFunc) error {
8085 }
8186 s .startCancel = startCancel
8287 s .currentState = Starting
88+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Starting })
8389
8490 return nil
8591}
@@ -92,6 +98,13 @@ func (s *Synchronized) Start(ctx context.Context, startConfig types.StartConfig)
9298
9399 startResult , err := s .underlying .Start (ctx , startConfig )
94100 s .syncOperationDone <- Starting
101+
102+ if err == nil {
103+ events .StatusChanged .Fire (events.StatusChangedEvent {State : startResult .Status })
104+ } else {
105+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Error , Error : err })
106+ }
107+
95108 return startResult , err
96109}
97110
@@ -136,10 +149,16 @@ func (s *Synchronized) Stop() (state.State, error) {
136149 if err := s .prepareStopDelete (Stopping ); err != nil {
137150 return state .Error , err
138151 }
152+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Stopping })
139153
140154 st , err := s .underlying .Stop ()
141155 s .syncOperationDone <- Stopping
142156
157+ if err == nil {
158+ events .StatusChanged .Fire (events.StatusChangedEvent {State : st })
159+ } else {
160+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Error , Error : err })
161+ }
143162 return st , err
144163}
145164
@@ -160,7 +179,14 @@ func (s *Synchronized) ConnectionDetails() (*types.ConnectionDetails, error) {
160179}
161180
162181func (s * Synchronized ) PowerOff () error {
163- return s .underlying .PowerOff ()
182+ err := s .underlying .PowerOff ()
183+ if err != nil {
184+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Stopped })
185+ } else {
186+ events .StatusChanged .Fire (events.StatusChangedEvent {State : state .Error , Error : err })
187+ }
188+
189+ return err
164190}
165191
166192func (s * Synchronized ) Status () (* types.ClusterStatusResult , error ) {
0 commit comments