Author: adietish
Date: 2011-09-09 07:55:57 -0400 (Fri, 09 Sep 2011)
New Revision: 34598
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftService.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKey.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractJsonMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ApplicationRequestJsonMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/DomainRequestJsonMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ListCartridgesRequestJsonMarshaller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/OpenshiftService.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/httpclient/UrlConnectionHttpClient.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/AbstractDomainRequest.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/ChangeCreateDomainRequest.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/CreateDomainRequest.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/internal/test/core/DomainIntegrationTest.java
Log:
[JBIDE-9510] implementing create domain
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftJsonConstants.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -30,5 +30,6 @@
public static final String PROPERTY_CARTS = "carts";
public static final String PROPERTY_NAMESPACE = "namespace";
public static final String PROPERTY_ALTER = "alter";
+ public static final String PROPERTY_SSH = "ssh";
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftService.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftService.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/IOpenshiftService.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -25,7 +25,10 @@
public Application destroyApplication(String name, Cartridge cartridge) throws
OpenshiftException;
- public Domain createDomain(String name, String sshKey) throws OpenshiftException;
+ public Domain createDomain(String name, SSHKey keyPair) throws OpenshiftException;
- public Domain createDomain(String name, SSHKey keyPair) throws OpenshiftException;
+ public SSHKey createKey(String passPhrase, String privateKeyPath, String publicKeyPath)
throws OpenshiftException;
+
+ public SSHKey loadKey(String passPhrase, String privateKeyPath, String publicKeyPath)
throws OpenshiftException;
+
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKey.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKey.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKey.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -59,6 +59,14 @@
}
}
+ /**
+ * Loads existing private and public ssh key from the given paths.
+ *
+ * @param privateKeyPath the path to the private key
+ * @param publicKeyPath the path to the public key
+ * @return
+ * @throws OpenshiftException
+ */
public static SSHKey load(String privateKeyPath, String publicKeyPath)
throws OpenshiftException {
try {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractJsonMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractJsonMarshaller.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/AbstractJsonMarshaller.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -12,6 +12,7 @@
import org.jboss.dmr.ModelNode;
import org.jboss.ide.eclipse.as.openshift.core.IOpenshiftJsonConstants;
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import
org.jboss.ide.eclipse.as.openshift.internal.core.request.AbstractOpenshiftRequest;
/**
@@ -19,15 +20,41 @@
*/
public abstract class AbstractJsonMarshaller<REQUEST extends
AbstractOpenshiftRequest> implements IOpenshiftMarshaller<REQUEST> {
- public String marshall(REQUEST request) {
+ public String marshall(REQUEST request) throws OpenshiftException {
ModelNode node = new ModelNode();
- node.get(IOpenshiftJsonConstants.PROPERTY_RHLOGIN).set(request.getRhLogin());
- node.get(IOpenshiftJsonConstants.PROPERTY_DEBUG).set(String.valueOf(request.isDebug()));
+ setStringProperty(IOpenshiftJsonConstants.PROPERTY_RHLOGIN, request.getRhLogin(),
node);
+ setStringProperty(IOpenshiftJsonConstants.PROPERTY_DEBUG, request.isDebug(), node);
setJsonDataProperties(node, request);
return node.toJSONString(true);
}
- protected void setJsonDataProperties(ModelNode node, REQUEST request) {
+ protected void setJsonDataProperties(ModelNode node, REQUEST request) throws
OpenshiftException {
// empty default implementation
}
+
+ protected void setStringProperty(String propertyName, Object value, ModelNode node) {
+ if (isSet(value)) {
+ if (value instanceof String) {
+ setStringProperty((String) value, propertyName, node);
+ }
+ }
+ }
+
+ protected void setStringProperty(String propertyName, String value, ModelNode node) {
+ if (isSet(value)) {
+ return;
+ }
+
+ node.get(propertyName).set(value);
+ }
+
+ protected boolean isSet(String value) {
+ return value != null
+ && value.length() > 0;
+ }
+
+ protected boolean isSet(Object value) {
+ return value != null;
+ }
+
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ApplicationRequestJsonMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ApplicationRequestJsonMarshaller.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ApplicationRequestJsonMarshaller.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -23,9 +23,9 @@
@Override
protected void setJsonDataProperties(ModelNode node, ApplicationRequest request) {
- node.get(IOpenshiftJsonConstants.PROPERTY_CARTRIDGE).set(getCartridgeName(request.getCartridge()));
- node.get(IOpenshiftJsonConstants.PROPERTY_ACTION).set(getActionName(request.getAction()));
- node.get(IOpenshiftJsonConstants.PROPERTY_APP_NAME).set(request.getName());
+ setStringProperty(IOpenshiftJsonConstants.PROPERTY_CARTRIDGE,
getCartridgeName(request.getCartridge()), node);
+ setStringProperty(IOpenshiftJsonConstants.PROPERTY_ACTION,
getActionName(request.getAction()), node);
+ setStringProperty(IOpenshiftJsonConstants.PROPERTY_APP_NAME, request.getName(), node);
}
private String getCartridgeName(Cartridge cartridge) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/DomainRequestJsonMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/DomainRequestJsonMarshaller.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/DomainRequestJsonMarshaller.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -12,6 +12,7 @@
import org.jboss.dmr.ModelNode;
import org.jboss.ide.eclipse.as.openshift.core.IOpenshiftJsonConstants;
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
import org.jboss.ide.eclipse.as.openshift.internal.core.request.AbstractDomainRequest;
/**
@@ -20,8 +21,9 @@
public class DomainRequestJsonMarshaller extends
AbstractJsonMarshaller<AbstractDomainRequest> {
@Override
- protected void setJsonDataProperties(ModelNode node, AbstractDomainRequest request) {
+ protected void setJsonDataProperties(ModelNode node, AbstractDomainRequest request)
throws OpenshiftException {
node.get(IOpenshiftJsonConstants.PROPERTY_NAMESPACE).set(request.getName());
- node.get(IOpenshiftJsonConstants.PROPERTY_ALTER).set(request.isAlter());
+ node.get(IOpenshiftJsonConstants.PROPERTY_ALTER).set(String.valueOf(request.isAlter()));
+ node.get(IOpenshiftJsonConstants.PROPERTY_SSH).set(request.getSshKey().getPublicKeyContent());
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/IOpenshiftMarshaller.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -10,11 +10,13 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.core.internal.marshalling;
+import org.jboss.ide.eclipse.as.openshift.core.OpenshiftException;
+
/**
* @author André Dietisheim
*/
public interface IOpenshiftMarshaller<REQUEST extends IOpenshiftRequest> {
- public String marshall(REQUEST object);
+ public String marshall(REQUEST object) throws OpenshiftException;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ListCartridgesRequestJsonMarshaller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ListCartridgesRequestJsonMarshaller.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/internal/marshalling/ListCartridgesRequestJsonMarshaller.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -21,6 +21,6 @@
@Override
protected void setJsonDataProperties(ModelNode node, ListCartridgesRequest request) {
- node.get(IOpenshiftJsonConstants.PROPERTY_CART_TYPE).set(request.getCartType());
+ setStringProperty(IOpenshiftJsonConstants.PROPERTY_CART_TYPE, request.getCartType(),
node);
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/OpenshiftService.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/OpenshiftService.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/OpenshiftService.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -97,12 +97,18 @@
}
}
- public Domain createDomain(String name, SSHKey sshKey) throws OpenshiftException {
- return createDomain(name, sshKey.getPublicKeyContent());
+ @Override
+ public SSHKey createKey(String passPhrase, String privateKeyPath, String publicKeyPath)
throws OpenshiftException {
+ return SSHKey.create(passPhrase, privateKeyPath, publicKeyPath);
}
+
+ @Override
+ public SSHKey loadKey(String passPhrase, String privateKeyPath, String publicKeyPath)
throws OpenshiftException {
+ return SSHKey.load(privateKeyPath, publicKeyPath);
+ }
@Override
- public Domain createDomain(String name, String sshKey) throws OpenshiftException {
+ public Domain createDomain(String name, SSHKey sshKey) throws OpenshiftException {
return requestDomainAction(new CreateDomainRequest(name, sshKey, username, true));
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/httpclient/UrlConnectionHttpClient.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/httpclient/UrlConnectionHttpClient.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/httpclient/UrlConnectionHttpClient.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -31,7 +31,7 @@
throw new NotFoundException(
MessageFormat.format("Could not find resource {0}", url.toString()), e);
} catch (IOException e) {
- throw getException(e, connection);
+ throw createException(e, connection);
} finally {
if (connection != null) {
connection.disconnect();
@@ -39,7 +39,7 @@
}
}
- private HttpClientException getException(IOException ioe, HttpURLConnection connection)
{
+ private HttpClientException createException(IOException ioe, HttpURLConnection
connection) {
try {
int responseCode = connection.getResponseCode();
String errorMessage = StreamUtils.readToString(connection.getErrorStream());
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/AbstractDomainRequest.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/AbstractDomainRequest.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/AbstractDomainRequest.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -10,20 +10,22 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.internal.core.request;
+import org.jboss.ide.eclipse.as.openshift.core.SSHKey;
+
/**
* @author André Dietisheim
*/
public abstract class AbstractDomainRequest extends AbstractOpenshiftRequest {
private String name;
- private String sshKey;
+ private SSHKey sshKey;
- public AbstractDomainRequest(String name, String sshKey, ApplicationAction action,
String username) {
+ public AbstractDomainRequest(String name, SSHKey sshKey, ApplicationAction action,
String username) {
this(name, sshKey, username, false);
}
- public AbstractDomainRequest(String name, String sshKey, String username, boolean debug)
{
+ public AbstractDomainRequest(String name, SSHKey sshKey, String username, boolean debug)
{
super(username, debug);
this.name = name;
this.sshKey = sshKey;
@@ -33,7 +35,7 @@
return name;
}
- public String getSshKey() {
+ public SSHKey getSshKey() {
return sshKey;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/ChangeCreateDomainRequest.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/ChangeCreateDomainRequest.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/ChangeCreateDomainRequest.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -10,17 +10,19 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.internal.core.request;
+import org.jboss.ide.eclipse.as.openshift.core.SSHKey;
+
/**
* @author André Dietisheim
*/
public class ChangeCreateDomainRequest extends AbstractDomainRequest {
- public ChangeCreateDomainRequest(String name, String namespace, String sshKey,
ApplicationAction action, String username) {
+ public ChangeCreateDomainRequest(String name, String namespace, SSHKey sshKey,
ApplicationAction action, String username) {
this(name, namespace, sshKey, username, false);
}
- public ChangeCreateDomainRequest(String name, String namespace, String sshKey, String
username, boolean debug) {
+ public ChangeCreateDomainRequest(String name, String namespace, SSHKey sshKey, String
username, boolean debug) {
super(name, sshKey, username, debug);
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/CreateDomainRequest.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/CreateDomainRequest.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/internal/core/request/CreateDomainRequest.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -10,17 +10,19 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.internal.core.request;
+import org.jboss.ide.eclipse.as.openshift.core.SSHKey;
+
/**
* @author André Dietisheim
*/
public class CreateDomainRequest extends AbstractDomainRequest {
- public CreateDomainRequest(String name, String sshKey, ApplicationAction action, String
username) {
+ public CreateDomainRequest(String name, SSHKey sshKey, ApplicationAction action, String
username) {
this(name, sshKey, username, false);
}
- public CreateDomainRequest(String name, String sshKey, String username, boolean debug)
{
+ public CreateDomainRequest(String name, SSHKey sshKey, String username, boolean debug)
{
super(name, sshKey, username, debug);
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/internal/test/core/DomainIntegrationTest.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/internal/test/core/DomainIntegrationTest.java 2011-09-09
07:48:54 UTC (rev 34597)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/internal/test/core/DomainIntegrationTest.java 2011-09-09
11:55:57 UTC (rev 34598)
@@ -12,10 +12,12 @@
import static org.junit.Assert.assertNotNull;
+import java.io.File;
+
import org.jboss.ide.eclipse.as.openshift.core.Domain;
+import org.jboss.ide.eclipse.as.openshift.core.SSHKey;
import org.jboss.ide.eclipse.as.openshift.internal.core.OpenshiftService;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
public class DomainIntegrationTest {
@@ -30,15 +32,17 @@
this.openshiftService = new OpenshiftService(USERNAME, PASSWORD);
}
- @Ignore
@Test
public void canCreateDomain() throws Exception {
- String name = createRandomDomainName();
- Domain domain = openshiftService.createDomain(name, (String) null);
+ String domainName = createRandomString();
+ File publicKey = File.createTempFile(createRandomString(), null);
+ File privateKey = File.createTempFile(createRandomString(), null);
+ SSHKey key = openshiftService.createKey("12345",
privateKey.getAbsolutePath(), publicKey.getAbsolutePath());
+ Domain domain = openshiftService.createDomain(domainName, key);
assertNotNull(domain);
}
- private String createRandomDomainName() {
+ private String createRandomString() {
return String.valueOf(System.currentTimeMillis());
}
}