This project will no longer be maintained by Intel.
Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.
Contact: webadmin@linux.intel.com
Command line tool, built using plugin architecture, written in C++, to assist software package deployment, for an end-to-end use case enablement on target Linux system.
This Tool, on target platform does following
- Discover system
- Run gap analysis against golden manifest to identify missing components on target system
- Reverts back if requirements not met.
- Generate customized manifest for target system
- Execute manifest tasks in sequence to setup end to end use case.
- Rolls back in case of failure
golden manifest: Json file, containing list of tasks [software packages to install / scripts/commands to execute] on target system, identified on reference system.
- readme.md [this file]
- buildScript
- build.sh - builds all projects under this repo.
- config
- configuration files.
- bundleScript
- scripts to bundle
- src
- framework
- common
- plugin
- common
- plugin1
- plugin2
- refer to scripts under "devSetup" folder for build environment setup
sudo apt install -y git build-essential
- refer to buildScript/build.sh master script to build framework and all plugins.
or
cmake -S .. -B build -DCMAKE_BUILD_TYPE=Release cmake --build build
do this for framework and for each plugin folder [after changing current directory.]
- src/framework/buildScript
- src/plugins/plugin folder/buildScript
- flow-tool_linux_x86_64 [executable]
- lib/ [folder containing tool plugins]
- discovery plugin [dynamic library]
- analysis plugin [dynamic library]
- deploy plugin [dynamic library]
- config/ [folder contains configuration files][JSON]
- What to discover?, rules to follow for analysis, where is deployment manifest file path? [JSON]
- schema/ [folder contains JSON schema - rules][JSON]
command interaction: <tool_name> --<plugin_name> <plugin_param>
to get version of tool ./flow-tool_linux_x86_64 --version
to get tool info ./flow-tool_linux_x86_64 --info
to enable more logs ./flow-tool_linux_x86_64 --verbose
list all plugins: ./flow-tool_linux_x86_64 --verbose --list
APIs supported by plugins refer to plugin user guide.
to deploy package changes ./flow-tool_linux_x86_64 --verbose --deploy "{"api": "deploy", "manifest": "TARGET_FOLDER/*.manifest.json"}"
to peek into actions ./flow-tool_linux_x86_64 --verbose --deploy "{"api": "prepare", "manifest": "TARGET_FOLDER/*.manifest.json"}"
#validate a json file with schema ./flow-tool_linux_x86_64 --verbose --deploy "{"api": "validate", "manifest":"pkg-manifest.json"}"
to collect the target platform information and generate the file locally ./flow-tool_linux_x86_64 --verbose --discovery "{"api": "collect", "nameonly":true}" ./flow-tool_linux_x86_64 --verbose --discovery "{"api": "collect", "nameonly":false }"