Hi Sean,
Welcome!  As Aaron mentioned, here is the provisioning module specification:
http://cwiki.apache.org/confluence/display/VCL/Provisioning+Engine+Module+Interface+Specification

If you haven't done so already, browse the pages under the following URL to familiarize yourself with the backend modularization and inheritance architecture:
http://cwiki.apache.org/confluence/display/VCL/Backend

(Note: the purple text on these pages are just notes of additional things which should be documented)

These pages along with going through existing modules are probably your best bet. The xCAT.pm and vmware.pm modules are the most current. I would work off of them.

The VCL ASF community really hasn't discussed coding guidelines so this would be a good exercise as this is developed.

We (NCSU) mainly use VMware Server 1.x at the current time. I'm hoping to work with the community to rework the vmware.pm module to use the VMware Perl API, possibly for a 2.2 release. This is necessary in order for us to be able to use VMware Server 2.x, which I believe is going to be necessary to support Windows 7 VMware environments.

Ideally, vmware.pm would contain all of the general functions common to the different VMware products. esx.pm module would inherit from vmware.pm and would implement functions specific to ESX. Some work needs to be done to get these aligned. Your module would then inherit from esx.pm and would only need to implement the special linked cloning functions.

That said, you don't have to wait for other modules to be updated you don't really have to deal with VMware/ESX inheritance in order to get started. All the functions you need could be implemented in your .pm file for now. As you identify or write subroutines which could be used across the VMware product lines, bring them up on the list and we can decide where in the hierarchy they should go.

-Andy

Sean Dilda wrote:

I'm about to embark on writing a new provisioning module for VCL based on some existing perl scripts I have. Is there any documentation for how the module interface works? I haven't been able to find any aside from reading existing modules. Also are there any required/preferred coding guidelines for this project?


For those that are interested, this module is going to be another ESX provisioning module. This module will use VMware snapshots to create deployed VMs as snapshots against the base image's disk, which leads to extremely quick provisioning with little wasted disk usage. Its based on the techniques used in the ghetto linked clones script (http://communities.vmware.com/docs/DOC-9020) but rewritten in perl using the VI Perl Toolkit. I already have stand alone scripts in perl that work, so this is mostly an exercise of converting those scripts into a VCL module.

Reply via email to