a commandline client for SUSE Studio
Pull request Compare This branch is 37 commits behind susestudio:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
test
.gitignore
Gemfile
Gemfile.lock
MIT-LICENSE
README.rdoc
Rakefile
VERSION
ssc.gemspec

README.rdoc

ssc

This is the new version of the the Suse Studio command line client. Built as a part of GSOC 2011.

Installing ssc

The easy way

gem install ssc

Straight from the code

  • Checkout the code

  • In the checked out directory do `rake install`

Using ssc

Command Listing

ssc checkout --appliance-id=N --password=PASSWORD --username=USERNAME  # checkout the latest changes to an appliance
ssc commit --appliance-id=N --password=PASSWORD --username=USERNAME    # commit changes to studio
ssc status --appliance-id=N --password=PASSWORD --username=USERNAME    # show status of the appliance

ssc appliance # manage appliances

ssc appliance create APPLIANCE_NAME --password=PASSWORD --source-id=N --username=USERNAME  # Create an appliance
ssc appliance destroy --appliance-id=N --password=PASSWORD --username=USERNAME             # destroy the current appliance 
ssc appliance info --appliance-id=N --password=PASSWORD --username=USERNAME                # show details of a specific appliance
ssc appliance list --password=PASSWORD --username=USERNAME                                 # list all appliances
ssc appliance status --appliance-id=N --password=PASSWORD --username=USERNAME              # gives status of the appliance

ssc package # manage packages

ssc package add NAME --appliance-id=N --password=PASSWORD --username=USERNAME
    # add a package to the appliance
ssc package ban NAME --appliance-id=N --password=PASSWORD --username=USERNAME
    # ban a package from the appliance
ssc package list [selected|installed] --appliance-id=N --password=PASSWORD --username=USERNAME
    # list all selected or installed packages
ssc package remove NAME --appliance-id=N --password=PASSWORD --username=USERNAME
    # remove a package from the appliance
ssc package search SEARCH_STRING --appliance-id=N --password=PASSWORD --username=USERNAME
    # search available packages and patterns
ssc package unban NAME --appliance-id=N --password=PASSWORD --username=USERNAME
    # unban a package for the appliance

ssc repository # manage repositories

ssc repository add REPO_IDS --appliance-id=N --password=PASSWORD --username=USERNAME    
    # add existing repositories to the appliance
ssc repository import URL NAME --password=PASSWORD --username=USERNAME
    # import a 3rd party repository into appliance
ssc repository list --appliance-id=N --password=PASSWORD --username=USERNAME
    # list all repositories in a given appliance
ssc repository remove REPO_IDS --appliance-id=N --password=PASSWORD --username=USERNAME 
    # remove existing repositories from appliance
ssc repository search SEARCH_STRING --password=PASSWORD --username=USERNAME
    # search all available repositories

ssc file # manage files

ssc file add PATH --appliance-id=N --password=PASSWORD --username=USERNAME          # create a new overlay file
ssc file diff FILE_NAME --appliance-id=N --password=PASSWORD --username=USERNAME    
    # show the diff of the remote file and the local one
ssc file list --appliance-id=N --password=PASSWORD --username=USERNAME              # show all overlay files
ssc file remove FILE_NAME --appliance-id=N --password=PASSWORD --username=USERNAME  # removes existing overlay file
ssc file show FILE_NAME --appliance-id=N --password=PASSWORD --username=USERNAME    # show the contents of the file

ssc build # manage builds

ssc build --appliance-id=N --password=PASSWORD --username=USERNAME  # build an appliance
ssc list --appliance-id=N --password=PASSWORD --username=USERNAME   # list builds (running or completed)
ssc status --build-id=N --password=PASSWORD --username=USERNAME     # find the build status of an appliance

ssc template # manage templates

ssc template list SET_NAME --password=PASSWORD --username=USERNAME  # show details of a particular template set
ssc template list_sets --password=PASSWORD --username=USERNAME      # list all available template sets

ssc help [TASK] # Describe available tasks or one specific task

Examples

  • Creating and modifying a new appliance:

    $ ssc appliance create web_server --source-id=SOURCE_APPLIANCE_ID --username=USERNAME --password=PASSWORD
    $ cd web_server
    $ ssc package list
    $ ssc package add apache
    $ ssc file add /etc/apache2/apache2.conf
    $ ssc commit
  • Checking out an existing appliance and starting a build

    $ ssc checkout --appliance-id 59836 --username=USERNAME --password=PASSWORD
    $ cd APPLIANCE_NAME
    $ ssc build
    $ ssc build status

Contributing to ssc

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet

  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it

  • Fork the project

  • Start a feature/bugfix branch

  • Commit and push until you are happy with your contribution

  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.

  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.