util

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2026 License: Apache-2.0 Imports: 24 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 GetIntPtrToUint32Ptr

func GetIntPtrToUint32Ptr(i *int) (*uint32, error)

A convenience function for converting a pointer to a native Go integer to a pointer to a uint32 for use with a protobuf message. Accepts a pointer to an int and returns a uint32 pointer.

If the input is nil, nil will be returned. If a pointer to a value greater than uint32 max is submitted, an error will be returned.

func GetNVLinkLogicalPartitionStatus

func GetNVLinkLogicalPartitionStatus(controllerNVLinkLogicalPartitionTenantState cwssaws.TenantState) (*string, *string)

GetNVLinkLogicalPartitionStatus returns the NVLinkLogicalPartition status and message from Controller NVLinkLogicalPartition state

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 IsTimeWithinStaleInventoryThreshold

func IsTimeWithinStaleInventoryThreshold(actionTime time.Time) bool

IsTimeWithinStaleInventoryThreshold checks if the action time is within the threshold where we could be processing an older inventory

func MachineCapabilitiesEqual

func MachineCapabilitiesEqual(cap1 *cdbm.MachineCapability, cap2 *cdbm.MachineCapability) bool

func NetworkSecurityGroupPropagationDetailsEqual

func NetworkSecurityGroupPropagationDetailsEqual(pd1, pd2 *cdbm.NetworkSecurityGroupPropagationDetails) bool

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 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 string, 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 string, isMissingOnSite bool) *cdbm.NVLinkLogicalPartition

TestBuildNVLinkLogicalPartition builds and returns an NVLinkLogicalPartition

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 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, org string, orgDisplayName 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 TestInitDB

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

TestInitDB init DB

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 *string, 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 PagerDutyClient

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

PagerDutyClient wraps the official PagerDuty client for sending events

func NewPagerDutyClient

func NewPagerDutyClient(integrationKey string) PagerDutyClient

NewPagerDutyClient creates a new PagerDuty client wrapper

func (PagerDutyClient) SendPagerDutyAlertWithDedupeKey

func (pc PagerDutyClient) SendPagerDutyAlertWithDedupeKey(ctx context.Context, summary, source, dedupKey string, customDetails map[string]string) error

SendPagerDutyAlertWithDedupeKey sends a critical alert to PagerDuty with a custom deduplication key

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