Bug 967488

Summary: Unable to create alert definition with condition based on operation result
Product: [Other] RHQ Project Reporter: Libor Zoubek <lzoubek>
Component: RESTAssignee: Heiko W. Rupp <hrupp>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.8CC: theute
Target Milestone: ---   
Target Release: RHQ 4.8   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 970756 (view as bug list) Environment:
Last Closed: 2013-08-31 10:15:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 970756    
Attachments:
Description Flags
shot1.png none

Description Libor Zoubek 2013-05-27 09:40:51 UTC
Created attachment 753531 [details]
shot1.png

Description of problem: Creating alert definitions via REST API is very unclear to me. I am trying to POST a definition that would trigger an alert when given operation on given resource fails. I am not able to submit correct body to REST API to create such alert def.


Version-Release number of selected component (if applicable):
RHQ 4.8-master

How reproducible: always


Steps to Reproduce:

I've been trying to send this body:

{'name':'restAlertDef',
'enabled':True,
'dampeningCategory':'NONE',
'conditionMode':'ANY',
'conditions':[{'name':'EQUALS','option':'discovery','category':'CONTROL'}]}


Actual results: see shot1.png attachment about how that condition looks in UI


According to shot1.png .. I tried to send this: 
{'name':'restAlertDef',
'enabled':True,
'dampeningCategory':'NONE',
'conditionMode':'ANY',
'conditions':[{'name':'discovery','option':'SUCCESS','category':'CONTROL'}]}

Actual results: 
REST API returns: Can not construct instance of org.rhq.core.domain.alert.AlertConditionOperator from String value 'EQUAL': value not one of declared Enum instance names\n at [Source: org.apache.catalina.connector.CoyoteInputStream@2bd7b0c6; line: 1, column: 68] (through reference chain: org.rhq.enterprise.server.rest.domain.AlertDefinitionRest[\"conditions\"]->org.rhq.enterprise.server.rest.domain.AlertConditionRest[\"name

Additional info:
The key issue is in "name" property of of condition, because it can be an operation name in when "category" equals "CONTROL", for this case we should also check, if operation by given name exists (if not just list all possible operations), same could apply to "option" value which is valid only if it can be parsed to OperationResult enum.

Comment 1 Heiko W. Rupp 2013-06-04 19:13:50 UTC
master e718326

checking for valid operation names still needs to be implemented. I'll clone this BZ for that purpose.

Comment 2 Heiko W. Rupp 2013-08-31 10:15:08 UTC
Bulk close of old bugs in VERIFIED state.