util

package
v1.1.0-main Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2025 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Device                    = "device"
	Fleet                     = "fleet"
	EnrollmentRequest         = "enrollmentrequest"
	Repository                = "repository"
	ResourceSync              = "resourcesync"
	CertificateSigningRequest = "certificatesigningrequest"

	//resource related
	ApplyAction    = "apply"
	DenyAction     = "deny"
	DeviceResource = "Device"
	RepoResource   = "Repository"
	ErResource     = "EnrollmentRequest"
	FleetResource  = "Fleet"
	SystemResource = "System"

	//example yaml names
	DeviceYAMLName = "device.yaml"
	FleetYAMLName  = "fleet.yaml"
	FleetBYAMLName = "fleet-b.yaml"
	RepoYAMLName   = "repository-flightctl.yaml"
	ErYAMLName     = "enrollmentrequest.yaml"

	// events
	ForceFlag    = "-f"
	EventCreated = "created"
	EventDeleted = "deleted"
	EventUpdated = "updated"

	//Event reasons
	ResourceCreated          = "ResourceCreated"
	DeviceApplicationError   = "DeviceApplicationError"
	DeviceApplicationHealthy = "DeviceApplicationHealthy"
	DeviceSpecInvalid        = "DeviceSpecInvalid"
	DeviceSpecValid          = "DeviceSpecValid"
	DeviceContentOutOfDate   = "DeviceContentOutOfDate"
	DeviceContentUpToDate    = "DeviceContentUpToDate"
	DeviceUpdateFailed       = "DeviceUpdateFailed"

	// Eventually polling timeout/interval constants
	TIMEOUT      = time.Minute
	LONG_TIMEOUT = 10 * time.Minute
	POLLING      = time.Second
	LONG_POLLING = 10 * time.Second

	DURATION_TIMEOUT = 5 * time.Minute
	SHORT_POLLING    = "250ms"
	TIMEOUT_5M       = "5m"
	LONGTIMEOUT      = "10m"
)

Resource types

View Source
const E2E_NAMESPACE = "flightctl-e2e"
View Source
const E2E_REGISTRY_NAME = "registry"
View Source
const FLIGHTCTL_AGENT_SERVICE = "flightctl-agent"
View Source
const KIND = "KIND"
View Source
const OCP = "OCP"

Variables

View Source
var (
	DeviceIDKey    = DeviceIDKeyType{}
	DeviceKey      = DeviceKeyType{}
	TestContextKey = TestContextKeyType{}
)
View Source
var DefaultSystemInfo = []string{
	"hostname",
	"kernel",
	"distroName",
	"distroVersion",
	"productName",
	"productUuid",
	"productSerial",
	"netInterfaceDefault",
	"netIpDefault",
	"netMacDefault",
}

RequiredSystemInfoKeys defines the required system info keys that should be present

View Source
var TestIDKey = TestIDKeyType{}

Functions

func BinaryExistsOnPath added in v0.8.1

func BinaryExistsOnPath(binaryName string) bool

func CleanupTempYAMLFile added in v0.10.0

func CleanupTempYAMLFile(tempFilePath string)

CleanupTempYAMLFile removes the temporary YAML file

func CleanupTempYAMLFiles added in v0.10.0

func CleanupTempYAMLFiles(tempFilePaths []string)

CleanupTempYAMLFiles removes multiple temporary YAML files

func CreateRepositories

func CreateRepositories(ctx context.Context, numRepositories int, storeInst store.Store, orgId uuid.UUID) error

func CreateTestAuthProvider added in v1.0.0

func CreateTestAuthProvider(ctx context.Context, authStore store.AuthProvider, orgId uuid.UUID, name string, issuer string, labels *map[string]string)

CreateTestAuthProvider creates a test auth provider in the store

func CreateTestAuthProviderWithDynamicOrg added in v1.0.0

func CreateTestAuthProviderWithDynamicOrg(ctx context.Context, authStore store.AuthProvider, orgId uuid.UUID, name string)

CreateTestAuthProviderWithDynamicOrg creates a test OIDC provider with dynamic organization assignment

func CreateTestAuthProviderWithPerUserOrg added in v1.0.0

func CreateTestAuthProviderWithPerUserOrg(ctx context.Context, authStore store.AuthProvider, orgId uuid.UUID, name string, prefix *string, suffix *string)

CreateTestAuthProviderWithPerUserOrg creates a test OIDC provider with per-user organization assignment

func CreateTestAuthProviderWithStaticOrg added in v1.0.0

func CreateTestAuthProviderWithStaticOrg(ctx context.Context, authStore store.AuthProvider, orgId uuid.UUID, name string, orgName string)

CreateTestAuthProviderWithStaticOrg creates a test OIDC provider with static organization assignment

func CreateTestAuthProviders added in v1.0.0

func CreateTestAuthProviders(ctx context.Context, numProviders int, authStore store.AuthProvider, orgId uuid.UUID, sameVals bool)

CreateTestAuthProviders creates multiple test auth providers

func CreateTestAuthProvidersWithOffset added in v1.0.0

func CreateTestAuthProvidersWithOffset(ctx context.Context, numProviders int, authStore store.AuthProvider, orgId uuid.UUID, sameVals bool, offset int)

CreateTestAuthProvidersWithOffset creates multiple test OIDC providers with an offset

func CreateTestDevice

func CreateTestDevice(ctx context.Context, deviceStore store.Device, orgId uuid.UUID, name string, owner *string, tv *string, labels *map[string]string)

func CreateTestDevices

func CreateTestDevices(ctx context.Context, numDevices int, deviceStore store.Device, orgId uuid.UUID, owner *string, sameVals bool)

func CreateTestDevicesWithOffset

func CreateTestDevicesWithOffset(ctx context.Context, numDevices int, deviceStore store.Device, orgId uuid.UUID, owner *string, sameVals bool, offset int)

func CreateTestEnrolmentRequests added in v0.8.1

func CreateTestEnrolmentRequests(numEnrollmentRequests int, ctx context.Context, store store.Store, orgId uuid.UUID)

func CreateTestFleet

func CreateTestFleet(ctx context.Context, fleetStore store.Fleet, orgId uuid.UUID, name string, selector *map[string]string, owner *string)

func CreateTestFleets

func CreateTestFleets(ctx context.Context, numFleets int, fleetStore store.Fleet, orgId uuid.UUID, namePrefix string, sameVals bool, owner *string)

func CreateTestOrganization added in v0.9.0

func CreateTestOrganization(ctx context.Context, storeInst store.Store, orgId uuid.UUID) error

func CreateTestOrganizationAssignment added in v1.0.0

func CreateTestOrganizationAssignment() api.AuthOrganizationAssignment

CreateTestOrganizationAssignment creates a test organization assignment

func CreateTestResourceSyncs added in v0.8.1

func CreateTestResourceSyncs(ctx context.Context, numResourceSyncs int, storeInst store.Store, orgId uuid.UUID)

func CreateTestTemplateVersion

func CreateTestTemplateVersion(ctx context.Context, tvStore store.TemplateVersion, orgId uuid.UUID, fleet, name string, status *api.TemplateVersionStatus) error

func CreateTestTemplateVersions

func CreateTestTemplateVersions(ctx context.Context, numTemplateVersions int, tvStore store.TemplateVersion, orgId uuid.UUID, fleet string) error

func CreateUniqueYAMLFile added in v0.10.0

func CreateUniqueYAMLFile(originalYAMLPath, testID string) (string, error)

CreateUniqueYAMLFile creates a temporary YAML file with unique resource names based on test ID

func EventuallySlow added in v0.10.0

func EventuallySlow(actual any) types.AsyncAssertion

func GetCurrentYearBounds added in v0.7.0

func GetCurrentYearBounds() (string, string)

GetCurrentYearBounds returns start of current and next year in RFC3339 format.

func GetEnrollmentIdFromText added in v0.2.0

func GetEnrollmentIdFromText(text string) string

GetEnrollmentIdFromText returns the enrollment ID from the given text. The enrollment ID is expected to be part of url path like https://example.com/enroll/1234

func GetExtIP

func GetExtIP() string

func GetScriptPath

func GetScriptPath(script string) string

func GetTestExamplesYamlPath added in v0.6.0

func GetTestExamplesYamlPath(yamlName string) string

func GetTopLevelDir

func GetTopLevelDir() string

func InitLogsWithDebug added in v1.0.0

func InitLogsWithDebug() *logrus.Logger

InitLogsWithDebug creates a logger with debug level if LOG_LEVEL=debug is set

func InitSuiteTracerForGinkgo added in v0.8.1

func InitSuiteTracerForGinkgo(description string) context.Context

func InitTracerForTests added in v0.8.1

func InitTracerForTests() func(context.Context) error

func IsAcmInstalled added in v0.10.0

func IsAcmInstalled() (bool, bool, error)

IsAcmInstalled checks if ACM is installed and if it is running. returns: isAcmInstalled, isAcmRunning, error

func NewAgentClient

func NewAgentClient(serverUrl string, caBundle []*x509.Certificate, clientCert *crypto.TLSCertificateConfig) (*agentclient.ClientWithResponses, error)

NewClient creates a new client with the given server URL and certificates. If the certs are nil a http client will be created.

func NewBackoff added in v0.6.0

func NewBackoff() wait.Backoff

func NewBareHTTPsClient

func NewBareHTTPsClient(caBundle []*x509.Certificate, clientCert *crypto.TLSCertificateConfig) (*http.Client, error)

func NewClient

func NewClient(serverUrl string, caBundle []*x509.Certificate) (*client.ClientWithResponses, error)

NewClient creates a new client with the given server URL and certificates. If the certs are nil a http client will be created.

func NewComposeSpec added in v0.6.0

func NewComposeSpec(images ...string) string

func NewPollConfig added in v0.9.0

func NewPollConfig() poll.Config

func NewTestAgentServer

func NewTestAgentServer(ctx context.Context, log logrus.FieldLogger, cfg *config.Config, store store.Store, ca *crypto.CAClient, serverCerts *crypto.TLSCertificateConfig, queuesProvider queues.Provider) (*agentserver.AgentServer, net.Listener, error)

NewTestAgentServer creates a new test server and returns the server and the listener listening on localhost's next available port.

func NewTestApiServer

func NewTestApiServer(log logrus.FieldLogger, cfg *config.Config, store store.Store, ca *crypto.CAClient, serverCerts *crypto.TLSCertificateConfig, queuesProvider queues.Provider) (*apiserver.Server, net.Listener, error)

NewTestApiServer creates a new test server and returns the server and the listener listening on localhost's next available port.

func NewTestCerts

NewTestCerts creates new test certificates in the service certstore and returns the CA, server certificate, and enrollment certificate.

func NewTestProvider

func NewTestProvider(log logrus.FieldLogger) queues.Provider

func NewTestStore

func NewTestStore(ctx context.Context, cfg config.Config, log *logrus.Logger) (store.Store, string, error)

NewTestStore creates a new test store and returns the store and the database name.

func ParseURIForIPAndPort added in v0.8.1

func ParseURIForIPAndPort(rawURI string) (string, string, error)

ParseURIForIPAndPort parses a string URI and attempts to extract the IP address and port. It handles URIs with or without a scheme. If no port is specified, it attempts to deduce it from common schemes (http: 80, https: 443). If no scheme is supplied, http is assumed

func RandString added in v0.7.0

func RandString(n int) (string, error)

RandString generates a random string of length 'n' using lowercase alphabetic characters.

func ReturnTestAuthProvider added in v1.0.0

func ReturnTestAuthProvider(orgId uuid.UUID, name string, issuer string, labels *map[string]string) api.AuthProvider

ReturnTestAuthProvider creates a test auth provider with the given parameters

func ReturnTestDevice added in v0.3.0

func ReturnTestDevice(orgId uuid.UUID, name string, owner *string, tv *string, labels *map[string]string) api.Device

func RunTable added in v0.8.1

func RunTable[T any](cases []TestCase[T], runFunc func(T))

RunTable executes the provided run function for each test case in the cases slice.

func StartSpecTracerForGinkgo added in v0.8.1

func StartSpecTracerForGinkgo(parent context.Context) context.Context

func TestEnrollmentApproval

func TestEnrollmentApproval() *v1beta1.EnrollmentRequestApproval

func TestTempEnv

func TestTempEnv(key, value string) func()

TestTempEnv sets the environment variable key to value and returns a function that will reset the environment variable to its original value.

Types

type DeviceIDKeyType added in v0.10.0

type DeviceIDKeyType struct{}

Context keys for storing test data

type DeviceKeyType added in v0.10.0

type DeviceKeyType struct{}

type Message added in v0.4.0

type Message string

Define a type for messages.

const (
	UpdateRenderedVersionSuccess  Message = "Updated to desired renderedVersion:"
	UpdateRenderedVersionProgress Message = "the device is upgrading to renderedVersion:"
)

func (Message) String added in v0.4.0

func (m Message) String() string

type TestCase added in v0.8.1

type TestCase[T any] struct {
	Description string
	Params      T
}

RunTable runs a table of test cases with the given run function. Each test case has a description and parameters of type T.

func Cases added in v0.8.1

func Cases[T any](items ...TestCase[T]) []TestCase[T]

type TestContextKeyType added in v0.10.0

type TestContextKeyType struct{}

type TestIDKeyType added in v0.10.0

type TestIDKeyType struct{}

TestIDKey is the context key used to store the test ID

type TestOrgCache added in v0.10.0

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

func (*TestOrgCache) Get added in v0.10.0

func (c *TestOrgCache) Get(id uuid.UUID) *model.Organization

func (*TestOrgCache) Set added in v0.10.0

func (c *TestOrgCache) Set(id uuid.UUID, org *model.Organization)

Jump to

Keyboard shortcuts

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