* Generates suites from test-containing classes,
unittest.TestSuite-derived classes (Fixtures), and
opencafe DatasetList classes as defined in a flat text file
called a 'brew' (runfile).
* Adds brew package in cafe.drivers.unittest
* Adds arguments, parser and runner modules in brew
package.
* Adds examples directory in repository root directory
* Adds example brewfile in examples directory
* Adds new 'cafe-brew' entry point to setup.py
* Adds unittests for brew package
Change-Id: I379c5b2c4bdf17bc49ce055ef4600b38a72a1140
* Incremented version to 0.2.2 for pypi release.
* Removed all post-install hooks. All initialization and configuration
should be done through the cafe-config cli tool.
* Added setup.cfg with support for universal bdist wheel.
* Updated MANIFEST.in file.
* Updated README.rst to reflect new install procedures.
* Modified cafe-config so that initialization command is now just
"cafe-config init".
* Since the ".opencafe" directory is no longer initialized at install
while access to the source code is guaranteed, the plugins are now
distributed as package_data, and installed as such to site-packages
under the new "plugins" directory within the "cafe" namespace.
* The plugins directory is moved to the cafe package directory as
package_data.
* The plugin cache is no longer created at initialization, and all
code relating to it in the cli.py and managers.py file has been
removed.
* Removed pip-requires file in favor of including the only requirement,
'six', in setup.py. The plan is to refactor so as to remove the
dependency on six eventually.
* Renamed test-requirements.txt to test-requires.
* Added Authors.rst
Change-Id: I28a605f926ae5f2d972a6a36171d0e4eb92cac09
This patch updates the OrderedDict import to be python 2.6
compatible. This is needed for downstream projects that use
Open Cafe and need to run with older versions of python.
Change-Id: I1d6ae1ee6d214adca8333d2f469a1366890ceaa7
* Changed the package name to 'opencafe' so that it's
pip installable under that name, instead of 'cafe'
* Added recursive include on plugin directory in the MANIFEST.in
file to make sure everything under the plugins directory gets
included in the sdist when published.
Change-Id: Ia09686ff08c2c4ddda6aa60908f98bba3d4ff64c
* Incremented version to 0.2.0
* Changed author to 'CafeHub'
* Updated Development Status to 4 - Beta
* Changed url to readthedocs page
Change-Id: I70074061ca144285dfb0d399fcca9bc28524bc41
* Changes docstrings from single to double quotes.
* Reformats multiline declarations with non-visual indentation.
* Turns rsyslog resource into a plugin
* Moves plugin-specific unittests into their respective plugins
* Add tox support to plugins with tests
Change-Id: Ife172b165004c366ad64faa7c00afceb8e99c76d
Unittest2 is only needed for py26 and under. As we want to eventually
be able to make OpenCAFE Python 3 compatible, we need to keep back-
compatiblity requirements on a conditional level.
Change-Id: Id7fc4ede4c1aef84759e72be0fac28c86b1a09bc
argparse is included in 2.7+. We should only be installing it
if we are running Python 2.6.
Side note, the argparse version in pip needs to be repackaged
to conform to pip 1.5+ standards. Otherwise, we need to also
look into adding workarounds for that as well.
:: edit ::
Changed my mind on where I wanted to put this.
Change-Id: Idfa8ca93b105aebbc3aecbddcca7caee97192912
Jose and I taking a first stab at a plugin system for opencafe.
* Making more changes
* Adding simple docstring
* Cleaning up a plugin install a tiny bit
* Adding license to __init__.py files
* Adding Plugin List
* Adding note to the end of setup
Change-Id: Id0a61549f37ada7f9a254f8cc944957c4d2c4694
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
* Removed unused imports
* Fixed invalid class name in linux_instance_client
* Fixed various pep8 issues
Change-Id: If269b7590f331a0d5cb11d4813bdf9b03dbbb417