Search in sources :

Example 1 with V1ObjectReferenceBuilder

use of io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder 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 2 with V1ObjectReferenceBuilder

use of io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder 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)

Aggregations

CoreV1Event (io.kubernetes.client.openapi.models.CoreV1Event)2 CoreV1EventBuilder (io.kubernetes.client.openapi.models.CoreV1EventBuilder)2 V1EventSourceBuilder (io.kubernetes.client.openapi.models.V1EventSourceBuilder)2 V1ObjectReferenceBuilder (io.kubernetes.client.openapi.models.V1ObjectReferenceBuilder)2 V1Patch (io.kubernetes.client.custom.V1Patch)1 EventLogger (io.kubernetes.client.extended.event.legacy.EventLogger)1 EventUtils (io.kubernetes.client.extended.event.legacy.EventUtils)1 V1EventSource (io.kubernetes.client.openapi.models.V1EventSource)1 V1ObjectMeta (io.kubernetes.client.openapi.models.V1ObjectMeta)1 V1ObjectMetaBuilder (io.kubernetes.client.openapi.models.V1ObjectMetaBuilder)1 V1ObjectReference (io.kubernetes.client.openapi.models.V1ObjectReference)1 Test (org.junit.Test)1 Parameters (org.junit.runners.Parameterized.Parameters)1