Search in sources :

Example 6 with CoreV1Event

use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.

the class CoreV1Api method readNamespacedEventAsync.

/**
 * (asynchronously) read 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 pretty If 'true', then the output is pretty printed. (optional)
 * @param _callback The callback to be executed when the API call finishes
 * @return The request call
 * @throws ApiException If fail to process the API call, e.g. serializing the request body object
 * @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> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public okhttp3.Call readNamespacedEventAsync(String name, String namespace, String pretty, final ApiCallback<CoreV1Event> _callback) throws ApiException {
    okhttp3.Call localVarCall = readNamespacedEventValidateBeforeCall(name, namespace, pretty, _callback);
    Type localVarReturnType = new TypeToken<CoreV1Event>() {
    }.getType();
    localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
    return localVarCall;
}
Also used : Type(java.lang.reflect.Type) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event)

Example 7 with CoreV1Event

use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.

the class EventCorrelatorTest method data.

// creates the test data
@Parameters
public static Collection<Object[]> data() {
    V1ObjectReference podRef = new V1ObjectReferenceBuilder().withApiVersion("v1").withName("my-pod").withNamespace("default").build();
    V1EventSource source = new V1EventSourceBuilder().withComponent("foo").withHost("bar").build();
    CoreV1Event firstEvent = new CoreV1EventBuilder().withMetadata(new V1ObjectMetaBuilder().withName("").withNamespace("").build()).withSource(source).withInvolvedObject(podRef).withReason("first").withCount(1).withMessage("am a first").build();
    CoreV1Event duplicatedEvent = new CoreV1EventBuilder().withMetadata(new V1ObjectMetaBuilder().withName("").withNamespace("").build()).withSource(source).withInvolvedObject(podRef).withReason("duplicated").withCount(1).withMessage("am a dup").build();
    CoreV1Event similarEvent = new CoreV1EventBuilder().withMetadata(new V1ObjectMetaBuilder().withName("").withNamespace("").build()).withSource(source).withInvolvedObject(podRef).withReason("similar").withCount(1).withMessage("am a similar").build();
    CoreV1Event aggregateEvent = new CoreV1EventBuilder().withMetadata(new V1ObjectMetaBuilder().withName("").withNamespace("").build()).withSource(source).withInvolvedObject(podRef).withReason("similar").withCount(1).withMessage(EventUtils.getAggregatedMessageByReason(similarEvent)).build();
    Object[][] data = new Object[][] { { // create a single event should work
    new CoreV1Event[] {}, deepCopy(firstEvent), deepCopy(firstEvent).count(1), false }, { // the same event should just count
    new CoreV1Event[] { deepCopy(duplicatedEvent) }, deepCopy(duplicatedEvent), deepCopy(duplicatedEvent).count(2), false }, { // the same event should just count even if more than aggregate
    deepCopyFor(duplicatedEvent, EventAggregator.DEFAULT_MAX_EVENT_LOCAL_KEYS), deepCopy(duplicatedEvent), deepCopy(duplicatedEvent).count(EventAggregator.DEFAULT_MAX_EVENT_LOCAL_KEYS + 1), false }, { // the same event is spam if too frequent
    deepCopyFor(duplicatedEvent, EventSpamFilter.DEFAULT_TOKEN_BUCKET_CAPACITY + 1), deepCopy(duplicatedEvent), null, true }, { // similar events should be aggregated
    deepCopyWithSimilarMessageFor(similarEvent, similarEvent.getMessage(), EventAggregator.DEFAULT_MAX_EVENT_LOCAL_KEYS - 1), deepCopy(similarEvent), deepCopy(aggregateEvent), false }, { // similar events many times should count the aggregate
    deepCopyWithSimilarMessageFor(similarEvent, similarEvent.getMessage(), EventAggregator.DEFAULT_MAX_EVENT_LOCAL_KEYS), deepCopy(similarEvent), deepCopy(aggregateEvent).count(2), false } };
    return Arrays.asList(data);
}
Also used : V1EventSourceBuilder(io.kubernetes.client.openapi.models.V1EventSourceBuilder) V1ObjectReference(io.kubernetes.client.openapi.models.V1ObjectReference) V1ObjectReferenceBuilder(io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder) V1EventSource(io.kubernetes.client.openapi.models.V1EventSource) CoreV1EventBuilder(io.kubernetes.client.openapi.models.CoreV1EventBuilder) V1ObjectMetaBuilder(io.kubernetes.client.openapi.models.V1ObjectMetaBuilder) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event) Parameters(org.junit.runners.Parameterized.Parameters)

Example 8 with CoreV1Event

use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.

the class EventAggregatorTest method testSpammingEventsShouldBeAggregated.

@Test
public void testSpammingEventsShouldBeAggregated() {
    String aggregatedMessage = "noxu";
    EventAggregator aggregator = new EventAggregator(100, EventUtils::getAggregatedAndLocalKeyByReason, event -> aggregatedMessage);
    for (int i = 0; i < aggregator.getMaxEvents() - 1; i++) {
        String message = aggregator.aggregate(new CoreV1EventBuilder().withSource(new V1EventSource()).withInvolvedObject(new V1ObjectReference()).withMessage("foo: " + i).build()).getLeft().getMessage();
        assertNotEquals(aggregatedMessage, message);
    }
    CoreV1Event aggregatedEvent = aggregator.aggregate(new CoreV1EventBuilder().withSource(new V1EventSource()).withInvolvedObject(new V1ObjectReference()).withMessage("not_noxu").build()).getLeft();
    assertEquals(aggregatedMessage, aggregatedEvent.getMessage());
}
Also used : V1ObjectReference(io.kubernetes.client.openapi.models.V1ObjectReference) EventAggregator(io.kubernetes.client.extended.event.legacy.EventAggregator) EventUtils(io.kubernetes.client.extended.event.legacy.EventUtils) V1EventSource(io.kubernetes.client.openapi.models.V1EventSource) CoreV1EventBuilder(io.kubernetes.client.openapi.models.CoreV1EventBuilder) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event) Test(org.junit.Test)

Example 9 with CoreV1Event

use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.

the class EventLoggerTest method testPatchComputing.

@Test
public void testPatchComputing() {
    CoreV1Event event1 = new CoreV1EventBuilder().withSource(new V1EventSourceBuilder().build()).withMetadata(new V1ObjectMeta()).withInvolvedObject(new V1ObjectReferenceBuilder().build()).withCount(1).withMessage("foo1").build();
    CoreV1Event event2 = new CoreV1EventBuilder().withSource(new V1EventSourceBuilder().build()).withMetadata(new V1ObjectMeta()).withInvolvedObject(new V1ObjectReferenceBuilder().build()).withCount(2).withMessage("foo2").build();
    String aggregatedKey = EventUtils.getAggregatedAndLocalKeyByReason(event1).getRight();
    EventLogger eventLogger = new EventLogger(100, EventUtils::getEventKey);
    MutablePair<CoreV1Event, V1Patch> result1 = eventLogger.observe(event1, aggregatedKey);
    assertEquals(event1, result1.getLeft());
    assertNull(result1.getRight());
    MutablePair<CoreV1Event, V1Patch> result2 = eventLogger.observe(event2, aggregatedKey);
    assertEquals(event2, result2.getLeft());
    assertNotNull(result2.getRight());
}
Also used : V1EventSourceBuilder(io.kubernetes.client.openapi.models.V1EventSourceBuilder) V1ObjectReferenceBuilder(io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder) EventLogger(io.kubernetes.client.extended.event.legacy.EventLogger) V1ObjectMeta(io.kubernetes.client.openapi.models.V1ObjectMeta) EventUtils(io.kubernetes.client.extended.event.legacy.EventUtils) V1Patch(io.kubernetes.client.custom.V1Patch) CoreV1EventBuilder(io.kubernetes.client.openapi.models.CoreV1EventBuilder) CoreV1Event(io.kubernetes.client.openapi.models.CoreV1Event) Test(org.junit.Test)

Example 10 with CoreV1Event

use of io.kubernetes.client.openapi.models.CoreV1Event in project java by kubernetes-client.

the class CoreV1Api method patchNamespacedEventWithHttpInfo.

/**
 * partially update 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. This field is
 *     required for apply requests (application/apply-patch) but optional for non-apply patch
 *     types (JsonPatch, MergePatch, StrategicMergePatch). (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)
 * @param force Force is going to \&quot;force\&quot; Apply requests. It means user will
 *     re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply
 *     patch requests. (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> patchNamespacedEventWithHttpInfo(String name, String namespace, V1Patch body, String pretty, String dryRun, String fieldManager, String fieldValidation, Boolean force) throws ApiException {
    okhttp3.Call localVarCall = patchNamespacedEventValidateBeforeCall(name, namespace, body, pretty, dryRun, fieldManager, fieldValidation, force, 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