hpcpack-linux-agent/nodemanager
Liangliang Yuan 94e8108461 fix race condition when get stale request to StartTask 2023-03-15 13:21:59 +08:00
..
arguments peek task output for linux compute nodes 2017-09-04 21:06:34 +08:00
common Execution filter, fix node unreachable 2016-06-07 12:54:56 -07:00
config add task completion uri 2017-07-03 05:05:16 -07:00
core Make job id part of the task execution id 2018-09-25 14:13:01 +08:00
data fix race condition when get stale request to StartTask 2023-03-15 13:21:59 +08:00
filters #1690111 Avoid leaving credential information on disk when Linux node execution filter task fails - handle more exceptions 2017-11-03 18:07:09 +08:00
scripts Support the acm node manager 2019-01-28 15:48:41 +08:00
test Map Windows system account to Linux root user 2018-02-09 20:54:50 +08:00
utils Added the customized logger 2018-05-14 23:30:07 +08:00
3rdpartylicenses.txt Add 3rd party licenses. 2019-04-16 11:36:08 +08:00
Makefile-Acm Support the acm node manager 2019-01-28 15:48:41 +08:00
NodeManager.cbp Hpc Pack 2016 support 2016-10-24 04:29:40 -07:00
NodeManager.depend Enable proxy 2017-03-29 08:19:03 -07:00
README.md Support build from docker 2023-02-13 16:51:16 +08:00
Version.cpp Make file dependency 2015-04-15 01:04:30 -07:00
Version.h Update the version 2018-09-25 14:15:36 +08:00
build_and_get_artifact.sh Support build from docker 2023-02-13 16:51:16 +08:00
main.cpp add task completion uri 2017-07-03 05:05:16 -07:00
makefile Add 3rd party licenses. 2019-04-16 11:36:08 +08:00

README.md

Compiling and Dependencies

Compile from source code

The code is compiled on Ubuntu(16.04) with the following dependencies:

  • Boost - can be installed by package libboost-all-dev(1.58)
  • C++ REST SDK - can be installed by package libcpprest-dev(2.8.0-2)
  • spdlog - only header files in the include dir. Just clone the branch v1.x from GitHub. Note that the package libspdlog-dev(1.6-1) is too old to use.

Depending on where the spdlog headers are put, you may need to modify makefile to modify path for spdlog headers.

Compile from docker image

We offer an image to help build artifacts. You can build and get artifacts by running the script ./build_and_get_artifact.sh.

Conding Convention

Namespaces should be rooted from "hpc", and have at most 2 layers, which means, you can only define one more layer under "hpc".

Files which contain contents under a sub namespace, should be put into a sub folder with the same name as the sub namespace.

One file should contain only one class.

Private fields, variables should be named using camel convention, while class/struct/methods should be named using Pascal convention.

File names should be in Pascal convention exception main.cpp, while folder names should be in lower case.

Namespace Description

  • arguments: All data structures passed from head directly.
  • common: Anything which doesn't depend on anything outside of common, and possibly be used by anything outside of common.
  • core: Core logic of node manager.
  • data: Core data structures used internally.
  • scripts: All shell scripts.
  • test: Unit test code.
  • utils: Utilities, which could be of general purpose, shouldn't couple with node manager logic and concepts, and could be used by other projects.