Skip to content

Release v1.0.24

Latest

Choose a tag to compare

@jullienl jullienl released this 15 Apr 09:23
· 1 commit to main since this release

🎯 What's New in v1.0.24


Documentation

Cmdlet Help β€” .OUTPUTS Accuracy Improvements

The .OUTPUTS section of every cmdlet has been audited and corrected. Several cmdlets had wrong type names, missing alternate return types (e.g. the -Async job object or the -ScheduleTime schedule object), or an inaccurate property list. Get-Help <cmdlet> now reliably reflects every object type a cmdlet can return, regardless of which parameters are used. This benefits script authors, IDE tooling, and documentation generators that rely on help metadata.


Non-Production Environment Support (Pavo)

The module now supports HPE's internal pre-production GreenLake environment (Pavo). This enables automation engineers who need to develop or validate scripts against Pavo to run the exact same cmdlets without any code changes.

To connect to Pavo, set the $env:HPE_COMMON_CLOUD_URL environment variable to https://pavo.common.cloud.hpe.com before calling Connect-HPEGL. All API endpoints, authentication settings, and region configuration are then automatically derived from that environment β€” no additional parameters are required.

The following areas have been updated to work correctly with Pavo:

  • Disconnect-HPEGL β€” Pavo uses a different SSO provider than production. The disconnect operation now completes cleanly and the session is always fully terminated.

  • Get-HPEGLUserAccountDetails β€” The cmdlet now correctly targets the Pavo OnePass instance when connected to Pavo, instead of the production service.


Bug Fixes

  • Add-HPEGLDeviceTagToDevice, Remove-HPEGLDeviceTagFromDevice, Set-HPEGLDeviceLocation, Remove-HPEGLDeviceLocation, Set-HPEGLDeviceServiceDeliveryContact, Remove-HPEGLDeviceServiceDeliveryContact β€” -WhatIf produced no output β€” Passing -WhatIf to any of these six cmdlets displayed nothing. Fixed: -WhatIf now correctly simulates and displays the API request that would be sent.

  • Connect-HPEGL error message for transient server errors β€” A 500 response from the GreenLake API token endpoint was surfaced as raw JSON ({"error": "server_error"}). Fixed by wrapping retry-exhaustion failures in a descriptive error message that includes the HTTP status code and advises retrying.

  • Connect-HPEGL transient HTML response during authentication β€” On first call, the HPE identity service occasionally returns an HTML error page where a JSON response is expected, causing the cmdlet to fail with a JSON parse error (Unexpected character '<'). Fixed: the error is now detected as a known transient condition, the cmdlet automatically retries once after a 1-second delay, and emits an informational message. A second attempt is no longer required.

  • Connect-HPEGL β€” SSO identity provider metadata now stored in session β€” After a successful SSO authentication, the $Global:HPEGreenLakeSession object is now populated with two new fields:

    • idp β€” the identity provider URL (e.g. https://sts.windows.net/<tenant-id> for Entra ID, https://<company>.okta.com for Okta).
    • idpType β€” the identity provider type string: EntraID, Okta, or PingIdentity.

    Both fields are $null for non-SSO (username/password) authentication. They are derived from the OAuth2 display parameter in the SSO redirect chain and require no user configuration.

  • Get-HPEGLUserAccountDetails, Set-HPEGLUserAccountDetails, Set-HPEGLUserAccountPassword β€” raw OnePass error payload for federated users β€” When called for an account managed by a federated identity provider (Okta, Entra ID, PingIdentity), these cmdlets returned a raw 404 payload with the internal error code accessToken_not_matches_with_userId. Fixed: the error is now caught and replaced with a clear warning that identifies the detected identity provider (using the new idp/idpType session fields) and directs the user to their company IdP to manage account settings or change their password.

Save-HPEGLSession / Restore-HPEGLSession β€” Multiple session-switching bugs fixed

Several bugs affecting workspace session save/restore were discovered and fixed:

  • Clone() lost after restore β€” Save-HPEGLSession failed with "does not contain a method named 'Clone'" after a Restore-HPEGLSession call. Fixed: the method is now reliably re-attached on every restore.

  • Full reconnect instead of fast token refresh β€” After restoring a session, the next workspace operation triggered a full 7-step reconnect instead of a lightweight token refresh. Fixed: token refresh now correctly identifies the restored session's credentials.

  • Credentials cleared but never recreated β€” In a specific error-recovery path, credential tokens were cleared but not rebuilt, causing the subsequent reconnect attempt to silently skip credential creation. Fixed: the recovery path now always recreates credentials.

  • "Refresh token is no longer valid" after several restores β€” The OAuth2 refresh token was rotated on every reconnect even when the existing token was still valid, invalidating all other saved sessions. Fixed: rotation is now skipped when the token has sufficient remaining lifetime.

  • COM regions not updated after Restore-HPEGLSession β€” After restoring a session, Compute Ops Management cmdlets could still use the previous workspace's region list. Fixed: the region list is now saved alongside the session and restored with it.

  • Restore-HPEGLSession incorrectly blocked after Remove-HPEGLWorkspace β€” Removing a workspace clears the active session, which was mistakenly interpreted as an explicit disconnect, blocking any subsequent restore. Fixed: restore is now only blocked after an explicit Disconnect-HPEGL call.

  • Session corruption when switching workspaces after restore β€” After restoring a session and switching to another workspace, the saved-session variable could be silently corrupted, causing future restores to refresh the wrong workspace's tokens. Fixed: the restore operation now works on an independent copy of the session object. Additionally, refreshed tokens are automatically synced back to the saved-session variable after each restore, so Save-HPEGLSession no longer needs to be called after every Restore-HPEGLSession call.

  • New-HPECOMServerActivationKey β€” cryptic JWT verification failed error when no subscription is available β€” When called with no -SubscriptionKey parameter and no valid server subscription existed in the workspace, the COM API returned the completely unrelated error JWT verification failed, Token issuer is not trusted. Fixed: a pre-flight check now verifies that at least one valid server subscription with available quantity exists before making the API call. If none is found, a clear actionable error message is returned listing the steps to add a subscription key or enable auto-subscription.

All COM Cmdlets β€” Misleading Error When COM Is Not Provisioned

When a COM cmdlet was called with an unprovisioned -Region value, all COM modules produced the misleading error "No active HPE GreenLake session found" β€” even when the user was fully authenticated. The root cause was a single combined condition checking both session existence and provisioned regions simultaneously.

Fixed: the two checks are now separate. If the session is missing, the original message is shown; if the session exists but Compute Ops Management is not provisioned in the workspace, the user now receives a clear, actionable message directing them to Get-HPEGLService -Name 'Compute Ops Management' -ShowProvisioned.


Installation

Install-Module -Name HPECOMCmdlets -RequiredVersion 1.0.24

Or update from a previous version:

Update-Module -Name HPECOMCmdlets