@@ -2,9 +2,8 @@ package yandex
22
33import (
44 "context"
5- "github.com/cherts/pgscv/internal/discovery/filter"
6-
75 "github.com/cherts/pgscv/discovery/log"
6+ "github.com/cherts/pgscv/internal/discovery/filter"
87 "github.com/yandex-cloud/go-genproto/yandex/cloud/mdb/postgresql/v1"
98)
109
@@ -39,17 +38,21 @@ type Cluster struct {
3938// GetPostgreSQLClusters get a filtered list of clusters and their databases from Yandex cloud API
4039func (sdk * SDK ) GetPostgreSQLClusters (ctx context.Context , folderID string , filter []filter.Filter ) ([]Cluster , error ) {
4140 log .Debug ("[Yandex.Cloud SD] Init SDK..." )
41+
4242 yandexSdk , err := sdk .Build (ctx )
4343 if err != nil {
4444 log .Errorf ("[Yandex.Cloud SD] Failed to init SDK, error: %v" , err )
4545 return nil , err
4646 }
4747
48+ ctxOp , cancel := context .WithCancel (ctx )
49+ defer cancel ()
50+
4851 var clusters []Cluster
4952 var req postgresql.ListClustersRequest
5053 req .FolderId = folderID
5154 for {
52- resp , err := yandexSdk .MDB ().PostgreSQL ().Cluster ().List (ctx , & req )
55+ resp , err := yandexSdk .MDB ().PostgreSQL ().Cluster ().List (ctxOp , & req )
5356 if err != nil {
5457 log .Errorf ("[Yandex.Cloud SD] Failed to get cluster list, error: %v" , err )
5558 return nil , err
@@ -74,7 +77,7 @@ func (sdk *SDK) GetPostgreSQLClusters(ctx context.Context, folderID string, filt
7477 }
7578 var hosts []Host
7679 var databases []Database
77- hostsIterator := yandexSdk .MDB ().PostgreSQL ().Cluster ().ClusterHostsIterator (ctx ,
80+ hostsIterator := yandexSdk .MDB ().PostgreSQL ().Cluster ().ClusterHostsIterator (ctxOp ,
7881 & postgresql.ListClusterHostsRequest {ClusterId : cluster .Id })
7982 for hostsIterator .Next () {
8083 host := hostsIterator .Value ()
@@ -92,7 +95,7 @@ func (sdk *SDK) GetPostgreSQLClusters(ctx context.Context, folderID string, filt
9295 var dbReq postgresql.ListDatabasesRequest
9396 dbReq .ClusterId = cluster .Id
9497 for {
95- dbResp , err := yandexSdk .MDB ().PostgreSQL ().Database ().List (ctx ,
98+ dbResp , err := yandexSdk .MDB ().PostgreSQL ().Database ().List (ctxOp ,
9699 & dbReq )
97100 if err != nil {
98101 return nil , err
0 commit comments