Summary
The App Volumes Entitlement Sync Tool will read, compare and sync entitlements from one App Volumes instance to another. For App Volumes 4 implementations, several new capabilities have been added. Along with entitlements, the assignment types (marker or package) will be synced. In addition, the ability to build matching Application to Package relationships has been added.
Previous versions of the App Volumes Entitlement Sync Tool pertained only to App Volumes 2.x implementations. With App Volumes 2.x you created AppStacks, or virtual disks containing one or more programs, and entitled AD entities directly to them.
App Volumes 4 creates a separation of the packaging and entitlement process. With App Volumes 4, you create Packages containing one or more programs, and associated Applications to handle entitlements. While this separation improves administrative workflows, it affects the workflow when syncing Packages and entitlements to secondary App Volumes sites.
Version 4 of the App Volumes Entitlement Sync Tool supports both the new App Volumes v4 and older App Volumes v2.x entitlements.
Requirements
Connectivity
Sites must be able to communicate with where you run the tool from
App Volumes Instances
- You should have two or more App Volumes instances deployed.
Instances can be in a single site, or span multiple sites. - App Volumes Version 2.x or 4.x
Permissions
- You will need an account with permissions to read App Volumes entitlements at the primary site, and to read/write/delete entitlements at the secondary site(s).
- Install the .NET Framework 4.6.1
Download the App Volumes Entitlements Sync executable
Instructions
Video
Changelog
Version 4.5.0.1
Escape the '.' symbol when in an entity CN (would cause 500 error).
Fixed exception when marker is NULL.
Version 4.4.9.1
Entitlement Sync:
- Further enhanced handling of special characters including a comma in the username (example: {"data":[{"app_product_id":6,"entities":[{"path":"CN=Halstead\\, Tricia (test)$&,OU=test%@\\#,DC=betavmweuc,DC=com"}])
Version 4.4.9
Entitlement Sync:
- Escape the + symbol when in an entity DN (would cause 500 error) - in addition special characters RegEx to properly escape in 4.4.8 (|!#$%&()?»«@£§€{}.-;'<>)
- Fixed 400 (Unable to save assignment) errors on Marker Assignments with newly created Markers (created by the Fling)
Version 4.4.8
Entitlement Sync Updates:
Detects and properly escapes special characters (|!#$%&()?»«@£§€{}.-;'<>) in entitlements (example: "CN=\\#chris,OU=\\#christest,DC=vmweuc,DC=com"). This was reported as a bug (#4).
Previously would report back 500 Server Error when attempting to update the entitlement on the secondary server.
Version 4.4.7
Updates to Logging:
- Shows all post and response JSON
- Shows server names and versions in log
- Removed debug logging
General Updates:
- UI Shows number of detected Entitlements, Applications and Packages for each App Volumes Manager
Version 4.4.6
- Selective Sync for Entitlements is re-enabled for App Volumes 4.x Managers
- More informative error messages back from the Manager instead of just error code (400, 500 etc). Both in messagebox and log file.
Example: 6/8/2021 5:40:43 PM,Error Updating Secondary Site:The remote server returned an error: (400) Bad Request. {"error":"Guid has already been taken"}
Version 4.4.5
- Added "Skip Application / Package Check" in the Options Menu. This option will skip checking Application / Package relationships which for large environments can take quite a while. This feature should only be used after Applications / Packages have been checked previously and all GUIDs and Application Names match. Otherwise, the Applications where name does not match will be skipped for Entitlement / Marker Sync.
- Fixed issue when a package existed on the secondary site, but not on the primary site. Would get Error: Key Cannot be null error.
Version 4.4.4
- Reorganized and Optimized Checking of Application / Package Relationships for App Volumes 4.0
Version 4.4.3
Fixes:
- If Applications are imported, in some cases the Application Owner comes in as [Not Set], since this is a mandatory value the server returns a 400 error.
- The GUID of the user that connects to the primary and secondary site is saved and if the owner GUID value is empty it will use the GUID of the current user.
- If both in the same domain, if the Primary Site is missing GUID it will add the user logged into the Primary site as the Owner and apply the same to the Secondary Site.
- If the managers are in separate Domains and the Secondary Site is missing the Application Owner it will be set at the user logged into the Secondary Site.
- There were random Null Value errors reported when Fixing Apps. All values are now checked for Null and any errors are logged and trapped.
Version 4.4.1
- You can now fix Application / Package Relationships across domains.
- Set from Options | Different Domains - This setting will sync the GUIDs across Domains but will not attempt to copy the application owner.
- Entitlement Sync will NOT work across different Domains - the sync button is removed.
- This will be logged as well. Example: Skipped Application Owner as Different Domains Selected
Version 4.4
- Updated to handle very large JSON files (Large Number of Applications and Packages)
- Completely redesigned compare of Applications/Packages - will fix Application / Package relationships on replicated sites.
- This method is much more accurate and compatible with App Volumes 4.3 and later replication format. This method works on any 4.x version.
- Compares GUID of each package at primary secondary sites to find GUID of Application
- If Application GUID on secondary site does not match, it will update the GUID to match the primary site
- All new logging - data is logged to %temp% and contains much more data used for troubleshooting
- Many bug fixes
Known Issue: If an Application is imported, in some cases it may show the owner of the Application as "NOT SET" - this will cause a 400 error to be returned. The solution is to just add an owner to the Application. This will also be flagged in the log file.
Version 4.3 Update
- Fixes Typo in Secondary Site Server Label
- No longer shows non-replicated applications as errors in the Fix Apps dialog--Much easier to read what will be fixed.
Version 4.2 Update
- Fix Apps will now automatically fix all Application
- Package Relationships post replication and only warn if it is unable to delete an Application.
Version 4.1 Update:
- Get App Volumes version from an API value which always returns the build number.
- App Volumes 2006 and later has a problem with version 4.0 of the Fling in returning a string value.
Version 4.0 Update:
- Still supports 2.x App Volumes Managers
- Added support for 4.x - both Application Packages and Legacy 2.x AppStacks
- Fixes Application / Package relationships on replication
- Saves manager address, username and domain to registry
- Improved logging and error trapping
- Able to sync Application Package Markers
- Able to delete empty Applications
- Detects and displays selected assignment type
- Displays the version of the CURRENT marker or shows if none is set
- Shows App Volumes manager version on main page
Version 2.4
- Fixed problem with sync button being disabled
- Added check for App Volumes 2.x and App Volumes 4.x managers and will pop up message that they can't be synced
Version 2.3
- Fixed Error: "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel".
- Show a message if AppStacks on source and destination do not match
- Phase 1 of Mount Prefix sync done - show mount prefix on the list of entitlements
- Does NOT support App Volumes 4.0 yet - support will be added in the next version.
Version 2.2
- Ignore Extra AppStacks on Primary or Secondary Server - these would cause compare to crash
- Export Primary or Secondary Server Entitlements to XML
Version 2.1
- Fix for no entitlements on source side App Stack
- Adds label "No Entitlements" to App Stack on source side with no entitlements
Contributors
Similar Flings
App Volumes Toolbox
This utility connects to App Volumes 2.x, 3.x and Horizon Air Hybrid-Mode (Enzo) environments, pulling data from the native REST APIs into a single interface for ease of management.