[ 
https://issues.apache.org/jira/browse/SLING-2822?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13631716#comment-13631716
 ] 

Bertrand Delacretaz edited comment on SLING-2822 at 4/15/13 1:33 PM:
---------------------------------------------------------------------

I've moved the code under contrib/extensions/muppet and added support for rules 
that execute JUnit tests.

The new sling.demo bundle contains content to setup demo rules, so the getting 
start scenario is now:

1. Start the launchpad/builder standalone Sling instance
2. Install the org.apache.sling.junit.core-1.0.8 bundle
3. Build all the modules under muppet and install the 
org.apache.sling.muppet.core, org.apache.sling.muppet.rules, 
org.apache.sling.muppet and org.apache.sling.muppet.slingdemo bundles
4. http://localhost:8080/apps/muppet/demo.muppet.json outputs the evaluation 
result and http://localhost:8080/apps/muppet/demo.tidy.2.json shows the content 
that defines the rules.

To add new rules or rules types, see the classes that implement RuleBuilder for 
examples.

The output of the JUnit rules in the demo content is as follows (and see open 
issues - there's no indication why a rule failed):

  OK Rule: org.apache.sling.muppet.demo.tests.RepositoryPresentTest 
ALL_TESTS_PASSED
  OK Rule: org.apache.sling.muppet.demo.tests.ResourcesExistTest#checkAppsExist 
ALL_TESTS_PASSED

Output of two rules: all tests pass in the RepositoryPresentTest class, and the 
ResourcesExistTest#checkAppsExist test method is successful.

ERROR Rule: org.apache.sling.muppet.demo.tests ALL_TESTS_PASSED
ERROR Rule: org.apache.sling.muppet.demo.tests.ResourcesExistTest 
ALL_TESTS_PASSED

Output of two rules: some tests fail in the org.apache.sling.muppet.demo.tests, 
as well as in the org.apache.sling.muppet.demo.tests.ResourcesExistTest class.

Note that server-side JUnit tests support scripted tests, so this gives an 
indirect way of scripting Muppet rules.

Updated open issues:
-The output does not indicate the value that causes a rule to fail 
-The servlet output is not JSON yet 
-We probably don't need tags on rules, they can be organized as a content 
hierarchy (/apps/muppet/rules/performance, /apps/muppet/rules/security etc)
-A rule for checking OSGi configuration parameters would be useful. 
-Need to clarify the authentication/security aspects
-A Web console plugin might be useful to execute rules found under a specified 
path
-Need to clarify the naming conventions as per Felix's comment above

                
      was (Author: bdelacretaz):
    I've moved the code under contrib/extensions/muppet and added support for 
rules that execute JUnit tests.

The new sling.demo bundle contains content to setup demo rules, so the getting 
start scenario is now:

1. Start the launchpad/builder standalone Sling instance
2. Install the org.apache.sling.junit.core-1.0.8 bundle
3. Build all the modules under muppet and install the 
org.apache.sling.muppet.core, org.apache.sling.muppet.rules, 
org.apache.sling.muppet and org.apache.sling.muppet.slingdemo bundles
4. http://localhost:8080/apps/muppet/demo.muppet.json outputs the evaluation 
result and http://localhost:8080/apps/muppet/demo.tidy.2.json shows the content 
that defines the rules.

To add new rules or rules types, see the classes that implement RuleBuilder for 
examples.

Updated open issues:
-The output does not indicate the value that causes a rule to fail 
-The servlet output is not JSON yet 
-We probably don't need tags on rules, they can be organized as a content 
hierarchy (/apps/muppet/rules/performance, /apps/muppet/rules/security etc)
-A rule for checking OSGi configuration parameters would be useful. 
-Need to clarify the authentication/security aspects
-A Web console plugin might be useful to execute rules found under a specified 
path
-Need to clarify the naming conventions as per Felix's comment above


                  
> Muppet - extensible system health checking tool
> -----------------------------------------------
>
>                 Key: SLING-2822
>                 URL: https://issues.apache.org/jira/browse/SLING-2822
>             Project: Sling
>          Issue Type: Improvement
>          Components: Testing
>            Reporter: Bertrand Delacretaz
>            Assignee: Bertrand Delacretaz
>            Priority: Minor
>         Attachments: nodes.json, setup.bash
>
>
> I have created a prototype at https://github.com/bdelacretaz/muppet-prototype 
> that we might want to move to our contrib folder.
> Muppet (it's like a Puppet, but different (*)) allows you to check the health 
> of a system by defining rules that (out of the box) verify things like the 
> presence of specific OSGi bundles, JMX MBeans values, correct disabling of 
> default Sling credentials, etc.
> New rule types can be defined by adding RuleBuilder OSGi services, there are 
> several examples in this initial code.
> I'll add a how-to for this initial version here. 
> Known issues are:
> -The output does not indicate the value that causes a rule to fail
> -The servlet output is not JSON yet
> -Tags on rules would be nice to be able to run just the performance or 
> security rules for example
> -A rule for checking OSGi configuration parameters would be useful.
> (*) credits to Joerg Hoh for that one, as well as inspiration in 
> https://github.com/joerghoh/cq5-healthcheck

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to