anvil/docs/source/topics/features.rst
Joshua Harlow 27f9e46fcf Some small doc cleanups.
Change-Id: Ib1071febe1c08c129b44910bb63b49f28f292b9b
2013-06-05 20:35:14 -07:00

2.7 KiB

Features

  • A set of configuration files (in yaml format) that shows common/component/distribution configurations.
  • Supports the following actions on the various OpenStack components.
    • Installing:
      • Automatically downloading source from git and performing tag/branch checkouts.
      • Automatically verifying and translating requirement files to known pypi/rpm packages.
      • Automatically installing and building missing dependencies (pypi and rpm) for you.
      • Automatically configuring the needed files, symlinks, adjustments, and any patches.
    • Starting: starting of the components sub-programs with the needed configuration via the common daemon model.
      • Also creates a pid, stderr and stdout file set for debugging/examination.
    • Stopping: stopping of the previously started components.
    • Uninstalling: getting you back to an initial 'clean' state.
      • Removing installed configuration.
      • Undoing of installed files/directories.
      • Removing of packages installed.
    • Testing: automatically running each components unit tests.
    • Packaging: creating a basic set of packages that matches the components selected.
      • Supports automatic injection of dependencies and creation of a changelog from git history.
    • Status: checking the status of the running components sub-programs
  • Supports dry-run mode (to see what would happen).
  • Written in python so it matches the style of other OpenStack components.
  • Code decoupling (thus encouraging re-use by others)
    • Components & actions are isolated as individual classes.
    • Supports installation personas that define what is to be installed, thus decoupling the 'what' from the 'how'.
  • Install/start/stop... resumption so that when you install you can ctrl+c and resume later (where applicable).
  • Extensive logging (and debug mode)
    • All commands executed are logged, all configuration files read/written (and so on).
  • Package tracking and building
    • Creation of a single rpm of your installation.
      • This freezes what is needed for that release to a known set of packages and dependencies.
    • Automatically building and/or including all needed dependencies.
      • Includes application of your distributions native packages (when applicable).