@@ -125,6 +125,29 @@ func (sp *serverlessProvider) deleteProject(project *serverless.Project, options
125125 return sp .client .DeleteProject (project )
126126}
127127
128+ func (sp * serverlessProvider ) currentProjectWithClientsAndFleetEndpoint (config Config ) (* serverless.Project , error ) {
129+ project , err := sp .currentProject (config )
130+ if err != nil {
131+ return nil , err
132+ }
133+
134+ err = sp .createClients (project )
135+ if err != nil {
136+ return nil , err
137+ }
138+
139+ fleetURL , found := config .Parameters [paramServerlessFleetURL ]
140+ if ! found {
141+ fleetURL , err = project .DefaultFleetServerURL (sp .kibanaClient )
142+ if err != nil {
143+ return nil , fmt .Errorf ("failed to get fleet URL: %w" , err )
144+ }
145+ }
146+ project .Endpoints .Fleet = fleetURL
147+
148+ return project , nil
149+ }
150+
128151func (sp * serverlessProvider ) currentProject (config Config ) (* serverless.Project , error ) {
129152 projectID , found := config .Parameters [paramServerlessProjectID ]
130153 if ! found {
@@ -147,20 +170,6 @@ func (sp *serverlessProvider) currentProject(config Config) (*serverless.Project
147170 project .Credentials .Username = config .ElasticsearchUsername
148171 project .Credentials .Password = config .ElasticsearchPassword
149172
150- err = sp .createClients (project )
151- if err != nil {
152- return nil , err
153- }
154-
155- fleetURL := config .Parameters [paramServerlessFleetURL ]
156- if true {
157- fleetURL , err = project .DefaultFleetServerURL (sp .kibanaClient )
158- if err != nil {
159- return nil , fmt .Errorf ("failed to get fleet URL: %w" , err )
160- }
161- }
162- project .Endpoints .Fleet = fleetURL
163-
164173 return project , nil
165174}
166175
@@ -246,16 +255,11 @@ func (sp *serverlessProvider) BootUp(options Options) error {
246255 return fmt .Errorf ("failed to create deployment: %w" , err )
247256 }
248257
249- project , err = sp .currentProject (config )
258+ project , err = sp .currentProjectWithClientsAndFleetEndpoint (config )
250259 if err != nil {
251260 return fmt .Errorf ("failed to retrieve latest project created: %w" , err )
252261 }
253262
254- err = sp .createClients (project )
255- if err != nil {
256- return err
257- }
258-
259263 logger .Infof ("Creating agent policy" )
260264 err = project .CreateAgentPolicy (options .StackVersion , sp .kibanaClient )
261265 if err != nil {
@@ -327,9 +331,12 @@ func (sp *serverlessProvider) TearDown(options Options) error {
327331 return fmt .Errorf ("failed to load configuration: %w" , err )
328332 }
329333
334+ var errs error
335+
330336 err = sp .destroyLocalAgent ()
331337 if err != nil {
332- return fmt .Errorf ("failed to destroy local agent: %w" , err )
338+ logger .Errorf ("failed to destroy local agent: %v" , err )
339+ errs = fmt .Errorf ("failed to destroy local agent: %w" , err )
333340 }
334341
335342 project , err := sp .currentProject (config )
@@ -341,11 +348,13 @@ func (sp *serverlessProvider) TearDown(options Options) error {
341348
342349 err = sp .deleteProject (project , options )
343350 if err != nil {
344- return fmt .Errorf ("failed to delete project: %w" , err )
351+ logger .Errorf ("failed to delete project: %v" , err )
352+ errs = errors .Join (errs , fmt .Errorf ("failed to delete project: %w" , err ))
345353 }
354+ logger .Infof ("Project %s (%s) deleted" , project .Name , project .ID )
346355
347356 // TODO: if GeoIP database is specified, remove the geoip Bundle (if needed)
348- return nil
357+ return errs
349358}
350359
351360func (sp * serverlessProvider ) destroyLocalAgent () error {
@@ -377,7 +386,7 @@ func (sp *serverlessProvider) Status(options Options) ([]ServiceStatus, error) {
377386 return nil , fmt .Errorf ("failed to load configuration: %w" , err )
378387 }
379388
380- project , err := sp .currentProject (config )
389+ project , err := sp .currentProjectWithClientsAndFleetEndpoint (config )
381390 if errors .Is (serverless .ErrProjectNotExist , err ) {
382391 return nil , nil
383392 }
0 commit comments