use of com.microsoft.applicationinsights.smoketest.schemav2.Domain in project weblogic-kubernetes-operator by oracle.
the class Main method dispatchDomainWatch.
/**
* Dispatch the Domain event to the appropriate handler.
*
* @param item An item received from a Watch response.
* @param principal The name of the principal that will be used in this watch.
*/
private static void dispatchDomainWatch(Watch.Response<Domain> item) {
Domain d;
String domainUID;
switch(item.type) {
case "ADDED":
case "MODIFIED":
d = item.object;
domainUID = d.getSpec().getDomainUID();
LOGGER.info(MessageKeys.WATCH_DOMAIN, domainUID);
doCheckAndCreateDomainPresence(d);
break;
case "DELETED":
d = item.object;
domainUID = d.getSpec().getDomainUID();
LOGGER.info(MessageKeys.WATCH_DOMAIN_DELETED, domainUID);
deleteDomainPresence(d);
break;
case "ERROR":
default:
}
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Domain in project weblogic-kubernetes-operator by oracle.
the class Main method scaleDownIfNecessary.
private static Step scaleDownIfNecessary(DomainPresenceInfo info, Collection<String> servers, Step next) {
Domain dom = info.getDomain();
DomainSpec spec = dom.getSpec();
boolean shouldStopAdmin = false;
String sc = spec.getStartupControl();
if (sc != null && StartupControlConstants.NONE_STARTUPCONTROL.equals(sc.toUpperCase())) {
shouldStopAdmin = true;
next = DomainStatusUpdater.createAvailableStep(DomainStatusUpdater.ALL_STOPPED_AVAILABLE_REASON, next);
}
String adminName = spec.getAsName();
Map<String, ServerKubernetesObjects> currentServers = info.getServers();
Collection<Map.Entry<String, ServerKubernetesObjects>> serversToStop = new ArrayList<>();
for (Map.Entry<String, ServerKubernetesObjects> entry : currentServers.entrySet()) {
if ((shouldStopAdmin || !entry.getKey().equals(adminName)) && !servers.contains(entry.getKey())) {
serversToStop.add(entry);
}
}
if (!serversToStop.isEmpty()) {
return new ServerDownIteratorStep(serversToStop, next);
}
return next;
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Domain in project weblogic-kubernetes-operator by oracle.
the class Main method doCheckAndCreateDomainPresence.
private static void doCheckAndCreateDomainPresence(Domain dom, boolean explicitRecheck, boolean explicitRestartAdmin, List<String> explicitRestartServers, List<String> explicitRestartClusters) {
LOGGER.entering();
boolean hasExplicitRestarts = explicitRestartAdmin || explicitRestartServers != null || explicitRestartClusters != null;
DomainSpec spec = dom.getSpec();
normalizeDomainSpec(spec);
String domainUID = spec.getDomainUID();
DomainPresenceInfo created = new DomainPresenceInfo(dom);
DomainPresenceInfo info = domains.putIfAbsent(domainUID, created);
if (info == null) {
info = created;
} else {
// Has the spec actually changed? We will get watch events for status updates
Domain current = info.getDomain();
if (current != null) {
if (!explicitRecheck && !hasExplicitRestarts && spec.equals(current.getSpec())) {
// nothing in the spec has changed
LOGGER.fine(MessageKeys.NOT_STARTING_DOMAINUID_THREAD, domainUID);
return;
}
}
info.setDomain(dom);
}
String ns = dom.getMetadata().getNamespace();
if (initialized.getOrDefault(ns, Boolean.FALSE) && !stopping.get()) {
LOGGER.info(MessageKeys.PROCESSING_DOMAIN, domainUID);
Step managedServerStrategy = bringManagedServersUp(DomainStatusUpdater.createEndProgressingStep(null));
Step adminServerStrategy = bringAdminServerUp(connectToAdminAndInspectDomain(managedServerStrategy));
Step strategy = DomainStatusUpdater.createProgressingStep(DomainStatusUpdater.INSPECTING_DOMAIN_PROGRESS_REASON, true, new DomainPrescenceStep(adminServerStrategy, managedServerStrategy));
Packet p = new Packet();
PodWatcher pw = podWatchers.get(ns);
p.getComponents().put(ProcessingConstants.DOMAIN_COMPONENT_NAME, Component.createFor(info, version, pw));
p.put(ProcessingConstants.PRINCIPAL, principal);
if (explicitRestartAdmin) {
p.put(ProcessingConstants.EXPLICIT_RESTART_ADMIN, Boolean.TRUE);
}
p.put(ProcessingConstants.EXPLICIT_RESTART_SERVERS, explicitRestartServers);
p.put(ProcessingConstants.EXPLICIT_RESTART_CLUSTERS, explicitRestartClusters);
if (explicitRestartAdmin) {
LOGGER.info(MessageKeys.RESTART_ADMIN_STARTING, domainUID);
}
if (explicitRestartServers != null) {
LOGGER.info(MessageKeys.RESTART_SERVERS_STARTING, domainUID, explicitRestartServers);
}
if (explicitRestartClusters != null) {
LOGGER.info(MessageKeys.ROLLING_CLUSTERS_STARTING, domainUID, explicitRestartClusters);
}
domainUpdaters.startFiber(domainUID, strategy, p, new CompletionCallback() {
@Override
public void onCompletion(Packet packet) {
if (explicitRestartAdmin) {
LOGGER.info(MessageKeys.RESTART_ADMIN_COMPLETE, domainUID);
}
if (explicitRestartServers != null) {
LOGGER.info(MessageKeys.RESTART_SERVERS_COMPLETE, domainUID, explicitRestartServers);
}
if (explicitRestartClusters != null) {
LOGGER.info(MessageKeys.ROLLING_CLUSTERS_COMPLETE, domainUID, explicitRestartClusters);
}
}
@Override
public void onThrowable(Packet packet, Throwable throwable) {
LOGGER.severe(MessageKeys.EXCEPTION, throwable);
domainUpdaters.startFiberIfLastFiberMatches(domainUID, Fiber.getCurrentIfSet(), DomainStatusUpdater.createFailedStep(throwable, null), p, new CompletionCallback() {
@Override
public void onCompletion(Packet packet) {
// no-op
}
@Override
public void onThrowable(Packet packet, Throwable throwable) {
LOGGER.severe(MessageKeys.EXCEPTION, throwable);
}
});
// TODO: consider retrying domain update after a delay
}
});
scheduleDomainStatusUpdating(info);
}
LOGGER.exiting();
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Domain in project weblogic-kubernetes-operator by oracle.
the class WeblogicApi method readWebLogicOracleV1NamespacedDomainWithHttpInfo.
/**
* read the specified Domain
*
* @param name
* name of the Domain (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 exact
* Should the export be exact. Exact export maintains cluster-specific
* fields like 'Namespace'. (optional)
* @param export
* Should this value be exported. Export strips fields that a user can
* not specify. (optional)
* @return ApiResponse<Domain>
* @throws ApiException
* If fail to call the API, e.g. server error or cannot deserialize
* the response body
*/
public ApiResponse<Domain> readWebLogicOracleV1NamespacedDomainWithHttpInfo(String name, String namespace, String pretty, Boolean exact, Boolean export) throws ApiException {
com.squareup.okhttp.Call call = readWebLogicOracleV1NamespacedDomainValidateBeforeCall(name, namespace, pretty, exact, export, null, null);
Type localVarReturnType = new TypeToken<Domain>() {
}.getType();
return apiClient.execute(call, localVarReturnType);
}
use of com.microsoft.applicationinsights.smoketest.schemav2.Domain in project weblogic-kubernetes-operator by oracle.
the class WeblogicApi method replaceWebLogicOracleV1NamespacedDomainAsync.
/**
* (asynchronously) replace the specified Domain
*
* @param name
* name of the Domain (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 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
*/
public com.squareup.okhttp.Call replaceWebLogicOracleV1NamespacedDomainAsync(String name, String namespace, Domain body, String pretty, final ApiCallback<Domain> callback) throws ApiException {
ProgressResponseBody.ProgressListener progressListener = null;
ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
if (callback != null) {
progressListener = (bytesRead, contentLength, done) -> callback.onDownloadProgress(bytesRead, contentLength, done);
progressRequestListener = (bytesWritten, contentLength, done) -> callback.onUploadProgress(bytesWritten, contentLength, done);
}
com.squareup.okhttp.Call call = replaceWebLogicOracleV1NamespacedDomainValidateBeforeCall(name, namespace, body, pretty, progressListener, progressRequestListener);
Type localVarReturnType = new TypeToken<Domain>() {
}.getType();
apiClient.executeAsync(call, localVarReturnType, callback);
return call;
}
Aggregations