* fixed pep8 issue from previous fix
* removed str casting in xml element setting
  for _set_xml_etree_element function

Change-Id: I2a80b1782a084d9a2339055b199fd2cac3681844
Removes deprecated bad xml tools mixin from base model

Change-Id: I9a172f93d320ec2e3a28d64d789429215efb98ac
Adds an AutoMarshallingDictModel

* Added AutoMarshallingDictModel to handle models
  that have unknown properties

Change-Id: I2d60cad33d23693efd693a050e4c3ed2fe6f458a
Added additional linux clients

* Create Directory
* Is directory present
* Fixed Pep8
* Fixed string concatenation
* Changed algorithm of verifying directory existance
* args used for better readability
* removed prints
Change-Id: Ib57fb37e087a4281e37e8e7a9f4f6b7caa592898
Adding simple ElasticSearch client

Change-Id: Ie6a1dd429fb4e1cdcab6c5a40427c8210a883c46
Metrics Class Update

* This changes the metrics class into a class that extends a generic csv class.

Change-Id: I1bc0af95ad2e0f896695dd533bd303081a3c2998
Merge "Added additional linux clients"
Merge "Removes deprecated bad xml tools mixin from base model"
Merge "* fixed pep8 issue from previous fix * removed str casting in xml element setting   for _set_xml_etree_element function"
Engine configruation and env management overhaul

General Improvements:
* opencafe should fully support installation in a python virtualenv now
* upgrades from previous installs of opencafe should be much less error
  prone.
* Os environment variable name consistency:
  CAFE_ENGINE_CONFIG_FILE_PATH
  CAFE_ROOT_LOG_PATH
  CAFE_MASTER_LOG_FILE_NAME
  CAFE_DATA_DIR_PATH
  CAFE_TEST_REPO_PATH
  CAFE_TEST_LOG_PATH
  CAFE_CONFIG_FILE_PATH
  CAFE_LOGGING_VERBOSITY
  CAFE_TEST_REPO_PACKAGE

cafe/configurator/managers.py
* Added managers module as a repository for all engine and test
  environment, config, and directory management logic.
* Defines the new PlatformManager, TestEnvManager,
  EngineDirectoryManager, EngineConfigManager
  (and temporary UnittestRunnerTestEnvManager) classes

  PlatformManager
  * Adds helper methods for retrieving current user information in a
    platform agnostic way.
  * Support for windows and virtualenv under windows.

  TestEnvManager
  * Intended to act as a setup interface to make it easier for future
    runners or scripts to setup the environment variables, directories,
    and files used by the engine at test runtime. Defines properties
    for setting each of the enviornment variables that the engine can
    access.  By default, all values are set to the values present in the
    engine.config file.

  EngineDirectoryManager
  * Adds a mechanism for updating the opencafe default directory of
    existing installs to include any future changes.
  * Changes the default opencafe directory from .cloudcafe to .opencafe

  EngineConfigManager
  * Adds a mechanism for updating the engine.config of an existing
    opencafe install to include any future changes.
  * Moves engine.config file from .opencafe/configs to .opencafe/
  * CCTNG_ENGINE section name in engine.config changed to
    OPENCAFE_ENGINE
  * use_verbose_logging option changed to 'logging_verbosity'.
    Previous values of False and True where changed to 'STANDARD' or
    'VERBOSE' respectively.
  * default_test_repo option value in engine.config changed from
    'test_repo' to 'cloudroast'.
  * config_dir option was added to set the default location of an
    implementation's config files.  The config default is set to
    .opencafe/configs
  * master_log_file_name option was added as a way to configure the name
    of the file that the root log handler writes to by default.
    (This was previously configurable only via os environment variable)

  UnittestRunnerTestEnvManager
  * Added as a stop-gap to mitigate the need for a full refactor of the
    current unittest runner.  Once the unittest runner is refactored to
    use the TestEnvManager, this class will be deleted.

cafe/configurator/cli.py
* Added cli module to define a command line interface for engine
  configuration and management.
* CLI is Installed on the system as 'cafe-config'.
  Currently only supports running the engine's post-install
  initialization.

cafe/drivers/unittest/fixtures.py
* base fixture now gets the master log file name from the
  os environment via CAFE_MASTER_LOG_FILE_NAME
* statistics now gets the root directory for the statistics folder from
  the os environment via CAFE_ROOT_LOG_PATH

cafe/__init__.py
* Removed __version__ attribute and moved it's value to setup.py

cafe/common/reporting/cclogging.py
* The engine's logging module previously pulled it's defaults from
  a mixture of the engine's config (via hardcoded path) and the os env.
  cclogging now gets all configurable defaults from the os environment.
* log verbosity now configurable via the os environment variable
  'CAFE_LOGGING_VERBOSITY', which can be set to 'STANDARD' or 'VERBOSE'.
* The name of the file written to by the root log handler is now
  configurable via the os environment variable
  'CAFE_MASTER_LOG_FILE_NAME'.

cafe/engine/models/data_interfaces.py
* ConfigSectionInterface added to data_intterfaces.
* removed default_config_file property in favor of class global function
  _get_path_from_env to support the engine config's need to define it's
  own os environment variable as a source for the default engine
  config file.

cafe/resources/github/config.py
* Now imports ConfigSectionInterface from engine instead of cloudcafe.

cafe/resources/launchpad/config.py
* Now imports ConfigSectionInterface from engine instead of cloudcafe.

cafe/drivers/unittest/runner.py
* All changes made where neccessary to support changes in os
  environment variable names.  Further refactoring will be required to
  make the runner fully capitalize on the new features provided by the
  configurator managers.

cafe/engine/config.py
* No longer a copy-paste of the  entire BaseConfigSectionInterface
  (previously done to solve a circular import).  Now inherits from the
  newly added ConfigSectionInterface.

setup.py
* Moved post-install stuff into the configurator.
* Cleaner support for post-install scripts. (Monkeypatches
  setuptools.command.install instead of writing and checking for an
  install file.)

Change-Id: Ice766060a96f6e839b61f46f0fe67d5cbd1f1eba
Merge "Engine configruation and env management overhaul"
Initial Behave runner

Change-Id: I54aac57506d20be3325433037ff225c8b5e05b1f
Changes PlatformManager to support sudo -u option.

* get_current_user now returns the name of the user sudo is
  running the command as (the effective user) when using the
  sudo -u option to run as another non-root user.
* get_current_user now returns 'root' when the real user
  is 'root'.

Change-Id: I18a218f3401a73854e9d8888c553a9c7a48ba084
Re-enabled multiplatform capability of ping client

* Corrected IPv6 command for windows
* Switched ping command based on platform
* Removed deprecated remote ping function

Change-Id: I5607bb96f8493d0839c21c8fc64aa1f4c98b3ad6
Updated log_result in cclogging to be python 2.6 compatible

* Replaces all instances of '{}' in strings using .format()
  with positional argument specifiers.

Change-Id: Ie14fa6eb7e2378872393d659bb63ab476981ab60
Merge "Re-enabled multiplatform capability of ping client"
Added Directory details client

   * Initiated exceptions in open cafe
   * New model for directory properties
   * Fixes issues from Daryl review
   * typos changed in directory details
   * Moved exceptions to remote client
   * Fixed .format typo

Change-Id: I3201a361be7fbb6c06ce440421adcddadbf5b76b
Merge "Metrics Class Update"
Allows access to instance xenstore config for disk config

* Adds a function to the instance client to retrieve the
  disk config value from the XenStore

Change-Id: I84a5afa07aad553e23c776d2366e657c2eff5034
Adds block device listing for Linux

Change-Id: I7a0cccbbe0ffdb8b3f174defabd493e98b7d5810