Hi All, I wanted to share something with you. I have been given a chance to review FlexApp DIA which is a feature of ProfileUnity from Liquidware Labs. So what I did was videoed my findings. For those of you that didn’t know I used to work for LiquidwareLabs but now I’m a customer of theirs. I’d previously recorded videos found on my youtube channel demonstrating how to install ProfileUnity and how to capture applications installations using FlexApp UIA.
With FlexApp UIA you get policy controlled User Installed Applications which enables non-administrative users in non-persistent VDI environments the ability to browse to a centralized share and install applications which the corporate approves but does not necessarily want to connect to all users in a group at login. This gives the user back some control, improving the experience inside VDI. I suppose if you think about it no need for the admin to get involved.
FlexApp DIA is different again. This is where the administration team packages corporate applications into portable layers and deploys the application layers in a mix and match scenario vs building silos of VDI or XenApp images and pools. Applications in FlexApp layers can be individual upgrades vs the need to update and recompose an entire image when only a single application needs updating. FlexApp DIA also provides for drastically simplified desktop DR since FlexApp layers are as portable as copy, paste and import. You can even decide how to best serve up your applications for performance reasons and choose the best storage path for each application weather NAS, SAN, VHD or VMDK, rather than baking all the storage IO into the main C: image.
When you see this video and how simple it is you’ll want to do it too. If I had to grade my experience seriously I would give it 10 out of 10 for simplicity, flexibility and compatibility. Now I focus on the application layering aspect of ProfileUnity but it’s much much more powerful and feature rich. What I could have shown is the control over the apps you have using the ProfileUnity policy management. Being able to manage how I assign those apps using environmental factors in my policy. That will be the next video I’m sure. One mention I have to make is I recorded this using the beta and since then Liquidware Labs fixed the 1 issue I found that really didn’t not bother me at all which was the removal of an icon after application clean up. Anyway enough chatter watch and learn >
A colleague of mine (@peteroudman )asked me how to grab a parameter through filtering a JSON response generated from the vRA REST API after he had tried several times. The parameter in question was workItem number. The purpose of this was to automate a catalog item request that has an approval request attached to it. To achieve this we need to compare the response from a few different API calls. We ran into an issue doing what we need purely with REST calls but let me explain from the beginning so you learn something:
- We want to automate the request of a catalog item from outside of vRA
- Using the catalogItemId we make a request call using a predefined payload (JSON entry) using the catalog-service API request function
- The response header from the above call informs us of a parameter known as the requestId
- Because the catalog item as an approval request waiting for someone to accept or reject this request we need to programmatically handle this.
- When there is some action needed by the user a workitem request is generated.
- We noticed that when you list all workitems there was a parameter in the JSON response called requestInstanceId which was identical to the requestID. This is the key to how we associate the original request to which workitem needs action.
- So the plan is to filter all the workitems expect the one relevant to our catalog request
- The API has a filter function when you make a GET request
- The problem is that requestInstanceId parameter is not filterable because its an inner-feed in the JSON response and not a JSON element.
- We tried every possibility to format the filter sting and some examples look like this:
- $filter=(workItemRequest/itemData/entries(6)/value/value eq ’18f71a3a-34c1-4624-9e20-11f4666a6b4a’)
- ?$filter=(workItemRequest/itemData(6)/value eq ‘7990b2ce-0497-4a5a-9c40-060350086078′)
The conclusion is that we have to filter the workitem response outside of the API call in code. Not difficult but would have been nice to have that feature in the filter. I realise this is a high-level explanation but if you want to discuss this problem in detail reach out to me. Like to thank @grantorchard for trying his best to fix this for us.
Universal Printer Driver – Free is Not Really Free: The Real Cost of Enterprise Printing
By Arron Fu, CTO UniPrint.net
When purchasing software, organizations do so to boost efficiency, save time and reduce costs. And like most organizations, you have limited IT staff, a modest budget and overflowing to-do lists; hence, the reason why desktop virtualization and centralized application delivery are so popular. So when an organization purchases a solution such as Citrix XenApp/XenDesktop, VMWare Horizon and Windows Server, it is more disposed to using the built-in universal printer driver (UPD) that comes with it. Why not? These “freebies”, as we’ll call them, or built-in UPD printing solutions are free up front and may reduce acquisition costs, but can they reduce the cost of printing over the long term?