Giter VIP home page Giter VIP logo

Comments (3)

melezhik avatar melezhik commented on August 16, 2024

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.

melezhik avatar melezhik commented on August 16, 2024

as for the reference on sparrow checkpoints - https://github.com/melezhik/sparrow#create-checkpoints

from rex-recipes.

ferki avatar ferki commented on August 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.