use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.
the class EventCorrelatorTest method testEventCorrelate.
@Test
public void testEventCorrelate() throws InterruptedException {
EventCorrelator correlator = new EventCorrelator();
for (CoreV1Event event : previousEvents) {
OffsetDateTime now = OffsetDateTime.now();
event.setFirstTimestamp(now);
event.setLastTimestamp(now);
Optional<MutablePair<CoreV1Event, V1Patch>> result = correlator.correlate(event);
if (!result.isPresent()) {
correlator.updateState(event);
}
}
Thread.sleep(100);
OffsetDateTime now = OffsetDateTime.now();
newEvent.setFirstTimestamp(now);
newEvent.setLastTimestamp(now);
Optional<MutablePair<CoreV1Event, V1Patch>> result = correlator.correlate(newEvent);
assertEquals(expectedSkip, !result.isPresent());
if (!expectedSkip) {
CoreV1Event correlatedEvent = result.get().getLeft();
correlatedEvent.setMetadata(new V1ObjectMetaBuilder().withName("").withNamespace("").build());
validateEvent(expectedEvent, correlatedEvent);
}
}
use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.
the class EventCorrelatorTest method validateEvent.
private void validateEvent(CoreV1Event expectedEvent, CoreV1Event actualEvent) {
CoreV1Event recvEvent = new CoreV1EventBuilder(actualEvent).build();
assertNotEquals(0, recvEvent.getFirstTimestamp().toInstant().toEpochMilli());
assertNotEquals(0, recvEvent.getLastTimestamp().toInstant().toEpochMilli());
if (actualEvent.getFirstTimestamp().equals(actualEvent.getLastTimestamp())) {
if (expectedEvent.getCount() > 1) {
fail("firstTimestamp and lastTimestamp must not be equal to indicate compression happen");
}
} else {
if (expectedEvent.getCount() == 1) {
fail("firstTimestamp and lastTimestamp must be equal to indicate there's only one event");
}
}
// clear the timestamps
recvEvent.setFirstTimestamp(expectedEvent.getFirstTimestamp());
recvEvent.setLastTimestamp(expectedEvent.getLastTimestamp());
if (!recvEvent.getMetadata().getName().startsWith(expectedEvent.getMetadata().getName())) {
fail("prefix doesnt match");
}
assertEquals(expectedEvent, recvEvent);
}
use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.
the class EventSpamFilterTest method testSpammingEventFiltering.
@Test
public void testSpammingEventFiltering() {
int burst = 10;
EventSpamFilter filter = new EventSpamFilter(100, EventUtils::getSpamKey, burst, Duration.ofDays(1), // never refill
1);
CoreV1Event spammingEvent1 = new CoreV1EventBuilder().withMessage("1").withSource(new V1EventSourceBuilder().withComponent("c1").build()).withInvolvedObject(new V1ObjectReference()).build();
CoreV1Event spammingEvent2 = new CoreV1EventBuilder().withMessage("2").withSource(new V1EventSourceBuilder().withComponent("c1").build()).withInvolvedObject(new V1ObjectReference()).build();
CoreV1Event spammingEvent3 = new CoreV1EventBuilder().withMessage("3").withSource(new V1EventSourceBuilder().withComponent("c2").build()).withInvolvedObject(new V1ObjectReference()).build();
for (int i = 0; i < burst; i++) {
assertEquals(true, filter.filter(spammingEvent1));
}
assertEquals(false, filter.filter(spammingEvent1));
assertEquals(false, filter.filter(spammingEvent2));
assertEquals(true, filter.filter(spammingEvent3));
}
use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.
the class CoreV1Api method createNamespacedEventWithHttpInfo.
/**
* create an Event
*
* @param namespace object name and auth scope, such as for teams and projects (required)
* @param body (required)
* @param pretty If 'true', then the output is pretty printed. (optional)
* @param dryRun When present, indicates that modifications should not be persisted. An invalid or
* unrecognized dryRun directive will result in an error response and no further processing of
* the request. Valid values are: - All: all dry run stages will be processed (optional)
* @param fieldManager fieldManager is a name associated with the actor or entity that is making
* these changes. The value must be less than or 128 characters long, and only contain
* printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. (optional)
* @param fieldValidation fieldValidation determines how the server should respond to
* unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
* servers or servers with the `ServerSideFieldValidation` feature disabled will
* discard valid values specified in this param and not perform any server side field
* validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
* with a warning for each unknown/duplicate field, but successfully serves the request. -
* Strict: fails the request on unknown/duplicate fields. (optional)
* @return ApiResponse<CoreV1Event>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
* response body
* @http.response.details
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK </td><td> - </td></tr>
* <tr><td> 201 </td><td> Created </td><td> - </td></tr>
* <tr><td> 202 </td><td> Accepted </td><td> - </td></tr>
* <tr><td> 401 </td><td> Unauthorized </td><td> - </td></tr>
* </table>
*/
public ApiResponse<CoreV1Event> createNamespacedEventWithHttpInfo(String namespace, CoreV1Event body, String pretty, String dryRun, String fieldManager, String fieldValidation) throws ApiException {
okhttp3.Call localVarCall = createNamespacedEventValidateBeforeCall(namespace, body, pretty, dryRun, fieldManager, fieldValidation, null);
Type localVarReturnType = new TypeToken<CoreV1Event>() {
}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.
the class CoreV1Api method replaceNamespacedEventWithHttpInfo.
/**
* replace the specified Event
*
* @param name name of the Event (required)
* @param namespace object name and auth scope, such as for teams and projects (required)
* @param body (required)
* @param pretty If 'true', then the output is pretty printed. (optional)
* @param dryRun When present, indicates that modifications should not be persisted. An invalid or
* unrecognized dryRun directive will result in an error response and no further processing of
* the request. Valid values are: - All: all dry run stages will be processed (optional)
* @param fieldManager fieldManager is a name associated with the actor or entity that is making
* these changes. The value must be less than or 128 characters long, and only contain
* printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. (optional)
* @param fieldValidation fieldValidation determines how the server should respond to
* unknown/duplicate fields in the object in the request. Introduced as alpha in 1.23, older
* servers or servers with the `ServerSideFieldValidation` feature disabled will
* discard valid values specified in this param and not perform any server side field
* validation. Valid values are: - Ignore: ignores unknown/duplicate fields. - Warn: responds
* with a warning for each unknown/duplicate field, but successfully serves the request. -
* Strict: fails the request on unknown/duplicate fields. (optional)
* @return ApiResponse<CoreV1Event>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
* response body
* @http.response.details
* <table summary="Response Details" border="1">
* <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
* <tr><td> 200 </td><td> OK </td><td> - </td></tr>
* <tr><td> 201 </td><td> Created </td><td> - </td></tr>
* <tr><td> 401 </td><td> Unauthorized </td><td> - </td></tr>
* </table>
*/
public ApiResponse<CoreV1Event> replaceNamespacedEventWithHttpInfo(String name, String namespace, CoreV1Event body, String pretty, String dryRun, String fieldManager, String fieldValidation) throws ApiException {
okhttp3.Call localVarCall = replaceNamespacedEventValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, null);
Type localVarReturnType = new TypeToken<CoreV1Event>() {
}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Aggregations