Name
HostConnect
Description
($err, $hostHandle) = HostConnect($apiVersion,
$hostType,
$hostName,
$hostPort,
$userName,
$password,
$options,
$propertyListHandle);
Creates a host handle. This handle cannot be shared or reused after disconnect.
Parameters
- apiVersion
-
Must be
VIX_API_VERSION.
- hostType
-
With vCenter Server, ESX/ESXi hosts, and VMware Server 2.0, use
VIX_SERVICEPROVIDER_VMWARE_VI_SERVER.
With VMware Workstation, use
VIX_SERVICEPROVIDER_VMWARE_WORKSTATION.
With VMware Workstation (shared mode), use
VIX_SERVICEPROVIDER_VMWARE_WORKSTATION_SHARED.
With VMware Player, use
VIX_SERVICEPROVIDER_VMWARE_PLAYER.
With VMware Server 1.0.x, use
VIX_SERVICEPROVIDER_VMWARE_SERVER.
- hostName
-
Varies by product platform.
With vCenter Server, ESX/ESXi hosts, VMware Workstation
(shared mode) and VMware Server 2.0,
use a URL of the form "https://<hostName>:<port>/sdk"
where <hostName> is either the DNS name or IP address.
If missing, <port> may default to 443 (see Remarks below).
In VIX API 1.10 and later, you can omit "https://" and "/sdk"
specifying just the DNS name or IP address.
Credentials are required even for connections made locally.
With Workstation, use
undef
to connect to the local host.
With VMware Server 1.0.x,
use the DNS name or IP address for remote connections,
or the same as Workstation for local connections.
- hostPort
-
TCP/IP port on the remote host.
With VMware Workstation and VMware Player, use zero for the local host.
With ESX/ESXi hosts, VMware Workstation (shared mode) and
VMware Server 2.0 you specify port number within the hostName
parameter, so this parameter is ignored (see Remarks below).
- login
-
Username for authentication on the remote machine.
With VMware Workstation, VMware Player, and VMware Server 1.0.x, use
undef
to authenticate as the current user on local host.
With vCenter Server, ESX/ESXi hosts, VMware Workstation
(shared mode) and VMware Server 2.0,
you must use a valid login.
- password
-
Password for authentication on the remote machine.
With VMware Workstation, VMware Player, and VMware Server 1.0.x, use
undef
to authenticate as the current user on local host.
With ESX/ESXi, VMware Workstation (shared mode) and
VMware Server 2.0, you must use a valid login.
- options
-
must be 0.
- propertyListHandle
-
Must be
VIX_INVALID_HANDLE.
Return Value
$err. The error code returned by the operation. For returned values, see Topics > Error Codes.
$hostHandle. A handle to host.
Remarks
- To specify the local host (where the API client runs) with VMware Workstation and VMware Player,
pass null values for the hostName, hostPort, userName, and password parameters.
- With vCenter Server, ESX/ESXi hosts, and VMware Server 2.0,
the URL for the hostName argument may specify the port.
Otherwise an HTTPS connection is attempted on port 443.
HTTPS is strongly recommended.
Port numbers are set during installation of Server 2.0.
The installer's default HTTP and HTTPS values
are 8222 and 8333 for Server on Windows,
or (if not already in use) 80 and 443 for Server on Linux,
and 902 for the automation socket, authd.
If connecting to a virtual machine though a firewall,
port 902 and the communicating port must be opened to allow guest operations.
- If a VMware ESX host is being managed by a VMware VCenter Server, you
should call VixHost_Connect with the hostname or IP address of the VCenter
server, not the ESX host. Connecting directly to an ESX host while
bypassing its VCenter Server can cause state inconsistency.
- On Windows, this function should not be called multiple times with different
service providers in the same process; doing so will result in a
VIX_E_WRAPPER_MULTIPLE_SERVICEPROVIDERS error. A single client process
can connect to multiple hosts as long as it connects using the same
service provider type.
- To enable SSL certificate verification, set the value of the options
parameter to include the bit flag specified by
VIX_HOSTOPTION_VERIFY_SSL_CERT.
This option can also be set in the VMware config file by assigning
vix.enableSslCertificateCheck as TRUE or FALSE.
The vix.sslCertificateFile config option specifies the path to a file
containing CA certificates in PEM format. The vix.sslCertificateDirectory
config option can specify a directory containing files that each contain
a CA certificate. Upon encountering a SSL validation error,
the host handle is not created with a resulting error code of
VIX_E_NET_HTTP_SSL_SECURITY.
- With VMware vCenter Server and ESX/ESXi 4.0 hosts,
an existing VI API session can be used instead of the username/password
pair to authenticate when connecting.
To use an existing VI API session, a VI "clone ticket" is required; call the
VI API AcquireCloneTicket() method of the SessionManager object to get
this ticket. Using the ticket string returned by this method, call
VixHost_Connect() with NULL as the 'username' and the ticket as the
'password'.
Side Effects
None.
Requirements
use VMware::Vix::Simple;
use VMware::Vix::API::Constants;
since VMware Server 1.0
Example
use VMware::Vix::Simple;
use VMware::Vix::API::Constants;
my $err = VIX_OK;
my $hostHandle = VIX_INVALID_HANDLE;
($err, $hostHandle) = HostConnect(VIX_API_VERSION,
VIX_SERVICEPROVIDER_VMWARE_VI_SERVER,
"https://viserver/sdk", # hostName
0, # hostPort
"root", # userName
"rootpasswd", # password
0, # options
VIX_INVALID_HANDLE); # propertyListHandle
die "HostConnect() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;
# ...Do everything in your program...
HostDisconnect($hostHandle);