I started doing some POC work for my company using Ambari a couple months ago. I follow a similar approach as Sumit for the most part. The one exception is with UI changes. I have a linked folder to my UI code and use "brunch w" to update the UI code when I make changes. Basically what is under "Frontend Development" on this page https://cwiki.apache.org/confluence/display/AMBARI/Quick+Start+Guide
On Thursday, June 25, 2015, Sumit Mohanty <[email protected]> wrote: > Inline ... > > This is what I do and by no means is the only way. So I encourage others > to reply as well. > > ________________________________________ > From: Halterman, Jonathan <[email protected] <javascript:;>> > Sent: Thursday, June 25, 2015 11:53 AM > To: [email protected] <javascript:;> > Subject: Re: Dev workflow > > Followup to this: Do you typically run the entire test suite on changes? > Just the suite for a specific sub-project? I noticed that some of the > individual test cases take 4+ minutes on my VM so I wanted to see what > others do. > [Sumit] If you are making changes to specific modules (e.g. view, agent, > or stacks within ambari-server) you can only run tests for the module. The > issue is when you make changes to ambari-server whose unit tests can take > 20-40 minutes. You can run tests specific to files being changed if the > changes are limited in scope. Also, adding a patch to the Apache JIRA and > submitting the patch will also get you a test run for free - you still need > to wait. So it might be a good idea to do so just before commit and while > developing you can run specific tests. > > - jonathan > > From: <Halterman>, Jonathan Halterman <[email protected] > <javascript:;><mailto:[email protected] <javascript:;>>> > Date: Thursday, June 25, 2015 at 11:14 AM > To: "[email protected] <javascript:;><mailto:[email protected] > <javascript:;>>" <[email protected] <javascript:;><mailto: > [email protected] <javascript:;>>> > Subject: Dev workflow > > I just wanted to ping the community to get a sense for what dev workflow > other developers are using. The wiki hints at a few possibilities – using > ambari-vagrant, using the dev-tools' Docker, but since > building/installing/running Ambari is a bit different than other projects, > I’m curious what the end to end dev workflow looks like. Some specific > questions: > > * What’s your general workflow for deploying and testing changes in an > ambari-server? > [Sumit] In my case, I deploy Ambari/Stack on a Vagrant VM and update the > jars/scripts as needed with my fixes. I usually keep my VM updated by > re-deploying fresh every 1-2 days. This can be troublesome if you are > testing some scenarios that require more work than the default deployment > such as external DB, security, AD integration, etc. In general, you can go > a few days without having to update your VM or sync'ing. > * Do you run ambari-server for development on your local machine? > [Sumit] I do not. Running Ambari in DEBUG mode allows easy debugging from > your dev machine (see below). > * Do you run ambari-server in a VM or container? If so: > * Do you use synced folders or shared volumes? > [Sumit] Yes, I run on VMs. I do not use sync'ed folders or volume but that > has worked for me before. For me the reason is that I switch between > Vagrant, ec2, gce, etc. for my development. > * If so, what kind of synced folders (vagrant, nfs, rsync)? > [Sumit] Vagrant works fine. > * Are you able to successfully build ambari when using synced > folders? > [Sumit] I have not tried it. > * Are you able to successfully build an rpm/deb when using > synced folders? > [Sumit] I have not tried it either. > * If you don’t use synced folders, what’s your workflow for testing > code? > [Sumit] Build on the dev machine and copy over jars. If there are changes > to the scripts then I will use some scripts to copy them over and overlay > them properly. > * Does the ambari apt/deb package need to be installed in order to > start ambari-server for development purposes? > [Sumit] I assume yes. In my case, I use one of the latest builds from my > organization and then patch it with my fixes. > * How do you start ambari-server for development purposes (with the > ability to attach a debugger)? > [Sumit] If you look into /usr/sbin/ambari_server_main.py then you can see > the SERVER_START_CMD_DEBUG and also how to start the server with this > option. > > HTH > > Cheers, > Jonathan >
