Documentation
¶
Index ¶
- Constants
- func Filter[osResourceT any](in iter.Seq2[*osResourceT, error], filters ...ResourceFilter[osResourceT]) iter.Seq2[*osResourceT, error]
- func JustOne[T any, R Result[*T]](in <-chan R, duplicateError error) (*T, error)
- func NewResultErr[T any](err error) result[T]
- func NewResultOk[T any](ok T) result[T]
- type ComputeClient
- type DomainClient
- type GroupClient
- type IdentityClient
- type ImageClient
- type KeyPairClient
- type NetworkClient
- type NetworkExt
- type PortExt
- type ResourceFilter
- type Result
- type RoleClient
- type ServiceClient
- type VolumeClient
- type VolumeTypeClient
Constants ¶
const NovaMinimumMicroversion = "2.71"
NovaMinimumMicroversion is the minimum Nova microversion supported by CAPO and ORC. 2.71 corresponds to OpenStack Stein
For the canonical description of Nova microversions, see https://docs.openstack.org/nova/latest/reference/api-microversion-history.html
CAPO uses server tags, which were added in microversion 2.52. CAPO supports multiattach volume types, which were added in microversion 2.60. ORC supports server groups by specifying Policy/Rules instead of Policies, which were added in microversion 2.64. ORC requires the use of microversion 2.71 to support ServerGroups field in Server response.
Variables ¶
This section is empty.
Functions ¶
func NewResultErr ¶
func NewResultOk ¶
func NewResultOk[T any](ok T) result[T]
Types ¶
type ComputeClient ¶
type ComputeClient interface {
CreateFlavor(ctx context.Context, opts flavors.CreateOptsBuilder) (*flavors.Flavor, error)
GetFlavor(ctx context.Context, id string) (*flavors.Flavor, error)
DeleteFlavor(ctx context.Context, id string) error
ListFlavors(ctx context.Context, listOpts flavors.ListOptsBuilder) iter.Seq2[*flavors.Flavor, error]
CreateServer(ctx context.Context, createOpts servers.CreateOptsBuilder, schedulerHints servers.SchedulerHintOptsBuilder) (*servers.Server, error)
DeleteServer(ctx context.Context, serverID string) error
GetServer(ctx context.Context, serverID string) (*servers.Server, error)
ListServers(ctx context.Context, listOpts servers.ListOptsBuilder) iter.Seq2[*servers.Server, error]
UpdateServer(ctx context.Context, id string, opts servers.UpdateOptsBuilder) (*servers.Server, error)
CreateServerGroup(ctx context.Context, createOpts servergroups.CreateOptsBuilder) (*servergroups.ServerGroup, error)
DeleteServerGroup(ctx context.Context, serverGroupID string) error
GetServerGroup(ctx context.Context, serverGroupID string) (*servergroups.ServerGroup, error)
ListServerGroups(ctx context.Context, listOpts servergroups.ListOptsBuilder) iter.Seq2[*servergroups.ServerGroup, error]
CreateVolumeAttachment(ctx context.Context, serverID string, createOpts volumeattach.CreateOptsBuilder) (*volumeattach.VolumeAttachment, error)
DeleteVolumeAttachment(ctx context.Context, serverID, volumeID string) error
ListAttachedInterfaces(ctx context.Context, serverID string) ([]attachinterfaces.Interface, error)
CreateAttachedInterface(ctx context.Context, serverID string, createOpts attachinterfaces.CreateOptsBuilder) (*attachinterfaces.Interface, error)
DeleteAttachedInterface(ctx context.Context, serverID, portID string) error
ReplaceAllServerAttributesTags(ctx context.Context, resourceID string, opts tags.ReplaceAllOptsBuilder) ([]string, error)
}
func NewComputeClient ¶
func NewComputeClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (ComputeClient, error)
NewComputeClient returns a new compute client.
func NewComputeErrorClient ¶
func NewComputeErrorClient(e error) ComputeClient
NewComputeErrorClient returns a ComputeClient in which every method returns the given error.
type DomainClient ¶ added in v2.4.0
type DomainClient interface {
ListDomains(ctx context.Context, listOpts domains.ListOptsBuilder) iter.Seq2[*domains.Domain, error]
CreateDomain(ctx context.Context, opts domains.CreateOptsBuilder) (*domains.Domain, error)
DeleteDomain(ctx context.Context, resourceID string) error
GetDomain(ctx context.Context, resourceID string) (*domains.Domain, error)
UpdateDomain(ctx context.Context, id string, opts domains.UpdateOptsBuilder) (*domains.Domain, error)
}
func NewDomainClient ¶ added in v2.4.0
func NewDomainClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (DomainClient, error)
NewDomainClient returns a new OpenStack client.
func NewDomainErrorClient ¶ added in v2.4.0
func NewDomainErrorClient(e error) DomainClient
NewDomainErrorClient returns a DomainClient in which every method returns the given error.
type GroupClient ¶ added in v2.4.0
type GroupClient interface {
ListGroups(ctx context.Context, listOpts groups.ListOptsBuilder) iter.Seq2[*groups.Group, error]
CreateGroup(ctx context.Context, opts groups.CreateOptsBuilder) (*groups.Group, error)
DeleteGroup(ctx context.Context, resourceID string) error
GetGroup(ctx context.Context, resourceID string) (*groups.Group, error)
UpdateGroup(ctx context.Context, id string, opts groups.UpdateOptsBuilder) (*groups.Group, error)
}
func NewGroupClient ¶ added in v2.4.0
func NewGroupClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (GroupClient, error)
NewGroupClient returns a new OpenStack client.
func NewGroupErrorClient ¶ added in v2.4.0
func NewGroupErrorClient(e error) GroupClient
NewGroupErrorClient returns a GroupClient in which every method returns the given error.
type IdentityClient ¶ added in v2.1.0
type IdentityClient interface {
CreateProject(ctx context.Context, opts projects.CreateOptsBuilder) (*projects.Project, error)
GetProject(ctx context.Context, id string) (*projects.Project, error)
DeleteProject(ctx context.Context, id string) error
ListProjects(ctx context.Context, opts projects.ListOptsBuilder) iter.Seq2[*projects.Project, error]
UpdateProject(ctx context.Context, id string, opts projects.UpdateOptsBuilder) (*projects.Project, error)
}
func NewIdentityClient ¶ added in v2.1.0
func NewIdentityClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (IdentityClient, error)
NewIdentityClient returns a new cinder client.
func NewIdentityErrorClient ¶ added in v2.1.0
func NewIdentityErrorClient(e error) IdentityClient
NewProjectErrorClient returns a IdentityClient in which every method returns the given error.
type ImageClient ¶
type ImageClient interface {
ListImages(ctx context.Context, listOpts images.ListOptsBuilder) iter.Seq2[*images.Image, error]
GetImage(ctx context.Context, id string) (*images.Image, error)
CreateImage(ctx context.Context, createOpts images.CreateOptsBuilder) (*images.Image, error)
DeleteImage(ctx context.Context, id string) error
UpdateImage(ctx context.Context, id string, updateOpts images.UpdateOptsBuilder) (*images.Image, error)
UploadData(ctx context.Context, id string, data io.Reader) error
GetImportInfo(ctx context.Context) (*imageimport.ImportInfo, error)
CreateImport(ctx context.Context, id string, createOpts imageimport.CreateOptsBuilder) error
}
func NewImageClient ¶
func NewImageClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (ImageClient, error)
NewImageClient returns a new glance client.
func NewImageErrorClient ¶
func NewImageErrorClient(e error) ImageClient
NewImageErrorClient returns an ImageClient in which every method returns the given error.
type KeyPairClient ¶ added in v2.4.0
type KeyPairClient interface {
ListKeyPairs(ctx context.Context, listOpts keypairs.ListOptsBuilder) iter.Seq2[*keypairs.KeyPair, error]
CreateKeyPair(ctx context.Context, opts keypairs.CreateOptsBuilder) (*keypairs.KeyPair, error)
DeleteKeyPair(ctx context.Context, name string) error
GetKeyPair(ctx context.Context, name string) (*keypairs.KeyPair, error)
}
func NewKeyPairClient ¶ added in v2.4.0
func NewKeyPairClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (KeyPairClient, error)
NewKeyPairClient returns a new OpenStack client.
func NewKeyPairErrorClient ¶ added in v2.4.0
func NewKeyPairErrorClient(e error) KeyPairClient
NewKeyPairErrorClient returns a KeyPairClient in which every method returns the given error.
type NetworkClient ¶
type NetworkClient interface {
ListPort(ctx context.Context, opts ports.ListOptsBuilder) iter.Seq2[*PortExt, error]
CreatePort(ctx context.Context, opts ports.CreateOptsBuilder) (*PortExt, error)
DeletePort(ctx context.Context, id string) error
GetPort(ctx context.Context, id string) (*PortExt, error)
UpdatePort(ctx context.Context, id string, opts ports.UpdateOptsBuilder) (*PortExt, error)
ListFloatingIP(ctx context.Context, opts floatingips.ListOptsBuilder) iter.Seq2[*floatingips.FloatingIP, error]
CreateFloatingIP(ctx context.Context, opts floatingips.CreateOptsBuilder) (*floatingips.FloatingIP, error)
DeleteFloatingIP(ctx context.Context, id string) error
GetFloatingIP(ctx context.Context, id string) (*floatingips.FloatingIP, error)
UpdateFloatingIP(ctx context.Context, id string, opts floatingips.UpdateOptsBuilder) (*floatingips.FloatingIP, error)
ListRouter(ctx context.Context, opts routers.ListOpts) iter.Seq2[*routers.Router, error]
CreateRouter(ctx context.Context, opts routers.CreateOptsBuilder) (*routers.Router, error)
DeleteRouter(ctx context.Context, id string) error
GetRouter(ctx context.Context, id string) (*routers.Router, error)
UpdateRouter(ctx context.Context, id string, opts routers.UpdateOptsBuilder) (*routers.Router, error)
AddRouterInterface(ctx context.Context, id string, opts routers.AddInterfaceOptsBuilder) (*routers.InterfaceInfo, error)
RemoveRouterInterface(ctx context.Context, id string, opts routers.RemoveInterfaceOptsBuilder) (*routers.InterfaceInfo, error)
ListSecGroup(ctx context.Context, opts groups.ListOpts) iter.Seq2[*groups.SecGroup, error]
CreateSecGroup(ctx context.Context, opts groups.CreateOptsBuilder) (*groups.SecGroup, error)
DeleteSecGroup(ctx context.Context, id string) error
GetSecGroup(ctx context.Context, id string) (*groups.SecGroup, error)
UpdateSecGroup(ctx context.Context, id string, opts groups.UpdateOptsBuilder) (*groups.SecGroup, error)
ListSecGroupRule(ctx context.Context, opts rules.ListOpts) ([]rules.SecGroupRule, error)
CreateSecGroupRules(ctx context.Context, opts []rules.CreateOpts) ([]rules.SecGroupRule, error)
DeleteSecGroupRule(ctx context.Context, id string) error
GetSecGroupRule(ctx context.Context, id string) (*rules.SecGroupRule, error)
ListNetwork(ctx context.Context, opts networks.ListOptsBuilder) iter.Seq2[*NetworkExt, error]
CreateNetwork(ctx context.Context, opts networks.CreateOptsBuilder) (*NetworkExt, error)
DeleteNetwork(ctx context.Context, id string) error
GetNetwork(ctx context.Context, id string) (*NetworkExt, error)
UpdateNetwork(ctx context.Context, id string, opts networks.UpdateOptsBuilder) (*NetworkExt, error)
ListSubnet(ctx context.Context, opts subnets.ListOptsBuilder) iter.Seq2[*subnets.Subnet, error]
CreateSubnet(ctx context.Context, opts subnets.CreateOptsBuilder) (*subnets.Subnet, error)
DeleteSubnet(ctx context.Context, id string) error
GetSubnet(ctx context.Context, id string) (*subnets.Subnet, error)
UpdateSubnet(ctx context.Context, id string, opts subnets.UpdateOptsBuilder) (*subnets.Subnet, error)
ReplaceAllAttributesTags(ctx context.Context, resourceType string, resourceID string, opts attributestags.ReplaceAllOptsBuilder) ([]string, error)
}
func NewNetworkClient ¶
func NewNetworkClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (NetworkClient, error)
NewNetworkClient returns an instance of the networking service.
type NetworkExt ¶
type NetworkExt struct {
networks.Network
dns.NetworkDNSExt
external.NetworkExternalExt
mtu.NetworkMTUExt
portsecurity.PortSecurityExt
provider.NetworkProviderExt
}
type PortExt ¶ added in v2.1.0
type PortExt struct {
ports.Port
portsecurity.PortSecurityExt
portsbinding.PortsBindingExt
}
type ResourceFilter ¶
type RoleClient ¶ added in v2.4.0
type RoleClient interface {
ListRoles(ctx context.Context, listOpts roles.ListOptsBuilder) iter.Seq2[*roles.Role, error]
CreateRole(ctx context.Context, opts roles.CreateOptsBuilder) (*roles.Role, error)
DeleteRole(ctx context.Context, resourceID string) error
GetRole(ctx context.Context, resourceID string) (*roles.Role, error)
UpdateRole(ctx context.Context, id string, opts roles.UpdateOptsBuilder) (*roles.Role, error)
}
func NewRoleClient ¶ added in v2.4.0
func NewRoleClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (RoleClient, error)
NewRoleClient returns a new OpenStack client.
func NewRoleErrorClient ¶ added in v2.4.0
func NewRoleErrorClient(e error) RoleClient
NewRoleErrorClient returns a RoleClient in which every method returns the given error.
type ServiceClient ¶ added in v2.4.0
type ServiceClient interface {
ListServices(ctx context.Context, listOpts services.ListOptsBuilder) iter.Seq2[*services.Service, error]
CreateService(ctx context.Context, opts services.CreateOptsBuilder) (*services.Service, error)
DeleteService(ctx context.Context, resourceID string) error
GetService(ctx context.Context, resourceID string) (*services.Service, error)
UpdateService(ctx context.Context, id string, opts services.UpdateOptsBuilder) (*services.Service, error)
}
func NewServiceClient ¶ added in v2.4.0
func NewServiceClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (ServiceClient, error)
NewServiceClient returns a new OpenStack client.
func NewServiceErrorClient ¶ added in v2.4.0
func NewServiceErrorClient(e error) ServiceClient
NewServiceErrorClient returns a ServiceClient in which every method returns the given error.
type VolumeClient ¶
type VolumeClient interface {
ListVolumes(ctx context.Context, listOpts volumes.ListOptsBuilder) iter.Seq2[*volumes.Volume, error]
CreateVolume(ctx context.Context, opts volumes.CreateOptsBuilder) (*volumes.Volume, error)
DeleteVolume(ctx context.Context, resourceID string, opts volumes.DeleteOptsBuilder) error
GetVolume(ctx context.Context, resourceID string) (*volumes.Volume, error)
UpdateVolume(ctx context.Context, id string, opts volumes.UpdateOptsBuilder) (*volumes.Volume, error)
}
func NewVolumeClient ¶
func NewVolumeClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (VolumeClient, error)
NewVolumeClient returns a new OpenStack client.
func NewVolumeErrorClient ¶
func NewVolumeErrorClient(e error) VolumeClient
NewVolumeErrorClient returns a VolumeClient in which every method returns the given error.
type VolumeTypeClient ¶ added in v2.3.0
type VolumeTypeClient interface {
ListVolumeTypes(ctx context.Context, listOpts volumetypes.ListOptsBuilder) iter.Seq2[*volumetypes.VolumeType, error]
CreateVolumeType(ctx context.Context, opts volumetypes.CreateOptsBuilder) (*volumetypes.VolumeType, error)
DeleteVolumeType(ctx context.Context, resourceID string) error
GetVolumeType(ctx context.Context, resourceID string) (*volumetypes.VolumeType, error)
UpdateVolumeType(ctx context.Context, id string, opts volumetypes.UpdateOptsBuilder) (*volumetypes.VolumeType, error)
}
func NewVolumeTypeClient ¶ added in v2.3.0
func NewVolumeTypeClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (VolumeTypeClient, error)
NewVolumeTypeClient returns a new OpenStack client.
func NewVolumeTypeErrorClient ¶ added in v2.3.0
func NewVolumeTypeErrorClient(e error) VolumeTypeClient
NewVolumeTypeErrorClient returns a VolumeTypeClient in which every method returns the given error.