util

package
v0.0.0-...-0fd3e05 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrMsgSiteControllerRowNotFound is returned when an entity is not found in Site Controller
	ErrMsgSiteControllerRowNotFound = "row not found"
	// ErrMsgSiteControllerNoRowsReturned is returned when lookup for entity returns nothing in Site Controller
	ErrMsgSiteControllerNoRowsReturned = "no rows returned"
	// ErrMsgSiteControllerMarkedForDeletion is returned when an entity is marked for deletion in Site Controller
	ErrMsgSiteControllerMarkedForDeletion = "marked for deletion"
	// ErrMsgSiteControllerCouldNotFind is returned when an entity is not found in Site Controller
	ErrMsgSiteControllerCouldNotFind = "could not find"
	// ErrMsgSiteControllerDuplicateEntryFound is returned when an entity is found in Site Controller
	ErrMsgSiteControllerDuplicateEntryFound = "duplicate key value violates unique constraint"
)
View Source
var (
	// ErrMsgSiteAgentInventoryCollectionFailure is returned when Site Agent reports an inventory collection failure
	ErrTypeSiteAgentInventoryCollectionFailure = "SiteAgentInventoryCollectionFailure"
)

Functions

func GetUint32Ptr

func GetUint32Ptr(i uint32) *uint32

func GetUint32PtrToIntPtr

func GetUint32PtrToIntPtr(u32 *uint32) *int

A convenience function for converting a pointer to a uint32 to a pointer to a an int.

If the input is nil, nil will be returned.

func PtrsEqual

func PtrsEqual[T comparable](i1 *T, i2 *T) bool

func TestAssertMetricExistsTimes

func TestAssertMetricExistsTimes(t *testing.T, reg *prometheus.Registry, metricName string, expectedCount int, expectedLabels map[string]string, expectedDuration time.Duration)

TestAssertMetricExistsTimes verifies that a specific metric exists with expected count and labels This is a common utility for all metrics testing Parameters:

  • metricName: the name of the metric to check
  • expectedCount: expected number of metric samples (0 means no metrics should exist)
  • expectedLabels: map of label names to expected values (nil to skip label validation)
  • expectedDuration: exact expected duration for summary metrics (0 to skip duration check)

func TestBuildAllocation

func TestBuildAllocation(t *testing.T, dbSession *cdb.Session, ip *cdbm.InfrastructureProvider, tenant *cdbm.Tenant, site *cdbm.Site, name string) *cdbm.Allocation

TestBuildAllocation build allocation

func TestBuildAllocationConstraint

func TestBuildAllocationConstraint(t *testing.T, dbSession *cdb.Session, al *cdbm.Allocation, it *cdbm.InstanceType, constraintValue int, user *cdbm.User) *cdbm.AllocationConstraint

TestBuildAllocationConstraint creates a test Allocation Constraint of Instance Type

func TestBuildAllocationContraints

func TestBuildAllocationContraints(t *testing.T, dbSession *cdb.Session, al *cdbm.Allocation, rt string, rtID uuid.UUID, ct string, cv int, user *cdbm.User) *cdbm.AllocationConstraint

testBuildAllocationContraints build allocation

func TestBuildBuildIPBlock

func TestBuildBuildIPBlock(t *testing.T, dbSession *cdb.Session, name string, site *cdbm.Site, ip *cdbm.InfrastructureProvider, tenantID *uuid.UUID, routingType, prefix string, blockSize int, protocolVersion string, fullGrant bool, status string, user *cdbm.User) *cdbm.IPBlock

func TestBuildDpuExtensionService

func TestBuildDpuExtensionService(t *testing.T, dbSession *cdb.Session, name string, site *cdbm.Site, tenant *cdbm.Tenant, serviceType string, version *string, versionInfo *cdbm.DpuExtensionServiceVersionInfo, activeVersions []string, status string, user *cdbm.User) *cdbm.DpuExtensionService

TestBuildDpuExtensionService build DPU Extension Service

func TestBuildDpuExtensionServiceDeployment

func TestBuildDpuExtensionServiceDeployment(t *testing.T, dbSession *cdb.Session, dpuExtensionServiceID, siteID, tenantID, instanceID uuid.UUID, version string, status string, user *cdbm.User) *cdbm.DpuExtensionServiceDeployment

TestBuildDpuExtensionServiceDeployment build DPU Extension Service Deployment

func TestBuildExpectedMachine

func TestBuildExpectedMachine(t *testing.T, dbSession *cdb.Session, site *cdbm.Site, bmcMacAddress, chassisSerialNumber string, user *cdbm.User) *cdbm.ExpectedMachine

TestBuildExpectedMachine inserts a minimal ExpectedMachine row for the given site.

func TestBuildExpectedPowerShelf

func TestBuildExpectedPowerShelf(t *testing.T, dbSession *cdb.Session, site *cdbm.Site, bmcMacAddress, shelfSerialNumber string, user *cdbm.User) *cdbm.ExpectedPowerShelf

TestBuildExpectedPowerShelf inserts a minimal ExpectedPowerShelf row for the given site.

func TestBuildExpectedSwitch

func TestBuildExpectedSwitch(t *testing.T, dbSession *cdb.Session, site *cdbm.Site, bmcMacAddress, switchSerialNumber string, user *cdbm.User) *cdbm.ExpectedSwitch

TestBuildExpectedSwitch inserts a minimal ExpectedSwitch row for the given site.

func TestBuildImageOperatingSystem

func TestBuildImageOperatingSystem(t *testing.T, dbSession *cdb.Session, ipID *uuid.UUID, tenantID *uuid.UUID, name string, org string, version *string, status string) *cdbm.OperatingSystem

TestBuildOperatingSystem build operating system

func TestBuildImageOperatingSystemSiteAssociation

func TestBuildImageOperatingSystemSiteAssociation(t *testing.T, dbSession *cdb.Session, osID uuid.UUID, siteID uuid.UUID, status string, version string, isMissingOnSite bool) *cdbm.OperatingSystemSiteAssociation

TestBuildImageOperatingSystemSiteAssociation build operating system site association

func TestBuildInfiniBandInterface

func TestBuildInfiniBandInterface(t *testing.T, dbSession *cdb.Session, instanceID, siteID, infiniBandPartitionID uuid.UUID, device string, deviceInstance int, isPhysical bool, vfID *int, status string, isMissingOnSite bool) *cdbm.InfiniBandInterface

TestBuildInfiniBandInterface builds and returns a test InfiniBandInterface

func TestBuildInfiniBandPartition

func TestBuildInfiniBandPartition(t *testing.T, dbSession *cdb.Session, name string, site *cdbm.Site, tenant *cdbm.Tenant, controllerIBPartitionID *uuid.UUID, status cdbm.InfiniBandPartitionStatus, isMissingOnSite bool) *cdbm.InfiniBandPartition

TestBuildInfiniBandPartition builds and returns an InfiniBandPartition

func TestBuildInfrastructureProvider

func TestBuildInfrastructureProvider(t *testing.T, dbSession *cdb.Session, name string, org string, user *cdbm.User) *cdbm.InfrastructureProvider

TestBuildInfrastructureProvider build infrastructure provider

func TestBuildInstance

func TestBuildInstance(t *testing.T, dbSession *cdb.Session, name string, tn uuid.UUID, ip uuid.UUID, st uuid.UUID, ist uuid.UUID, vpc uuid.UUID, mc *string, os uuid.UUID, status string) *cdbm.Instance

TestBuildInstance creates a test instance

func TestBuildInstanceType

func TestBuildInstanceType(t *testing.T, dbSession *cdb.Session, ip *cdbm.InfrastructureProvider, site *cdbm.Site, name string) *cdbm.InstanceType

TestBuildInstanceType build instance type

func TestBuildInterface

func TestBuildInterface(t *testing.T, dbSession *cdb.Session, instanceID, subnetID *uuid.UUID, vpID *uuid.UUID, isPhysical bool, device *string, deviceInstance *int, vfID *int, userID *uuid.UUID, status string) *cdbm.Interface

TestBuildInterface builds and returns a test Interface

func TestBuildMachine

func TestBuildMachine(t *testing.T, dbSession *cdb.Session, ip uuid.UUID, site uuid.UUID, controllerMachineType *string, isAssiged *bool, status string) *cdbm.Machine

TestBuildMachine build machine

func TestBuildMachineInstanceType

func TestBuildMachineInstanceType(t *testing.T, dbSession *cdb.Session, m *cdbm.Machine, it *cdbm.InstanceType) *cdbm.MachineInstanceType

TestBuildMachineInstanceType creates a test Machine Instance Type

func TestBuildMachineInterface

func TestBuildMachineInterface(t *testing.T, dbSession *cdb.Session, machineID string, controllerInterfaceID, controllerSegmentID, subnetID *uuid.UUID, hostname *string) *cdbm.MachineInterface

TestBuildMachine build machine interface

func TestBuildNVLinkInterface

func TestBuildNVLinkInterface(t *testing.T, dbSession *cdb.Session, instanceID, siteID, nvllPartitionID uuid.UUID, device *string, deviceInstance int, gpuGuid *string, nvlinkDomainID *uuid.UUID, status string) *cdbm.NVLinkInterface

TestBuildNVLinkInterface builds and returns a test NVLinkInterface

func TestBuildNVLinkLogicalPartition

func TestBuildNVLinkLogicalPartition(t *testing.T, dbSession *cdb.Session, name string, description *string, site *cdbm.Site, tenant *cdbm.Tenant, status cdbm.NVLinkLogicalPartitionStatus, isMissingOnSite bool) *cdbm.NVLinkLogicalPartition

TestBuildNVLinkLogicalPartition builds and returns an NVLinkLogicalPartition

func TestBuildNetworkSecurityGroup

func TestBuildNetworkSecurityGroup(t *testing.T, dbSession *cdb.Session, name string, site *cdbm.Site, tenant *cdbm.Tenant, status string, user *cdbm.User) *cdbm.NetworkSecurityGroup

TestBuildNetworkSecurityGroup inserts a minimal NetworkSecurityGroup row for a given site/tenant. Rules are intentionally left empty since callers care about the cleanup behaviour, not the rule contents.

func TestBuildOperatingSystem

func TestBuildOperatingSystem(t *testing.T, dbSession *cdb.Session, name string) *cdbm.OperatingSystem

TestBuildOperatingSystem build operating system

func TestBuildSSHKey

func TestBuildSSHKey(t *testing.T, dbSession *cdb.Session, name string, tenant *cdbm.Tenant, publicKey string, user *cdbm.User) *cdbm.SSHKey

TestBuildSSHKey creates a test SSH Key

func TestBuildSSHKeyAssociation

func TestBuildSSHKeyAssociation(t *testing.T, dbSession *cdb.Session, sshKeyGroupID uuid.UUID, sshKeyID uuid.UUID, createdBy uuid.UUID) *cdbm.SSHKeyAssociation

func TestBuildSSHKeyGroup

func TestBuildSSHKeyGroup(t *testing.T, dbSession *cdb.Session, name, org string, description *string, tenantID uuid.UUID, version *string, status string, createdBy uuid.UUID) *cdbm.SSHKeyGroup

func TestBuildSSHKeyGroupInstanceAssociation

func TestBuildSSHKeyGroupInstanceAssociation(t *testing.T, dbSession *cdb.Session, sshKeyGroupID uuid.UUID, siteID uuid.UUID, instanceID uuid.UUID, createdBy uuid.UUID) *cdbm.SSHKeyGroupInstanceAssociation

func TestBuildSSHKeyGroupSiteAssociation

func TestBuildSSHKeyGroupSiteAssociation(t *testing.T, dbSession *cdb.Session, sshKeyGroupID uuid.UUID, siteID uuid.UUID, version *string, status string, createdBy uuid.UUID) *cdbm.SSHKeyGroupSiteAssociation

func TestBuildSite

func TestBuildSite(t *testing.T, dbSession *cdb.Session, ip *cdbm.InfrastructureProvider, name string, status string, inventoryReceived *time.Time, user *cdbm.User) *cdbm.Site

TestBuildSite build site

func TestBuildSku

func TestBuildSku(t *testing.T, dbSession *cdb.Session, skuID string, site *cdbm.Site) *cdbm.SKU

TestBuildSku inserts a minimal SKU row for the given site.

func TestBuildSpectrumXAttachment

func TestBuildSpectrumXAttachment(t *testing.T, dbSession *cdb.Session, instanceID, siteID, spectrumXPartitionID uuid.UUID, device string, deviceInstance int, attachmentType cdbm.SpectrumXAttachmentType, status string, isMissingOnSite bool) *cdbm.SpectrumXAttachment

TestBuildSpectrumXAttachment builds and returns a SpectrumXAttachment

func TestBuildSpectrumXPartition

func TestBuildSpectrumXPartition(t *testing.T, dbSession *cdb.Session, name string, site *cdbm.Site, tenant *cdbm.Tenant, vni *int, status cdbm.SpectrumXPartitionStatus, isMissingOnSite bool) *cdbm.SpectrumXPartition

TestBuildSpectrumXPartition builds and returns a SpectrumXPartition

func TestBuildStatusDetail

func TestBuildStatusDetail(t *testing.T, dbSession *cdb.Session, entityID string, status string, message *string) *cdbm.StatusDetail

func TestBuildStatusDetailWithTime

func TestBuildStatusDetailWithTime(t *testing.T, dbSession *cdb.Session, entityID string, status string, message *string, timestamp time.Time) *cdbm.StatusDetail

TestBuildStatusDetailWithTime creates a StatusDetail with a specific timestamp This is useful for metrics testing where precise timing is needed

func TestBuildSubnet

func TestBuildSubnet(t *testing.T, dbSession *cdb.Session, tenant *cdbm.Tenant, vpc *cdbm.Vpc, name, status string, segmentID *uuid.UUID) *cdbm.Subnet

TestBuildSubnet build subnet

func TestBuildTenant

func TestBuildTenant(t *testing.T, dbSession *cdb.Session, orgDisplayName string, org string, config *cdbm.TenantConfig, user *cdbm.User) *cdbm.Tenant

TestBuildTenant build tenant

func TestBuildTenantSiteAssociation

func TestBuildTenantSiteAssociation(t *testing.T, dbSession *cdb.Session, org string, tenantID uuid.UUID, siteID uuid.UUID, createdBy uuid.UUID) *cdbm.TenantSite

func TestBuildUser

func TestBuildUser(t *testing.T, dbSession *cdb.Session, starfleetID string, orgs []string, roles []string) *cdbm.User

TestBuildUser build user

func TestBuildVPC

func TestBuildVPC(t *testing.T, dbSession *cdb.Session, name string, ip *cdbm.InfrastructureProvider, tn *cdbm.Tenant, st *cdbm.Site, cnvID *uuid.UUID, lb map[string]string, status string, user *cdbm.User) *cdbm.Vpc

TestBuildVPC creates a test VPC

func TestBuildVPCPrefix

func TestBuildVPCPrefix(t *testing.T, dbSession *cdb.Session, name string, st *cdbm.Site, tenant *cdbm.Tenant, vpcID uuid.UUID, ipv4BlockID *uuid.UUID, prefix *string, prefixLength *int, status string, user *cdbm.User) *cdbm.VpcPrefix

func TestBuildVpc

func TestBuildVpc(t *testing.T, dbSession *cdb.Session, ip *cdbm.InfrastructureProvider, site *cdbm.Site, tenant *cdbm.Tenant, name string) *cdbm.Vpc

TestBuildVpc build vpc

func TestBuildVpcPeering

func TestBuildVpcPeering(t *testing.T, dbSession *cdb.Session, vpc1ID, vpc2ID, siteID uuid.UUID, ipID uuid.UUID, tenantID uuid.UUID, createdBy uuid.UUID) *cdbm.VpcPeering

TestBuildVpcPeering inserts a VpcPeering row. The schema enforces FK constraints on (vpc1_id, vpc2_id, site_id, infrastructure_provider_id, tenant_id), so callers must pass IDs of rows that already exist.

func TestInitDB

func TestInitDB(t *testing.T) *cdb.Session

TestInitDB init DB

func TestInventoryAgeDeletedTimestamp

func TestInventoryAgeDeletedTimestamp(ctx context.Context, t *testing.T, dbSession *cdb.Session, model any, id any)

TestInventoryAgeDeletedTimestamp backdates a soft-deleted row's delete time past the inventory staleness threshold. The inventory activities refuse to undelete a row deleted more recently than that, so a fixture that soft-deletes a row and then feeds an inventory still reporting it has to age the delete first. Pass a typed nil model, for example (*cdbm.Vpc)(nil).

func TestInventoryAgeUpdatedTimestamp

func TestInventoryAgeUpdatedTimestamp(ctx context.Context, t *testing.T, dbSession *cdb.Session, models ...any)

TestInventoryAgeUpdatedTimestamp backdates every row of a table past the inventory staleness threshold. The inventory activities skip updating a row written more recently than that, so a fixture that seeds rows and then feeds them a competing inventory has to age them first. Each test builds its own schema, so ageing the whole table keeps the fixture setup to one call. Pass a typed nil model, for example (*cdbm.Vpc)(nil).

func TestSetupSchema

func TestSetupSchema(t *testing.T, dbSession *cdb.Session)

TestSetupSchema setup schema reset the tables needed for Instance tests

func TestSetupSite

func TestSetupSite(t *testing.T, dbSession *cdb.Session) *cdbm.Site

TestSetupSite creates a complete site setup for testing (user, infrastructure provider, and site) This is a common utility for all inventory metrics testing

func TestTemporalSiteClientPool

func TestTemporalSiteClientPool(t *testing.T) *sc.ClientPool

TestTemporalSiteClientPool creates a Temporal site client pool

func TestUpdateInstance

func TestUpdateInstance(t *testing.T, dbSession *cdb.Session, ins *cdbm.Instance)

func TestUpdateVPC

func TestUpdateVPC(t *testing.T, dbSession *cdb.Session, v *cdbm.Vpc)

func UpdateNVLinkLogicalPartitionStatusInDB

func UpdateNVLinkLogicalPartitionStatusInDB(ctx context.Context, tx *cdb.Tx, dbSession *cdb.Session, nvlinklogicalpartitionID uuid.UUID, status *cdbm.NVLinkLogicalPartitionStatus, statusMessage *string) (*cdbm.NVLinkLogicalPartition, *cdbm.StatusDetail, error)

UpdateNVLinkLogicalPartitionStatusInDB updates the NVLinkLogicalPartition status in the DB and creates a new StatusDetail

Types

type Attachment

type Attachment struct {
	Color         string `json:"color,omitempty"`
	Fallback      string `json:"fallback,omitempty"`
	CallbackID    string `json:"callback_id,omitempty"`
	ID            int    `json:"id,omitempty"`
	AuthorID      string `json:"author_id,omitempty"`
	AuthorName    string `json:"author_name,omitempty"`
	AuthorSubname string `json:"author_subname,omitempty"`
	AuthorLink    string `json:"author_link,omitempty"`
	AuthorIcon    string `json:"author_icon,omitempty"`
	Title         string `json:"title,omitempty"`
	TitleLink     string `json:"title_link,omitempty"`
	Pretext       string `json:"pretext,omitempty"`
	Text          string `json:"text,omitempty"`
	ImageURL      string `json:"image_url,omitempty"`
	ThumbURL      string `json:"thumb_url,omitempty"`
	// Fields and actions are not defined.
	MarkdownIn []string    `json:"mrkdwn_in,omitempty"`
	Ts         json.Number `json:"ts,omitempty"`
}

type SlackClient

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

func NewSlackClient

func NewSlackClient(webHookUrl string) SlackClient

NewSlackClient returns a new SlackClient

func (SlackClient) SendSlackNotification

func (sc SlackClient) SendSlackNotification(sm SlackMessage) error

SendSlackNotification will post to the Slack webhook URL

type SlackMessage

type SlackMessage struct {
	IconEmoji   string       `json:"icon_emoji,omitempty"`
	Text        string       `json:"text,omitempty"`
	Attachments []Attachment `json:"attachments,omitempty"`
}

Jump to

Keyboard shortcuts

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