@@ -18,10 +18,12 @@ import (
18
18
"github.com/elastic/elastic-agent-libs/logp"
19
19
20
20
"github.com/elastic/elastic-agent/internal/pkg/agent/application/coordinator"
21
+ "github.com/elastic/elastic-agent/internal/pkg/agent/application/dispatcher"
21
22
"github.com/elastic/elastic-agent/internal/pkg/agent/application/info"
22
23
"github.com/elastic/elastic-agent/internal/pkg/agent/application/monitoring"
23
24
"github.com/elastic/elastic-agent/internal/pkg/agent/application/paths"
24
25
"github.com/elastic/elastic-agent/internal/pkg/agent/application/upgrade"
26
+ "github.com/elastic/elastic-agent/internal/pkg/agent/application/upgrade/details"
25
27
"github.com/elastic/elastic-agent/internal/pkg/agent/configuration"
26
28
"github.com/elastic/elastic-agent/internal/pkg/agent/errors"
27
29
"github.com/elastic/elastic-agent/internal/pkg/agent/storage"
@@ -34,6 +36,11 @@ import (
34
36
"github.com/elastic/elastic-agent/internal/pkg/fleetapi/acker/lazy"
35
37
"github.com/elastic/elastic-agent/internal/pkg/fleetapi/acker/retrier"
36
38
fleetclient "github.com/elastic/elastic-agent/internal/pkg/fleetapi/client"
39
+ << << << < HEAD
40
+ == == == =
41
+ otelmanager "github.com/elastic/elastic-agent/internal/pkg/otel/manager"
42
+ "github.com/elastic/elastic-agent/internal/pkg/queue"
43
+ >> >> >> > ff8047180 (fix : scheduled upgrade details state (#9562 ))
37
44
"github.com/elastic/elastic-agent/internal/pkg/release"
38
45
"github.com/elastic/elastic-agent/pkg/component"
39
46
"github.com/elastic/elastic-agent/pkg/component/runtime"
@@ -52,6 +59,11 @@ func New(
52
59
testingMode bool ,
53
60
fleetInitTimeout time.Duration ,
54
61
disableMonitoring bool ,
62
+ << << << < HEAD
63
+ == == == =
64
+ override CfgOverrider ,
65
+ initialUpgradeDetails * details.Details ,
66
+ >> >> >> > ff8047180 (fix : scheduled upgrade details state (#9562 ))
55
67
modifiers ...component .PlatformModifier ,
56
68
) (* coordinator.Coordinator , coordinator .ConfigManager , composable .Controller , error ) {
57
69
@@ -131,7 +143,6 @@ func New(
131
143
var compModifiers = []coordinator.ComponentsModifier {InjectAPMConfig }
132
144
var composableManaged bool
133
145
var isManaged bool
134
-
135
146
var actionAcker acker.Acker
136
147
if testingMode {
137
148
log .Info ("Elastic Agent has been started in testing mode and is managed through the control protocol" )
@@ -195,8 +206,19 @@ func New(
195
206
batchedAcker := lazy .NewAcker (fleetAcker , log , lazy .WithRetrier (retrier ))
196
207
actionAcker = stateStore .NewStateStoreActionAcker (batchedAcker , stateStorage )
197
208
209
+ actionQueue , err := queue .NewActionQueue (stateStorage .Queue (), stateStorage )
210
+ if err != nil {
211
+ return nil , nil , nil , fmt .Errorf ("unable to initialize action queue: %w" , err )
212
+ }
213
+
214
+ if initialUpgradeDetails == nil {
215
+ // initial upgrade details are nil (normally the caller supplies the ones from the marker file at this point),
216
+ // hence, extract any scheduled upgrade details from the action queue.
217
+ initialUpgradeDetails = dispatcher .GetScheduledUpgradeDetails (log , actionQueue .Actions (), time .Now ())
218
+ }
219
+
198
220
// TODO: stop using global state
199
- managed , err = newManagedConfigManager (ctx , log , agentInfo , cfg , store , runtime , fleetInitTimeout , paths .Top (), client , fleetAcker , actionAcker , retrier , stateStorage , upgrader )
221
+ managed , err = newManagedConfigManager (ctx , log , agentInfo , cfg , store , runtime , fleetInitTimeout , paths .Top (), client , fleetAcker , actionAcker , retrier , stateStorage , actionQueue , upgrader )
200
222
if err != nil {
201
223
return nil , nil , nil , err
202
224
}
@@ -210,7 +232,15 @@ func New(
210
232
return nil , nil , nil , errors .New (err , "failed to initialize composable controller" )
211
233
}
212
234
235
+ << << << < HEAD
213
236
coord := coordinator .New (log , cfg , logLevel , agentInfo , specs , reexec , upgrader , runtime , configMgr , varsManager , caps , monitor , isManaged , actionAcker , compModifiers ... )
237
+ == == == =
238
+ otelManager , err := otelmanager .NewOTelManager (log .Named ("otel_manager" ), logLevel , baseLogger , otelmanager .EmbeddedExecutionMode , agentInfo , monitor .ComponentMonitoringConfig )
239
+ if err != nil {
240
+ return nil , nil , nil , fmt .Errorf ("failed to create otel manager: %w" , err )
241
+ }
242
+ coord := coordinator .New (log , cfg , logLevel , agentInfo , specs , reexec , upgrader , runtime , configMgr , varsManager , caps , monitor , isManaged , otelManager , actionAcker , initialUpgradeDetails , compModifiers ... )
243
+ >> >> >> > ff8047180 (fix : scheduled upgrade details state (#9562 ))
214
244
if managed != nil {
215
245
// the coordinator requires the config manager as well as in managed-mode the config manager requires the
216
246
// coordinator, so it must be set here once the coordinator is created
0 commit comments