Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 34 additions & 9 deletions src/main/java/com/openshift/client/IOpenShiftResource.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
package com.openshift.client;


import java.util.Map;

public interface IOpenShiftResource {

/**
* Returns
* <code>true</true> if there is log about the creation of this resource.
* Creation logs are only available at creation time. So resources that were retrieved
* while they already existed wont have a creation log.
*
* @return true if there's cretion log for this resource
*/
public boolean hasCreationLog();

/**
* Returns the log that was created when the resource was created.
*
Expand All @@ -12,17 +22,32 @@ public interface IOpenShiftResource {
public String getCreationLog();

/**
* Returns
* <code>true</true> if there is log about the creation of this resource.
* Creation logs are only available at creation time. So resources that were retrieved
* while they already existed wont have a creation log.
* Returns all the (creation log) messages. These messages only exist at
* creation time. Existing cartridges, that were added in a prior session
* dont have any messages any more.
*
* @return true if there's cretion log for this resource
* @return all messages by field
*
* @see #getCreationLog()
*/
public boolean hasCreationLog();
public Map<String, Message> getMessages();

/**
* Refresh the resource and its list of children resources that were previously loaded
* Returns the message of the given field type. These messages only exist
* at creation time. See {@link #getCreationLog()} for further details.
*
* @param field the field type
* @return
*
* @see Message#FIELD_APPINFO
* @see Message#FIELD_RESULT
*/
public Message getMessage(String field);

/**
* Refresh the resource and its list of children resources that were
* previously loaded
*
* @throws OpenShiftException
*/
public void refresh() throws OpenShiftException;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package com.openshift.internal.client.response;
package com.openshift.client;

import java.text.MessageFormat;

Expand All @@ -20,6 +20,9 @@
*/
public class Message {

public static final String FIELD_RESULT = "result";
public static final String FIELD_APPINFO = "appinfo";

public enum Severity {

INFO, ERROR, UNKNOWN;
Expand Down Expand Up @@ -48,7 +51,7 @@ public Message(String text, String field, String severity, int exitCode) {
this.exitCode = exitCode;
}

public String getParameter() {
public String getField() {
return field;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@
******************************************************************************/
package com.openshift.client;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.openshift.internal.client.response.Message;
import com.openshift.internal.client.response.ResourceDTOFactory;
import com.openshift.internal.client.response.RestResponse;

Expand Down Expand Up @@ -52,7 +51,7 @@ public RestResponse getRestResponse() throws OpenShiftException {
/**
* @return the server response messages after converting the response into a {@link RestResponse}. If the unmarshalling fails, the returned list is <code>null</code>.
*/
public List<Message> getRestResponseMessages() {
public Map<String, Message> getRestResponseMessages() {
if (response == null) {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@
******************************************************************************/
package com.openshift.internal.client;

import java.util.List;
import java.util.Map;

import com.openshift.client.IOpenShiftResource;
import com.openshift.client.Message;
import com.openshift.client.OpenShiftException;
import com.openshift.client.OpenShiftRequestException;
import com.openshift.internal.client.response.Link;
import com.openshift.internal.client.response.Message;
import com.openshift.internal.client.response.RestResponse;

/**
Expand All @@ -34,7 +33,7 @@ public abstract class AbstractOpenShiftResource implements IOpenShiftResource {
/** The service. */
private final IRestService service;

private List<Message> creationLog;
private Map<String, Message> messagesByField;

/**
* Instantiates a new abstract open shift resource.
Expand All @@ -54,10 +53,10 @@ public AbstractOpenShiftResource(final IRestService service) {
* @param links
* the links
*/
public AbstractOpenShiftResource(final IRestService service, final Map<String, Link> links, final List<Message> creationLog) {
public AbstractOpenShiftResource(final IRestService service, final Map<String, Link> links, final Map<String, Message> messages) {
this.service = service;
this.links = links;
this.creationLog = creationLog;
this.messagesByField = messages;
}

/**
Expand Down Expand Up @@ -132,20 +131,30 @@ protected <DTO> DTO execute(ServiceParameter... parameters) throws OpenShiftExce
}
}

public boolean hasCreationLog() {
return messagesByField != null
&& messagesByField.size() > 0;
}

public String getCreationLog() {
if (!hasCreationLog()) {
return null;
}
StringBuilder builder = new StringBuilder();
for (Message message : creationLog) {
for (Message message : messagesByField.values()) {
builder.append(message.getText());
}
return builder.toString();
}

public boolean hasCreationLog() {
return creationLog != null
&& creationLog.size() > 0;
public Map<String, Message> getMessages() {
return messagesByField;
}

public Message getMessage(String field) {
if (messagesByField == null) {
return null;
}
return messagesByField.get(field);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import com.openshift.client.IGearGroup;
import com.openshift.client.IGearProfile;
import com.openshift.client.IOpenShiftConnection;
import com.openshift.client.Message;
import com.openshift.client.OpenShiftException;
import com.openshift.client.OpenShiftSSHOperationException;
import com.openshift.client.cartridge.IEmbeddableCartridge;
Expand All @@ -53,7 +54,6 @@
import com.openshift.internal.client.response.CartridgeResourceDTO;
import com.openshift.internal.client.response.GearGroupResourceDTO;
import com.openshift.internal.client.response.Link;
import com.openshift.internal.client.response.Message;
import com.openshift.internal.client.ssh.ApplicationPortForwarding;
import com.openshift.internal.client.utils.Assert;
import com.openshift.internal.client.utils.CollectionUtils;
Expand Down Expand Up @@ -146,7 +146,7 @@ public class ApplicationResource extends AbstractOpenShiftResource implements IA
* @param domain
*/
protected ApplicationResource(ApplicationResourceDTO dto, IStandaloneCartridge cartridge, DomainResource domain) {
this(dto.getName(), dto.getUuid(), dto.getCreationTime(), dto.getCreationLog(), dto.getApplicationUrl(), dto
this(dto.getName(), dto.getUuid(), dto.getCreationTime(), dto.getMessages(), dto.getApplicationUrl(), dto
.getGitUrl(), dto.getGearProfile(), dto.getGearGroups(), dto.getApplicationScale(), cartridge, dto
.getAliases(), dto.getEmbeddedCartridgeInfos(), dto.getLinks(), domain);
}
Expand Down Expand Up @@ -177,7 +177,7 @@ protected ApplicationResource(ApplicationResourceDTO dto, IStandaloneCartridge c
* @throws DatatypeConfigurationException
*/
protected ApplicationResource(final String name, final String uuid, final String creationTime,
final List<Message> creationLog, final String applicationUrl, final String gitUrl,
final Map<String, Message> creationLog, final String applicationUrl, final String gitUrl,
final IGearProfile gearProfile, final List<IGearGroup> gearGroups, final ApplicationScale scale,
final IStandaloneCartridge cartridge, final List<String> aliases, final Map<String, String> embeddedCartridgesInfos,
final Map<String, Link> links, final DomainResource domain) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
import com.openshift.client.IDomain;
import com.openshift.client.IGearProfile;
import com.openshift.client.IUser;
import com.openshift.client.Message;
import com.openshift.client.OpenShiftException;
import com.openshift.client.cartridge.IStandaloneCartridge;
import com.openshift.internal.client.response.ApplicationResourceDTO;
import com.openshift.internal.client.response.DomainResourceDTO;
import com.openshift.internal.client.response.Link;
import com.openshift.internal.client.response.LinkParameter;
import com.openshift.internal.client.response.Message;
import com.openshift.internal.client.utils.Assert;
import com.openshift.internal.client.utils.CollectionUtils;
import com.openshift.internal.client.utils.IOpenShiftJsonConstants;
Expand All @@ -50,16 +50,16 @@ public class DomainResource extends AbstractOpenShiftResource implements IDomain
private List<IApplication> applications = null;

protected DomainResource(final String namespace, final String suffix, final Map<String, Link> links,
final List<Message> creationLog,
final Map<String, Message> messages,
final APIResource api) {
super(api.getService(), links, creationLog);
super(api.getService(), links, messages);
this.id = namespace;
this.suffix = suffix;
this.connectionResource = api;
}

protected DomainResource(DomainResourceDTO domainDTO, final APIResource api) {
this(domainDTO.getId(), domainDTO.getSuffix(), domainDTO.getLinks(), domainDTO.getCreationLog(), api);
this(domainDTO.getId(), domainDTO.getSuffix(), domainDTO.getLinks(), domainDTO.getMessages(), api);
}

public String getId() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@
******************************************************************************/
package com.openshift.internal.client;

import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import com.openshift.client.IApplication;
import com.openshift.client.Message;
import com.openshift.client.OpenShiftException;
import com.openshift.client.cartridge.EmbeddableCartridge;
import com.openshift.client.cartridge.IEmbeddableCartridge;
import com.openshift.client.cartridge.IEmbeddedCartridge;
import com.openshift.internal.client.response.CartridgeResourceDTO;
import com.openshift.internal.client.response.Link;
import com.openshift.internal.client.response.Message;

/**
* A cartridge that may be embedded into an application. This class is no enum
Expand All @@ -43,19 +43,19 @@ public class EmbeddedCartridgeResource extends AbstractOpenShiftResource impleme
private final ApplicationResource application;

protected EmbeddedCartridgeResource(String info, final CartridgeResourceDTO dto, final ApplicationResource application) {
this(dto.getName(), dto.getDisplayName(), dto.getDescription(), dto.getType(), info, dto.getLinks(), dto.getCreationLog(), application);
this(dto.getName(), dto.getDisplayName(), dto.getDescription(), dto.getType(), info, dto.getLinks(), dto.getMessages(), application);
}

protected EmbeddedCartridgeResource(final String name, final String displayName, final String description, final CartridgeType type, String info, final Map<String, Link> links,
final List<Message> creationLog, final ApplicationResource application) {
super(application.getService(), links, creationLog);
final Map<String, Message> messages, final ApplicationResource application) {
super(application.getService(), links, messages);
this.name = name;
this.displayName = displayName;
this.description = description;
this.type = type;
// TODO: fix this workaround once
// https://bugzilla.redhat.com/show_bug.cgi?id=812046 is fixed
this.url = extractUrl(info, creationLog);
this.url = extractUrl(info, messages);
this.application = application;
}

Expand All @@ -79,7 +79,7 @@ public IApplication getApplication() {
return application;
}

private String extractUrl(String info, List<Message> messages) {
private String extractUrl(String info, Map<String, Message> messages) {
if (info != null) {
return extractUrl(info);
} else {
Expand All @@ -100,11 +100,11 @@ private String extractUrl(String string) {
return matcher.group(1);
}

private String extractUrl(List<Message> messages) {
private String extractUrl(Map<String, Message> messages) {
if (messages == null) {
return null;
}
for (Message message : messages) {
for (Message message : messages.values()) {
String url = extractUrl(message.getText());
if (url != null) {
return url;
Expand Down
8 changes: 2 additions & 6 deletions src/main/java/com/openshift/internal/client/IRestService.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,11 @@
******************************************************************************/
package com.openshift.internal.client;

import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.util.Map;

import com.openshift.client.HttpMethod;
import com.openshift.client.OpenShiftException;
import com.openshift.internal.client.httpclient.HttpClientException;
import com.openshift.internal.client.response.Link;
import com.openshift.internal.client.response.RestResponse;

Expand All @@ -26,15 +23,14 @@
*/
public interface IRestService {

public static final String SERVICE_VERSION = "1.2";

public abstract RestResponse request(Link link)
throws OpenShiftException, SocketTimeoutException;

public RestResponse request(Link link, ServiceParameter... serviceParameters)
throws OpenShiftException;

public String request(Link link, String acceptedMediaType, ServiceParameter... serviceParameters)
throws MalformedURLException, HttpClientException, SocketTimeoutException, OpenShiftException, UnsupportedEncodingException;

public abstract RestResponse request(Link link, Map<String, Object> parameters)
throws OpenShiftException;

Expand Down
Loading