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 > > > > >