Skip to content

Commit 76496a6

Browse files
author
Zach Olinske
committed
fix: address PR microsoft#2006 review feedback
Comprehensive rewrite of Generate-MultiCloudTestData.ps1: Critical fixes: - Fix Get-Random [int] overflow with 12-digit AWS account IDs (New-AwsAccountId) - Eliminate Python dependency entirely (inline budget scaling via scale factor) - Remove dead code from Python/Parquet block Required by repo conventions: - Add #Requires -Version 7.0 - Add .LINK to comment-based help - Add [CmdletBinding(SupportsShouldProcess)] with WhatIf/Confirm support - Add changelog entry - Add test directory README.md FOCUS specification compliance: - Fix ~12 ServiceSubcategory values to match FOCUS closed enumeration - Fix cost invariants: unit prices calculated AFTER all cost modifications - Anomaly rows now set ChargeClass=Correction (exempt from invariant rules) - Credits/Adjustments get null InvoiceId (per FOCUS spec) - Version-aware column sets: v1.1+ gets CommitmentDiscountQuantity/Unit, v1.2+ gets BillingAccountType/SubAccountType/InvoiceId, v1.3+ gets HostProviderName/ServiceProviderName - Document scope as Cost and Usage dataset only Recommended improvements: - Add -Seed parameter for reproducible test data - Add -UseStorageKey switch, default to Azure AD auth (--auth-mode login) - Fix Get-RandomDecimal to use [long] instead of [int] for large ranges
1 parent b83b695 commit 76496a6

3 files changed

Lines changed: 744 additions & 568 deletions

File tree

docs/_resources/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ Legend:
7272
> - Added param to disable external access to Azure Data Lake and Azure Data Explorer.
7373
> - Added param to specify subnet range of vnet - minumum size = /26
7474
> 6. Infrastructure encryption - Added an optional enableInfrastructureEncryption template parameter to support storage account infrastructure encryption.
75+
> 7. Multi-cloud test data generator – Added `Generate-MultiCloudTestData.ps1` to create synthetic FOCUS-compliant cost data for Azure, AWS, GCP, and on-premises providers. Supports FOCUS versions 1.0-1.3 with version-specific column sets, commitment discounts, Azure Hybrid Benefit, tag variation, and inline budget scaling. Includes `-Seed` for reproducibility and Azure AD auth for uploads.
7576
7677
📊 Power BI reports
7778
{: .fs-5 .fw-500 .mt-4 mb-0 }

0 commit comments

Comments
 (0)