@@ -283,6 +283,13 @@ func (d *SANStorageDriver) Initialize(
283283 return errors .New ("error encountered validating SolidFire driver on init" )
284284 }
285285
286+ // Identify non-overlapping storage backend pools on the driver backend.
287+ pools , err := drivers .EncodeStorageBackendPools (ctx , commonConfig , d .getStorageBackendPools (ctx ))
288+ if err != nil {
289+ return fmt .Errorf ("failed to encode storage backend pools: %v" , err )
290+ }
291+ d .Config .BackendPools = pools
292+
286293 // log cluster node serial numbers asynchronously since the API can take a long time
287294 go d .getNodeSerialNumbers (ctx , config .CommonStorageDriverConfig )
288295
@@ -1583,6 +1590,19 @@ func (d *SANStorageDriver) GetStorageBackendPhysicalPoolNames(context.Context) [
15831590 return []string {}
15841591}
15851592
1593+ // getStorageBackendPools determines any non-overlapping, discrete storage pools present on a driver's storage backend.
1594+ func (d * SANStorageDriver ) getStorageBackendPools (ctx context.Context ) []drivers.SolidfireStorageBackendPool {
1595+ fields := LogFields {"Method" : "getStorageBackendPools" , "Type" : "SANStorageDriver" }
1596+ Logc (ctx ).WithFields (fields ).Debug (">>>> getStorageBackendPools" )
1597+ defer Logc (ctx ).WithFields (fields ).Debug ("<<<< getStorageBackendPools" )
1598+
1599+ // For this driver, a discrete storage pool is composed of the following:
1600+ // 1. AccountID
1601+ // 2. Tenant name
1602+ // For now, SolidFire will only report 1 storage pool.
1603+ return []drivers.SolidfireStorageBackendPool {{AccountID : d .AccountID , TenantName : d .Config .TenantName }}
1604+ }
1605+
15861606func (d * SANStorageDriver ) GetInternalVolumeName (ctx context.Context , name string ) string {
15871607 if tridentconfig .UsingPassthroughStore {
15881608 // With a passthrough store, the name mapping must remain reversible
0 commit comments