Comments (3)
Sounds good. My considerations. I'd rather talk about sparrow checkpoints, not sparrow plugins.
Sparrow checkpoints are abstraction for runnable sparrow test suites , checkpoint consists of 3 components:
- project . Project group together logically related plugins . F.e. project_name = 'system' - system related plugins, project_name = 'webservers' - web servers related plugins. so on
- checkpoint_name - name of check point , pair (project_name, checkpoint_name) should be unique. For example project_name = system, checkpoint name = disk ; project_name = webservers, checkpoint name = nginx. so on
- plugin name - name of sparrow plugin
Available plugins could be found at https://sparrowhub.org/search or by running sparrow plg search
command.
So we would rather better have:
rex Misc:Sparrow:run --checkpoints='system.disk,webservers.nginx' # run explicitly these checkpoints
rex Misc:Sparrow:run --checkpoints='except system.*' # run all beside system checkpoints
rex Misc:Sparrow:run --checkpoints='except system.disk* # run all beside system.disk checkpoint
rex Misc:Sparrow:run --checkpoints='system.* # run all system checkpoints
This is like suggestion, we need to discuss ...
So, as for mentioned rex tasks:
Misc:Sparrow:setup will
- Install Sparrow ( this is cpan module )
cpanm Sparrow
- Install sparrow plugin(s) , f.e.
sparrow plg install df-check
- Setup sparrow plguin(s)
Setup sparrow plugin will:
- create a sparrow projects, checkpoint(s) - is abstraction for runnable sparrow test suites , f.e.
sparrow project create system
sparrow check add system disk
sparrow check set system disk df-check
- generate suite.ini file
- bind a checkpoint to a generated suite.ini file , f.e.
sparrow check load_ini system disk /path/to/suite.ini/file
Some plugins do not require suite.ini files, so last two steps could be skipped.
Misc:Sparrow:check will
- run a sparrow checkpoint(s). F.e.
sparrow check run disk system
Sparrow entities to be defined at rex side:
- plugins list:
Available plugins could be found at https://sparrowhub.org/search or by sparrow plg search
command. F.e.
plugins_list:
- df-check
- nginx-check
- checkpoints list. Should be sparrow checkpoints list. F.e.
checkpoints:
- project: system
checkname : disk
plugin: df-check
- project: webservers
checkname : nginx
plugin: nginx-check
- checkpoints settings list. Should it be host specific? Need to discuss. Example:
settings:
- project: system
checkname : disk
host: foo-bar-baz
settings:
- threshold: 50
Probably ( not sure ) checkpoint settings could be set dynamically in runtime?:
rex Misc:Sparrow:check --checkpoints=system.disk --system.disk.threshold=50
from rex-recipes.
as for the reference on sparrow checkpoints - https://github.com/melezhik/sparrow#create-checkpoints
from rex-recipes.
The intiial version is now merged, feel free to take maintainership on the Rex::Misc::Sparrow module, as I originall only wished to provide a starting point for this idea and I think that's done ^^
from rex-recipes.
Related Issues (11)
- What about getting stream_run into the core? HOT 3
- Rex::Webserver::nginx install task does not work. HOT 1
- move the recipes into a more useful namespace. HOT 2
- Add Ruby::VersionManager support for Rex::Lang::Ruby
- if we have a .rex/, then we can also cache rex-recipes per system and per user HOT 1
- problem with Rex::Lang::Java meta.yml
- Rex::Lang::Java Environment variable duplication after update java
- Document how to create and publish a Rex extension
- Determine a CPAN namespace for Rex recipes HOT 2
- Republish existing recipes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rex-recipes.