Eli Mesika has posted comments on this change.

Change subject: API: Adding support for external events
......................................................................


Patch Set 2: (11 inline comments)

....................................................
File 
backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
Line 1458:           <xs:element ref="template" minOccurs="0" />
Line 1459:           <xs:element ref="cluster" minOccurs="0" />
Line 1460:           <xs:element ref="data_center" minOccurs="0" />
Line 1461:           <xs:element name="origin" type="xs:string" minOccurs="0" 
maxOccurs="1" />
Line 1462:           <xs:element name="custom_event_id" type="xs:int" 
minOccurs="0" maxOccurs="1" />
Done
Line 1463:           <xs:element name="event_flood_in_sec" type="xs:int" 
minOccurs="0" maxOccurs="1" />
Line 1464:           <xs:element name="custom_data" type="xs:string" 
minOccurs="0" maxOccurs="1" />          
Line 1465:         </xs:sequence>
Line 1466:       </xs:extension>


Line 1459:           <xs:element ref="cluster" minOccurs="0" />
Line 1460:           <xs:element ref="data_center" minOccurs="0" />
Line 1461:           <xs:element name="origin" type="xs:string" minOccurs="0" 
maxOccurs="1" />
Line 1462:           <xs:element name="custom_event_id" type="xs:int" 
minOccurs="0" maxOccurs="1" />
Line 1463:           <xs:element name="event_flood_in_sec" type="xs:int" 
minOccurs="0" maxOccurs="1" />
Done
Line 1464:           <xs:element name="custom_data" type="xs:string" 
minOccurs="0" maxOccurs="1" />          
Line 1465:         </xs:sequence>
Line 1466:       </xs:extension>
Line 1467:     </xs:complexContent>


Line 1460:           <xs:element ref="data_center" minOccurs="0" />
Line 1461:           <xs:element name="origin" type="xs:string" minOccurs="0" 
maxOccurs="1" />
Line 1462:           <xs:element name="custom_event_id" type="xs:int" 
minOccurs="0" maxOccurs="1" />
Line 1463:           <xs:element name="event_flood_in_sec" type="xs:int" 
minOccurs="0" maxOccurs="1" />
Line 1464:           <xs:element name="custom_data" type="xs:string" 
minOccurs="0" maxOccurs="1" />          
Done
Line 1465:         </xs:sequence>
Line 1466:       </xs:extension>
Line 1467:     </xs:complexContent>
Line 1468:   </xs:complexType>


....................................................
File 
backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata_v-3.1.yaml
Line 1252:       parameterType: null
Line 1253:       signatures: []
Line 1254:     urlparams: {}
Line 1255:     headers: {}
Line 1256: 
Done
Line 1257: - name: /api/events|rel=add
Line 1258:   request:
Line 1259:     body:
Line 1260:       parameterType: Event


Line 1258:   request:
Line 1259:     body:
Line 1260:       parameterType: Event
Line 1261:       signatures:
Line 1262:       - mandatoryArguments: {event.description: 'xs:string', 
event.severity: 'xs:string', event.origin: 'xs:string', event.customEventId: 
'xs:int'}
Replying there
Line 1263:         optionalArguments:{event.host.id: 'xs:string',event.user.id: 
'xs:string',event.vm.id: 'xs:string',event.storageDomain.id: 
'xs:string',event.template.id: 'xs:string',event.cluster.id: 
'xs:string',event.dataCenter.id: 'xs:string',}
Line 1264:     urlparams: {}
Line 1265:     headers:
Line 1266:       Content-Type: {value: application/xml|json, required: true}


Line 1259:     body:
Line 1260:       parameterType: Event
Line 1261:       signatures:
Line 1262:       - mandatoryArguments: {event.description: 'xs:string', 
event.severity: 'xs:string', event.origin: 'xs:string', event.customEventId: 
'xs:int'}
Line 1263:         optionalArguments:{event.host.id: 'xs:string',event.user.id: 
'xs:string',event.vm.id: 'xs:string',event.storageDomain.id: 
'xs:string',event.template.id: 'xs:string',event.cluster.id: 
'xs:string',event.dataCenter.id: 'xs:string',}
As custom events may be applied on a specific entity instance, one or more IDs 
may be set, so all are optional
Line 1264:     urlparams: {}
Line 1265:     headers:
Line 1266:       Content-Type: {value: application/xml|json, required: true}
Line 1267:       Expect: {value: 201-created, required: false}


....................................................
File 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendEventsResource.java
Line 60:     }
Line 61: 
Line 62:     @Override
Line 63:     public Response add(Event event) {
Line 64:         validateParameters(event, "origin", "severity", 
"eventFloodInSec", "description");
origin identifies the plug-in and is mandatory !

description is actually the message text and is mandatory
Line 65:         AuditLog entity = map(event);
Line 66:         return performCreation(VdcActionType.AddExternalEvent,
Line 67:                                new AddExternalEventParameters(entity),
Line 68:                                new 
QueryIdResolver<Long>(VdcQueryType.GetAuditLogById, 
GetAuditLogByIdParameters.class));


Line 61: 
Line 62:     @Override
Line 63:     public Response add(Event event) {
Line 64:         validateParameters(event, "origin", "severity", 
"eventFloodInSec", "description");
Line 65:         AuditLog entity = map(event);
Done
Line 66:         return performCreation(VdcActionType.AddExternalEvent,
Line 67:                                new AddExternalEventParameters(entity),
Line 68:                                new 
QueryIdResolver<Long>(VdcQueryType.GetAuditLogById, 
GetAuditLogByIdParameters.class));
Line 69:     }


Line 69:     }
Line 70: 
Line 71:     @Override
Line 72:     protected Response performRemove(String id) {
Line 73:         return performAction(VdcActionType.RemoveExternalEvent, new 
RemoveExternalEventParameters(Long.valueOf(id)));
Done
Line 74:     }


....................................................
File 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/EventMapper.java
Line 85:         return model;
Line 86:     }
Line 87: 
Line 88:     @Mapping(from = Event.class, to = AuditLog.class)
Line 89:     public static AuditLog map(Event event, AuditLog entity) {
Done
Line 90:         AuditLog auditLog = (entity != null) ? entity : new AuditLog();
Line 91:         auditLog.setseverity(map(event.getSeverity(), null));
Line 92:         auditLog.setlog_time(event.getTime() == null ? new 
Date((Calendar.getInstance().getTimeInMillis()))
Line 93:                 : event.getTime().toGregorianCalendar().getTime());


Line 122:         }
Line 123:         if (StringUtils.isNotEmpty(event.getCorrelationId())) {
Line 124:             auditLog.setCorrelationId(event.getCorrelationId());
Line 125:         }
Line 126:         if (StringUtils.isNotEmpty(event.getCorrelationId())) {
Done
Line 127:             auditLog.setCorrelationId(event.getCorrelationId());
Line 128:         }
Line 129:         if (StringUtils.isNotEmpty(event.getOrigin())) {
Line 130:             auditLog.setOrigin(event.getOrigin());


--
To view, visit http://gerrit.ovirt.org/10097
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ibdaf39df28c5f87db4c1bf9b5807c45a0a8ea9a8
Gerrit-PatchSet: 2
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Eli Mesika <[email protected]>
Gerrit-Reviewer: Eli Mesika <[email protected]>
Gerrit-Reviewer: Michael Pasternak <[email protected]>
Gerrit-Reviewer: Ori Liel <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to