Documentation
¶
Index ¶
- Constants
- func InsertConcerns(ctx context.Context, db *sql.DB, builder *ConcernValuesBuilder) error
- type AllResourceBreakdowns
- type ConcernValuesBuilder
- type Filters
- 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) BuildInventory(ctx context.Context) (*inventory.Inventory, error)
- func (p *Parser) CPUTierDistribution(ctx context.Context, filters Filters) (map[string]int, error)
- func (p *Parser) ClusterDatacenters(ctx context.Context) (map[string]string, error)
- func (p *Parser) ClusterObjectIDs(ctx context.Context) (map[string]string, 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]inventory.DiskSizeTierSummary, error)
- func (p *Parser) DiskTypeSummary(ctx context.Context, filters Filters) ([]inventory.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) ([]inventory.MigrationIssue, error)
- func (p *Parser) Networks(ctx context.Context, filters Filters, options Options) ([]models.Network, error)
- func (p *Parser) NicTierDistribution(ctx context.Context, filters Filters) (map[string]int, 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) VMsWithSharedDisksCount(ctx context.Context, filters Filters) (int, error)
- func (p *Parser) ValidateSchema(ctx context.Context, table string) 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) ClusterDatacentersQuery() (string, error)
- func (b *QueryBuilder) ClusterObjectIDsQuery() (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) NicTierQuery(filters Filters) (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)
- func (b *QueryBuilder) VMsWithSharedDisksCountQuery(filters Filters) (string, error)
- type ResourceTotals
- type ValidationIssue
- type ValidationResult
- type Validator
Constants ¶
const ( CodeNoVMs = "NO_VMS" CodeMissingVMID = "MISSING_VM_ID" CodeMissingVMName = "MISSING_VM_NAME" CodeMissingCluster = "MISSING_CLUSTER" )
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 inventory.ResourceBreakdown
RamGB inventory.ResourceBreakdown
DiskCount inventory.ResourceBreakdown
DiskGB inventory.ResourceBreakdown
NicCount inventory.ResourceBreakdown
}
AllResourceBreakdowns holds all resource breakdowns by migrability. Uses inventory.ResourceBreakdown to avoid type duplication.
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 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 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) BuildInventory ¶ added in v0.5.0
BuildInventory constructs domain inventory from parsed data. It builds both vcenter-level and per-cluster inventories.
func (*Parser) CPUTierDistribution ¶
CPUTierDistribution returns VM distribution by CPU tier.
func (*Parser) ClusterDatacenters ¶ added in v0.5.0
ClusterDatacenters returns a mapping of cluster name to datacenter name.
func (*Parser) ClusterObjectIDs ¶ added in v0.5.0
ClusterObjectIDs returns a mapping of cluster name to Object ID from vCluster sheet.
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]inventory.DiskSizeTierSummary, error)
DiskSizeTierDistribution returns VM distribution by disk size tier.
func (*Parser) DiskTypeSummary ¶
func (p *Parser) DiskTypeSummary(ctx context.Context, filters Filters) ([]inventory.DiskTypeSummary, error)
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) ([]inventory.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) NicTierDistribution ¶ added in v0.5.0
NicTierDistribution returns VM distribution by NIC count tier.
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) VMsWithSharedDisksCount ¶ added in v0.5.0
VMsWithSharedDisksCount returns count of VMs that have at least one shared disk.
func (*Parser) ValidateSchema ¶
func (p *Parser) ValidateSchema(ctx context.Context, table string) ValidationResult
ValidateSchema checks the ingested schema for required tables, columns, and data. The table parameter specifies which table to validate VM data against (e.g., "vinfo_raw" for RVTools, "vinfo" for SQLite). 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) ClusterDatacentersQuery ¶ added in v0.5.0
func (b *QueryBuilder) ClusterDatacentersQuery() (string, error)
ClusterDatacentersQuery builds the cluster to datacenter mapping query.
func (*QueryBuilder) ClusterObjectIDsQuery ¶ added in v0.5.0
func (b *QueryBuilder) ClusterObjectIDsQuery() (string, error)
ClusterObjectIDsQuery builds the cluster name to Object ID mapping 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) NicTierQuery ¶ added in v0.5.0
func (b *QueryBuilder) NicTierQuery(filters Filters) (string, error)
NicTierQuery builds the NIC count tier distribution query.
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.
func (*QueryBuilder) VMQuery ¶
func (b *QueryBuilder) VMQuery(filters Filters, options Options) (string, error)
VMQuery builds the VM query with filters and pagination.
func (*QueryBuilder) VMsWithSharedDisksCountQuery ¶ added in v0.5.0
func (b *QueryBuilder) VMsWithSharedDisksCountQuery(filters Filters) (string, error)
VMsWithSharedDisksCountQuery builds the VMs with shared disks count query.
type ResourceTotals ¶
type ResourceTotals struct {
TotalCPUCores int
TotalRAMGB int
TotalDiskCount int
TotalDiskGB int
TotalNICCount int
}
ResourceTotals contains aggregated resource totals.
type ValidationIssue ¶
type ValidationIssue struct {
Code string // Machine-readable code (e.g., "NO_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).