diff --git a/pkg/inventory/inventory.go b/pkg/inventory/inventory.go index c572495d..9c7f0f60 100644 --- a/pkg/inventory/inventory.go +++ b/pkg/inventory/inventory.go @@ -21,7 +21,6 @@ import ( "github.com/projectdiscovery/cloudlist/pkg/providers/scaleway" "github.com/projectdiscovery/cloudlist/pkg/providers/terraform" "github.com/projectdiscovery/cloudlist/pkg/schema" - "github.com/projectdiscovery/gologger" ) // Inventory is an inventory of providers @@ -38,11 +37,9 @@ func New(options schema.Options) (*Inventory, error) { if !ok { continue } - id, _ := block.GetMetadata("id") provider, err := nameToProvider(value, block) if err != nil { - gologger.Warning().Msgf("Could not initialize provider %s %s: %s\n", value, id, err) - continue + return nil, fmt.Errorf("could not create provider %s: %s", value, err) } inventory.Providers = append(inventory.Providers, provider) } diff --git a/pkg/providers/gcp/auth.go b/pkg/providers/gcp/auth.go index 5a84cb85..b49071d9 100644 --- a/pkg/providers/gcp/auth.go +++ b/pkg/providers/gcp/auth.go @@ -47,7 +47,7 @@ func register(ctx context.Context, data []byte) (option.ClientOption, error) { // Authenticate with the token // If it's nil use Google ADC - err = rest.RegisterAuthProviderPlugin(googleAuthPlugin, + _ = rest.RegisterAuthProviderPlugin(googleAuthPlugin, func(clusterAddress string, config map[string]string, persister rest.AuthProviderConfigPersister) (rest.AuthProvider, error) { var err error if tokenSource == nil { @@ -58,9 +58,6 @@ func register(ctx context.Context, data []byte) (option.ClientOption, error) { } return &googleAuthProvider{tokenSource: tokenSource}, nil }) - if err != nil { - return nil, errorutil.NewWithErr(err).Msgf("failed to register %s auth plugin", googleAuthPlugin) - } // return clioptions return option.WithCredentialsJSON(data), nil } diff --git a/pkg/providers/gcp/gcp.go b/pkg/providers/gcp/gcp.go index 0b57e119..92160cbe 100644 --- a/pkg/providers/gcp/gcp.go +++ b/pkg/providers/gcp/gcp.go @@ -4,6 +4,7 @@ import ( "context" "github.com/projectdiscovery/cloudlist/pkg/schema" + "github.com/projectdiscovery/gologger" errorutil "github.com/projectdiscovery/utils/errors" "google.golang.org/api/cloudresourcemanager/v1" "google.golang.org/api/compute/v1" @@ -87,7 +88,7 @@ func (p *Provider) Resources(ctx context.Context) (*schema.Resources, error) { GKEProvider := &gkeProvider{svc: p.gke, id: p.id, projects: p.projects} gkeData, err := GKEProvider.GetResource(ctx) if err != nil { - return nil, err + gologger.Warning().Msgf("Could not get GKE resources: %s\n", err) } finalList.Merge(gkeData) diff --git a/pkg/providers/gcp/gke.go b/pkg/providers/gcp/gke.go index a52bf06a..0842835c 100644 --- a/pkg/providers/gcp/gke.go +++ b/pkg/providers/gcp/gke.go @@ -43,7 +43,10 @@ func (d *gkeProvider) GetResource(ctx context.Context) (*schema.Resources, error if err != nil { return nil, fmt.Errorf("failed to create Kubernetes client cluster=%s: %w", clusterName, err) } - ingress, err := k8sClient.NetworkingV1().Ingresses("").List(ctx, metav1.ListOptions{}) + timeoutSeconds := int64(10) + ingress, err := k8sClient.NetworkingV1().Ingresses("").List(ctx, metav1.ListOptions{ + TimeoutSeconds: &timeoutSeconds, + }) if err != nil { return nil, errors.Wrap(err, "could not list kubernetes ingress") } diff --git a/pkg/schema/schema.go b/pkg/schema/schema.go index 28b33c3b..f07aab25 100644 --- a/pkg/schema/schema.go +++ b/pkg/schema/schema.go @@ -97,6 +97,9 @@ func (r *Resources) Append(resource *Resource) { // Merge merges a list of resources into the main list func (r *Resources) Merge(resources *Resources) { + if resources == nil { + return + } mergeUniqueMap := &sync.Map{} for _, item := range resources.Items { r.appendResource(item, mergeUniqueMap)