1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
Commit graph

27 commits

Author SHA1 Message Date
Matthew Black
da5a8da83b Expanded vm_clone to allow for setting up static ip for first nic. 2013-01-08 15:37:16 -05:00
Nick Huanca
be8cf18772 added a note about ugliness and needing more help with tests 2012-12-01 11:25:41 -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
f318240b7f added styling fix 2012-12-01 08:42:33 -07:00
Nick Huanca
a362d2120f fixed up issues with vm_clone looking for methods that didn't exist
tested with wait => true,
wait => false fails since it cannot load model while server is still being created
2012-12-01 08:33:13 -07:00
Nick Huanca
258275929b Added a new attribute to server model (relative_path)
cleaned up clone function from server model
Added better use of resource pool, dest_folder
Added new datastore selection, simplified vm_clone.rb
Added Customization specs for linux machines
Added a new call from datacenters method to grab virtual_servers in datacenter
2012-12-01 07:48:18 -07:00
Nick Huanca
44ddaae200 Added new output to vm_clone.rb
Fixed 'path' attribute on server model
fixed server.clone function and added some documentation.
2012-12-01 06:42:13 -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
Nick Huanuca
de6666f8b9 ammend dest_folder disclaimer 2012-10-23 18:05:33 -06:00
Nick Huanuca
1da0bd26f3 added documentation. 2012-10-23 18:04:42 -06:00
endzyme
c3c56af09e Update lib/fog/vsphere/requests/compute/vm_clone.rb
Refactored resource_pool settings.
2012-10-19 11:02:51 -06:00
endzyme
a9eb189f7a Update lib/fog/vsphere/requests/compute/vm_clone.rb
Made requested changes and typo fix. Added backwards compatibility for options['path'] on vm_clone(). New recommended option is options['template_path'].
2012-10-19 10:43:35 -06:00
endzyme
7c27d843e6 Update lib/fog/vsphere/requests/compute/vm_clone.rb
Added more options for destination folder to copy new clone to. (No Checks on if new dest_folder exists). ln 128 - 130
Added resource_pool option is mentioned needing revisit in source. ln 118 & 121
2012-10-18 15:31:42 -06:00
Karan Misra
5287e8b0fb Correct the handling of the power_on option 2012-09-21 11:15:58 +05:30
Carlos Sanchez
e385e277b8 Fix typo listing datacenters 2012-07-09 00:33:16 +02:00
Justin Clayton
485b666feb more robust resource pool discovery
checking if the template has a pool associated with it is a sane
default that covers more possible use cases without making any
obscurely implied assumptions
2012-05-30 16:37:53 -07: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
4bcfed0099 whitespace fix 2012-01-17 14:16:22 -05:00
Eric Stonfer
8542632a67 whitespace fix 2012-01-17 13:52:49 -05:00
Eric Stonfer
8e341ad831 Add the ability to create linked clones in vsphere 2012-01-17 11:52:08 -05:00
Eric Stonfer
4ed540badc fixed a conditional that was assigining = rather than evaluating == in vsphere clone routine. This resulted in cloning from folders always failing 2012-01-10 11:56:04 -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
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
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
Jeff McCune
dc9a2e4808 (#9124) Add ability to reload the model of a cloning VM
Without this patch it is very difficult to reload the model of a VM in
the process of being cloned.  All we have is the vmware managed object
reference ID string and the name of the VM.

This patch adds a number of improvements:

First, the model of a VM being cloned can reload itself after the VM
finishes cloning, even though we don't have an instance_uuid until the
clone completes.

Because the model can reload itself, it's now possible to do something
like:

    c = Fog::Compute[:vsphere]
    new_vm_name = "test"
    c.vm_clone(:instance_uuid => "abc123", :name => new_vm_name)
    my_new_vm = c.servers.find { |vm| vm.name == new_vm_name }
    my_new_vm.wait_for { uuid }
    puts "New VM is ready! (It has a UUID)"
    my_new_vm.wait_for { ipaddress }
    puts "New VM is on the network!"

Without this patch, a VM model could not reload itself with an id of
'vm-123', reloading the model only works if the ID is a UUID.

In addition, a number of the attributes of the server model have been
adjusted to be nil values when the VM is in the process of cloning.
This makes it easier to use wait_for conditionals in blocks.
2011-09-10 13:32:59 -07:00
Jeff McCune
ef2833cb20 (#9241) Add vm_clone API request
Without this patch we have no way to clone a new VM
from a template.  This patch adds the vm_clone request
which takes an instance uuid as the source template
to clone from an a name parameter which is the new VM's
name.

The clone operation is handled asynchronously as a vSphere
task object.  The clone request does not return a handle
for this task, which may make it difficult to monitor
the progress of the clone operation from Fog.  A future
enhancement may be to clone and return the task object
itself to monitor progress.
2011-09-10 13:32:58 -07:00