Here's a summary of my development environment:

I use Komodo as well on a Windows desktop.  The TortoiseSVN Subversion
client is installed on the computer.  I check out trunk from
svn.apache.org and edit the files directly on my PC.

We have a dedicated development server which runs MySQL, Apache httpd,
and phpMyAdmin.  Multiple developers share this.  I use my own copy of
the database and web code running on this dev server.

The backend vcld code is actually tested on one of our production
management nodes though most testing could be done on a separate
machine.  The reason I test on the production management node is
because it is connected to our blade chassis management network.  This
is required in order to test bare metal functions with xCAT.  Running
multiple vcld processes on the same management node is not a problem
as long as each process uses it's own vcld.conf file with a unique
FQDN value.  Multiple developers actually test using the same
management node, each using their own copy of the backend vcld code in
their own directory.  For example, I keep mine under
/usr/local/vcldev/ark.

I use WinSCP's "Keep remote directory up to date" feature to
constantly synchronize the source code files on my PC to the
management node.

I rarely actually use my dev environment's VCL website for anything.
Everything is done via a few scripts.  (I'd be happy to share these
but they are a mess at the moment.)  I store everything used for my
dev environment which isn't part of the actual VCL code in
/usr/local/vcldev/ark/test including the scripts, the vcld.conf file,
and the vcld.log file.  The script files are also edited directly on
my PC and sync'd by WinSCP.  The main script is called test.pl.  When
executed, it does the following:

-Kills any vcld processes which may be running from a previous execution.
-Deletes the test/vcld.log file
-Empties the request, reservation, and log tables in my test database
-Inserts entries into request and reservation.  The start time is
NOW() and the end time is 2 hours in the future.  Also sets the
computer state.
-Starts vcld with the --conf= argument specifying the correct vcld.conf file
-Starts 'tail -f' on the vcld.log file

There's a section in test.pl where I define which image, computer, VM
host, and request state to use.  I test using blades/VMs/images from
our production environment -- just being careful to set the computers
used for testing to maintenance in the production database.  I will
occasionally export some database entries from the production
environment into my test database in order to be able to load newer
images and new computers which have been added.

I keep an SSH session open to the management node and execute test.pl
from there.  I set managementnode.checkininterval in my test database
to a pretty short value (2 seconds) so that the reservation that is
injected in the database begins to be processed by the test vcld
process soon after running test.pl.

I'm usually working on a particular subroutine rather than testing a
complete reservation process.  To speed things up so the only thing
that runs is the subroutine I'm working on, I inject a block of code
into the beginning of the process() subroutine in the state module
which is used to process the request injected by test.pl.  So, if
test.pl injects a request into the database with a state of 'reload',
I'll put the something like the following near the beginning of
new.pm::process():

print "\n\n" . '-' x 100 . "\n\n";
$self->os->generate_rc_local();
# ... or ...
$self->provisioner->load();
print "\n\n" . '-' x 100 . "\n\n";
exit;

The print statements just make it easier to locate the part I care
about in the vcld.log output.

Hope this helps.  There are a bunch of details I could explain
further.  Let me know if any additional info would be helpful.

-Andy


On Tue, Apr 17, 2012 at 12:10 PM, Dmitri Chebotarov <dcheb...@gmu.edu> wrote:
> Hi, All
>
> I'm looking for some help on how to setup development environment for VCL 
> back-end development.
> I already have working VCL system. I need to debug and troubleshoot new code 
> and changes I plan to make to VCL.
>
> I use Komodo IDE. Would it possible to just hit 'run' button and follow the 
> code via IDE?
> Right now I run vcld and watch vcld.log for errors, then come back to the 
> code to correct issues.
>
> I'm working on ESXi.pm module - trying to make reservations for ESXi 4.1 
> server.
>
> Thanks.
> --
> Dmitri Chebotarov
> Virtual Computing Lab Systems Engineer, TSD - Ent Servers & Messaging
> 223 Aquia Building, Ffx, MSN: 1B5
> Phone: (703) 993-6175
> Fax: (703) 993-3404
>
>
>
>
>

Reply via email to