@@ -50,16 +50,11 @@ func NewService(ctx context.Context, session session.Session, bus event.Bus, cli
5050 return nil , err
5151 }
5252
53- deployments , err := client . Deployments ( )
53+ deployments , err := findDeployments ( ctx , log , client , session )
5454 if err != nil {
55- log .Error ("fetching deployments" , "err" , err )
5655 sub .Close ()
5756 return nil , err
5857 }
59- log .Info ("found managed deployments" , "count" , len (deployments ))
60- for _ , deployment := range deployments {
61- log .Debug ("deployment" , "lease" , deployment .LeaseID (), "mgroup" , deployment .ManifestGroup ().Name )
62- }
6358
6459 inventory , err := newInventoryService (config , log , lc .ShuttingDown (), sub , client , deployments )
6560 if err != nil {
@@ -262,3 +257,45 @@ func (s *service) teardownLease(lid types.LeaseID) {
262257 s .log .Error ("tearing down lease deployment" , "err" , err , "lease" , lid )
263258 }
264259}
260+
261+ func findDeployments (ctx context.Context , log log.Logger , client Client , session session.Session ) ([]Deployment , error ) {
262+ deployments , err := client .Deployments ()
263+ if err != nil {
264+ log .Error ("fetching deployments" , "err" , err )
265+ return nil , err
266+ }
267+
268+ leaseList , err := session .Query ().Leases (ctx )
269+ if err != nil {
270+ log .Error ("fetching deployments" , "err" , err )
271+ return nil , err
272+ }
273+
274+ leases := make (map [string ]* types.Lease , len (leaseList .Items ))
275+ for _ , lease := range leaseList .Items {
276+ if ! lease .Provider .Equal (session .Provider ().Address ) {
277+ continue
278+ }
279+ if lease .State != types .Lease_ACTIVE {
280+ continue
281+ }
282+ leases [lease .Path ()] = lease
283+ }
284+
285+ log .Info ("found leases" , "num-active" , len (leases ), "num-skipped" , len (leaseList .Items )- len (leases ))
286+
287+ dcount := len (deployments )
288+ for idx , deployment := range deployments {
289+ if _ , ok := leases [deployment .LeaseID ().Path ()]; ! ok {
290+ continue
291+ }
292+
293+ deployments = append (deployments [:idx ], deployments [idx + 1 :]... )
294+
295+ log .Debug ("deployment" , "lease" , deployment .LeaseID (), "mgroup" , deployment .ManifestGroup ().Name )
296+ }
297+
298+ log .Info ("found deployments" , "num-active" , len (deployments ), "num-skipped" , dcount - len (deployments ))
299+
300+ return deployments , nil
301+ }
0 commit comments