openstack

package module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2023 License: Apache-2.0 Imports: 15 Imported by: 7

Documentation

Index

Constants

View Source
const RoleNotFound = "role not found in keystone"

RoleNotFound - role not found error message"

View Source
const ServiceNotFound = "service not found in keystone"

ServiceNotFound - service not found error message"

View Source
const UserNotFound = "user not found in keystone"

UserNotFound - user not found error message"

Variables

This section is empty.

Functions

func GetAvailability

func GetAvailability(
	endpointInterface string,
) (gophercloud.Availability, error)

GetAvailability - returns mapping of enpointtype to gophercloud.Availability

Types

type AuthOpts

type AuthOpts struct {
	AuthURL    string
	Username   string
	Password   string
	TenantName string
	DomainName string
	Region     string
	Scope      *gophercloud.AuthScope
}

AuthOpts -

type Domain

type Domain struct {
	Name        string
	Description string
}

Domain - Holds the name and description to be used while creating or looking up the OpenStack domain.

type Endpoint

type Endpoint struct {
	Name         string
	ServiceID    string
	Availability gophercloud.Availability
	URL          string
}

Endpoint -

type Limit

type Limit struct {
	// RegionID is the ID of the region where the limit is applied.
	RegionID string `json:"region_id,omitempty"`

	// DomainID is the ID of the domain where the limit is applied.
	DomainID string `json:"domain_id,omitempty"`

	// ProjectID is the ID of the project where the limit is applied.
	ProjectID string `json:"project_id,omitempty"`

	// ServiceID is the ID of the service where the limit is applied.
	ServiceID string `json:"service_id" required:"true"`

	// Description of the limit.
	Description string `json:"description,omitempty"`

	// ResourceName is the name of the resource that the limit is applied to.
	ResourceName string `json:"resource_name" required:"true"`

	// ResourceLimit is the override limit.
	ResourceLimit int `json:"resource_limit" required:"true"`
}

Limit -

type OpenStack

type OpenStack struct {
	// contains filtered or unexported fields
}

OpenStack -

func NewOpenStack

func NewOpenStack(
	log logr.Logger,
	cfg AuthOpts,
) (*OpenStack, error)

NewOpenStack creates a new new instance of the openstack struct from a config struct

func (*OpenStack) AssignUserDomainRole

func (o *OpenStack) AssignUserDomainRole(
	log logr.Logger,
	roleName string,
	userID string,
	domainID string,
) error

AssignUserDomainRole - adds user with userID and domainID to role with roleName

func (*OpenStack) AssignUserRole

func (o *OpenStack) AssignUserRole(
	log logr.Logger,
	roleName string,
	userID string,
	projectID string,
) error

AssignUserRole - adds user with userID,projectID to role with roleName

func (*OpenStack) CreateDomain

func (o *OpenStack) CreateDomain(log logr.Logger, d Domain) (string, error)

CreateDomain - creates a domain with domainName and domainDescription if it does not exist

func (*OpenStack) CreateEndpoint

func (o *OpenStack) CreateEndpoint(
	log logr.Logger,
	e Endpoint,
) (string, error)

CreateEndpoint - create endpoint

func (*OpenStack) CreateLimit

func (o *OpenStack) CreateLimit(
	log logr.Logger,
	l Limit,
) (string, error)

CreateLimit - create a limit in keystone for particular project if it does not exist

func (*OpenStack) CreateOrUpdateRegisteredLimit

func (o *OpenStack) CreateOrUpdateRegisteredLimit(
	log logr.Logger,
	l RegisteredLimit,
) (string, error)

CreateOrUpdateRegisteredLimit - create or update limit in keystone (global across projects) if it does not exist

func (*OpenStack) CreateProject

func (o *OpenStack) CreateProject(
	log logr.Logger,
	p Project,
) (string, error)

CreateProject - creates project with projectName and projectDescription if it does not exist

func (*OpenStack) CreateRole

func (o *OpenStack) CreateRole(
	log logr.Logger,
	roleName string,
) (string, error)

CreateRole - creates role with projectuserName, password and default project projectID

func (*OpenStack) CreateService

func (o *OpenStack) CreateService(
	log logr.Logger,
	s Service,
) (string, error)

CreateService - create service

func (*OpenStack) CreateUser

func (o *OpenStack) CreateUser(
	log logr.Logger,
	u User,
) (string, error)

CreateUser - creates user with userName, password and default project projectID

func (*OpenStack) DeleteEndpoint

func (o *OpenStack) DeleteEndpoint(
	log logr.Logger,
	e Endpoint,
) error

DeleteEndpoint - delete endpoint

func (*OpenStack) DeleteRegisteredLimit

func (o *OpenStack) DeleteRegisteredLimit(
	log logr.Logger,
	registeredLimitID string,
) error

DeleteRegisteredLimit - delete limit from keystone

func (*OpenStack) DeleteService

func (o *OpenStack) DeleteService(
	log logr.Logger,
	serviceID string,
) error

DeleteService - delete service with serviceID

func (*OpenStack) DeleteUser

func (o *OpenStack) DeleteUser(
	log logr.Logger,
	userName string,
	domainID string,
) error

DeleteUser - deletes user with userName

func (*OpenStack) GetAuthURL

func (o *OpenStack) GetAuthURL() string

GetAuthURL - returns the region

func (*OpenStack) GetEndpoints

func (o *OpenStack) GetEndpoints(
	log logr.Logger,
	serviceID string,
	endpointInterface string,
) ([]endpoints.Endpoint, error)

GetEndpoints - get endpoints for the registered service. if endpointInterface is provided, just return the endpoint for that type.

func (*OpenStack) GetOSClient

func (o *OpenStack) GetOSClient() *gophercloud.ServiceClient

GetOSClient - returns the client

func (*OpenStack) GetRegion

func (o *OpenStack) GetRegion() string

GetRegion - returns the region

func (*OpenStack) GetRegisteredLimit

func (o *OpenStack) GetRegisteredLimit(
	log logr.Logger,
	registeredLimitID string,
) (*registeredlimits.RegisteredLimit, error)

GetRegisteredLimit - Get existing registered limit by ID

func (*OpenStack) GetRole

func (o *OpenStack) GetRole(
	log logr.Logger,
	roleName string,
) (*roles.Role, error)

GetRole - gets role with roleName

func (*OpenStack) GetService

func (o *OpenStack) GetService(
	log logr.Logger,
	serviceType string,
	serviceName string,
) (*services.Service, error)

GetService - get service with type and name

func (*OpenStack) GetUser

func (o *OpenStack) GetUser(
	log logr.Logger,
	userName string,
	domainID string,
) (*users.User, error)

GetUser - get user with userName

func (*OpenStack) ListRegisteredLimitsByResourceName

func (o *OpenStack) ListRegisteredLimitsByResourceName(
	log logr.Logger,
	resourceName string,
) ([]registeredlimits.RegisteredLimit, error)

ListRegisteredLimitsByResourceName - List all registered limits filtered by resource name

func (*OpenStack) ListRegisteredLimitsByServiceID

func (o *OpenStack) ListRegisteredLimitsByServiceID(
	log logr.Logger,
	serviceID string,
) ([]registeredlimits.RegisteredLimit, error)

ListRegisteredLimitsByServiceID - List all registered limits filtered by service id

func (*OpenStack) UpdateEndpoint

func (o *OpenStack) UpdateEndpoint(
	log logr.Logger,
	e Endpoint,
	endpointID string,
) (string, error)

UpdateEndpoint -

func (*OpenStack) UpdateService

func (o *OpenStack) UpdateService(
	log logr.Logger,
	s Service,
	serviceID string,
) error

UpdateService - update service with type and name

func (*OpenStack) VolumeServiceCheck

func (o *OpenStack) VolumeServiceCheck(
	log logr.Logger,
	serviceName string,
) (bool, error)

VolumeServiceCheck - Check particular cinder service is enabled and running or not

type Project

type Project struct {
	Name        string
	Description string
	DomainID    string
}

Project -

type RegisteredLimit

type RegisteredLimit struct {
	// RegionID is the ID of the region where the limit is applied.
	RegionID string `json:"region_id,omitempty"`

	// ServiceID is the ID of the service where the limit is applied.
	ServiceID string `json:"service_id" required:"true"`

	// Description of the limit.
	Description string `json:"description,omitempty"`

	// ResourceName is the name of the resource that the limit is applied to.
	ResourceName string `json:"resource_name" required:"true"`

	// DefaultLimit is the default limit.
	DefaultLimit int `json:"default_limit"`
}

RegisteredLimit -

type Role

type Role struct {
	Name string
}

Role -

type Service

type Service struct {
	Name        string
	Type        string
	Description string
	Enabled     bool
}

Service -

type User

type User struct {
	Name      string
	Password  string
	ProjectID string
	DomainID  string
}

User -

Jump to

Keyboard shortcuts

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