VMware {code} Community
ChrisSmith2
Enthusiast
Enthusiast
Jump to solution

HostSystem Manage extension no longer working on 6.5U1d (regression from 6.5U1b)

Our plugin adds an extension to the VMWare HostSystem node under the Manage section. The XML fragment for this is attached; it works correctly on 6.5U1b, but no longer appears on 6.5U1d.

Have the requirements for this extension point changed yet again in 6.5U1d? We've had to make changes to this specific extension point for almost every update to vCenter Server 6.5 - is this going to be stabilised at some point?

Reply
0 Kudos
1 Solution

Accepted Solutions
_vladi_
VMware Employee
VMware Employee
Jump to solution

Hi Chris,

"manageCategories" is a new extension point in HTML Client 6.5U1. As a result, my recommendations above are applicable from 6.5U1 onwards.

As I understand your goal is to support older versions of the Flex Client and the HTML Client with the same plugin. In this case you cannot follow the new guideline - you can use some extension points like "settingsCategories" but as mentioned above those are not official, not public, not supported and not recommended (which means they can break with any release).

Please also note that "manage.settingsViews" is deprecated now so it is best to use "manageViews". Nevertheless, "manage.settingsViews" is still supported so the fact it stopped showing up without CategoryUid set could a bug in the Client so I will look into it.

Regardless, for your particular use case your best shot is to use "manageViews" and keep the views uncategorised (solution 1) ). This way your plugin would not depend on a Client-defined category (which is also the driver behind the introduction of the new "manageCategories" extension point).

Cheers,

Vladi

View solution in original post

Reply
0 Kudos
7 Replies
laurentsd
VMware Employee
VMware Employee
Jump to solution

I checked that the vsphere.core.host.manage.settingsViews extension works if you don't add a categoryUid, i.e. it shows up as a simple entry in the Host > Configure table of content. I forwarded this problem internally.

    <extension id="com.mycompany.myplugin.host.settingsMyCompany">

      <extendedPoint>vsphere.core.host.manage.settingsViews</extendedPoint>

      <object>

         <name>#{mypluginAppCategory}</name>

         <categoryUid>com.mycompany.myplugin.host.settings.Category</categoryUid>

         <componentClass className="com.vmware.vsphere.client.htmlbridge.HtmlView">

            <object>

               <root>

                  <url>/vsphere-client/myplugin/resources/hostsystem-configure.html</url>

                  <scrollPolicy>auto</scrollPolicy>

               </root>

            </object>

         </componentClass>

      </object>

   </extension>

Reply
0 Kudos
ChrisSmith2
Enthusiast
Enthusiast
Jump to solution

Thanks for verifying.

Unfortunately that's exactly the opposite of the behaviour in a previous update (from memory, either 6.5U1 or 6.5U1b) - we previously did not have a category, but had to add one as the extension stopped showing up without CategoryUid set (and to a custom UID value, not one of the VMWare-defined ones).  I was also given explicit guidance by Vladimir and/or the documentation that a category must be used when adding an extension to that page.

Could you please provide specific rules about what is/is permitted for extending that page?

1) Uncategorised

2) Categorised using a custom CategoryUid

3) Categorised using a VMWare-defined CategoryUid (e.g. to place the extension in the Storage category).

Reply
0 Kudos
_vladi_
VMware Employee
VMware Employee
Jump to solution

Hi Chris,

So far I don't see a product bug. Your category definition in the plugin.xml is not correct:

vsphere.core.host.settingsCategories is not a supported extension point - the correct one is vsphere.core.host.manageCategories.

This has been introduced in 6.5U1 from the start and is listed in the official documentation

As a consequence the issue might manifest itself in different ways.

 

With regards to my guidance on the recommended approach it still holds. It is applicable since 6.5U1 and here it is in more details according to your points:

1) Uncategorised: this is supported but not recommended, use 2) instead

2) Categorised using a custom CategoryUid: this is recommended

3) Categorised using a VMWare-defined CategoryUid: you can do this but it is not supported and not recommended, use 2) instead

 

Solution 2) is fully covered by the ChassisA sample from 6.5U1 SDK. It demonstrates both vsphere.core.${objectType}.monitorCategories and vsphere.core.${objectType}.manageCategories.

Hope that helps. 🙂

If not please let me know so that we can have a further look.

 

Cheers,

Vladi

Reply
0 Kudos
ChrisSmith2
Enthusiast
Enthusiast
Jump to solution

I'll take a look at making the change you suggest, but when we tried this previously it broke compatibility with the Flex UI in both 6.0 and 6.5 - the extension wouldn't appear at all using only "manageCategories", and would be duplicated in the 6.5 HTML if we defined both "settingCategories" and "manageCategories". If "manageCategories" is both unique and required for 6.5U1, how can we maintain compatibility of our extension across 6.0, 6.5 Flex, and 6.5 HTML? This is a mandatory requirement for us.

Reply
0 Kudos
_vladi_
VMware Employee
VMware Employee
Jump to solution

Hi Chris,

"manageCategories" is a new extension point in HTML Client 6.5U1. As a result, my recommendations above are applicable from 6.5U1 onwards.

As I understand your goal is to support older versions of the Flex Client and the HTML Client with the same plugin. In this case you cannot follow the new guideline - you can use some extension points like "settingsCategories" but as mentioned above those are not official, not public, not supported and not recommended (which means they can break with any release).

Please also note that "manage.settingsViews" is deprecated now so it is best to use "manageViews". Nevertheless, "manage.settingsViews" is still supported so the fact it stopped showing up without CategoryUid set could a bug in the Client so I will look into it.

Regardless, for your particular use case your best shot is to use "manageViews" and keep the views uncategorised (solution 1) ). This way your plugin would not depend on a Client-defined category (which is also the driver behind the introduction of the new "manageCategories" extension point).

Cheers,

Vladi

Reply
0 Kudos
ChrisSmith2
Enthusiast
Enthusiast
Jump to solution

Thanks Vladimir!

After (much) further experimentation, I think I have an acceptable solution by changing to using "manageViews" and "manageCategories" for HostSystem, but only "manageViews" for Datastore (no categoryUid) - this seems to be the only combination that currently allows the extensions to work in the latest versions (6.0U3d Flash, and 6.5U1e Flash and HTML). Shouldn't assigning a "categoryUid" for Datastore at least allow the extension to appear in the 6.5U1e HTML UI, even if the category isn't displayed?

FYI, here's what seemed to work and not work:

"host.manage.settingsViews" (no categoryUid)
+ 6.5U1e HTML OK
- 6.5U1e Flash MISSING

"host.manage.settingsViews" with "host.settingsCategories"
- 6.5U1e HTML MISSING
+ 6.5U1e Flash OK
+ 6.0U3d Flash OK (appears under "Settings > Other")

"host.manage.settingsViews" with "host.manageCategories"
+ 6.5U1e HTML OK
- 6.5U1e Flash MISSING
+ 6.0U3d Flash OK (appears under "Settings > Other")

"host.manageViews" with "vsphere.core.host.manageCategories"
+ 6.5U1e HTML OK (appears under "MyApp > MyApp")
+ 6.5U1e Flash OK (appears under "More > MyApp")
+ 6.0U3d Flash OK (appears as a "MyApp" tab)

"datastore.manageViews" with "vsphere.core.datastore.manageCategories"
- 6.5U1e HTML MISSING

"datastore.manageViews" (no categoryUid)
+ 6.5U1e HTML OK (appears under "MyApp")
+ 6.5U1e Flash OK (appears under "More > MyApp")
+ 6.0U3d Flash OK (appears as a "MyApp" tab)

Reply
0 Kudos
_vladi_
VMware Employee
VMware Employee
Jump to solution

Hi Chris,

"manageViews" and "manageCategories" are definitely the way to go.

I am taking 2 action items for the SDK from your testing:

 - Try to reproduce "manageViews" and "manageCategories" on Datastores with 6.5U1e. With my local newer version this works properly.

 - Check and fix the backward compatibility of "manage.settingsViews" in case there are plugins that still depend on it (although it is deprecated).

You now have a solution for your problem but I will still keep you posted on these topics.

Cheers,

Vladi

Reply
0 Kudos