Skip to content

Conversation

@et1975
Copy link
Member

@et1975 et1975 commented Jan 8, 2026

This PR introduces new module to be used for all install/import operations in AVS.

The Problem

PowerCLI 13.4 breaks backward compatibility and cannot be used side-by-side with packages depending on 13.3 or bellow.
At the same time the dependency specifications in the PowerCLI modules are overly open (at best specified as >= and at worst - not at all) and will try to install/import the latest, and in this case incompatible, versions and fail.

The solution

The install/import commandlets in this module will assume that only the version actually referenced is compatible with current module and will apply this logic recursively to each dependency chain.
Additional redirect map support is included for cases when dependency specification has no version at all or references invalid/non-existing version to address specific scenarios.

Explicit redirect map

Providing Microsoft.AVS.Management mapping of PowerCLI dependencies to ensure conflict-free installation/import in environments were multiple powerCLI versions are available.

Information for AVS partners

Use this module in your own testing to match the behavior of AVS.

Sample logs (filtered for relevance)

PS /> Import-ModulePinned VMware.VCDA.AVS -RequiredVersion 1.0.3 -Verbose 

VERBOSE: Using default redirect map
VERBOSE: Building dependency graph for VMware.VCDA.AVS version 1.0.3
VERBOSE: Building graph for: VMware.VCDA.AVS version 1.0.3
VERBOSE: Found 1 dependency(ies)
VERBOSE: Processing dependency: Microsoft.AVS.Management version [5.3.99, 5.3.99]
VERBOSE:   Dependency: Microsoft.AVS.Management@5.3.99
VERBOSE: Loading module-specific redirect map from: /mnt/r/Microsoft.AVS.CDR/maps/Microsoft.AVS.Management@5.json
VERBOSE:   Building graph for: Microsoft.AVS.Management version 5.3.99
VERBOSE:   Found 5 dependency(ies)
VERBOSE:   Processing dependency: VMware.vSphere.SsoAdmin version [1.3.9, 1.3.9]
VERBOSE:     Dependency: VMware.vSphere.SsoAdmin@1.3.9
VERBOSE:     Building graph for: VMware.vSphere.SsoAdmin version 1.3.9
VERBOSE:     Found 1 dependency(ies)
VERBOSE:     Redirecting dependency: VMware.VimAutomation.Common [12.0.0.15939652, ) -> 12.7.0.20067789 (from name-only redirect)
VERBOSE:       Dependency: VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE:       Building graph for: VMware.VimAutomation.Common version 12.7.0.20067789
VERBOSE:       Found 1 dependency(ies)
VERBOSE:       Processing dependency: VMware.VimAutomation.Sdk version [12.7.0.20067606, )
VERBOSE:         Dependency: VMware.VimAutomation.Sdk@12.7.0.20067606
VERBOSE:         Building graph for: VMware.VimAutomation.Sdk version 12.7.0.20067606
VERBOSE:         No dependencies for VMware.VimAutomation.Sdk
VERBOSE:   Processing dependency: VMware.VimAutomation.Core version [12.7.0.20091293, 12.7.0.20091293]
VERBOSE:     Dependency: VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:     Building graph for: VMware.VimAutomation.Core version 12.7.0.20091293
VERBOSE:     Found 1 dependency(ies)
VERBOSE:     Processing dependency: VMware.VimAutomation.Cis.Core version [12.6.0.19601368, )
VERBOSE:       Dependency: VMware.VimAutomation.Cis.Core@12.6.0.19601368
VERBOSE:       Building graph for: VMware.VimAutomation.Cis.Core version 12.6.0.19601368
VERBOSE:       Found 1 dependency(ies)
VERBOSE:       Processing dependency: VMware.Vim version [7.0.3.19601056, )
VERBOSE:         Dependency: VMware.Vim@7.0.3.19601056
VERBOSE:         Building graph for: VMware.Vim version 7.0.3.19601056
VERBOSE:         Found 1 dependency(ies)
VERBOSE:         Redirecting dependency: VMware.VimAutomation.Common [12.6.0.19600917, ) -> 12.7.0.20067789 (from name-only redirect)
VERBOSE:           Dependency: VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE:           Already in graph: VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE:   Processing dependency: VMware.VimAutomation.Storage version [12.7.0.20091292, 12.7.0.20091292]
VERBOSE:     Dependency: VMware.VimAutomation.Storage@12.7.0.20091292
VERBOSE:     Building graph for: VMware.VimAutomation.Storage version 12.7.0.20091292
VERBOSE:     Found 1 dependency(ies)
VERBOSE:     Processing dependency: VMware.VimAutomation.Core version [12.7.0.20091293, )
VERBOSE:       Dependency: VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:       Already in graph: VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:   Processing dependency: VMware.VimAutomation.Hcx version [12.7.0.20091291, 12.7.0.20091291]
VERBOSE:     Dependency: VMware.VimAutomation.Hcx@12.7.0.20091291
VERBOSE:     Building graph for: VMware.VimAutomation.Hcx version 12.7.0.20091291
VERBOSE:     Found 1 dependency(ies)
VERBOSE:     Processing dependency: VMware.VimAutomation.Core version [12.7.0.20091293, )
VERBOSE:       Dependency: VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:       Already in graph: VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:   Processing dependency: posh-ssh version [3.1.1, 3.1.1]
VERBOSE:     Dependency: posh-ssh@3.1.1
VERBOSE:     Building graph for: posh-ssh version 3.1.1
VERBOSE:     No dependencies for posh-ssh
VERBOSE: Dependency graph contains 11 modules:
VERBOSE:   Microsoft.AVS.Management@5.3.99
VERBOSE:     Location: /root/.local/share/powershell/Modules/Microsoft.AVS.Management/5.3.99
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.vSphere.SsoAdmin@1.3.9
VERBOSE:       -> VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:       -> VMware.VimAutomation.Storage@12.7.0.20091292
VERBOSE:       -> VMware.VimAutomation.Hcx@12.7.0.20091291
VERBOSE:       -> posh-ssh@3.1.1
VERBOSE:   posh-ssh@3.1.1
VERBOSE:     Location: /root/.local/share/powershell/Modules/posh-ssh/3.1.1
VERBOSE:     Dependencies: (none)
VERBOSE:   VMware.VCDA.AVS@1.0.3
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VCDA.AVS/1.0.3
VERBOSE:     Dependencies:
VERBOSE:       -> Microsoft.AVS.Management@5.3.99
VERBOSE:   VMware.Vim@7.0.3.19601056
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.Vim/7.0.3.19601056
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE:   VMware.VimAutomation.Cis.Core@12.6.0.19601368
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VimAutomation.Cis.Core/12.6.0.19601368
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.Vim@7.0.3.19601056
VERBOSE:   VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VimAutomation.Common/12.7.0.20067789
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.VimAutomation.Sdk@12.7.0.20067606
VERBOSE:   VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VimAutomation.Core/12.7.0.20091293
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.VimAutomation.Cis.Core@12.6.0.19601368
VERBOSE:   VMware.VimAutomation.Hcx@12.7.0.20091291
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VimAutomation.Hcx/12.7.0.20091291
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:   VMware.VimAutomation.Sdk@12.7.0.20067606
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VimAutomation.Sdk/12.7.0.20067606
VERBOSE:     Dependencies: (none)
VERBOSE:   VMware.VimAutomation.Storage@12.7.0.20091292
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.VimAutomation.Storage/12.7.0.20091292
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:   VMware.vSphere.SsoAdmin@1.3.9
VERBOSE:     Location: /root/.local/share/powershell/Modules/VMware.vSphere.SsoAdmin/1.3.9
VERBOSE:     Dependencies:
VERBOSE:       -> VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE: Computing topological order
VERBOSE: Import order (11 modules):
VERBOSE:   1. VMware.VimAutomation.Sdk@12.7.0.20067606
VERBOSE:   2. VMware.VimAutomation.Common@12.7.0.20067789
VERBOSE:   3. VMware.Vim@7.0.3.19601056
VERBOSE:   4. VMware.VimAutomation.Cis.Core@12.6.0.19601368
VERBOSE:   5. VMware.VimAutomation.Core@12.7.0.20091293
VERBOSE:   6. VMware.VimAutomation.Hcx@12.7.0.20091291
VERBOSE:   7. VMware.vSphere.SsoAdmin@1.3.9
VERBOSE:   8. VMware.VimAutomation.Storage@12.7.0.20091292
VERBOSE:   9. posh-ssh@3.1.1
VERBOSE:   10. Microsoft.AVS.Management@5.3.99
VERBOSE:   11. VMware.VCDA.AVS@1.0.3
VERBOSE: Pre-loading all modules in topological order

@et1975 et1975 marked this pull request as ready for review January 16, 2026 20:03
@et1975 et1975 requested a review from srajmohan24 January 16, 2026 20:03
@et1975 et1975 force-pushed the yetolmac/work branch 8 times, most recently from 456ee3d to 30cbc74 Compare January 16, 2026 23:10
@et1975 et1975 merged commit 89e7d88 into main Jan 22, 2026
9 checks passed
@et1975 et1975 deleted the yetolmac/work branch January 22, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants