I looked through the current code for VCL::Module::Provisioning::VMware::vSphere_SDK
For the most part, all of the code I submitted for the vCenter module has been integrated into vSphere_SDK class. There are three exceptions, which I didn't see in the current code: 1. in the move_virtual_disk subroutine, you use the MoveVirtualDisk vSphere method. This works fine on esx hosts, but in the context of a vCenter, it will return a "not implemented" fault. I liked how this was handled in the copy_virtual_disk subroutine: first try the method that makes sense and then fall back to using the full 'CloneVM' approach if the first method doesn't work. The way I had implemented this, move_virtual_disk just uses the copy_virtual_disk method and then deletes the source files upon successful completion. I can add that code if you would like. 2. in the copy_file_to and copy_file_from subroutines, I needed to add a loop because the VIExt::http_put_file and VIExt::http_get_file functions periodically fail. That is, if copy_file_to fails, the code sleeps for a few seconds and tries again, up to a maximum of a few tries. From what I can tell, this sort of looping doesn't exist when prepare_vmx() is called. I can wrap that in a Module::code_loop_timeout subroutine, if you would like. 3. When vCenter clones a VM with the CloneVM method, it will silently truncate long vm names. This isn't necessarily a problem as long as that new name finds its way into the database; otherwise, however, when VMX files are generated, the vmdk file pointers will reference incorrect locations. I had solved this by enforcing a maximum length in the web code (i.e. the vcl.image.name table). There are pros and cons to this, though a better approach may be to retrieve the actual name of the vmdk file after a clone operation is performed. This would require having the copy_virtual_disk and move_virtual_disk to return values other than just 1 (or, those methods could update the database themselves). I am not sure which approach you would prefer. I am also unsure of the best way to update the database with this information: would I simply call database_execute(...) and then call $self->data->refresh()? Or is there other code that handles this type of operation? Please advise. Aaron On Apr 25, 2012, at 10:28 AM, Josh Thompson wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > I think we targeted April to get a release out. The number of JIRA issues we > have left is starting to go down a fair amount. I'm almost finished with the > frontend. How's the backend? Are there other things we'd like to do for > this > release such as scripting the install as much as possible? I don't think > we'll be done by the end of April, but I think the first week of May would be > possible. > > Aaron C., Jim, and David - Have you tested your provisioning modules with > recent code from subversion? If not, do you think you can do that in the > next > week or two? > > Josh > - -- > - ------------------------------- > Josh Thompson > VCL Developer > North Carolina State University > > my GPG/PGP key can be found at pgp.mit.edu > > All electronic mail messages in connection with State business which > are sent to or received by this account are subject to the NC Public > Records Law and may be disclosed to third parties. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.17 (GNU/Linux) > > iEYEARECAAYFAk+YChIACgkQV/LQcNdtPQPsagCdHCZOuT1ZIXxZrB+9EtppUjkc > KJIAn1mxEVtuZ64KEG0I4AwosUo3qT2P > =InjJ > -----END PGP SIGNATURE----- >