You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@vcl.apache.org by "Aaron Coburn (JIRA)" <ji...@apache.org> on 2011/05/10 19:35:47 UTC
[jira] [Created] (VCL-470) The vSphere module does not implement
the get_total_space subroutine
The vSphere module does not implement the get_total_space subroutine
--------------------------------------------------------------------
Key: VCL-470
URL: https://issues.apache.org/jira/browse/VCL-470
Project: VCL
Issue Type: Bug
Components: vcld (backend)
Affects Versions: 2.2.1
Environment: VMware ESX4 host using the perl vSphere API
Reporter: Aaron Coburn
Fix For: 2.2.1
The VMware provisioning module calls the get_total_space subroutine before moving the VMX and VMDK files to/from the VM host machine. But when using the VMware::vSphere_SDK module, vcld reaches a critical error because the function is not implemented in the vSphere module. Attached is an implementation of the needed subroutine for lib/VCL/Module/Provisioning/VMware/vSphere_SDK.pm
1797,1840d1796
< #/////////////////////////////////////////////////////////////////////////////
<
< =head2 get_total_space
<
< Parameters : $path
< Returns : integer
< Description : Returns the total size (in bytes) of the volume specified by the
< argument.
<
< =cut
<
< sub get_total_space {
< my $self = shift;
< if (ref($self) !~ /VCL::Module/i) {
< notify($ERRORS{'CRITICAL'}, 0, "subroutine was called as a function, it must be called as a class method");
< return;
< }
<
< # Get the path argument
< my $path = shift;
< if (!$path) {
< notify($ERRORS{'WARNING'}, 0, "path argument was not specified");
< return;
< }
<
< # Get the datastore name
< my $datastore_name = $self->_get_datastore_name($path) || return;
<
< my $vmhost_hostname = $self->data->get_vmhost_hostname();
<
< # Get the datastore info hash
< my $datastore_info = $self->_get_datastore_info() || return;
<
< my $total_bytes = $datastore_info->{$datastore_name}{capacity};
< if (!defined($total_bytes)) {
< notify($ERRORS{'WARNING'}, 0, "datastore $datastore_name capacity key does not exist in datastore info:\n" . format_data($datastore_info));
< return;
< }
<
< notify($ERRORS{'DEBUG'}, 0, "capacity of $datastore_name datastore on $vmhost_hostname: " . format_number($total_bytes) . " bytes");
< return $total_bytes;
< }
<
<
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira