osclients

package
v2.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2025 License: Apache-2.0 Imports: 42 Imported by: 0

Documentation

Index

Constants

View Source
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 Filter

func Filter[osResourceT any](in iter.Seq2[*osResourceT, error], filters ...ResourceFilter[osResourceT]) iter.Seq2[*osResourceT, error]

func JustOne

func JustOne[T any, R Result[*T]](in <-chan R, duplicateError error) (*T, error)

func NewResultErr

func NewResultErr[T any](err error) result[T]

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 PortExt added in v2.1.0

type ResourceFilter

type ResourceFilter[osResourceT any] func(*osResourceT) bool

type Result

type Result[T any] interface {
	Ok() T
	Err() error
}

Result carries either a result or a non-nil error.

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.

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL