Python client/server for managing a pool of Bare Metal machines.
Go to file
Mark Hamzy dcd5fc4279 Add support for installation and testing
Moved files to a new directory to support the installation
of the molteniron package.  Renamed one file to be a
command line tool and added a new file to start/stop
the daemon.

Added tox support for testing.  This needed the ability
to start and stop the daemon.  And it also needed the
ability to delete the database entries to ensure a clean
test run.

Change-Id: I1b0fadd68b9598b715c639b962cf8586f4db5da8
2016-09-15 13:05:00 -05:00
molteniron Add support for installation and testing 2016-09-15 13:05:00 -05:00
README.md Add support for installation and testing 2016-09-15 13:05:00 -05:00
conf.yaml Initial commit of MoltenIron 2016-05-23 18:09:44 -05:00
createDB.py Initial commit of MoltenIron 2016-05-23 18:09:44 -05:00
requirements.txt Add support for installation and testing 2016-09-15 13:05:00 -05:00
setup.py Add support for installation and testing 2016-09-15 13:05:00 -05:00
testAllocateBM.py add testcase for allocateBM 2016-09-07 14:53:09 -05:00
tox.ini Add support for installation and testing 2016-09-15 13:05:00 -05:00

README.md

MoltenIron overview

MoltenIron maintains a pool of bare metal nodes.

Starting

Before starting the server for the first time, the createDB.py script must be run.

To start the server:

moltenirond-helper start

To stop the server:

moltenirond-helper stop

MoltenIron client

Use the molteniron client (molteniron) to communicate with the server. For usage information type:

molteniron -h

For usage of a specific command use:

molteniron [command] -h

MoltenIron commands

command description
add Add a node
allocate Allocate a node
release Release a node
get_field Get a specific field in a node
set_field Set a specific field with a value in a node
status Return the status of every node
delete_db Delete every database entry

Configuration of MoltenIron

Configuration of MoltenIron is specified in the file conf.yaml.

"B)" means that this configuration option is required for both the client and the server. "C)" means that it is required only for the client. "S)" means it is only required for the server.

usage key description
B) mi_port the port that the server uses to respond to commands.
C) serverIP The IP address of the server. This is only used by
clients.
S) maxTime The maximum amount of time, in seconds, that a node
is allowed to be allocated to a particular BM node.
S) logdir The path to the directory where the logs should be
stored.
S) maxLogDays The amount of time, in days, to keep old logs.
S) sqlUser The username to use for the MI server. This user
will automatically be generated when createDB.py is run.
S) sqlPass The password of sqlUser

Running testcases

The suite of testcases is checked by tox. But, before you can run tox, you need to change the local yaml configuration file to point to the log directory.

(LOG=$(pwd)/testenv/log; sed -i -r -e 's,^(logdir: )(.*)$,\1'${LOG}',' conf.yaml; rm -rf testenv/; tox -e testenv)