func storagePoolGet(d *Daemon, r *http.Request) Response {
	// If a target was specified, forward the request to the relevant node.
	response := ForwardedResponseIfTargetIsRemote(d, r)
	if response != nil {
		return response
	}

	poolName := mux.Vars(r)["name"]

	// Get the existing storage pool.
	poolID, pool, err := d.cluster.StoragePoolGet(poolName)
	if err != nil {
		return SmartError(err)
	}

	// Get all users of the storage pool.
	poolUsedBy, err := storagePoolUsedByGet(d.State(), poolID, poolName)
	if err != nil && err != db.ErrNoSuchObject {
		return SmartError(err)
	}
	pool.UsedBy = poolUsedBy

	targetNode := queryParam(r, "target")

	clustered, err := cluster.Enabled(d.db)
	if err != nil {
		return SmartError(err)
	}

	// If no target node is specified and the daemon is clustered, we omit
	// the node-specific fields.
	if targetNode == "" && clustered {
		for _, key := range db.StoragePoolNodeConfigKeys {
			delete(pool.Config, key)
		}
	}

	etag := []interface{}{pool.Name, pool.Driver, pool.Config}

	return SyncResponseETag(true, &pool, etag)
}
func storagePoolGet(d *Daemon, r *http.Request) Response {
	
	response := ForwardedResponseIfTargetIsRemote(d, r)
	if response != nil {
		return response
	}

	poolName := mux.Vars(r)["name"]

	
	poolID, pool, err := d.cluster.StoragePoolGet(poolName)
	if err != nil {
		return SmartError(err)
	}

	
	poolUsedBy, err := storagePoolUsedByGet(d.State(), poolID, poolName)
	if err != nil && err != db.ErrNoSuchObject {
		return SmartError(err)
	}
	pool.UsedBy = poolUsedBy

	targetNode := queryParam(r, "target")

	clustered, err := cluster.Enabled(d.db)
	if err != nil {
		return SmartError(err)
	}

	
	
	if targetNode == "" && clustered {
		for _, key := range db.StoragePoolNodeConfigKeys {
			delete(pool.Config, key)
		}
	}

	etag := []interface{}{pool.Name, pool.Driver, pool.Config}

	return SyncResponseETag(true, &pool, etag)
}
func storagePoolGet ( d * Daemon , r * http . Request ) Response { // If a target was specified, forward the request to the relevant node. response := ForwardedResponseIfTargetIsRemote ( d , r ) if response != nil { return response } poolName := mux . Vars ( r ) [ " " ] // Get the existing storage pool. poolID , pool , err := d . cluster . StoragePoolGet ( poolName ) if err != nil { return SmartError ( err ) } // Get all users of the storage pool. poolUsedBy , err := storagePoolUsedByGet ( d . State ( ) , poolID , poolName ) if err != nil && err != db . ErrNoSuchObject { return SmartError ( err ) } pool . UsedBy = poolUsedBy targetNode := queryParam ( r , " " ) clustered , err := cluster . Enabled ( d . db ) if err != nil { return SmartError ( err ) } // If no target node is specified and the daemon is clustered, we omit // the node-specific fields. if targetNode == " " && clustered { for _ , key := range db . StoragePoolNodeConfigKeys { delete ( pool . Config , key ) } } etag := [ ] interface { } { pool . Name , pool . Driver , pool . Config } return SyncResponseETag ( true , & pool , etag ) }
// /1.0/storage-pools/{name}
// Get a single storage pool.
/ 1 . 0 / storage - pools / { name } Get a single storage pool .