5. Layer root

5.1. Overview

This is the root layer of the MFDATA module.

This layer mainly includes core libraries and utilities like :

  • layerapi2 library and utilities which manage the layer system
  • wrappers (python2, python3, python…)
  • (and some other documented below)

The root layer is loaded by default and does not depend on another layer. This is the layer dependencies root.

5.2. Special focus on python wrappers

5.2.1. python2 wrapper

The python2 wrapper is available in ${MFEXT_HOME}/bin. It executes a python2 interpreter with following layers loaded :

  • python2_core@mfext
  • python2@mfext (if installed)
  • python2@mfcom (if installed)
  • python2@{current_module} (if installed)

So, if you want to execute a python2 script without any question about currently loaded layers, this is the way to go.

For example:

#!/usr/bin/env python2

print "this code will be always executed in python2 environment"
print "(thanks to the above python2 shebang)"

or

python2 /path/to/a/python2/script.py

5.2.2. python3 wrapper

The python3 wrapper is available in ${MFEXT_HOME}/bin. It executes a python3 interpreter with following layers loaded :

  • python3_core@mfext
  • python3@mfext (if installed)
  • python3@mfcom (if installed)
  • python3@{current_module} (if installed)

So, if you want to execute a python3 script without any question about currently loaded layers, this is the way to go.

For example:

#!/usr/bin/env python3

print("this code will be always executed in python3 environment")
print("(thanks to the above python3 shebang)")

or

python3 /path/to/a/python3/script.py

5.2.3. python wrapper

The python wrapper is available in ${MFEXT_HOME}/bin. It works exactly as the two above wrappers. But the major python version is selected with the METWORK_PYTHON_MODE environment variable.

5.3. Metadata

5.3.1. Layer Home

/opt/metwork-mfserv-0.7

5.3.2. Label

root@mfserv

5.4. Utilities

5.4.1. mfserv.start

usage mfserv.start [NOINIT]
  => start the mfserv module

5.4.2. mfserv.stop

usage mfserv.start
  => stop the mfserv module

5.4.3. mfserv.status

usage mfserv.status
  => test the mfserv module

5.4.4. mfserv.init

usage: mfserv.init
  => (re)init your module (WARNING: can't drop some user provided datas)

5.4.5. mfserv_wrapper

usage: /opt/metwork-mfserv-0.7/bin/mfserv_wrapper COMMAND_TO_WRAP [COMMAND_ARG1] [COMMAND_ARG2] [...]
  => launch the given command within metwork/mfserv environnent
  => note: the current environnent is cleared before
  =>       (only MODULE_RUNTIME_SUFFIX, MODULE_RUNTIME_HOME and some standard env var (HOME, TERM, DISPLAY...)
            are keeped intact)