Author: adietish
Date: 2010-11-18 09:22:24 -0500 (Thu, 18 Nov 2010)
New Revision: 26707
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/DeltaCloudRequest.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java
Log:
[JBIDE-7625] corrected autentication realm to always use the url that is used to request
(no mix of IP and hostname any more)
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2010-11-18 14:10:06
UTC (rev 26706)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/ChangeLog 2010-11-18 14:22:24
UTC (rev 26707)
@@ -1,5 +1,14 @@
2010-11-18 André Dietisheim <adietish(a)redhat.com>
+ * src/org/jboss/tools/deltacloud/core/client/request/DeltaCloudRequest.java (getUrl):
+ * src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
(getUrl):
+ [JBIDE-7593] need to return URL (not String)
+ * src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
+ (addCredentials):
+ [JBIDE-7593] need to use URL (not String)
+ * src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
+ (sendRequest):
+ [JBIDE-7593] need to add credentials using the url that is effectively used in the
request (which may be either the baseURL or the url in the action)
* src/org/jboss/tools/deltacloud/core/DeltaCloud.java (DeltaCloud):
[JBIDE-7625] store password in the constructor
(editCloud):
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java 2010-11-18
14:10:06 UTC (rev 26706)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/DeltaCloudClientImpl.java 2010-11-18
14:22:24 UTC (rev 26707)
@@ -20,6 +20,7 @@
import java.io.StringWriter;
import java.net.MalformedURLException;
import java.net.URL;
+import java.net.UnknownHostException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Iterator;
@@ -52,8 +53,8 @@
import org.jboss.tools.deltacloud.core.client.request.DeltaCloudRequest;
import org.jboss.tools.deltacloud.core.client.request.DeltaCloudRequest.HttpMethod;
import org.jboss.tools.deltacloud.core.client.request.ListHardwareProfileRequest;
+import org.jboss.tools.deltacloud.core.client.request.ListHardwareProfilesRequest;
import org.jboss.tools.deltacloud.core.client.request.ListImageRequest;
-import org.jboss.tools.deltacloud.core.client.request.ListHardwareProfilesRequest;
import org.jboss.tools.deltacloud.core.client.request.ListImagesRequest;
import org.jboss.tools.deltacloud.core.client.request.ListInstanceRequest;
import org.jboss.tools.deltacloud.core.client.request.ListInstancesRequest;
@@ -99,10 +100,11 @@
}
protected String sendRequest(DeltaCloudRequest deltaCloudRequest) throws
DeltaCloudClientException {
- DefaultHttpClient httpClient = addCredentials(new DefaultHttpClient());
- logger.debug("Sending Request to: " + deltaCloudRequest.getUrl());
-
+ DefaultHttpClient httpClient = new DefaultHttpClient();
try {
+ URL url = deltaCloudRequest.getUrl();
+ addCredentials(url, httpClient, username, password);
+ logger.debug("Sending Request to: " + url);
HttpUriRequest request = createRequest(deltaCloudRequest);
HttpResponse httpResponse = httpClient.execute(request);
throwOnHttpErrors(deltaCloudRequest.getUrl(), httpResponse);
@@ -118,7 +120,7 @@
}
}
- private void throwOnHttpErrors(String requestUrl, HttpResponse httpResponse) throws
DeltaCloudClientException {
+ private void throwOnHttpErrors(URL requestUrl, HttpResponse httpResponse) throws
DeltaCloudClientException {
int statusCode = httpResponse.getStatusLine().getStatusCode();
if (HttpStatusCode.OK.isStatus(statusCode)) {
return;
@@ -155,10 +157,11 @@
* @param requestUrl
* the requested url
* @return the request instance
+ * @throws MalformedURLException
*/
- protected HttpUriRequest createRequest(DeltaCloudRequest deltaCloudRequest) {
+ protected HttpUriRequest createRequest(DeltaCloudRequest deltaCloudRequest) throws
MalformedURLException {
HttpUriRequest request = null;
- String url = deltaCloudRequest.getUrl();
+ String url = deltaCloudRequest.getUrl().toString();
HttpMethod httpMethod = deltaCloudRequest.getHttpMethod();
switch (httpMethod) {
case POST:
@@ -181,11 +184,12 @@
* @param httpClient
* the http client
* @return the default http client
+ * @throws UnknownHostException
*/
- private DefaultHttpClient addCredentials(DefaultHttpClient httpClient) {
+ private DefaultHttpClient addCredentials(URL url, DefaultHttpClient httpClient, String
username, String password) throws UnknownHostException {
if (username != null && password != null) {
httpClient.getCredentialsProvider().setCredentials(
- new AuthScope(baseUrl.getHost(), baseUrl.getPort()),
+ new AuthScope(url.getHost(), url.getPort()),
new UsernamePasswordCredentials(username, password));
}
return httpClient;
@@ -612,8 +616,8 @@
public boolean performInstanceAction(InstanceAction action) throws
DeltaCloudClientException {
if (action != null) {
try {
- String response = sendRequest(new PerformInstanceActionRequest(
- new URL(action.getUrl()),
+ String response = sendRequest(
+ new PerformInstanceActionRequest(new URL(action.getUrl()),
action.getMethod()));
if (!InstanceAction.DESTROY.equals(action.getName())) {
updateInstance(response, action.getInstance());
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java 2010-11-18
14:10:06 UTC (rev 26706)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/AbstractDeltaCloudRequest.java 2010-11-18
14:22:24 UTC (rev 26707)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;
+import java.net.MalformedURLException;
import java.net.URL;
import org.jboss.tools.deltacloud.core.client.utils.UrlBuilder;
@@ -17,7 +18,7 @@
public abstract class AbstractDeltaCloudRequest implements DeltaCloudRequest {
- private String url;
+ private URL url;
private HttpMethod httpMethod;
private UrlBuilder urlBuilder;
@@ -32,9 +33,9 @@
return new UrlBuilder(baseURL).path(API_PATH_SEGMENT);
}
- public String getUrl() {
+ public URL getUrl() throws MalformedURLException {
if (url == null) {
- this.url = doCreateUrl(urlBuilder);
+ this.url = new URL(doCreateUrl(urlBuilder));
}
return url;
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/DeltaCloudRequest.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/DeltaCloudRequest.java 2010-11-18
14:10:06 UTC (rev 26706)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/request/DeltaCloudRequest.java 2010-11-18
14:22:24 UTC (rev 26707)
@@ -10,6 +10,9 @@
******************************************************************************/
package org.jboss.tools.deltacloud.core.client.request;
+import java.net.MalformedURLException;
+import java.net.URL;
+
public interface DeltaCloudRequest {
public static final char PATH_SEPARATOR = '/';
@@ -20,7 +23,7 @@
GET, POST, PUT, DELETE, HEAD;
}
- public String getUrl();
+ public URL getUrl() throws MalformedURLException;
public HttpMethod getHttpMethod();
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java 2010-11-18
14:10:06 UTC (rev 26706)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/InstanceView.java 2010-11-18
14:22:24 UTC (rev 26707)
@@ -80,6 +80,10 @@
@Override
public void modifyText(ModifyEvent e) {
int index = cloudSelector.getSelectionIndex();
+ if (index < 0) {
+ return;
+ }
+
if (currCloud != null) {
currCloud.removeInstanceListListener(parentView);
}
@@ -311,7 +315,9 @@
public void listChanged(DeltaCloud cloud, final DeltaCloudInstance[] instances) {
// Run following under Display thread since this can be
// triggered by a non-display thread notifying listeners.
- if (cloud.getName().equals(currCloud.getName())) {
+ if (cloud != null
+ && currCloud != null
+ && cloud.getName().equals(currCloud.getName())) {
Display.getDefault().syncExec(new Runnable() {
@Override
public void run() {