HP BL680c XenServer Software Development Kit Guide 4.1.0 - Page 30

XenServer API extensions, 5.1. VM console forwarding, 5.1.1. Retrieving VNC consoles via

Page 30 highlights

Chapter 5. XenServer API extensions The XenAPI is a general and comprehensive interface to managing the life-cycles of Virtual Machines, and offers a lot of flexibility in the way that XenAPI providers may implement specific functionality (e.g. storage provisioning, or console handling). XenServer has several extensions which provide useful functionality used in our own XenCenter interface. The workings of these mechanisms are described in this chapter. Extensions to the XenAPI are often provided by specifying other_config map keys to various objects. The use of this parameter indicates that the functionality is supported for that particular release of XenServer, but not as a long-term feature. We are constantly evaluating promoting functionality into the API, but this requires the nature of the interface to be well-understood. Developer feedback as to how you are using some of these extensions is always welcome to help us make these decisions. 5.1. VM console forwarding Most XenAPI graphical interfaces will want to gain access to the VM consoles, in order to render them to the user as if they were physical machines. There are several types of consoles available, depending on the type of guest or if the physical host console is being accessed: Console access Operating System Windows Linux Physical Host Text Graphical No VNC, via API call Yes, through VNC and an No API call Yes, through VNC and an No API call Optimized graphical RDP, directly from guest VNC, directly from guest No Hardware-assisted VMs, such as Windows, directly provide a graphical console via VNC. There is no textbased console, and guest networking is not necessary to use the graphical console. Once guest networking has been established, it is more efficient to setup Remote Desktop Access and use an RDP client to connect directly (this must be done outside of the XenAPI). Paravirtual VMs, such as Linux guests, provide a native text console directly. XenServer provides a utility (called vncterm) to convert this text-based console into a graphical VNC representation. Guest networking is not necessary for this console to function. As with Windows above, Linux distributions often configure VNC within the guest, and directly connect to it via a guest network interface. The physical host console is only available as a vt100 console, which is exposed through the XenAPI as a VNC console by using vncterm in the control domain. RFB (Remote Framebuffer) is the protocol which underlies VNC, specified in The RFB Protocol. Third-party developers are expected to provide their own VNC viewers, and many freely available implementations can be adapted for this purpose. RFB 3.3 is the minimum version which viewers must support. 5.1.1. Retrieving VNC consoles via the API VNC consoles are retrieved via a special URL passed through to the host agent. The sequence of API calls is as follows: 1. Client to Master/443: XML-RPC: Session.login_with_password(...). 24

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

24
Chapter 5. XenServer API extensions
The XenAPI is a general and comprehensive interface to managing the life-cycles of Virtual Machines, and
offers a lot of flexibility in the way that XenAPI providers may implement specific functionality (e.g. storage
provisioning, or console handling). XenServer has several extensions which provide useful functionality
used in our own XenCenter interface. The workings of these mechanisms are described in this chapter.
Extensions to the XenAPI are often provided by specifying
other_config
map keys to various objects.
The use of this parameter indicates that the functionality is supported for that particular release of XenServer,
but
not
as a long-term feature. We are constantly evaluating promoting functionality into the API, but this
requires the nature of the interface to be well-understood. Developer feedback as to how you are using
some of these extensions is always welcome to help us make these decisions.
5.1. VM console forwarding
Most XenAPI graphical interfaces will want to gain access to the VM consoles, in order to render them to
the user as if they were physical machines. There are several types of consoles available, depending on
the type of guest or if the physical host console is being accessed:
Console access
Operating System
Text
Graphical
Optimized graphical
Windows
No
VNC, via API call
RDP, directly from guest
Linux
Yes, through VNC and an
API call
No
VNC, directly from guest
Physical Host
Yes, through VNC and an
API call
No
No
Hardware-assisted VMs, such as Windows, directly provide a graphical console via VNC. There is no text-
based console, and guest networking is not necessary to use the graphical console. Once guest networking
has been established, it is more efficient to setup Remote Desktop Access and use an RDP client to connect
directly (this must be done outside of the XenAPI).
Paravirtual VMs, such as Linux guests, provide a native text console directly. XenServer provides a utility
(called
vncterm
) to convert this text-based console into a graphical VNC representation. Guest networking
is not necessary for this console to function. As with Windows above, Linux distributions often configure
VNC within the guest, and directly connect to it via a guest network interface.
The physical host console is only available as a
vt100
console, which is exposed through the XenAPI as
a VNC console by using
vncterm
in the control domain.
RFB (Remote Framebuffer) is the protocol which underlies VNC, specified in
The RFB Protocol
. Third-party
developers are expected to provide their own VNC viewers, and many freely available implementations can
be adapted for this purpose. RFB 3.3 is the minimum version which viewers must support.
5.1.1. Retrieving VNC consoles via the API
VNC consoles are retrieved via a special URL passed through to the host agent. The sequence of API calls
is as follows:
1.
Client to Master/443: XML-RPC:
Session.login_with_password(...)
.