Search in sources :

Example 11 with CoreV1Event

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);
    }
}
Also used : MutablePair(org.apache.commons.lang3.tuple.MutablePair) EventCorrelator(io.kubernetes.client.extended.event.legacy.EventCorrelator) OffsetDateTime(java.time.OffsetDateTime) V1ObjectMetaBuilder(io.kubernetes.client.openapi.models.V1ObjectMetaBuilder) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event) Test(org.junit.Test)

Example 12 with CoreV1Event

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);
}
Also used : CoreV1EventBuilder(io.kubernetes.client.openapi.models.CoreV1EventBuilder) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event)

Example 13 with CoreV1Event

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));
}
Also used : V1EventSourceBuilder(io.kubernetes.client.openapi.models.V1EventSourceBuilder) V1ObjectReference(io.kubernetes.client.openapi.models.V1ObjectReference) EventSpamFilter(io.kubernetes.client.extended.event.legacy.EventSpamFilter) EventUtils(io.kubernetes.client.extended.event.legacy.EventUtils) CoreV1EventBuilder(io.kubernetes.client.openapi.models.CoreV1EventBuilder) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event) Test(org.junit.Test)

Example 14 with CoreV1Event

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 &#39;true&#39;, 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 &#x60;ServerSideFieldValidation&#x60; 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&lt;CoreV1Event&gt;
 * @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);
}
Also used : Type(java.lang.reflect.Type) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event)

Example 15 with CoreV1Event

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 &#39;true&#39;, 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 &#x60;ServerSideFieldValidation&#x60; 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&lt;CoreV1Event&gt;
 * @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);
}
Also used : Type(java.lang.reflect.Type) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event)

Aggregations

CoreV1Event (io.kubernetes.client.openapi.models.CoreV1Event)18 Type (java.lang.reflect.Type)8 CoreV1EventBuilder (io.kubernetes.client.openapi.models.CoreV1EventBuilder)7 V1ObjectMetaBuilder (io.kubernetes.client.openapi.models.V1ObjectMetaBuilder)4 Test (org.junit.Test)4 V1Patch (io.kubernetes.client.custom.V1Patch)3 EventUtils (io.kubernetes.client.extended.event.legacy.EventUtils)3 V1EventSourceBuilder (io.kubernetes.client.openapi.models.V1EventSourceBuilder)3 V1ObjectReference (io.kubernetes.client.openapi.models.V1ObjectReference)3 OffsetDateTime (java.time.OffsetDateTime)3 MutablePair (org.apache.commons.lang3.tuple.MutablePair)3 V1EventSource (io.kubernetes.client.openapi.models.V1EventSource)2 V1ObjectReferenceBuilder (io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder)2 EventAggregator (io.kubernetes.client.extended.event.legacy.EventAggregator)1 EventCorrelator (io.kubernetes.client.extended.event.legacy.EventCorrelator)1 EventLogger (io.kubernetes.client.extended.event.legacy.EventLogger)1 EventSpamFilter (io.kubernetes.client.extended.event.legacy.EventSpamFilter)1 V1ObjectMeta (io.kubernetes.client.openapi.models.V1ObjectMeta)1 Parameters (org.junit.runners.Parameterized.Parameters)1