Skip to content

Commit

Permalink
Fix SPP Deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
michalxo committed Feb 20, 2025
1 parent 573e07c commit 8ba763c
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import io.brokerqe.claire.ResourceManager;
import io.brokerqe.claire.TestUtils;
import io.brokerqe.claire.helpers.DataStorer;
import io.fabric8.kubernetes.api.model.Event;
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.apps.Deployment;
Expand Down Expand Up @@ -82,13 +83,19 @@ public static void deploy() {
applyPatch();

// check logs, possibly restart pod if issue with cert
TestUtils.waitFor(String.format("[%s] GET method to show up in logs of activemq-artemis-self-provisioning-plugin", SPP_DEFAULT_NAMESPACE), Constants.DURATION_5_SECONDS, Constants.DURATION_3_MINUTES, () -> {
Pod pod = kubeClient.getFirstPodByPrefixName(SPP_DEFAULT_NAMESPACE, "activemq-artemis-self-provisioning-plugin");
String logs = kubeClient.getLogsFromPod(pod);
return logs.contains("GET /plugin-manifest.json");
});
TestUtils.threadSleep(Constants.DURATION_10_SECONDS);
List<Event> events = kubeClient.getKubernetesClient().v1().events().inNamespace(SPP_DEFAULT_NAMESPACE).list().getItems();
Pod sppPod;
for (Event event : events) {
if (event.getReason().equals("FailedMount")) {
LOGGER.warn("[{}] Detected FailedMount, restarting spp-pod", SPP_DEFAULT_NAMESPACE);
sppPod = kubeClient.getFirstPodByPrefixName(SPP_DEFAULT_NAMESPACE, "activemq-artemis-self-provisioning-plugin");
kubeClient.restartPod(SPP_DEFAULT_NAMESPACE, sppPod, SPP_DEFAULT_NAMESPACE);
break;
}
}

Pod sppPod = kubeClient.getFirstPodByPrefixName(SPP_DEFAULT_NAMESPACE, "activemq-artemis-self-provisioning-plugin");
sppPod = kubeClient.getFirstPodByPrefixName(SPP_DEFAULT_NAMESPACE, "activemq-artemis-self-provisioning-plugin");
String podLogs = kubeClient.getLogsFromPod(sppPod);
if (podLogs.contains("SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:SSL alert number ")) {
LOGGER.info("[{}] Problem with deployed SPP pod - cert-mount-issues. Restarting pod.", SPP_DEFAULT_NAMESPACE);
Expand Down Expand Up @@ -128,7 +135,6 @@ private static void removePatch() {
LOGGER.info("[PATCH] Removing 'activemq-artemis-self-provisioning-plugin' from consoles.operator.openshift.io cluster");
// plugins=$(oc get consoles.operator.openshift.io cluster -o json | jq '.spec.plugins | map(select(. != "activemq-artemis-self-provisioning-plugin"))')
// oc patch consoles.operator.openshift.io cluster --type=merge --patch '{ "spec": { "plugins": $plugins } }'

String[] getPluginsCmd = {"/bin/bash", "-c",
"oc get consoles.operator.openshift.io cluster -o json | jq '.spec.plugins | map(select(. != \"activemq-artemis-self-provisioning-plugin\"))'"};
JSONArray jsonPlugins = new JSONArray(TestUtils.executeLocalCommand(getPluginsCmd).replaceAll("\"", "'"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.microsoft.playwright.BrowserContext;
import com.microsoft.playwright.BrowserType;
import com.microsoft.playwright.Download;
import com.microsoft.playwright.Locator;
import com.microsoft.playwright.Page;
import com.microsoft.playwright.Playwright;
import com.microsoft.playwright.junit.UsePlaywright;
Expand All @@ -32,6 +33,8 @@ public class BaseWebUITests extends AbstractSystemTests {
static Browser browser;
static BrowserContext context;
static Page page;
static Locator.ClickOptions clicker;
static Locator.FillOptions filler;

@BeforeAll
static void launchBrowser() {
Expand All @@ -43,6 +46,8 @@ static void launchBrowser() {
.setDownloadsPath(Paths.get(ResourceManager.getEnvironment().getTmpDirLocation()));
}
browser = playwright.chromium().launch(options);
clicker = new Locator.ClickOptions().setTimeout(5000);
filler = new Locator.FillOptions().setTimeout(5000);
}

@AfterAll
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import io.brokerqe.claire.KubernetesVersion;
import io.brokerqe.claire.ResourceManager;
import io.brokerqe.claire.TestUtils;
import io.brokerqe.claire.exception.ClaireRuntimeException;
import io.brokerqe.claire.junit.TestMinimumKubernetesVersion;
import io.brokerqe.claire.junit.TestOLMSupported;
import io.brokerqe.claire.plugins.ACSelfProvisioningPlugin;
Expand Down Expand Up @@ -72,14 +73,19 @@ void navigateWorkloadBrokers(Page page) {

void navigateWorkloadBrokers(Page page, String brokerName) {
LOGGER.info("[{}] Navigate to Workloads/Brokers screen", testNamespace);
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Workloads")).click();
try {
page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Brokers")).click(new Locator.ClickOptions().setTimeout(5000));
} catch (TimeoutError e) {
// probably workloads have been clicked twice (thus closed; so click again)
page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Workloads")).click();
page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Brokers")).click(new Locator.ClickOptions().setTimeout(5000));
Locator workloadsMenuButton = page.getByRole(AriaRole.BUTTON, new Page.GetByRoleOptions().setName("Workloads"));
List<String> menuContent = workloadsMenuButton.locator("..").getByRole(AriaRole.LIST).allInnerTexts();
if (menuContent.isEmpty()) {
workloadsMenuButton.click();
TestUtils.threadSleep(Constants.DURATION_1_SECOND);
menuContent = workloadsMenuButton.locator("..").getByRole(AriaRole.LIST).allInnerTexts();
}

if (!menuContent.get(0).contains("Brokers")) {
LOGGER.error("Workloads menu does not contain 'Brokers'! {}", menuContent);
throw new ClaireRuntimeException("Workloads menu does not contain Brokers! Deployment problem?");
}
page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName("Brokers")).click(new Locator.ClickOptions().setTimeout(5000));

if (brokerName != null) {
page.getByRole(AriaRole.LINK, new Page.GetByRoleOptions().setName(brokerName)).click();
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
<sundrio.version>0.200.0</sundrio.version>
<testcontainers.version>1.20.2</testcontainers.version>
<zip4j.version>2.11.5</zip4j.version>
<playwright.version>1.49.0</playwright.version>
<playwright.version>1.50.1</playwright.version>
<surefire-junit-platform.version>3.2.5</surefire-junit-platform.version>
<maven-dependency-plugin.version>3.8.0</maven-dependency-plugin.version>
</properties>
Expand Down

0 comments on commit 8ba763c

Please sign in to comment.