Search in sources :

Example 1 with Packet

use of oracle.kubernetes.operator.work.Packet in project weblogic-kubernetes-operator by oracle.

the class Main method begin.

private static void begin() {
    // read the operator configuration
    String namespace = System.getenv("OPERATOR_NAMESPACE");
    if (namespace == null) {
        namespace = "default";
    }
    Collection<String> targetNamespaces = getTargetNamespaces(namespace);
    String serviceAccountName = tuningAndConfig.get("serviceaccount");
    if (serviceAccountName == null) {
        serviceAccountName = "default";
    }
    principal = "system:serviceaccount:" + namespace + ":" + serviceAccountName;
    LOGGER.info(MessageKeys.OP_CONFIG_NAMESPACE, namespace);
    StringBuilder tns = new StringBuilder();
    Iterator<String> it = targetNamespaces.iterator();
    while (it.hasNext()) {
        tns.append(it.next());
        if (it.hasNext()) {
            tns.append(", ");
        }
    }
    LOGGER.info(MessageKeys.OP_CONFIG_TARGET_NAMESPACES, tns.toString());
    LOGGER.info(MessageKeys.OP_CONFIG_SERVICE_ACCOUNT, serviceAccountName);
    try {
        // Initialize logging factory with JSON serializer for later logging
        // that includes k8s objects
        LoggingFactory.setJSON(new JSON());
        // start the REST server
        startRestServer(principal, targetNamespaces);
        // create the Custom Resource Definitions if they are not already there
        CRDHelper.checkAndCreateCustomResourceDefinition();
        try {
            HealthCheckHelper healthCheck = new HealthCheckHelper(namespace, targetNamespaces);
            version = healthCheck.performK8sVersionCheck();
            healthCheck.performNonSecurityChecks();
            healthCheck.performSecurityChecks(serviceAccountName);
        } catch (ApiException e) {
            LOGGER.warning(MessageKeys.EXCEPTION, e);
        }
        // check for any existing resources and add the watches on them
        // this would happen when the Domain was running BEFORE the Operator starts up
        LOGGER.info(MessageKeys.LISTING_DOMAINS);
        for (String ns : targetNamespaces) {
            initialized.put(ns, Boolean.TRUE);
            Step domainList = callBuilderFactory.create().listDomainAsync(ns, new ResponseStep<DomainList>(null) {

                @Override
                public NextAction onFailure(Packet packet, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (statusCode == CallBuilder.NOT_FOUND) {
                        return onSuccess(packet, null, statusCode, responseHeaders);
                    }
                    return super.onFailure(packet, e, statusCode, responseHeaders);
                }

                @Override
                public NextAction onSuccess(Packet packet, DomainList result, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (result != null) {
                        for (Domain dom : result.getItems()) {
                            doCheckAndCreateDomainPresence(dom);
                        }
                    }
                    // main logic now happens in the watch handlers
                    domainWatchers.put(ns, createDomainWatcher(ns, result != null ? result.getMetadata().getResourceVersion() : ""));
                    return doNext(packet);
                }
            });
            Step initialize = ConfigMapHelper.createScriptConfigMapStep(ns, new ConfigMapAfterStep(ns, callBuilderFactory.create().with($ -> {
                $.labelSelector = LabelConstants.DOMAINUID_LABEL + "," + LabelConstants.CREATEDBYOPERATOR_LABEL;
            }).listPodAsync(ns, new ResponseStep<V1PodList>(callBuilderFactory.create().with($ -> {
                $.labelSelector = LabelConstants.DOMAINUID_LABEL + "," + LabelConstants.CREATEDBYOPERATOR_LABEL;
            }).listServiceAsync(ns, new ResponseStep<V1ServiceList>(callBuilderFactory.create().with($ -> {
                $.labelSelector = LabelConstants.DOMAINUID_LABEL + "," + LabelConstants.CREATEDBYOPERATOR_LABEL;
            }).listIngressAsync(ns, new ResponseStep<V1beta1IngressList>(domainList) {

                @Override
                public NextAction onFailure(Packet packet, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (statusCode == CallBuilder.NOT_FOUND) {
                        return onSuccess(packet, null, statusCode, responseHeaders);
                    }
                    return super.onFailure(packet, e, statusCode, responseHeaders);
                }

                @Override
                public NextAction onSuccess(Packet packet, V1beta1IngressList result, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (result != null) {
                        for (V1beta1Ingress ingress : result.getItems()) {
                            String domainUID = IngressWatcher.getIngressDomainUID(ingress);
                            String clusterName = IngressWatcher.getIngressClusterName(ingress);
                            if (domainUID != null && clusterName != null) {
                                DomainPresenceInfo created = new DomainPresenceInfo(ns);
                                DomainPresenceInfo info = domains.putIfAbsent(domainUID, created);
                                if (info == null) {
                                    info = created;
                                }
                                info.getIngresses().put(clusterName, ingress);
                            }
                        }
                    }
                    ingressWatchers.put(ns, createIngressWatcher(ns, result != null ? result.getMetadata().getResourceVersion() : ""));
                    return doNext(packet);
                }
            })) {

                @Override
                public NextAction onFailure(Packet packet, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (statusCode == CallBuilder.NOT_FOUND) {
                        return onSuccess(packet, null, statusCode, responseHeaders);
                    }
                    return super.onFailure(packet, e, statusCode, responseHeaders);
                }

                @Override
                public NextAction onSuccess(Packet packet, V1ServiceList result, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (result != null) {
                        for (V1Service service : result.getItems()) {
                            String domainUID = ServiceWatcher.getServiceDomainUID(service);
                            String serverName = ServiceWatcher.getServiceServerName(service);
                            String channelName = ServiceWatcher.getServiceChannelName(service);
                            if (domainUID != null && serverName != null) {
                                DomainPresenceInfo created = new DomainPresenceInfo(ns);
                                DomainPresenceInfo info = domains.putIfAbsent(domainUID, created);
                                if (info == null) {
                                    info = created;
                                }
                                ServerKubernetesObjects csko = new ServerKubernetesObjects();
                                ServerKubernetesObjects current = info.getServers().putIfAbsent(serverName, csko);
                                ServerKubernetesObjects sko = current != null ? current : csko;
                                if (channelName != null) {
                                    sko.getChannels().put(channelName, service);
                                } else {
                                    sko.getService().set(service);
                                }
                            }
                        }
                    }
                    serviceWatchers.put(ns, createServiceWatcher(ns, result != null ? result.getMetadata().getResourceVersion() : ""));
                    return doNext(packet);
                }
            })) {

                @Override
                public NextAction onFailure(Packet packet, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (statusCode == CallBuilder.NOT_FOUND) {
                        return onSuccess(packet, null, statusCode, responseHeaders);
                    }
                    return super.onFailure(packet, e, statusCode, responseHeaders);
                }

                @Override
                public NextAction onSuccess(Packet packet, V1PodList result, int statusCode, Map<String, List<String>> responseHeaders) {
                    if (result != null) {
                        for (V1Pod pod : result.getItems()) {
                            String domainUID = PodWatcher.getPodDomainUID(pod);
                            String serverName = PodWatcher.getPodServerName(pod);
                            if (domainUID != null && serverName != null) {
                                DomainPresenceInfo created = new DomainPresenceInfo(ns);
                                DomainPresenceInfo info = domains.putIfAbsent(domainUID, created);
                                if (info == null) {
                                    info = created;
                                }
                                ServerKubernetesObjects csko = new ServerKubernetesObjects();
                                ServerKubernetesObjects current = info.getServers().putIfAbsent(serverName, csko);
                                ServerKubernetesObjects sko = current != null ? current : csko;
                                sko.getPod().set(pod);
                            }
                        }
                    }
                    podWatchers.put(ns, createPodWatcher(ns, result != null ? result.getMetadata().getResourceVersion() : ""));
                    return doNext(packet);
                }
            })));
            engine.createFiber().start(initialize, new Packet(), new CompletionCallback() {

                @Override
                public void onCompletion(Packet packet) {
                // no-op
                }

                @Override
                public void onThrowable(Packet packet, Throwable throwable) {
                    LOGGER.severe(MessageKeys.EXCEPTION, throwable);
                }
            });
        }
        // delete stranded resources
        for (Map.Entry<String, DomainPresenceInfo> entry : domains.entrySet()) {
            String domainUID = entry.getKey();
            DomainPresenceInfo info = entry.getValue();
            if (info != null) {
                if (info.getDomain() == null) {
                    // no domain resource
                    deleteDomainPresence(info.getNamespace(), domainUID);
                }
            }
        }
    } catch (Throwable e) {
        LOGGER.warning(MessageKeys.EXCEPTION, e);
    } finally {
        LOGGER.info(MessageKeys.OPERATOR_SHUTTING_DOWN);
    }
}
Also used : PodHelper(oracle.kubernetes.operator.helpers.PodHelper) ScheduledFuture(java.util.concurrent.ScheduledFuture) Engine(oracle.kubernetes.operator.work.Engine) ConfigMapHelper(oracle.kubernetes.operator.helpers.ConfigMapHelper) V1beta1IngressList(io.kubernetes.client.models.V1beta1IngressList) DomainList(oracle.kubernetes.weblogic.domain.v1.DomainList) CallBuilder(oracle.kubernetes.operator.helpers.CallBuilder) CompletionCallback(oracle.kubernetes.operator.work.Fiber.CompletionCallback) ServerStartupInfo(oracle.kubernetes.operator.helpers.DomainPresenceInfo.ServerStartupInfo) NextAction(oracle.kubernetes.operator.work.NextAction) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Map(java.util.Map) Component(oracle.kubernetes.operator.work.Component) V1ObjectMeta(io.kubernetes.client.models.V1ObjectMeta) ThreadFactory(java.util.concurrent.ThreadFactory) V1EnvVar(io.kubernetes.client.models.V1EnvVar) NetworkAccessPoint(oracle.kubernetes.operator.wlsconfig.NetworkAccessPoint) Collection(java.util.Collection) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) KubernetesVersion(oracle.kubernetes.operator.helpers.HealthCheckHelper.KubernetesVersion) WlsDomainConfig(oracle.kubernetes.operator.wlsconfig.WlsDomainConfig) Executors(java.util.concurrent.Executors) List(java.util.List) V1beta1Ingress(io.kubernetes.client.models.V1beta1Ingress) Domain(oracle.kubernetes.weblogic.domain.v1.Domain) MessageKeys(oracle.kubernetes.operator.logging.MessageKeys) CRDHelper(oracle.kubernetes.operator.helpers.CRDHelper) Fiber(oracle.kubernetes.operator.work.Fiber) JSON(io.kubernetes.client.JSON) ServiceHelper(oracle.kubernetes.operator.helpers.ServiceHelper) WlsServerConfig(oracle.kubernetes.operator.wlsconfig.WlsServerConfig) V1PersistentVolumeClaimList(io.kubernetes.client.models.V1PersistentVolumeClaimList) ServerKubernetesObjects(oracle.kubernetes.operator.helpers.ServerKubernetesObjects) CallBuilderFactory(oracle.kubernetes.operator.helpers.CallBuilderFactory) ApiException(io.kubernetes.client.ApiException) V1Pod(io.kubernetes.client.models.V1Pod) Packet(oracle.kubernetes.operator.work.Packet) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Watch(io.kubernetes.client.util.Watch) Step(oracle.kubernetes.operator.work.Step) HashMap(java.util.HashMap) WlsRetriever(oracle.kubernetes.operator.wlsconfig.WlsRetriever) AtomicReference(java.util.concurrent.atomic.AtomicReference) ArrayList(java.util.ArrayList) ConcurrentMap(java.util.concurrent.ConcurrentMap) DomainPresenceInfo(oracle.kubernetes.operator.helpers.DomainPresenceInfo) V1PodList(io.kubernetes.client.models.V1PodList) StringTokenizer(java.util.StringTokenizer) LoggingFactory(oracle.kubernetes.operator.logging.LoggingFactory) ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) Iterator(java.util.Iterator) LoggingFacade(oracle.kubernetes.operator.logging.LoggingFacade) WlsClusterConfig(oracle.kubernetes.operator.wlsconfig.WlsClusterConfig) V1Service(io.kubernetes.client.models.V1Service) HealthCheckHelper(oracle.kubernetes.operator.helpers.HealthCheckHelper) RestConfigImpl(oracle.kubernetes.operator.rest.RestConfigImpl) DomainSpec(oracle.kubernetes.weblogic.domain.v1.DomainSpec) IOException(java.io.IOException) MainTuning(oracle.kubernetes.operator.TuningParameters.MainTuning) Container(oracle.kubernetes.operator.work.Container) FiberGate(oracle.kubernetes.operator.work.FiberGate) TimeUnit(java.util.concurrent.TimeUnit) V1ConfigMap(io.kubernetes.client.models.V1ConfigMap) ServerStartup(oracle.kubernetes.weblogic.domain.v1.ServerStartup) V1Status(io.kubernetes.client.models.V1Status) RestServer(oracle.kubernetes.operator.rest.RestServer) V1DeleteOptions(io.kubernetes.client.models.V1DeleteOptions) V1ServiceList(io.kubernetes.client.models.V1ServiceList) RollingHelper(oracle.kubernetes.operator.helpers.RollingHelper) Collections(java.util.Collections) ClusterStartup(oracle.kubernetes.weblogic.domain.v1.ClusterStartup) IngressHelper(oracle.kubernetes.operator.helpers.IngressHelper) ResponseStep(oracle.kubernetes.operator.helpers.ResponseStep) ServerKubernetesObjects(oracle.kubernetes.operator.helpers.ServerKubernetesObjects) V1Service(io.kubernetes.client.models.V1Service) JSON(io.kubernetes.client.JSON) HealthCheckHelper(oracle.kubernetes.operator.helpers.HealthCheckHelper) Step(oracle.kubernetes.operator.work.Step) ResponseStep(oracle.kubernetes.operator.helpers.ResponseStep) DomainList(oracle.kubernetes.weblogic.domain.v1.DomainList) V1beta1Ingress(io.kubernetes.client.models.V1beta1Ingress) V1beta1IngressList(io.kubernetes.client.models.V1beta1IngressList) DomainList(oracle.kubernetes.weblogic.domain.v1.DomainList) List(java.util.List) V1PersistentVolumeClaimList(io.kubernetes.client.models.V1PersistentVolumeClaimList) ArrayList(java.util.ArrayList) V1PodList(io.kubernetes.client.models.V1PodList) V1ServiceList(io.kubernetes.client.models.V1ServiceList) Packet(oracle.kubernetes.operator.work.Packet) V1ServiceList(io.kubernetes.client.models.V1ServiceList) NetworkAccessPoint(oracle.kubernetes.operator.wlsconfig.NetworkAccessPoint) DomainPresenceInfo(oracle.kubernetes.operator.helpers.DomainPresenceInfo) V1PodList(io.kubernetes.client.models.V1PodList) CompletionCallback(oracle.kubernetes.operator.work.Fiber.CompletionCallback) V1Pod(io.kubernetes.client.models.V1Pod) Domain(oracle.kubernetes.weblogic.domain.v1.Domain) NextAction(oracle.kubernetes.operator.work.NextAction) Map(java.util.Map) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) ConcurrentMap(java.util.concurrent.ConcurrentMap) V1ConfigMap(io.kubernetes.client.models.V1ConfigMap) ApiException(io.kubernetes.client.ApiException) V1beta1IngressList(io.kubernetes.client.models.V1beta1IngressList)

Example 2 with Packet

use of oracle.kubernetes.operator.work.Packet in project weblogic-kubernetes-operator by oracle.

the class Main method scheduleDomainStatusUpdating.

private static void scheduleDomainStatusUpdating(DomainPresenceInfo info) {
    AtomicInteger unchangedCount = new AtomicInteger(0);
    AtomicReference<ScheduledFuture<?>> statusUpdater = info.getStatusUpdater();
    Runnable command = new Runnable() {

        public void run() {
            // resolve visibility
            Runnable r = this;
            Packet packet = new Packet();
            packet.getComponents().put(ProcessingConstants.DOMAIN_COMPONENT_NAME, Component.createFor(info, version));
            MainTuning main = tuningAndConfig.getMainTuning();
            Step strategy = DomainStatusUpdater.createStatusStep(main.statusUpdateTimeoutSeconds, null);
            engine.createFiber().start(strategy, packet, new CompletionCallback() {

                @Override
                public void onCompletion(Packet packet) {
                    Boolean isStatusUnchanged = (Boolean) packet.get(ProcessingConstants.STATUS_UNCHANGED);
                    ScheduledFuture<?> existing = null;
                    if (Boolean.TRUE.equals(isStatusUnchanged)) {
                        if (unchangedCount.incrementAndGet() == main.unchangedCountToDelayStatusRecheck) {
                            // slow down retries because of sufficient unchanged statuses
                            existing = statusUpdater.getAndSet(engine.getExecutor().scheduleWithFixedDelay(r, main.eventualLongDelay, main.eventualLongDelay, TimeUnit.SECONDS));
                        }
                    } else {
                        // reset to trying after shorter delay because of changed status
                        unchangedCount.set(0);
                        existing = statusUpdater.getAndSet(engine.getExecutor().scheduleWithFixedDelay(r, main.initialShortDelay, main.initialShortDelay, TimeUnit.SECONDS));
                        if (existing != null) {
                            existing.cancel(false);
                        }
                    }
                    if (existing != null) {
                        existing.cancel(false);
                    }
                }

                @Override
                public void onThrowable(Packet packet, Throwable throwable) {
                    LOGGER.severe(MessageKeys.EXCEPTION, throwable);
                    // retry to trying after shorter delay because of exception
                    unchangedCount.set(0);
                    ScheduledFuture<?> existing = statusUpdater.getAndSet(engine.getExecutor().scheduleWithFixedDelay(r, main.initialShortDelay, main.initialShortDelay, TimeUnit.SECONDS));
                    if (existing != null) {
                        existing.cancel(false);
                    }
                }
            });
        }
    };
    MainTuning main = tuningAndConfig.getMainTuning();
    ScheduledFuture<?> existing = statusUpdater.getAndSet(engine.getExecutor().scheduleWithFixedDelay(command, main.initialShortDelay, main.initialShortDelay, TimeUnit.SECONDS));
    if (existing != null) {
        existing.cancel(false);
    }
}
Also used : Packet(oracle.kubernetes.operator.work.Packet) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) CompletionCallback(oracle.kubernetes.operator.work.Fiber.CompletionCallback) MainTuning(oracle.kubernetes.operator.TuningParameters.MainTuning) Step(oracle.kubernetes.operator.work.Step) ResponseStep(oracle.kubernetes.operator.helpers.ResponseStep) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) ScheduledFuture(java.util.concurrent.ScheduledFuture)

Example 3 with Packet

use of oracle.kubernetes.operator.work.Packet in project weblogic-kubernetes-operator by oracle.

the class CallBuilderTest method testListDomains.

@Test
public void testListDomains() throws InterruptedException {
    Step stepline = new SetupStep(null);
    Packet p = new Packet();
    Semaphore signal = new Semaphore(0);
    List<Throwable> throwables = Collections.synchronizedList(new ArrayList<Throwable>());
    p.put(THROW, throwables);
    engine.createFiber().start(stepline, p, new CompletionCallback() {

        @Override
        public void onCompletion(Packet packet) {
            signal.release();
        }

        @Override
        public void onThrowable(Packet packet, Throwable throwable) {
            throwables.add(throwable);
            signal.release();
        }
    });
    boolean result = signal.tryAcquire(20, TimeUnit.MINUTES);
    assertTrue(result);
    assertTrue(throwables.isEmpty());
    DomainList list = (DomainList) p.get(KEY);
    assertNotNull(list);
}
Also used : Packet(oracle.kubernetes.operator.work.Packet) CompletionCallback(oracle.kubernetes.operator.work.Fiber.CompletionCallback) Step(oracle.kubernetes.operator.work.Step) Semaphore(java.util.concurrent.Semaphore) DomainList(oracle.kubernetes.weblogic.domain.v1.DomainList) Test(org.junit.Test)

Example 4 with Packet

use of oracle.kubernetes.operator.work.Packet in project weblogic-kubernetes-operator by oracle.

the class IngressHelperTest method testAddThenRemoveServer.

@Test
public void testAddThenRemoveServer() throws Throwable {
    Packet p = new Packet();
    p.getComponents().put(ProcessingConstants.DOMAIN_COMPONENT_NAME, Component.createFor(info));
    p.put(ProcessingConstants.SERVER_SCAN, info.getScan().getServerConfig(server1Name));
    p.put(ProcessingConstants.CLUSTER_SCAN, info.getScan().getClusterConfig(clusterName));
    p.put(ProcessingConstants.SERVER_NAME, server1Name);
    Fiber f = engine.createFiber();
    Step s = IngressHelper.createClusterStep(null);
    AtomicReference<Throwable> t = new AtomicReference<>();
    f.start(s, p, new CompletionCallback() {

        @Override
        public void onCompletion(Packet packet) {
        // no-op
        }

        @Override
        public void onThrowable(Packet packet, Throwable throwable) {
            t.set(throwable);
        }
    });
    f.get(30, TimeUnit.SECONDS);
    if (t.get() != null) {
        throw t.get();
    }
    // Now check
    CallBuilderFactory factory = new CallBuilderFactory(null);
    V1beta1Ingress v1beta1Ingress = factory.create().readIngress(ingressName, namespace);
    List<V1beta1HTTPIngressPath> v1beta1HTTPIngressPaths = getPathArray(v1beta1Ingress);
    Assert.assertEquals("IngressPaths should have one instance of IngressPath", 1, v1beta1HTTPIngressPaths.size());
    V1beta1HTTPIngressPath v1beta1HTTPIngressPath = v1beta1HTTPIngressPaths.get(0);
    Assert.assertEquals("/", v1beta1HTTPIngressPath.getPath());
    V1beta1IngressBackend v1beta1IngressBackend = v1beta1HTTPIngressPath.getBackend();
    Assert.assertNotNull("IngressBackend Object should not be null", v1beta1IngressBackend);
    Assert.assertEquals("Service name should be " + clusterServiceName, clusterServiceName, v1beta1IngressBackend.getServiceName());
    Assert.assertEquals("Service port should be " + server1Port, server1Port, v1beta1IngressBackend.getServicePort().getIntValue());
}
Also used : Packet(oracle.kubernetes.operator.work.Packet) Fiber(oracle.kubernetes.operator.work.Fiber) V1beta1IngressBackend(io.kubernetes.client.models.V1beta1IngressBackend) AtomicReference(java.util.concurrent.atomic.AtomicReference) Step(oracle.kubernetes.operator.work.Step) V1beta1HTTPIngressPath(io.kubernetes.client.models.V1beta1HTTPIngressPath) V1beta1Ingress(io.kubernetes.client.models.V1beta1Ingress) CompletionCallback(oracle.kubernetes.operator.work.Fiber.CompletionCallback) Test(org.junit.Test)

Example 5 with Packet

use of oracle.kubernetes.operator.work.Packet in project weblogic-kubernetes-operator by oracle.

the class DomainStatusUpdater method doDomainUpdate.

private static NextAction doDomainUpdate(Domain dom, DomainPresenceInfo info, Packet packet, Step conflictStep, Step next) {
    V1ObjectMeta meta = dom.getMetadata();
    NextAction na = new NextAction();
    CallBuilderFactory factory = ContainerResolver.getInstance().getContainer().getSPI(CallBuilderFactory.class);
    na.invoke(factory.create().replaceDomainAsync(meta.getName(), meta.getNamespace(), dom, new ResponseStep<Domain>(next) {

        @Override
        public NextAction onFailure(Packet packet, ApiException e, int statusCode, Map<String, List<String>> responseHeaders) {
            if (statusCode == CallBuilder.NOT_FOUND) {
                // Just ignore update
                return doNext(packet);
            }
            return super.onFailure(conflictStep, packet, e, statusCode, responseHeaders);
        }

        @Override
        public NextAction onSuccess(Packet packet, Domain result, int statusCode, Map<String, List<String>> responseHeaders) {
            info.setDomain(result);
            return doNext(packet);
        }
    }), packet);
    return na;
}
Also used : Packet(oracle.kubernetes.operator.work.Packet) V1ObjectMeta(io.kubernetes.client.models.V1ObjectMeta) CallBuilderFactory(oracle.kubernetes.operator.helpers.CallBuilderFactory) Domain(oracle.kubernetes.weblogic.domain.v1.Domain) NextAction(oracle.kubernetes.operator.work.NextAction) ConcurrentMap(java.util.concurrent.ConcurrentMap) Map(java.util.Map) TreeMap(java.util.TreeMap) ResponseStep(oracle.kubernetes.operator.helpers.ResponseStep) ApiException(io.kubernetes.client.ApiException)

Aggregations

Packet (oracle.kubernetes.operator.work.Packet)10 CompletionCallback (oracle.kubernetes.operator.work.Fiber.CompletionCallback)6 Step (oracle.kubernetes.operator.work.Step)6 DomainPresenceInfo (oracle.kubernetes.operator.helpers.DomainPresenceInfo)4 ResponseStep (oracle.kubernetes.operator.helpers.ResponseStep)4 V1ObjectMeta (io.kubernetes.client.models.V1ObjectMeta)3 Fiber (oracle.kubernetes.operator.work.Fiber)3 Domain (oracle.kubernetes.weblogic.domain.v1.Domain)3 Test (org.junit.Test)3 ApiException (io.kubernetes.client.ApiException)2 V1Service (io.kubernetes.client.models.V1Service)2 V1ServiceList (io.kubernetes.client.models.V1ServiceList)2 V1beta1Ingress (io.kubernetes.client.models.V1beta1Ingress)2 Map (java.util.Map)2 ConcurrentMap (java.util.concurrent.ConcurrentMap)2 ScheduledFuture (java.util.concurrent.ScheduledFuture)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 MainTuning (oracle.kubernetes.operator.TuningParameters.MainTuning)2