The present disclosure relates to the management of information handling systems and, more particularly, customized management features implemented via platform plugins.
As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Platforms and services for deploying and managing virtualized information handling systems are often configured as web-based resources accessible to IT administrators and other users via standard Web browsers. For example, a virtualization platform may provide browser-ready user interfaces (UIs) that enable users to deploy, configure, and manage virtualized information handling systems and resources. The vSphere virtualization platform from VMware, as an example, includes a vSphere Client UI that provides an administrative interface for creating and managing VMware hosts, i.e., servers provisioned with a hypervisor such as VMWare ESXi for running virtual machines (VMs). To encourage and support for 3rd development of additional features, a platform provider may support the use of plugins. The vSphere Client UI example, as an example, includes built-in support for remote plugins to enable 3rd party developers to extend the infrastructure management capabilities of the platform. However, in at least some instances, plugin support may be conditioned or constrained in one or more ways that conflict with a deployment characteristic of one or more features provided by the plugin. An example of a plugin condition or constraint is a constraint the limits the number of remote plugin instances that can be registered within a platform instance and/or a related or alternative constraint requiring strict equivalence of functionality among two or more instances of a particular plugin. Because such restrictions may, in at least some instances, conflict with likely and/or desirable deployment scenarios, IT administrators may wish to avoid or alleviate the impact of plugin restrictions.
In accordance with teachings disclosed herein, common problems associated with limitations placed on the use of platform plugins for a user interface of a virtualization platform client such as, a vSphere client from VMware, are addressed by systems and methods that include registering a first plugin server as a primary server of a cluster management plugin (CMP) for a user interface (UI) of a virtualization platform client and a second plugin server as an auxiliary server of the CMP.
In at least some embodiments, the first plugin server is associated with a first cluster of the virtualization platform and the second plugin server is associated with a second cluster of the visualization platform. In at least some embodiments, the clusters may include one or more multi-node hyperconverged infrastructure (HCI) clusters. In such embodiments, each node may be implemented with an HCI application such as any of the VxRail line of HCI appliances from Dell Technologies.
The first cluster may be managed by a first instance of a cluster manager while the second cluster may be managed by a second instance of the cluster manager. A CMP manifest, indicative of user interface extension points defined by the CMP, is loaded into a browser from the primary server. Responsive to detecting an access to one of the extension points while the second cluster is the in-context cluster of the UI, static resources for the extension point are loaded from the auxiliary server and REST API's are called from the auxiliary server of the in-context cluster. On the other hand, responsive to detecting an access to one of the extension points while the first cluster is the in-context cluster of the virtualization platform user interface, static resources for the extension point are loaded from the auxiliary server and REST API's are called from the auxiliary server for the in-context cluster.
In at least some embodiments, disclosed methods further include responding to detecting an access to one of the extension points by loading plugin code from the primary server and sending a server ID lookup request to a plugin core in the primary. In addition, disclosed systems and methods may further include determining, based on one or more cluster custom attributes of the in-context cluster, a server ID for the in-context cluster and a universal resource locator (URL). The cluster custom attributes may include the IP address of the applicable plugin server and a version indicator for the applicable cluster manager.
Technical advantages of the present disclosure may be readily apparent to one skilled in the art from the figures, description and claims included herein. The objects and advantages of the embodiments will be realized and achieved at least by the elements, features, and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are examples and explanatory and are not restrictive of the claims set forth in this disclosure.
A more complete understanding of the present embodiments and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
Exemplary embodiments and their advantages are best understood by reference to
For the purposes of this disclosure, an information handling system may include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a personal computer, a personal digital assistant (PDA), a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price. The information handling system may include memory, one or more processing resources such as a central processing unit (“CPU”), microcontroller, or hardware or software control logic. Additional components of the information handling system may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input/output (“I/O”) devices, such as a keyboard, a mouse, and a video display. The information handling system may also include one or more buses operable to transmit communication between the various hardware components.
Additionally, an information handling system may include firmware for controlling and/or communicating with, for example, hard drives, network circuitry, memory devices, I/O devices, and other peripheral devices. For example, the hypervisor and/or other components may comprise firmware. As used in this disclosure, firmware includes software embedded in an information handling system component used to perform predefined tasks. Firmware is commonly stored in non-volatile memory, or memory that does not lose stored data upon the loss of power. In certain embodiments, firmware associated with an information handling system component is stored in non-volatile memory that is accessible to one or more information handling system components. In the same or alternative embodiments, firmware associated with an information handling system component is stored in non-volatile memory that is dedicated to and comprises part of that component.
For the purposes of this disclosure, computer-readable media may include any instrumentality or aggregation of instrumentalities that may retain data and/or instructions for a period of time. Computer-readable media may include, without limitation, storage media such as a direct access storage device (e.g., a hard disk drive or floppy disk), a sequential access storage device (e.g., a tape disk drive), compact disk, CD-ROM, DVD, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and/or flash memory; as well as communications media such as wires, optical fibers, microwaves, radio waves, and other electromagnetic and/or optical carriers; and/or any combination of the foregoing.
For the purposes of this disclosure, information handling resources may broadly refer to any component system, device or apparatus of an information handling system, including without limitation processors, service processors, basic input/output systems (BIOSs), buses, memories, I/O devices and/or interfaces, storage resources, network interfaces, motherboards, and/or any other components and/or elements of an information handling system.
In the following description, details are set forth by way of example to facilitate discussion of the disclosed subject matter. It should be apparent to a person of ordinary skill in the field, however, that the disclosed embodiments are exemplary and not exhaustive of all possible embodiments.
Throughout this disclosure, a hyphenated form of a reference numeral refers to a specific instance of an element and the un-hyphenated form of the reference numeral refers to the element generically. Thus, for example, “device 12-1” refers to an instance of a device class, which may be referred to collectively as “devices 12” and any one of which may be referred to generically as “a device 12”.
As used herein, when two or more elements are referred to as “coupled” to one another, such term indicates that such two or more elements are in electronic communication, mechanical communication, including thermal and fluidic communication, thermal, communication or mechanical communication, as applicable, whether connected indirectly or directly, with or without intervening elements.
Referring now to the drawings,
The illustrated UI 101 spans two instances of vCenter servers including vCenter Server A (110-1) and vCenter Server B (110-2). With respect to vCenter Server B (110-2),
In contrast,
In at least some conventional plugin deployments, UI 101 may not support more than one registered plugin per virtualization platform instance. Thus, because both clusters 120 are running under vCenter Server A (110-1), IT managers may be constrained from employing cluster-specific functionality within the plugin. Disclosed teachings enable and support the use of cluster-specific plugin functionality and, more generally, the use of multiple instances of a registered plugin per virtualization platform where each plugin instance may have at least some unique functionality. Disclosed features are implemented, at least in part, by leveraging a supported plugin feature to implement instance-specific plugin functionality. Accordingly,
Referring now to
Referring now to
Consistent with the plugin server of
Initially, primary plugin server 311 and auxiliary plugin server 321 are registered (operation 351) with vCenter Server 330 via vSphere web services 331. Static resources 334 for vSphere client UI 302 are loaded (operation 352) into browser 301. The vSphere UI service 332 may then load and parse (operation 353) manifest 316 from primary plugin server 311.
When an extension point is accessed, plugin gateway JS 314 may then be loaded (operation 354) into, for example, a plugin inline frame (iframe) view from primary plugin server 321. The VxRail plugin UI 304 may then send (operation 355) a Server ID lookup request to the plugin core (API module 312) in primary plugin server 311 to determine a Server ID for the in-context cluster, i.e., the cluster that is currently active in the vSphere client. The Server ID for the in-context cluster may be determined (operation 356) from one or more cluster custom attributes including, as illustrative examples, server IP, manager version. The API module 312 may then determine a proxied URL for the auxiliary server based on the server ID and a plugin server list provided by the platform plugin SDK and load (operation 357) static resources 324 for the extension point from the auxiliary plugin server 321. Next, REST API 322 of auxiliary plugin server 321 is called (operation 358) from plugin UI 304 and vSphere web service APIs 331 of vCenter server 330 are called (operation 359) from auxiliary plugin server 321. In at least some embodiments, operations 354, 355, 357, and 358 are all sent to reverse HTTP proxy 335 and forwarded to primary plugin server 311 or auxiliary plugin server 321 according to the proxied URLs.
Referring now to
Referring now to
This disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Similarly, where appropriate, the appended claims encompass all changes, substitutions, variations, alterations, and modifications to the example embodiments herein that a person having ordinary skill in the art would comprehend. Moreover, reference in the appended claims to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, or component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
All examples and conditional language recited herein are intended for pedagogical objects to aid the reader in understanding the disclosure and the concepts contributed by the inventor to furthering the art, and are construed as being without limitation to such specifically recited examples and conditions. Although embodiments of the present disclosure have been described in detail, it should be understood that various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the disclosure.
Number | Date | Country | Kind |
---|---|---|---|
202211291340.5 | Oct 2022 | CN | national |