in internal/resources/providers/azurelib/inventory/sql_server_provider.go [58:109]
func NewSQLProvider(log *clog.Logger, credentials azcore.TokenCredential) SQLProviderAPI {
// We wrap the client, so we can mock it in tests
wrapper := &sqlAzureClientWrapper{
AssetEncryptionProtector: func(ctx context.Context, subID, resourceGroup, serverName string, clientOptions *arm.ClientOptions, options *armsql.EncryptionProtectorsClientListByServerOptions) ([]armsql.EncryptionProtectorsClientListByServerResponse, error) {
cl, err := armsql.NewEncryptionProtectorsClient(subID, credentials, clientOptions)
if err != nil {
return nil, err
}
return readPager(ctx, cl.NewListByServerPager(resourceGroup, serverName, options))
},
AssetBlobAuditingPolicies: func(ctx context.Context, subID, resourceGroup, serverName string, clientOptions *arm.ClientOptions, options *armsql.ServerBlobAuditingPoliciesClientGetOptions) (armsql.ServerBlobAuditingPoliciesClientGetResponse, error) {
cl, err := armsql.NewServerBlobAuditingPoliciesClient(subID, credentials, clientOptions)
if err != nil {
return armsql.ServerBlobAuditingPoliciesClientGetResponse{}, err
}
return cl.Get(ctx, resourceGroup, serverName, options)
},
AssetTransparentDataEncryptions: func(ctx context.Context, subID, resourceGroup, serverName, dbName string, clientOptions *arm.ClientOptions, options *armsql.TransparentDataEncryptionsClientListByDatabaseOptions) ([]armsql.TransparentDataEncryptionsClientListByDatabaseResponse, error) {
cl, err := armsql.NewTransparentDataEncryptionsClient(subID, credentials, clientOptions)
if err != nil {
return nil, err
}
return readPager(ctx, cl.NewListByDatabasePager(resourceGroup, serverName, dbName, options))
},
AssetDatabases: func(ctx context.Context, subID, resourceGroup, serverName string, clientOptions *arm.ClientOptions, options *armsql.DatabasesClientListByServerOptions) ([]armsql.DatabasesClientListByServerResponse, error) {
cl, err := armsql.NewDatabasesClient(subID, credentials, clientOptions)
if err != nil {
return nil, err
}
return readPager(ctx, cl.NewListByServerPager(resourceGroup, serverName, options))
},
AssetServerAdvancedThreatProtectionSettings: func(ctx context.Context, subID, resourceGroup, serverName string, clientOptions *arm.ClientOptions, options *armsql.ServerAdvancedThreatProtectionSettingsClientListByServerOptions) ([]armsql.ServerAdvancedThreatProtectionSettingsClientListByServerResponse, error) {
cl, err := armsql.NewServerAdvancedThreatProtectionSettingsClient(subID, credentials, clientOptions)
if err != nil {
return nil, err
}
return readPager(ctx, cl.NewListByServerPager(resourceGroup, serverName, options))
},
AssetServerFirewallRules: func(ctx context.Context, subID, resourceGroup, serverName string, clientOptions *arm.ClientOptions, listOptions *armsql.FirewallRulesClientListByServerOptions) ([]armsql.FirewallRulesClientListByServerResponse, error) {
cl, err := armsql.NewFirewallRulesClient(subID, credentials, clientOptions)
if err != nil {
return nil, err
}
return readPager(ctx, cl.NewListByServerPager(resourceGroup, serverName, listOptions))
},
}
return &sqlProvider{
log: log,
client: wrapper,
}
}