Documentation
¶
Index ¶
- Constants
- func InsertConcerns(ctx context.Context, db *sql.DB, builder *ConcernValuesBuilder) error
- type AllResourceBreakdowns
- type ConcernValuesBuilder
- type DiskSizeTierSummary
- type DiskTypeSummary
- type Filters
- type MigrationIssue
- type Options
- type Parser
- func (p *Parser) AllocatedMemoryMB(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) AllocatedVCPUs(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) CPUTierDistribution(ctx context.Context, filters Filters) (map[string]int, error)
- func (p *Parser) Clusters(ctx context.Context) ([]string, error)
- func (p *Parser) ClustersPerDatacenter(ctx context.Context) ([]int, error)
- func (p *Parser) DatacenterCount(ctx context.Context) (int, error)
- func (p *Parser) Datastores(ctx context.Context, filters Filters, options Options) ([]models.Datastore, error)
- func (p *Parser) DiskSizeTierDistribution(ctx context.Context, filters Filters) (map[string]DiskSizeTierSummary, error)
- func (p *Parser) DiskTypeSummary(ctx context.Context, filters Filters) ([]DiskTypeSummary, error)
- func (p *Parser) HostPowerStateCounts(ctx context.Context, filters Filters) (map[string]int, error)
- func (p *Parser) Hosts(ctx context.Context, filters Filters, options Options) ([]models.Host, error)
- func (p *Parser) IngestRvTools(ctx context.Context, excelFile string) (ValidationResult, error)
- func (p *Parser) IngestSqlite(ctx context.Context, sqliteFile string) (ValidationResult, error)
- func (p *Parser) Init() error
- func (p *Parser) MemoryTierDistribution(ctx context.Context, filters Filters) (map[string]int, error)
- func (p *Parser) MigratableVMCount(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) MigratableWithWarningsVMCount(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) MigrationIssues(ctx context.Context, filters Filters, category string) ([]MigrationIssue, error)
- func (p *Parser) Networks(ctx context.Context, filters Filters, options Options) ([]models.Network, error)
- func (p *Parser) NotMigratableVMCount(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) OsSummary(ctx context.Context, filters Filters) ([]models.Os, error)
- func (p *Parser) PowerStateCounts(ctx context.Context, filters Filters) (map[string]int, error)
- func (p *Parser) ResourceBreakdowns(ctx context.Context, filters Filters) (AllResourceBreakdowns, error)
- func (p *Parser) TotalHostCPUCores(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) TotalHostMemoryMB(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) TotalResources(ctx context.Context, filters Filters) (ResourceTotals, error)
- func (p *Parser) VCenterID(ctx context.Context) (string, error)
- func (p *Parser) VMCount(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) VMCountByNetwork(ctx context.Context, filters Filters) (map[string]int, error)
- func (p *Parser) VMs(ctx context.Context, filters Filters, options Options) ([]models.VM, error)
- func (p *Parser) ValidateSchema(ctx context.Context) ValidationResult
- type QueryBuilder
- func (b *QueryBuilder) AllocatedMemoryQuery(filters Filters) (string, error)
- func (b *QueryBuilder) AllocatedVCPUsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) CPUTierQuery(filters Filters) (string, error)
- func (b *QueryBuilder) ClustersPerDatacenterQuery() (string, error)
- func (b *QueryBuilder) ClustersQuery() (string, error)
- func (b *QueryBuilder) CreateSchemaQuery() (string, error)
- func (b *QueryBuilder) DatacenterCountQuery() (string, error)
- func (b *QueryBuilder) DatastoreQuery(filters Filters, options Options) (string, error)
- func (b *QueryBuilder) DiskSizeTierQuery(filters Filters) (string, error)
- func (b *QueryBuilder) DiskTypeSummaryQuery(filters Filters) (string, error)
- func (b *QueryBuilder) HostPowerStateCountsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) HostQuery(filters Filters, options Options) (string, error)
- func (b *QueryBuilder) IngestRvtoolsQuery(filePath string) (string, error)
- func (b *QueryBuilder) IngestSqliteQuery(filePath string) (string, error)
- func (b *QueryBuilder) MemoryTierQuery(filters Filters) (string, error)
- func (b *QueryBuilder) MigratableCountQuery(filters Filters) (string, error)
- func (b *QueryBuilder) MigratableWithWarningsCountQuery(filters Filters) (string, error)
- func (b *QueryBuilder) MigrationIssuesQuery(filters Filters, category string) (string, error)
- func (b *QueryBuilder) NetworkQuery(filters Filters, options Options) (string, error)
- func (b *QueryBuilder) NotMigratableCountQuery(filters Filters) (string, error)
- func (b *QueryBuilder) OsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) PowerStateCountsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) ResourceBreakdownsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) ResourceTotalsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) TotalHostCPUsQuery(filters Filters) (string, error)
- func (b *QueryBuilder) TotalHostMemoryQuery(filters Filters) (string, error)
- func (b *QueryBuilder) VCenterQuery() (string, error)
- func (b *QueryBuilder) VMCountByNetworkQuery(filters Filters) (string, error)
- func (b *QueryBuilder) VMCountQuery(filters Filters) (string, error)
- func (b *QueryBuilder) VMQuery(filters Filters, options Options) (string, error)
- type ResourceTotals
- type VMResourceBreakdown
- type ValidationIssue
- type ValidationResult
- type Validator
Constants ¶
const ( CodeNoVMs = "NO_VMS" CodeMissingVMID = "MISSING_VM_ID" CodeMissingVMName = "MISSING_VM_NAME" CodeMissingPowerstate = "MISSING_POWERSTATE" )
Validation codes for errors
const ( CodeEmptyHosts = "EMPTY_HOSTS" CodeEmptyDatastores = "EMPTY_DATASTORES" CodeEmptyNetworks = "EMPTY_NETWORKS" CodeEmptyCPU = "EMPTY_CPU" CodeEmptyMemory = "EMPTY_MEMORY" CodeEmptyDisks = "EMPTY_DISKS" CodeEmptyNICs = "EMPTY_NICS" )
Validation codes for warnings
Variables ¶
This section is empty.
Functions ¶
func InsertConcerns ¶
InsertConcerns executes the bulk insert of concerns into the database.
Types ¶
type AllResourceBreakdowns ¶
type AllResourceBreakdowns struct {
CpuCores VMResourceBreakdown
RamGB VMResourceBreakdown
DiskCount VMResourceBreakdown
DiskGB VMResourceBreakdown
NicCount VMResourceBreakdown
}
AllResourceBreakdowns holds all resource breakdowns by migrability.
type ConcernValuesBuilder ¶
type ConcernValuesBuilder struct {
// contains filtered or unexported fields
}
ConcernValuesBuilder builds SQL VALUES for bulk inserting concerns.
func NewConcernValuesBuilder ¶
func NewConcernValuesBuilder() *ConcernValuesBuilder
NewConcernValuesBuilder creates a new ConcernValuesBuilder.
func (*ConcernValuesBuilder) Append ¶
func (cb *ConcernValuesBuilder) Append(vmID string, concerns ...models.Concern) *ConcernValuesBuilder
Append adds concerns for a VM to the builder.
func (*ConcernValuesBuilder) Build ¶
func (cb *ConcernValuesBuilder) Build() string
Build returns the VALUES clause string, or empty string if no values.
func (*ConcernValuesBuilder) IsEmpty ¶
func (cb *ConcernValuesBuilder) IsEmpty() bool
IsEmpty returns true if no concerns have been added.
type DiskSizeTierSummary ¶
DiskSizeTierSummary contains VM count and total size for a disk size tier.
type DiskTypeSummary ¶
DiskTypeSummary contains disk usage aggregated by datastore type.
type Filters ¶
type Filters struct {
Cluster string // filter by cluster name
VmId string // filter by vm ID
OS string // filter by OS name (for VMs)
PowerState string // filter by power state (for VMs)
}
Filters for querying data.
type MigrationIssue ¶
MigrationIssue represents an aggregated migration issue.
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
Parser provides methods for parsing and querying VMware inventory data.
func (*Parser) AllocatedMemoryMB ¶
AllocatedMemoryMB returns sum of memory (MB) for powered-on VMs.
func (*Parser) AllocatedVCPUs ¶
AllocatedVCPUs returns sum of vCPUs for powered-on VMs.
func (*Parser) CPUTierDistribution ¶
CPUTierDistribution returns VM distribution by CPU tier.
func (*Parser) ClustersPerDatacenter ¶
ClustersPerDatacenter returns cluster count per datacenter.
func (*Parser) DatacenterCount ¶
DatacenterCount returns count of unique datacenters.
func (*Parser) Datastores ¶
func (p *Parser) Datastores(ctx context.Context, filters Filters, options Options) ([]models.Datastore, error)
Datastores returns datastores with optional filters and pagination.
func (*Parser) DiskSizeTierDistribution ¶
func (p *Parser) DiskSizeTierDistribution(ctx context.Context, filters Filters) (map[string]DiskSizeTierSummary, error)
DiskSizeTierDistribution returns VM distribution by disk size tier.
func (*Parser) DiskTypeSummary ¶
DiskTypeSummary returns disk usage aggregated by datastore type.
func (*Parser) HostPowerStateCounts ¶
HostPowerStateCounts returns host power state distribution.
func (*Parser) Hosts ¶
func (p *Parser) Hosts(ctx context.Context, filters Filters, options Options) ([]models.Host, error)
Hosts returns hosts with optional filters and pagination.
func (*Parser) IngestRvTools ¶
IngestRvTools ingests data from an RVTools Excel file, runs VM validation if a validator is configured, and validates the schema for required tables/columns. Returns a ValidationResult with errors (fatal) and warnings (non-fatal). If ValidationResult.HasErrors() is true, the inventory cannot be built.
func (*Parser) IngestSqlite ¶
IngestSqlite ingests data from a forklift SQLite database, runs VM validation if a validator is configured, and validates the schema for required tables/columns. Returns a ValidationResult with errors (fatal) and warnings (non-fatal). If ValidationResult.HasErrors() is true, the inventory cannot be built.
func (*Parser) MemoryTierDistribution ¶
func (p *Parser) MemoryTierDistribution(ctx context.Context, filters Filters) (map[string]int, error)
MemoryTierDistribution returns VM distribution by memory tier.
func (*Parser) MigratableVMCount ¶
MigratableVMCount returns count of VMs without Critical concerns.
func (*Parser) MigratableWithWarningsVMCount ¶
MigratableWithWarningsVMCount returns count of VMs with Warning but no Critical concerns.
func (*Parser) MigrationIssues ¶
func (p *Parser) MigrationIssues(ctx context.Context, filters Filters, category string) ([]MigrationIssue, error)
MigrationIssues returns aggregated migration issues by category.
func (*Parser) Networks ¶
func (p *Parser) Networks(ctx context.Context, filters Filters, options Options) ([]models.Network, error)
Networks returns networks with optional filters and pagination.
func (*Parser) NotMigratableVMCount ¶
NotMigratableVMCount returns count of VMs with Critical concerns.
func (*Parser) PowerStateCounts ¶
PowerStateCounts returns VM power state distribution.
func (*Parser) ResourceBreakdowns ¶
func (p *Parser) ResourceBreakdowns(ctx context.Context, filters Filters) (AllResourceBreakdowns, error)
ResourceBreakdowns returns all resource breakdowns by migrability status.
func (*Parser) TotalHostCPUCores ¶
TotalHostCPUCores returns sum of physical CPU cores across hosts.
func (*Parser) TotalHostMemoryMB ¶
TotalHostMemoryMB returns sum of host memory (MB).
func (*Parser) TotalResources ¶
TotalResources returns aggregated resource totals.
func (*Parser) VMCountByNetwork ¶
VMCountByNetwork returns VM count per network.
func (*Parser) ValidateSchema ¶
func (p *Parser) ValidateSchema(ctx context.Context) ValidationResult
ValidateSchema checks the ingested schema for required tables, columns, and data. It returns a ValidationResult with errors (fatal) and warnings (non-fatal).
type QueryBuilder ¶
type QueryBuilder struct{}
QueryBuilder builds SQL queries from templates.
func (*QueryBuilder) AllocatedMemoryQuery ¶
func (b *QueryBuilder) AllocatedMemoryQuery(filters Filters) (string, error)
AllocatedMemoryQuery builds the allocated memory query.
func (*QueryBuilder) AllocatedVCPUsQuery ¶
func (b *QueryBuilder) AllocatedVCPUsQuery(filters Filters) (string, error)
AllocatedVCPUsQuery builds the allocated vCPUs query.
func (*QueryBuilder) CPUTierQuery ¶
func (b *QueryBuilder) CPUTierQuery(filters Filters) (string, error)
CPUTierQuery builds the CPU tier distribution query.
func (*QueryBuilder) ClustersPerDatacenterQuery ¶
func (b *QueryBuilder) ClustersPerDatacenterQuery() (string, error)
ClustersPerDatacenterQuery builds the clusters per datacenter query.
func (*QueryBuilder) ClustersQuery ¶
func (b *QueryBuilder) ClustersQuery() (string, error)
ClustersQuery builds the clusters query.
func (*QueryBuilder) CreateSchemaQuery ¶
func (b *QueryBuilder) CreateSchemaQuery() (string, error)
CreateSchemaQuery returns queries to create all RVTools tables with proper schema.
func (*QueryBuilder) DatacenterCountQuery ¶
func (b *QueryBuilder) DatacenterCountQuery() (string, error)
DatacenterCountQuery builds the datacenter count query.
func (*QueryBuilder) DatastoreQuery ¶
func (b *QueryBuilder) DatastoreQuery(filters Filters, options Options) (string, error)
DatastoreQuery builds the datastore query with filters and pagination.
func (*QueryBuilder) DiskSizeTierQuery ¶
func (b *QueryBuilder) DiskSizeTierQuery(filters Filters) (string, error)
DiskSizeTierQuery builds the disk size tier distribution query.
func (*QueryBuilder) DiskTypeSummaryQuery ¶
func (b *QueryBuilder) DiskTypeSummaryQuery(filters Filters) (string, error)
DiskTypeSummaryQuery builds the disk type summary query.
func (*QueryBuilder) HostPowerStateCountsQuery ¶
func (b *QueryBuilder) HostPowerStateCountsQuery(filters Filters) (string, error)
HostPowerStateCountsQuery builds the host power state counts query.
func (*QueryBuilder) HostQuery ¶
func (b *QueryBuilder) HostQuery(filters Filters, options Options) (string, error)
HostQuery builds the host query with filters and pagination.
func (*QueryBuilder) IngestRvtoolsQuery ¶
func (b *QueryBuilder) IngestRvtoolsQuery(filePath string) (string, error)
IngestRvtoolsQuery returns a query that inserts data from an RVTools Excel file into schema tables.
func (*QueryBuilder) IngestSqliteQuery ¶
func (b *QueryBuilder) IngestSqliteQuery(filePath string) (string, error)
IngestSqliteQuery returns a query that creates RVTools-shaped tables from a forklift SQLite database.
func (*QueryBuilder) MemoryTierQuery ¶
func (b *QueryBuilder) MemoryTierQuery(filters Filters) (string, error)
MemoryTierQuery builds the memory tier distribution query.
func (*QueryBuilder) MigratableCountQuery ¶
func (b *QueryBuilder) MigratableCountQuery(filters Filters) (string, error)
MigratableCountQuery builds the migratable VMs count query.
func (*QueryBuilder) MigratableWithWarningsCountQuery ¶
func (b *QueryBuilder) MigratableWithWarningsCountQuery(filters Filters) (string, error)
MigratableWithWarningsCountQuery builds the migratable with warnings count query.
func (*QueryBuilder) MigrationIssuesQuery ¶
func (b *QueryBuilder) MigrationIssuesQuery(filters Filters, category string) (string, error)
MigrationIssuesQuery builds the migration issues query.
func (*QueryBuilder) NetworkQuery ¶
func (b *QueryBuilder) NetworkQuery(filters Filters, options Options) (string, error)
NetworkQuery builds the network query with filters and pagination.
func (*QueryBuilder) NotMigratableCountQuery ¶
func (b *QueryBuilder) NotMigratableCountQuery(filters Filters) (string, error)
NotMigratableCountQuery builds the not migratable VMs count query.
func (*QueryBuilder) OsQuery ¶
func (b *QueryBuilder) OsQuery(filters Filters) (string, error)
OsQuery builds the OS summary query with filters.
func (*QueryBuilder) PowerStateCountsQuery ¶
func (b *QueryBuilder) PowerStateCountsQuery(filters Filters) (string, error)
PowerStateCountsQuery builds the power state counts query.
func (*QueryBuilder) ResourceBreakdownsQuery ¶
func (b *QueryBuilder) ResourceBreakdownsQuery(filters Filters) (string, error)
ResourceBreakdownsQuery builds the resource breakdowns query.
func (*QueryBuilder) ResourceTotalsQuery ¶
func (b *QueryBuilder) ResourceTotalsQuery(filters Filters) (string, error)
ResourceTotalsQuery builds the resource totals query.
func (*QueryBuilder) TotalHostCPUsQuery ¶
func (b *QueryBuilder) TotalHostCPUsQuery(filters Filters) (string, error)
TotalHostCPUsQuery builds the total host CPUs query.
func (*QueryBuilder) TotalHostMemoryQuery ¶
func (b *QueryBuilder) TotalHostMemoryQuery(filters Filters) (string, error)
TotalHostMemoryQuery builds the total host memory query.
func (*QueryBuilder) VCenterQuery ¶
func (b *QueryBuilder) VCenterQuery() (string, error)
VCenterQuery builds the vCenter ID query.
func (*QueryBuilder) VMCountByNetworkQuery ¶
func (b *QueryBuilder) VMCountByNetworkQuery(filters Filters) (string, error)
VMCountByNetworkQuery builds the VM count by network query.
func (*QueryBuilder) VMCountQuery ¶
func (b *QueryBuilder) VMCountQuery(filters Filters) (string, error)
VMCountQuery builds the VM count query with filters.
type ResourceTotals ¶
type ResourceTotals struct {
TotalCPUCores int
TotalRAMGB int
TotalDiskCount int
TotalDiskGB int
TotalNICCount int
}
ResourceTotals contains aggregated resource totals.
type VMResourceBreakdown ¶
type VMResourceBreakdown struct {
Total int
TotalForMigratable int
TotalForMigratableWithWarnings int
TotalForNotMigratable int
}
VMResourceBreakdown contains resource totals split by migrability status.
type ValidationIssue ¶
type ValidationIssue struct {
Code string // Machine-readable code (e.g., "MISSING_VMS", "EMPTY_HOSTS")
Table string // Affected table name
Column string // Affected column name (if applicable)
Message string // Human-readable description
}
ValidationIssue represents a single validation problem.
type ValidationResult ¶
type ValidationResult struct {
Errors []ValidationIssue
Warnings []ValidationIssue
}
ValidationResult contains errors and warnings from schema validation. Errors indicate the inventory cannot be built. Warnings indicate the inventory can be built but with missing data.
func (ValidationResult) Error ¶
func (v ValidationResult) Error() error
Error returns a combined error message if there are errors, nil otherwise.
func (ValidationResult) HasErrors ¶
func (v ValidationResult) HasErrors() bool
HasErrors returns true if there are any validation errors.
func (ValidationResult) HasWarnings ¶
func (v ValidationResult) HasWarnings() bool
HasWarnings returns true if there are any validation warnings.
func (ValidationResult) IsValid ¶
func (v ValidationResult) IsValid() bool
IsValid returns true if there are no errors (warnings are acceptable).