This is a first draft of my GSOC proposal. Please let me know what you
think. Any suggestions or requests for clarification are most welcome.
Title: Command line client for Suse Studio
Appliances built with Suse Studio can be thought of as any other
software project that has to be built, tested and deployed. Currently
appliances have to be built using the web-interface, which while being
full-featured might be a little clunky if extensive configuration,
through multiple overlay files and packages, is required. The goal of
this project is to create a command line tool(ssc) to make it easy for
users to create appliances locally and deploy them.
The command line client has two utilities:
1. Create and configure a local version of the appliance and commit
the changes when done.
2. To simply retrieve information from the API (listing templates,
repositories, packages, etc.)
The following main "objects" can be managed using the client:
1. appliance (create, list, status*)
2. repository (search, list*, add*, remove*)
3. package (search, list*, add*, remove*)
4. file (list*, add*, remove*, diff*, update*)
* - These commands require the appliance ID. Either they can be run
within the local application directory
(created with `application create`) or they will need the --appliance-id
option. This facility is so that in case only some minor changes
require to be made to an appliance ( the addition of a prepared config
file for instance ), it can be done without the hassle of having to
setup a local appliance directory. In case the commands are run from
outside the appliance directory, the changes will be effected
immediately, else, the changes will be recorded locally and will be
pushed to Studio when the commit command is run
The following commands help to work within an appliance directory:
1. commit [files|packages|repositories|all] ( additional options would
allow users to cherry pick certain local modifications while comitting
checkout : update the local files and update the local record of
packages and repositories from the server
status : show changes in packages/files/repos waiting for commit
Besides those main objects, the client will also allow users to
inspect builds, list templates, etc.
April 25th - May 23rd: Familiarize myself with the studio_api gem and
investigate the best option to maintain versions of local changes.
Coding will be done in 2 week periods at the end of each of which some
new functionality must be added to the tool and be made available for
May 24th - Jun 5th: Create the framework for the command line client.
Get the option parsing working and implement some of the basic search
Jun 6th - Jun 19th: Implement the appliance directory management features.
Jun 20th - 26th: Release a first alpha version for testing and reviews
Jun 27th - Jul 11th: Tidy up, refactor code. Raise test coverage. Fix Bugs.
Jul 12th - Jul 17th: Mid-Term Review
Jul 17th - Jul 31st: Implement the commit, update and status commands.
Aug 1st - Aug 15th: More testing, bug fixing and community review.
Prepare the first stable release
I'm a student at the Indian Institute of Technology, Kharagpur. I've
been working with ruby for the last 4 years. I've completed 2
internships as a ruby/rails developer at Sapna Solutions and
and have done some freelance work using rails. You can
see some of my open sourced code at http://github.com/rjsvaljean
Among other things, I've built a del.icio.us API wrapper
] and a custom blogging engine rxvl
I have considerable experience working with ruby and web APIs and am
confident that I can write a well designed, intuitive and maintainable
client for Suse Studio. Suse Studio is an important tool to create
replicable custom installations for mass deployment and that this tool
will make it much easier for developers to adopt it.
IRC nick: rjsvaljean
To unsubscribe, e-mail: opensuse-project+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-project+help(a)opensuse.org