added initial
This commit is contained in:
commit
b9d9b65a1d
3 changed files with 98 additions and 0 deletions
68
.gitignore
vendored
Normal file
68
.gitignore
vendored
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
|
||||||
|
### CMake
|
||||||
|
CMakeLists.txt.user
|
||||||
|
CMakeCache.txt
|
||||||
|
CMakeFiles
|
||||||
|
CMakeScripts
|
||||||
|
Testing
|
||||||
|
Makefile
|
||||||
|
cmake_install.cmake
|
||||||
|
install_manifest.txt
|
||||||
|
compile_commands.json
|
||||||
|
CTestTestfile.cmake
|
||||||
|
_deps
|
||||||
|
|
||||||
|
### Vim
|
||||||
|
# Swap
|
||||||
|
[._]*.s[a-v][a-z]
|
||||||
|
!*.svg # comment out if you don't need vector files
|
||||||
|
[._]*.sw[a-p]
|
||||||
|
[._]s[a-rt-v][a-z]
|
||||||
|
[._]ss[a-gi-z]
|
||||||
|
[._]sw[a-p]
|
||||||
|
|
||||||
|
# Session
|
||||||
|
Session.vim
|
||||||
|
Sessionx.vim
|
||||||
|
|
||||||
|
# Temporary
|
||||||
|
.netrwhist
|
||||||
|
*~
|
||||||
|
# Auto-generated tag files
|
||||||
|
tags
|
||||||
|
# Persistent undo
|
||||||
|
[._]*.un~
|
||||||
|
|
||||||
|
### C++
|
||||||
|
# Prerequisites
|
||||||
|
*.d
|
||||||
|
|
||||||
|
# Compiled Object files
|
||||||
|
*.slo
|
||||||
|
*.lo
|
||||||
|
*.o
|
||||||
|
*.obj
|
||||||
|
|
||||||
|
# Precompiled Headers
|
||||||
|
*.gch
|
||||||
|
*.pch
|
||||||
|
|
||||||
|
# Compiled Dynamic libraries
|
||||||
|
*.so
|
||||||
|
*.dylib
|
||||||
|
*.dll
|
||||||
|
|
||||||
|
# Fortran module files
|
||||||
|
*.mod
|
||||||
|
*.smod
|
||||||
|
|
||||||
|
# Compiled Static libraries
|
||||||
|
*.lai
|
||||||
|
*.la
|
||||||
|
*.a
|
||||||
|
*.lib
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
*.exe
|
||||||
|
*.out
|
||||||
|
*.app
|
2
CMakeLists.txt
Normal file
2
CMakeLists.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# CMake configuration for demo project
|
||||||
|
cmake_minimum_required(VERSION 3.16)
|
28
README.md
Normal file
28
README.md
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# Data collector
|
||||||
|
|
||||||
|
## Task
|
||||||
|
Implement a service that collects system information upon reception of a trigger event.
|
||||||
|
The trigger event is raised when existence of a file with a certain name in a specified directory is detected.
|
||||||
|
|
||||||
|
The following features must be implemented:
|
||||||
|
* Trigger detection
|
||||||
|
* Detect creation of a file in a somehow specified directory
|
||||||
|
* Make the directory configurable via commandline parameter
|
||||||
|
* Only trigger on files with names following this format:
|
||||||
|
* Starts with `core.<variable name of a service>.`
|
||||||
|
* Ends with `lz4`
|
||||||
|
* Contains one or more hexadecimal id separated by dots
|
||||||
|
* Example: `core.ServiceName.3057.57dd721409bc4ab4b38a3c33a36a608a.3717.1647975805000000.lz4`
|
||||||
|
* Collected data shall be:
|
||||||
|
* Individual files, as well as whole directories and their contents, recursively, configured via command line parameter
|
||||||
|
* Store the collected data in a configurable directory, create a `tar`-archive of the aforementioned contents
|
||||||
|
* Give the resulting file a unique name.
|
||||||
|
* Add tests to make sure your application is working,
|
||||||
|
* How tests are implemented is up to you
|
||||||
|
|
||||||
|
## Things to keep in mind
|
||||||
|
* Implement your collection in a way such that it can be extended to collect other data of various forms later.
|
||||||
|
* Use modern C++!
|
||||||
|
* Use the platform of your choice (Linux, BSD, MacOS, Windows, etc.)
|
||||||
|
* We use Linux but everything else is cool, too.
|
||||||
|
|
Loading…
Add table
Reference in a new issue