CHANGES
=======

* Remove unused linters tox target
* Sync requirements
* Remove openstackdocstheme
* Fix the wrong i18n domain definition
* Make pep8 \*the\* linting interface
* Use oslo-config-generator to sync config file
* Clean the unused files of the obsolete oslo-incubator
* Use oslo-config-generator to sync config file
* Use oslo.service
* fix tox
* Make changes for jenkins jobs
* Trival fix a collector bug
* Add context to make api working
* Fix bugs in global manager to make it running
* Fix bugs in load config options
* Update README.md for Terracotta
* Add launch script for each service
* Use oslo\_messaging instead of oslo.messaging
* Update .gitreview for new namespace
* Modify the readme.md
* Make local manager work
* refactor-at-the-very-early-age
* Resolve the db api confilct against master
* Add resource DB model definition
* Add sqlalchemy support to db
* Fix\_config\_invoke
* Fix method invoking way in Collector instance
* Refactor
* Fix config items in project
* Remove contract package dependency
* Refactor the config file
* Refactor db operstaions for terracotta
* Update package requirement
* Remove PyContracts dependency
* Add openstack common dir
* Refactor api service
* Refactor collector service
* Refactor local manager
* Refactor global manager
* Refactor the whole project structure to make it OpenStack-Style
* Fix a series of typos
* Fix vm\_by\_host bug
* Change the default value of block\_migration
* Fix novaclient connect
* Add .gitreview file
* Added a check for non-empty list of VMs to migrate in the global manager
* Update .gitignore
* Added a check for non-empty CPU data in best\_fit\_decreasing
* Added more debug logging, some code formatting
* Added a configuration option to specify whether to use block migration
* Upgraded to novaclient.v2
* Replaced "if key in dict: del dict[key]" with "dict.pop(key, None)"
* Fixed the issue reported in https://groups.google.com/d/msg/openstack-neat/BDX0UIjQe-0/boNAR0VxAGMJ
* Extracted contracts\_primitive from contracts\_extra to avoid problems with imports, added tests for long values returned by libvirt
* Added platform-dependent selection of the etherwake program name: ether-wake for RedHat and CentOS, etherwake for others
* Updated the local manager to support long values of RAM obtained from the libvirt API
* Updated common.parse\_compute\_hosts to allow host names that include - and \_
* Added the travis badge
* Fixed a problem with imports in contracts\_extra.py
* Added support for long values of RAM returned by libvirt as reported in https://groups.google.com/forum/#!topic/openstack-neat/BDX0UIjQe-0
* fix centOS deps
* Updated the license statement
* Minor
* Minor
* Added the CCPE 2014 paper
* Updated the readme
* Converted the CPU time to int in collector
* Converted host and VM IDs to integers
* Changed the default limit parameter for the OTF algorithm
* Do not deactivate hosts with no data collected yet
* Added scripts for syncing time on all the nodes
* Fixed host overload logging in the collector
* Fixed host overload logging in the collector
* OTF: migrate only if the host is currently overloaded
* OTF: updated logging
* OTF: updated logging
* Fixed a typo
* Fixing dependencies in travis
* Added debug logging to the OTF algorithm
* Fixed a bug in the OTF wrapper
* Fixed the OTF algorithm package
* Fixed the OTF algorithm
* Added scripts for printing real-time system statistics
* MHOD: run only if in state n
* MHOD: disabled handling skipped steps as a special case
* MHOD: removed the auto-false when the current state is not n
* MHOD config: removed the 10 and 20 window sizes
* Fixed a bug in execute\_overload of the global manager
* Added more debug logging to the local manager
* MHOD: handling skipped steps
* MHOD: skipping iterations when no new utilization values have been added
* Updated the default MHOD configuration: added the 10 and 20 window sizes, set learning\_steps to 10
* Fixed a logging error
* MHOD: replaced storing the state history with state counters, updated tests
* Updated MHOD, fixed the tests
* Fixed the MHOD tests
* MHOD: only solve the optimization problem if p[current\_state][state\_n] != 0
* Fixed a DB test
* MHOD: fixed a minor bug
* MHOD: moved the p estimation to the end, need to fix the tests
* Fixed MHOD: handling p[current\_state][state\_n] == 0 as a special case
* Fixed MHOD: time\_in\_states is now calculated based on the length of the state history
* MHOD: log state\_history during the learning period
* Updated the local manager to call the overload detection algorithm at every iteration: since the algorithm may require to update its state, as for example MHOD
* Added more debug logging to the local manager
* Fixed the MHOD algorithm: complete regeneration of the state at each iteration since the set of VMs allocated to the host may change
* Added a note about licensing of the approximate\_comparator code developed by Yonatan Nakar
* Fixed tests of minimum\_migration\_time\_max\_cpu
* Fixed the MHOD algorithm for Python 2,6
* Set the default bruteforce\_step for the MHOD algorithm to 0.5
* Tested the MHOD algorithm using the generated test case data
* Added a state\_history deque with the history\_size configuration parameter to the MHOD algorithm
* Moved MHOD generated data test cases to a separate file
* Added an always\_underloaded underload detection algorithm
* Removed reduntant parametesr
* Renamed no\_migrations to never\_overloaded
* Started working on extended unit tests of the MHOD algorithm
* Fixed bugs the state initialization of multisize estimation
* Added a script for updating the installation on all the hosts
* VM placement CPU threshold -> 0.8
* Fixed MHOD: first updating windows, then selecting estimates
* Updated the defaults
* Added a threshold parameter to the loess overload detection algorithms
* Added db-cleaner to the all-start scripts
* Added a script for deleting all log files
* Fixed the order of starting all the services
* Temporary changed to migrating VMs one by one to avoid migration failures
* Added scripts for starting / stopping all the services
* Fixed migrate\_vms to correctly handle completed migrations and time-outs; increased the time-out to 5 minutes
* Added libvirt to the NOTICE file
* Added retrying VM migrations after a time-out
* Added a script for install deps on compute hosts on CentOS
* Fixed another error in a log message format
* Fixed a bug in a log message format
* Added a workaround when the current CPU time < the previous CPU time
* Added extra debug logging to catch the bug in get\_cpu\_mhz
* Added an ether\_wake\_interface config option, added it as an -i parameter to ether-wake
* Fixed a bug in get\_cpu\_mhz, added extra contracts
* Cleaned up the code
* Updated the config: switched overload detection to last\_n\_average\_threshold
* Updated the config: underload threshold -> 0.5, MHOD OTF 0.1
* Added a new overload detection algorithm: last\_n\_average\_threshold
* Updated the config: added last\_n\_vm\_cpu=2 to algorithm\_vm\_placement\_parameters
* Updated best\_fit\_decreasing to handle histories of VM CPU usage; added a last\_n\_vm\_cpu parameter to specify how many last CPU usage values to average
* Updated the global manager to pass the history of CPU usage for every VM to algorithms
* Updated the config: switched to using minimum\_migration\_time\_max\_cpu
* Added a new VM selection algorithm: minimum\_migration\_time\_max\_cpu
* Fixed a comment
* Updated the config to use last\_n\_average\_threshold
* Added a new underload detection algorithm: last\_n\_average\_threshold
* Updated loess\_abstract to take last n values, fixed tests
* Fixed the arch deps script
* Fixed a bug with a call to the VM selection algorithm
* Fixed log messages
* Added a few more log messages for measuring the execution time
* Added the hostname to overload requests
* A minor change
* Updated service; added excluding the overloaded host execute\_overload
* Made host to be the mandatory parameter for overload requests as well
* Added log messages about starting and completing various processes
* Config: local\_manager\_interval 20 -> 300; data\_collector\_interval 10 -> 60
* Changed VM placement cpu\_threshold 0.8 -> 0.95
* Fixed execute\_overload
* Fixed build\_constraint
* Fixed build\_objective
* Changed the data length: 100 -> 30
* Fixed contracts for migration\_time in time steps
* Added a todo
* Fixed a bug with skipping hosts
* Fixed a bug: continue -> break; updated execute\_overload
* Formatting
* Formatting
* Changed dropping requests to skipping to host if no data are available for some of its VMs
* Removed a debug message
* Added a debug message
* Added a fix to execute
* Removed the workaround for negative host CPU usage, the problem is in execute
* Fixed the contract of migration\_time
* Added a workaround for a weird problem: sometimes the host CPU usage < 0
* Added handling another case of dropping requests due to insufficient data
* Added dropping the request if there is no data for a VM; updated execute\_overload
* Fixed the global manager to avoid failing when there is no data for a VMm
* Updated the local manager to skip the iteration if no data have been collected for the VMs yet
* Added another log message
* Added a debug log message
* Updated get\_local\_host\_data to handle a non-existent host file
* Reverted vm\_mhz\_to\_percentage: idle hosts are already handled in execute
* Updated the global manager to handle hosts with no VMs as being idle (0% CPU utilization)
* Updated vm\_mhz\_to\_percentage, return [0] if there are no VMs - the host is idle
* Added a debug log message
* Updated append\_\*\_data\_locally to create a file if it does not exist
* Updated the global manager to use the host CPU data
* Updated the local manager to use the host CPU data
* Added get\_local\_host\_data
* Added append\_host\_data\_remotely, updated execute
* Fixed a test
* Added append\_host\_data\_locally, updated cleanup\_all\_local\_data
* Fixed a call to collector.write\_vm\_data\_locally
* Added build\_local\_host\_path
* Renamed VM data IO functions to include "vm"
* A minor fix
* Fixed vm\_mhz\_to\_percentage to correctly handle 0 filling
* Made the test runner accept a package argument to run tests from
* Added another todo
* Added host CPU MHz to vm\_mhz\_to\_percentage
* Added a todo
* Changed host\_cpu\_usable\_by\_vms to 1.0
* Updated the vm-placement script to use the data on CPU utilization by the hypervisor
* Removed a log message
* Updated the DB cleaner to clean the host\_resource\_usage table as well
* Testing host CPU MHz history
* Fixing the host CPU MHz
* Fixed tests
* Minor changes
* Debugging travis
* Added more logging messages
* Debugging travis
* A minor fix
* Added storing host CPU MHz locally and in the DB
* Added get\_host\_cpu\_mhz
* Added a host\_resource\_usage DB table and a few query functions
* Added debug messages to mhod
* Fixed a call to bruteforce.optimize
* Fixed the return contract of mhod
* Fixed mhod
* Fixed a call to update\_request\_windows
* Added max\_window\_size to init\_request\_windows
* Fixed current\_state in mhod
* Fixed contracts in mhod
* Fixed contracts in mhod
* Added a script for deleting log files on compute hosts
* Added mhod\_factory
* Modifed the config to use the MHOD overload detection
* Removed debug messages
* Debugging overload detection
* Debugging overload detection
* Fixed physical\_cpu\_mhz
* Debugging overload detection
* Debugging overload detection
* Debugging overload detection
* Debugging overload detection
* Debugging overload detection
* Changed host\_cpu\_usable\_by\_vms to 99%
* Updated algorithm\_overload\_detection\_parameters to use a non-adjusted CPU threshold
* Fixed a test
* Fixed an error
* Updated the local manager to use host\_cpu\_usable\_by\_vms
* Updated the collector to store the adjusted CPU capacity of the host
* Applied host\_cpu\_usable\_by\_vms, fixed tests
* Added a host\_cpu\_usable\_by\_vms config option
* Set the RAM threshold for VM placement to 95%
* Adjusted the CPU thresholds considering the upper limit of the CPU allocated to VMs being 75% (16800 out of 22336 MHZ)
* Fixed a bug
* Updated migrate\_vms to migrate two VMs at a time
* Added handling libvirt exception in case of deleted VMs
* Removed a todo comment
* Changed the log level of 412 from error to info
* Fixed a test
* Fixed monitoring of VM migration
* Removed debug code
* Debugging travis
* Added logging of VM migrations to migrate\_vms
* Added insert\_vm\_migration
* Added a vm\_migrations DB table
* Removed a comment
* Removed a comment
* Added host\_cpu\_overload\_threshold to the state
* Modified log\_host\_overload to only log when the state has changed
* Updated log\_host\_overload to return whether the host is overloaded
* Allowed >1 thresholds of resource usage in VM placement
* Added host overload logging
* Added a host\_cpu\_overload\_threshold config option
* Added insert\_host\_overload
* Added physical\_cpu\_mhz to the state of the data collector
* Added a host\_overload db table
* A minor fix
* Added a vm\_instance\_directory option, updated migrate\_vms to chmod that directory before migration
* Another minor fix
* Minor fixes
* Fixed tests
* Fixed calls to switch\_hosts\_on
* Added host\_mac, added automatically obtaining mac addresses when needed
* Updated deactivating hosts depending on the prev states
* Added select\_active\_hosts and select\_inactive\_hosts
* Added switching off initially idle hosts
* Added select\_host\_states
* Added calling a sleep command over SSH, tested
* Fixed tests, added log messages
* Added switching on all the compute hosts during the start up of the global manager
* Added switch\_hosts\_on and switch\_hosts\_off, removed log\_host\_states
* Added host logging to execute\_overload
* Completed and tested log\_host\_states
* Started working on log\_host\_states
* Added insert\_host\_states
* Added select\_host\_ids, started working on insert\_host\_states
* Added a host\_states table
* Added a script for installing OpenStack Neat in chkconfig
* Fixed the today function
* Updated setup.py to include the db cleaner
* Added an initscript for the db cleaner
* Updated the description of the db cleaner
* Updated a comment
* Added a test of execute
* Updated bottle to 0.11
* Debugging a failing in travis test
* Debugging a failing in travis test
* Added cleanup\_vm\_resource\_usage
* Added the db cleaner module and tests
* Reverted test\_manager
* Added a DB cleaner module and db\_cleaner\_interval config option
* Another minor fix
* Minor fix
* Added logging responses from the global manager
* Added a time request parameter, and raising an exception when requests are sent longer than 5 seconds ago
* Fixed a bug in select\_last\_cpu\_mhz\_for\_vms when there is no data collected for a VM yet
* Removed a comment
* Fixed vms\_ram\_limit
* Added handling deleted Vms
* Modified vms\_ram\_limit to skip deleted VMs
* Added a host separating line
* Added sorting of hosts
* A minor fix in a contract
* Updated the vm-placement script to show the max CPU MHz for VMs
* Added the number of CPU cores into the hosts DB table
* Added the total RAM of VMs
* Updated the vm-placement script to display more information in a better way
* Added the VM status and total RAM usage
* Fixed migrate\_vms to correctly recognize when a migration is completed
* Fixed host\_used\_ram to return the max RAM used by the VMs
* Added a script for printing the current VM placement
* Another minor fix
* Added import time
* Fixed is\_vm\_migrating
* Added migrate\_vms to synchronously live migrate a set of VMs
* Added a todo comment
* Added a todo comment
* Added connection refused exception handling and logging by the local manager
* Fixed a bug in the global manager, when there is no data for new VMs
* Added another log message
* Added migration to the overload vase
* Fixed tests
* Added VM migration using the nova API in case of an underload
* Fixed a bug when a VM does not exist
* Added logging to the initscripts
* Uncommented request processing, fixed tests
* Added -f to setup.py install
* Made the compute-\* scripts executable
* Added a log message if the host is idle
* Fixed returning the updated state in execute
* Added scripts for starting, stopping and getting the status of the local manager on compute hosts
* Added requests to travis
* Fixed the conditions
* Removed redundant state variables
* Updated the VM selection algorithm to return a list of VMs
* Added sending requests in case of an overload
* Added hashed username and password to the state
* Changed local\_manager\_interval 60 -> 20
* Added hostname to the state, added submitting underload requetss
* Temporary replaced request processing in the global maanager by just logging the request data
* Removed setup.py install from travis
* Fixed the initscripts
* Debugging the data collector initscript
* Debugging the data collector initscript
* Added scripts for starting, stopping and getting the status of the data collector service on compute hosts
* Added mkdir -p /var/run/neat into the data collector initscript
* Added a script for installing neat on compute hosts using python2 setup.py install
* Added neat.conf to setup.py
* Changed os\_auth\_url from localhost to controller
* Added a todo about neat.conf
* Added a script for building and installing the rpm
* Fixed the rpm packaging to install initscripts and /usr/bin/\*
* Fixed a test
* Added a script for generating an RPM
* Added entry points
* Added links to the documentation
* Added a todo
* Renamed: collector.log -> data-collector.log
* Added a manifest, fixed bdist\_rpm
* Added initscripts for the local and global managers
* Added a template initscript for the data collector
* Added a script for running all the compute scripts
* Minor fix
* Added a script for copying neat.conf to the compute hosts from the controller
* Updated compute-clone-neat.py to use execute\_on\_hosts
* Added execute\_on\_hosts
* Completed and tested compute-clone-neat.py
* Added a script for clonning and updating Neat on compute hosts
* Moved parse\_compute\_hosts to common
* Made start script non-executable
* Added a message to exception logging
* Added exception logging
* Changed migration\_time from int to float
* Changed: config.get to config[]
* Moved calculate\_migration\_time from the local manager to common
* Added a conversion from long to int for cpu\_mhz
* Added conversions from unicode to str
* Converted host characteristics from long to int
* Minor fixes
* Switched vms\_uuids from json to a coma-separated list
* Added json parsing of the "vms\_uuids" parameter
* Added type conversion for the "reason" parameter
* Fixed service
* Updated init\_state to include hashed username and password
* Updated init\_state to include hashed username and password
* Fixed validate\_params
* Fixed validate\_params
* Added logging initialization to the global manager
* Added a start script for the global manager
* Rolled back to 2.7
* Debugging travis
* Debugging travis
* Debugging travis
* Debugging travis
* Debugging travis
* Rolled back to 2.7
* Fixing travis for 2.6
* Fixing travis for 2.6
* Fixing travis for 2.6
* Fixing travis for 2.6
* Fixing travis for 2.6
* Enabled travis for 2.6
* Disabled logging in tests
* Fixed the CentOS deps script
* Added initialization of empty algorithm states
* Replaced json.loads with common.parse\_parameters
* Changed the type of migration\_time from int to float
* Added parse\_parameters
* Fixed algorithm names and parameters
* Added call\_function\_by\_name
* Renamed: start-collector.py -> start-data-collector.py
* Added a network\_migration\_bandwidth config option
* Fixed tests
* Fixed get\_max\_ram
* Changed config.get to config[]
* Changed the level of a DB init log message
* Added a log message
* Added logging initialization
* Added a script for starting the local manager
* Fixed skipping migrating VMs
* Added skipping VMs migrating in
* Added a todo comment
* Fixed VM removal in the data collector
* Removed a redundant log message
* Removed a redundant log message
* Fixed select\_cpu\_mhz\_for\_vm to return the most recent values
* Added some log messages
* Removed the starting print
* Fixed the calculation of the CPU utilization by VMs
* The type of cpu\_mhz: long -> int
* Changed the type of DB IDs from int to number
* CPU time: int -> number
* Added cleanup\_all\_local\_data, updated start
* Changed the type of the CPU time from int to number (since it is long)
* Rolled back travis for just 2.7
* Fixing deps for 2.6
* Added Python 2.6 to travis
* Fixed the test\_init\_3\_level\_structure test
* Fixed the tests for get\_cpu\_mhz and calculate\_cpu\_mhz
* Replaced assertIs with is
* Fixed the dict init syntax for 2.6
* Fixed tests
* Fixed the test of init\_logging
* Fixed the logging by overriding the root logger
* Changed the config path to /etc/neat/neat.conf
* Removed the --upgrade option, add numpy and scipy via yum
* Moved deps scripts into the setup dir
* Fixed a few minot issues
* Fixed a few initialization errors
* Added a data collector start up script
* Removed a comment
* Fixed the default value of the timestamp
* Fixed the return type of update\_host
* Added a setup directory, moved deps there
* Added a setup readme
* Changed the MySQL connection from nova to neat
* Added log messages thoughout modules
* Removed log initialization from contracts\_extra
* Added the -1 default value to the iterations argument of start
* Removed run\_tests.sh
* Added a logger initialization to each module
* Added log\_level = 3
* Added init\_logging
* Renamed config options: logging\* to log\*
* Updated a comment
* Added logging\_directory and logging\_level configuration options
* Updated execute\_overload
* Fixed the code formatting to fit into 80 character lines
* Updated execute\_underload
* Added vms\_ram\_limit
* Switched back to the old dict syntax: it's supported by 2.6
* Updated execute\_underload
* Updated to the shorted dict initialization syntax
* Added select\_last\_cpu\_mhz\_for\_vms
* Updated execute\_underload
* Added vms\_by\_hosts
* Changed host\_free\_ram to host\_used\_ram
* Updated select\_host\_characteristics to return two dicts
* Added select\_host\_characteristics
* Added host\_free\_ram
* Small update
* Updated init\_state to update the host characteristics in the db
* Added get\_host\_characteristics
* Added comments
* Added a hosts db table, added update\_host
* Added parse\_compute\_hosts and updated init\_state
* Added a compute\_hosts option
* Added vms\_by\_host
* Added the nova client to the state
* Added python-novaclient to the deps
* Added a os\_auth\_url configuration option, added os\_ to username, password and tenant name
* Added Sphinx to the deps
* Added a contraint on the resource threshold
* Added best\_fit\_decreasing\_factory
* Working on BFD
* Added the BFD algorithm, need to test
* Added a vm\_placement package and bin\_packing module
* Removed old comments
* Fixing travis
* Fixing travis
* Fixing numpy and scipy in travis
* Updated the commments
* Fixed and tested the service function
* Added a test for the error function
* Updated comments
* Added a host parameter for the case of underloaded hosts
* Removed a comment
* Added validate\_params
* Added an error map, raise\_error and start
* Added Requests
* Removed Sniffer, added Requests
* Added the Requests library, removed sniffer
* Added a global manager service module
* Added the Bottle library
* Small fixes
* Started working on the global manager: added start and init\_state
* Renamed modules: local -> locals, global -> globals
* Moved the data collector module to the local package
* Updated the execute function of the local manager
* Added vm\_mhz\_to\_percentage
* Added calculate\_migration\_time
* Added cleanup\_vm\_data and get\_ram
* Added get\_max\_ram to the local manager
* Added factories for the VM selection algorithms
* Added random and minimum\_utilization VM selection algorithms
* Added a factory for the threshold underload algorithms
* Added trivial threshold based underload detection algorithm
* Moved the underload algorithms to a separate package
* travis: reverted to installing numpy and scipy using apt-get
* travis: added more deps
* travis: added sudo apt-get upgrade gcc
* Added python-dev to the numpy deps
* Added more numpy deps
* Fixing travis
* travis: added dependencies of numpy
* travis: installing numpy and scipy using pip
* Fixing numpy in travis
* Added factories for the statistics based overload detection algorithms
* Added loess and loess robust overload detection algorithms
* Added mad and iqr based threshold algorithms
* Added mad and iqr functions
* Added Loess and Loess robust parameter estimates to statistics
* Started working on loess\_parameter\_estimates
* Equals -> Equal
* Added tricube\_weights and tricube\_bisquare\_weights to the statistics module
* Added numpy and scipy to deps
* Stared working on statistics based overload detection algorithms
* Fixed the threshold algorithm for an empty utilization history
* Added trivial overload detection algorithms and their tests
* Fixed comments
* Cleaned up
* Added type conversion for config options where necessary
* Tested OTF threshold algorithms
* Added factories for OTF algorithms, need to test
* Added algorithm factories to the config option list
* Added algorithm factories and parameters to the defaulr config
* Added underload modules
* Added algorithm parameters to the config
* Started working on OTF algorithms
* Completed the execute function
* Added issue\_command\_deterministic
* Added get\_time\_in\_state\_n
* Added utilization\_to\_states
* Updated execute
* Added current\_state
* Added build\_state\_vector
* Added utilization\_to\_state
* Added init\_state to mhod.core
* Added L functions
* Added bruteforce.optimize
* Added solve2 to bruteforce
* Added frange
* Stared working on the bruteforce module
* Cleaning up
* Added build\_objective and build\_constraint to the nlp module
* Added init\_selected\_window\_sizes
* Added init\_deque\_structure
* Added init\_variances
* Added init\_request\_windows
* Added select\_best\_estimates
* Added select\_window
* Added update\_acceptable\_variances
* Added update\_variances
* Added update\_estimate\_windows
* Added update\_request\_windows
* Added a deque contract
* Added estimate\_probability
* Started implementing multisize estimation functions: mean, variance, acceptable\_variance
* Added a blank MHOD execute function
* Added blank MHOD modules
* Updated manager.execute
* Added physical\_cpu\_mhz\_total to the state
* Added physical\_cpu\_mhz\_total
* Moved physical\_cpu\_count to common
* Added manager.get\_local\_data
* Remove the tmp directory before creation
* Deleted the tmp directory
* Make the data collector tests create/remove the tmp directory
* Removed old comments
* Updated write\_data\_locally to accept and handle data\_length
* Updated append\_data\_locally to truncate the data to data\_length
* Updated the CCPE paper citation
* Added a todo comment
* Added a link to the discussion group
* Added start and init\_state to the local manager
* Renamed: collect -> execute
* Updated collector.start, fixed tests
* Reduced the number of tests of config
* Added read\_and\_validate\_config
* Added config as an argument of start
* Moved start into a new 'common' module
* Added a function contract
* Fixed the comments
* Added sleep to start(), fixed the tests
* Added append\_data\_remotely to collect()
* Added db to the state, updated init\_state
* Added append\_data\_remotely
* Fixed select\_cpu\_mhz\_for\_vm, tested
* Changed select\_vm\_id to insert a new record if it doesn't exist
* Added select\_vm\_id, started working on insert\_cpu\_mhz
* Formatting
* Added append\_data\_locally
* Fixed the init\_state test to mock a libvirt connection
* Fixed get\_cpu\_mhz
* Implemented a test of get\_cpu\_mhz, need to fix it
* Added physical\_cpus to the state
* Fixed write\_data\_locally
* Started working on get\_cpu\_mhz
* Fixed the test for start()
* Added init\_state
* Added calculate\_cpu\_mhz
* Added a virDomain contract
* Tested get\_cpu\_time and get\_physical\_cpus
* Started working on get\_cpu\_time
* Updated collect
* Added write\_data\_locally
* Added fetch\_remote\_data
* Added a connection field to Database, moved some tests to test\_db.py
* Added select\_cpu\_mhz\_for\_vm
* Updated the references
* Started working on fetch\_remote\_data
* Fixed the cleanup\_local\_data test
* Added SQLAlchemy to the travis config
* Fixed the db\_utils tests
* Renamed tests/db\_utils.py -> tests/test\_db\_utils.py
* Added a db\_utils test module
* Temporary disabled the fetch\_remote\_data test
* Fixed extra contracts
* Split db.py into two modules to separate the Database class
* Added Table and Database contracts
* Added SQLAlchemy to the dependecies
* Added tentative DB utilities
* Renamed cleanup\_removed\_vms -> cleanup\_local\_data, started working on fetch\_remote\_data
* Added cleanup\_removed\_vms
* Removed an old version of substract\_lists
* Added get\_removed\_vms
* Fixed the validate\_invalid\_config test
* Fixed the test of get\_added\_vms
* Added constraints on the parameters of the test of substract\_lists
* Added substract\_lists
* Tested get\_current\_vms
* Changed the import style
* Working on get\_current\_vms
* Added nosetests runner without capturing the output
* Added a custom virConnect contract
* Fixed the test for get\_previous\_vms
* Added test resources
* Starting implementing the collector's functions
* Removed global variables from readConfig
* Added stubs for global and local managers
* Added distribute and sniffer into the list of libraries
* Added an option to run an infinite loop in start
* Replaced the subclass of TestCase with setUp and tearDown, added MockTransaction
* Added a TestCase subclass integrating pyqcy and mocktest, fixed the test for collector.start
* Added a comment
* Fixing libvirt dependency in travis
* Fixing libvirt dependency in travis
* Added sudo to apt-get
* Added apt-get install libvirt for travis
* Replaced setup.py test with nosetests for travis
* Commented tests\_require
* Added mocktest and PyContracts to test\_require in setup.py
* Added mocktest and PyContracts to travis deps
* Tested readConfig and validateConfig
* Added sniffer
* Added a script for installing dependencies
* Updated the references
* Started testing the collector
* Added mocktest into the libraries section
* Small fixes
* Small fixes
* Added link to the submitted blueprint
* Added a config reading module
* Added a DEFAULT section
* Moved the config file to the root of the project
* Added a default config file
* Added distribute to the NOTICE file
* Added the Apache 2.0 license, header, and notice file
* A small fix
* Updated the title
* Updated the deployment diagram: added Nova API
* Modified the title
* Added library license information
* Added the affiliation, rebuilt
* Added the affiliation, rebuilt
* Spell-checked
* Proof-read
* Removed the mediawiki version: not compatible with MoinMoin
* Fixed the mediawiki generation
* Added a reference to the OpenStack technical report
* Added the mediawiki format
* Fixed the links to the other download formats
* Fixing the travis image
* Fixing the travis image
* Fixing the travis image
* Fixing the travis image
* Fixing the travis image
* Added epub and html
* Inserted the build status image using HTML
* Rebuilt all formats with smaller images
* Regenerated the readme using the md intro
* Added an md intro
* Rebuilt rst with the new intro
* Added other format building scripts
* Added a generated rst readme
* Completed the implementation section
* Updated the libraries
* Added a data collector implementation section
* Small fixes
* Updated the sequence diagram: removed the acknowledgment
* Updated the local manager, added data\_collector\_data\_length
* Removed the acknowledgment requests and the REST interface of the local manager
* Added configuration options to specify algorithms to use
* Updated the sleep mode section, added new configuration options
* Added an assumption about a user capable of suspending to RAM the compute hosts
* Added some information about Wake-on-Lan
* Added time interval configuration options
* Added a section describing the REST API provided by the local manager
* Added a description of the global manager's REST web service
* Moved VM placement into a separate section
* Small fixes, removed the completed todos
* Updated the data store and configuration sections
* Added descriptions of underload/overload detection and VM selection algorithms
* Reorganized the section
* Added a description of the local manager
* Added a sequence diagram, added a summary of the components
* Fixed a typo in a diagram
* Added two diagrams, added a database schema section
* Added admin credentials to the config
* Added a libraries section
* Regenerated the pdf
* Added the format of the collected data, DB schema, and configuration file options
* Small fixed in the design section
* Proof-read, fixed references
* Added an explicit installation of pyqcy for travis
* Started writing the design section
* Added assumptions
* Added user stories
* Added a rationale
* Added the release note
* Updated the introduction
* Added introduction and bibliography
* Added a blueprint template
* Fixed the tests
* Reverted test\_suite
* Commented test\_suite
* Test of failing tests
* Added a test runner
* Fixed setup.py to use the setup.py test command
* Added .ropeproject to .gitignore
* Removed .ropeproject
* Removed a comment
* A small fix
* Added a short project description
* Removed comments
* Added a readme
* Replaced nosetest with the distribute test runner
* Added a dependency on pyqcy
* Added .travis.yml
* Added the distribute bootstrap script and setup.py
* Recreated the rope project
* Added a dummy test with pyqcy
* Initial import
