Just a quick post to elaborate on the feature to add custom links into the H5 vCloud Director Portal that I very briefly mentioned in my What’s New in vCloud Director 9.7 blog post.
The custom links are visible in the drop down under the user name in top right corner. They are specified as part of the branding customization that can be system wide or tenant specific. I have already talked about branding here, so this is just evolution of this feature since version 9.0.
Additionally default links to help, about (under the questionmark icon) and VMRC download (in VM UI element) can be replaced as well through a single API call.
Custom links can contain dynamic elements such as ${TENANT_NAME}, ${TENANT_ID} and ${SESSION_TOKEN} which enables for example easy redirection to legacy (Flex) portal as is show in my example.
You can also see Section elements and Separators to make the links more organized.
The actual API call that I used in my example:
PUT /cloudapi/branding Headers: Content-Type: application/json x-vcloud-authorization: … Payload: { "portalName": "vCloud Director 9.7", "portalColor": "#323843", "selectedTheme": { "themeType": "BUILT_IN", "name": "Default" }, "customLinks": [ { "name": "Legacy Portal", "menuItemType": "link", "url": "https://vcloud.fojta.com/cloud/org/${TENANT_NAME}" }, { "menuItemType": "separator" }, { "name": "Additional Services", "menuItemType": "section", "url": null }, { "name": "Backup", "menuItemType": "link", "url": "https://fojta.wordpress.com/backup" }, { "name": "Monitoring", "menuItemType": "link", "url": "https://fojta.wordpress.com/monitor" }, { "name": "Billing", "menuItemType": "link", "url": "https://fojta.wordpress.com/bill" }, { "menuItemType": "separator" }, { "name": "Tools", "menuItemType": "section", "url": null }, { "name": "VCD CLI", "menuItemType": "link", "url": "http://vmware.github.io/vcd-cli/" }, { "name": "API Documentation", "menuItemType": "link", "url": "https://code.vmware.com/apis/553" }, { "name": "help", "menuItemType": "override", "url": null }, { "name": "about", "menuItemType": "override", "url": null }, { "name": "vmrc", "menuItemType": "override", "url": null } ] }
Tenant specific branding is achieved with the following call:
PUT /cloudapi/branding/tenant/acme