blob: ec55be4bd24bf9a2ae28b93f5c39ee9dc704b0ec [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2017 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributor:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.eclipse.linuxtools.docker.reddeer.core.ui.wizards;
import org.jboss.reddeer.common.wait.TimePeriod;
import org.jboss.reddeer.common.wait.WaitWhile;
import org.jboss.reddeer.core.condition.JobIsRunning;
import org.jboss.reddeer.core.matcher.WithTextMatcher;
import org.jboss.reddeer.jface.wizard.WizardPage;
import org.jboss.reddeer.swt.impl.button.CheckBox;
import org.jboss.reddeer.swt.impl.button.FinishButton;
import org.jboss.reddeer.swt.impl.button.OkButton;
import org.jboss.reddeer.swt.impl.button.PushButton;
import org.jboss.reddeer.swt.impl.button.RadioButton;
import org.jboss.reddeer.swt.impl.combo.DefaultCombo;
import org.jboss.reddeer.swt.impl.text.LabeledText;
/**
*
* @author jkopriva@redhat.com
*
*/
public class ImageRunResourceVolumesVariablesPage extends WizardPage {
public ImageRunResourceVolumesVariablesPage() {
super();
}
public void finish() {
new FinishButton().click();
new WaitWhile(new JobIsRunning(), TimePeriod.VERY_LONG);
}
public void addDataVolumeNoExternalMount(String containerPath) {
new PushButton(0, new WithTextMatcher("Add...")).click();
new LabeledText("Container path:").setText(containerPath);
new RadioButton("No external mount").click();
new OkButton().click();
}
public void addDataVolumeToHost(String containerPath, String path) {
addDataVolumeToHost(containerPath, path, false);
}
public void addDataVolumeToHost(String containerPath, String path, boolean readOnly) {
new PushButton(0, new WithTextMatcher("Add...")).click();
new LabeledText("Container path:").setText(containerPath);
new RadioButton("Mount a host directory or host file").click();
new LabeledText("Path:").setText(path);
new CheckBox("Read-only access").toggle(readOnly);
;
new OkButton().click();
}
public void addDataVolumeToContainer(String containerPath, String containerName) {
new PushButton(0, new WithTextMatcher("Add...")).click();
new LabeledText("Container path:").setText(containerPath);
new RadioButton("Mount a data volume container").click();
new DefaultCombo("Container").setText(containerName);
new OkButton().click();
}
public void addEnviromentVariable(String name, String value) {
new PushButton(1, new WithTextMatcher("Add...")).click();
new LabeledText("Name:").setText(name);
new LabeledText("Value:").setText(value);
new OkButton().click();
}
public void addLabel(String name, String value) {
new PushButton(2, new WithTextMatcher("Add...")).click();
new LabeledText("Name:").setText(name);
new LabeledText("Value:").setText(value);
new OkButton().click();
}
public void setResourceLimitation(String CPU, String memoryLimit) {
new CheckBox("Enable resource limitations").click();
switch (CPU) {
case "Low":
new RadioButton("Low").click();
break;
case "Medium":
new RadioButton("Medium").click();
break;
case "High":
new RadioButton("High").click();
break;
default:
new RadioButton("Medium").click();
}
new LabeledText("Memory limit:").setText(memoryLimit);
}
public void setEntrypoint(String Entrypoint) {
new LabeledText("Entrypoint:").setText(Entrypoint);
}
public void setCommand(String command) {
new LabeledText("Command:").setText(command);
}
public void setPublishAllExposedPorts() {
new CheckBox("Publish all exposed ports to random ports on the host interfaces").click();
}
public void setKeepSTDINOpen() {
new CheckBox("Keep STDIN open to Console even if not attached (-i)").click();
}
public void setAllocatePseudoTTY() {
new CheckBox("Allocate pseudo-TTY from Console (-t)").click();
}
public void setAutomaticalyRemove() {
new CheckBox("Automatically remove the container when it exits (--rm)").click();
}
}