Commit Graph

23 Commits

Author SHA1 Message Date
Carlos Sanchez 9f65cd9ec7 [vsphere] Make mock data consistent across operations
Use the the same list of vms for all calls, mimic other providers mocks
rbvmomi returns hashes with string keys, not symbols
Match instance_uuid with id in list_virtual_machines as Real does
Better mock for vm_clone, returns a vm with new id and adds it to the list of running vms
Test new_vm option
2013-08-02 20:24:59 +02:00
Mick Pollard 460783d945 [vsphere] allow setting ram and num of cpu when cloning 2013-04-04 21:49:19 -07:00
Nick Huanca e966e73ff0 fixed up some issues with the tests, needs more work and thought 2012-12-01 11:23:23 -07:00
Nick Huanca 44e400db41 Fixed up tests 2012-12-01 08:52:01 -07:00
Ohad Levy b70e972a58 VMWare vsphere provider refactor
missing:
- new model tests
- templates model
- clone

this patch includes a lot of changes and cleanups, exposing more fog
collections/models and rewriting most requests
it includes valuable feedback from endzyme <nick.huanca@gmail.com>
2012-11-14 15:31:02 +02:00
Ohad Levy 1497124853 [vsphere] adds support to get and set vnc console 2012-03-28 13:48:14 +02:00
Eric Stonfer 9fdbd35415 add host based vmotion 2012-02-27 10:14:31 -05:00
Jeff McCune ffbb2b06bd Merge pull request #721 from estonfer/reconfigure_vm_functions
add vm reconfiguration functions for memory cpu / generic spec for vsphere
2012-02-13 11:39:14 -08:00
Eric Stonfer 47767bbdb5 fixed a typo in vm_power_on_tests.rb 2012-02-01 10:03:36 -05:00
Eric Stonfer 68c18a9ec3 add vm reconfiguration functions for memory cpu / generic spec 2012-01-31 15:43:48 -05:00
Jeff McCune 0ebad09a45 Merge pull request #704 from estonfer/blank_vms
This patch allows the ability to create 'blank' vms in vsphere
2012-01-23 08:40:00 -08:00
Eric Stonfer 88a32dd5ea This patch allows the ability to create 'blank' vms in vsphere 2012-01-21 16:45:34 -05:00
Jeff McCune 246c91fc67 (maint) Whitespace and format only clean up
Without this patch there are some niggling whitespace and formatting
issues introduced by this pull request and change set.

This patch cleans those up and makes git log --check look nice again.
2012-01-19 11:42:39 -08:00
Jeff McCune 67cede19a5 Fix linked clone mocked test unhandled exception
Without this patch, the test for the vSphere linked clone option to the
vm_clone request throws an exception.  For the full exception please see
GH-697 discussion comments on Github at [1]

This patch fixes the issue by removing the cleanup code which is not
necessary for a Mocked test.  The cleanup code was calling a method on
the response_linked object which is not actually in scope.

[1] https://github.com/fog/fog/pull/697
2012-01-19 11:38:25 -08:00
Eric Stonfer a318c9a239 linked clone tests 2012-01-17 22:58:08 -05:00
Eric Stonfer cd682ba89c add a linked clone test scenario, set the vm_clone test to wait, and clean up old servers after the VM clone test 2012-01-17 22:42:53 -05:00
Jeff McCune a36f3888e3 [vsphere] (#10644) Add servers filter to improve clone performance
The behavior without this patch is that the performance of the vm_clone
operation in unacceptably slow for VMware vCenter deployments with
multiple hundreds of virtual machines.

Performance is unacceptable because the vm_clone operation makes
multiple API calls to list _all_ of the VM's in the inventory.  This
patch eliminates the need to list all VM's by adding path and folder
filters to limit our API calls to subtrees of the VMware inventory.

= API Changes =

 * New datacenters request that caches the Datacenter objects for the
   life of the process.
 * New clone() method on the server model that returns a server model of
   the new VM even if it is not yet done cloning.
 * Ability to limit collections to inventory paths by passing the
 * 'folder' filter to the servers collection.  For example:
   `conn = Fog::Compute[:vsphere];
    conn.servers('path' => '/Datacenters/DC1/vm/Templates')`
   this filter will greatly reduce the number of SOAP API calls by
   limiting the server models in the collection to only those in the
   Templates inventory folder.  Note, this is not recursive yet.

= Tests =

Tests have been updated.  The vm_clone request no longer takes an
instance_uuid because we cannot actually use this to search the
inventory efficiently.  Instead, the vm_clone request now requires a
path attribute to allow Fog to search only a subset of the inventory.
2011-11-12 09:39:14 -08:00
geemus df36b45802 [vsphere|compute] test fixes 2011-11-09 10:26:32 -06:00
Kelsey Hightower a65db7f594 (#10570) Update `Fog::Compute::Vsphere` tests
Update `Fog::Compute::Vsphere` tests to reflect the way the
`Fog::Compute::Vsphere#convert_vm_mob_ref_to_attr_hash` method currently
converts a `RbVmomi::VIM::ManagedObject` object to a hash.

Without this patch, tests related to converting an instance of
`RbVmomi::VIM::ManagedObject` to a hash will raise an exception:
NoMethodError: undefined method `collect!' for Hash; causing the test to
fail.

This patch solves the problem by mocking `RbVmomi::VIM::ManagedObject`
with a new `MockManagedObject` class, which provides a `collect!`
method, and the `_ref` and `parent` attributes.

This patch renames fake_vm to fake_vm_mob_ref in order to provide a
more descriptive name for what's actually being tested.

The `Fog::Compute::Vshpere::Mock` class has been updated to require the
rbvmomi library, which prevents an `NameError` exception from being raised
due to the `Fog::Compute::Vsphere::Shared::RbVmomi` constant not being
initialized.

The `Fog::Compute::Vshpere::Mock` class has been updated with a
`get_folder_path` method, which prevents a `NoMethodError` exception
from being raised due to the `get_folder_path` method being undefined.
2011-11-08 02:03:13 -05:00
geemus af7ebb2ad8 [vsphere|compute] mark test requiring guid pending, as require can not be found 2011-09-22 19:54:11 -05:00
Jeff McCune dd9e132de5 Fix vm clone problem when a Guid instance is passed as the instance_uuid
Without this patch the vm_clone requiest would not find a Managed Object
Reference when a UUID that is not a string is passed as the
instance_uuid option.  This is a problem because an unhelpful "undefined
method `parent' for nil:NilClass" would be thrown to the application.

This patch throws a more helpful Fog::Compute::Vsphere::NotFound
exception if the Virtual Machine template is not found.

The tests have been updated to reflect this expectation.
2011-09-14 10:15:19 -07:00
Jeff McCune 19cf9d7784 Add vsphere_server connection attribute
Without this patch it was difficult to figure out from the outside what
vSphere server Fog connected to.  The application using Fog should be
able to easily print out the connection information without breaking the
encapsulation Fog provides.

This patch makes the connected vSphere server hostname and API username
an attribute of the connection instance.

The tests have been updated to validate these attribute accessor
methods.
2011-09-14 09:29:30 -07:00
Jeff McCune 743882f032 Refactor requests to return simple hashes and add unit tests
This massive commit refactors all of the request methods on the
Fog::Compute[:vsphere] instance to return simple hashes.  The behavior
before this commit returned full vmware object references which was a
problem because it was difficult to unit test.

With this patch, it is much easier to add and maintain Mock
implementations of the request methods.  This makes adding behavior
tests for the server model much easier.

In addition, test coverage using Shindo has been added.  Previously
there was little test coverage of the behavior.

To run the tests:

    shindont tests/vsphere/
2011-09-10 15:11:18 -07:00