Documentation
¶
Index ¶
Constants ¶
View Source
const TriggerCinderStoragePoolsSynced = "triggers/sync/openstack/cinder/types/storage_pools"
Trigger executed when new storage pools are available.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CinderAPI ¶
type CinderAPI interface { // Int the cinder API. Init(ctx context.Context) // Get all cinder storage pools. GetAllStoragePools(ctx context.Context) ([]StoragePool, error) }
func NewCinderAPI ¶
func NewCinderAPI(mon sync.Monitor, k keystone.KeystoneAPI, conf CinderConf) CinderAPI
type CinderConf ¶
type CinderConf = conf.SyncOpenStackCinderConfig
Type alias for the OpenStack Cinder configuration.
type CinderSyncer ¶
type CinderSyncer struct { // Database to store the manila objects in. DB db.DB // Monitor to track the syncer. Mon sync.Monitor // Configuration for the cinder syncer. Conf CinderConf // Cinder API client to fetch the data. API CinderAPI // MQTT client to publish mqtt data. MqttClient mqtt.Client }
func (*CinderSyncer) Init ¶
func (s *CinderSyncer) Init(ctx context.Context)
Init the OpenStack cinder syncer.
func (*CinderSyncer) Sync ¶
func (s *CinderSyncer) Sync(ctx context.Context) error
Sync the OpenStack cinder objects and publish triggers.
func (*CinderSyncer) SyncAllStoragePools ¶
func (s *CinderSyncer) SyncAllStoragePools(ctx context.Context) ([]StoragePool, error)
Sync the OpenStack resource providers into the database.
type StoragePool ¶
type StoragePool struct { Name string `json:"name" db:"name,primarykey"` // Shared capabilities CapabilitiesAllocatedCapacityGB float64 `json:"-" db:"capabilities_allocated_capacity_gb"` CapabilitiesDriverVersion string `json:"-" db:"capabilities_driver_version"` CapabilitiesFreeCapacityGB float64 `json:"-" db:"capabilities_free_capacity_gb"` CapabilitiesMultiattach bool `json:"-" db:"capabilities_multiattach"` CapabilitiesPoolName string `json:"-" db:"capabilities_pool_name"` CapabilitiesReservedPercentage float64 `json:"-" db:"capabilities_reserved_percentage"` CapabilitiesStorageProtocol string `json:"-" db:"capabilities_storage_protocol"` CapabilitiesThickProvisioningSupport bool `json:"-" db:"capabilities_thick_provisioning_support"` CapabilitiesThinProvisioningSupport bool `json:"-" db:"capabilities_thin_provisioning_support"` CapabilitiesTimestamp string `json:"-" db:"capabilities_timestamp"` CapabilitiesTotalCapacityGB float64 `json:"-" db:"capabilities_total_capacity_gb"` CapabilitiesVendorName string `json:"-" db:"capabilities_vendor_name"` CapabilitiesVolumeBackendName string `json:"-" db:"capabilities_volume_backend_name"` // VMware specific fields CapabilitiesBackendState *string `json:"-" db:"capabilities_backend_state"` CapabilitiesCustomAttributeCinderState *string `json:"-" db:"capabilities_custom_attribute_cinder_state"` CapabilitiesCustomAttributeCinderAggregateID *string `json:"-" db:"capabilities_custom_attribute_cinder_aggregate_id"` CapabilitiesCustomAttributeNetAppFQDN *string `json:"-" db:"capabilities_custom_attribute_netapp_fqdn"` CapabilitiesPoolDownReason *string `json:"-" db:"capabilities_pool_down_reason"` CapabilitiesPoolState *string `json:"-" db:"capabilities_pool_state"` // NetApp-specific fields for native NetApp pools CapabilitiesNetAppAggregate *string `json:"-" db:"capabilities_netapp_aggregate"` CapabilitiesNetAppAggregateUsedPercent *float64 `json:"-" db:"capabilities_netapp_aggregate_used_percent"` CapabilitiesUtilization *float64 `json:"-" db:"capabilities_utilization"` }
See https://docs.openstack.org/api-ref/block-storage/v3/#list-all-back-end-storage-pools Some fields are omitted.
func (*StoragePool) MarshalJSON ¶
func (sp *StoragePool) MarshalJSON() ([]byte, error)
Custom marshaler for StoragePool to handle nested JSON.
func (StoragePool) TableName ¶
func (StoragePool) TableName() string
The table name for the storage pool model.
func (*StoragePool) UnmarshalJSON ¶
func (sp *StoragePool) UnmarshalJSON(data []byte) error
Custom unmarshaler for StoragePool to handle nested JSON.
Click to show internal directories.
Click to hide internal directories.