Skip to content

Commit 2f75dd1

Browse files
committed
Add improvement to supported modes
1 parent ebe0897 commit 2f75dd1

File tree

6 files changed

+57
-9
lines changed

6 files changed

+57
-9
lines changed

components/apimgt/org.wso2.carbon.apimgt.api/src/main/java/org/wso2/carbon/apimgt/api/model/Environment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class Environment implements Serializable {
5151
private String displayName;
5252
private String description;
5353
private boolean isReadOnly;
54-
private String mode = GatewayMode.READ_WRITE.getMode();
54+
private String mode = GatewayMode.WRITE_ONLY.getMode();
5555
private int apiDiscoveryScheduledWindow = 60;
5656
private List<VHost> vhosts = new ArrayList<>();
5757
private String provider;

components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/gen/java/org/wso2/carbon/apimgt/rest/api/admin/v1/dto/EnvironmentDTO.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public static ModeEnum fromValue(String v) {
6666
return null;
6767
}
6868
}
69-
private ModeEnum mode = ModeEnum.READ_WRITE;
69+
private ModeEnum mode = ModeEnum.WRITE_ONLY;
7070
private Integer apiDiscoveryScheduledWindow = 60;
7171
private List<VHostDTO> vhosts = new ArrayList<VHostDTO>();
7272
private List<GatewayEnvironmentProtocolURIDTO> endpointURIs = new ArrayList<GatewayEnvironmentProtocolURIDTO>();

components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/gen/java/org/wso2/carbon/apimgt/rest/api/admin/v1/dto/SettingsGatewayConfigurationDTO.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class SettingsGatewayConfigurationDTO {
2525

2626
private String type = null;
2727
private String displayName = null;
28+
private List<String> supportedModes = new ArrayList<String>();
2829
private List<GatewayConfigurationDTO> configurations = new ArrayList<GatewayConfigurationDTO>();
2930
private String defaultHostnameTemplate = null;
3031

@@ -62,6 +63,23 @@ public void setDisplayName(String displayName) {
6263
this.displayName = displayName;
6364
}
6465

66+
/**
67+
**/
68+
public SettingsGatewayConfigurationDTO supportedModes(List<String> supportedModes) {
69+
this.supportedModes = supportedModes;
70+
return this;
71+
}
72+
73+
74+
@ApiModelProperty(value = "")
75+
@JsonProperty("supportedModes")
76+
public List<String> getSupportedModes() {
77+
return supportedModes;
78+
}
79+
public void setSupportedModes(List<String> supportedModes) {
80+
this.supportedModes = supportedModes;
81+
}
82+
6583
/**
6684
**/
6785
public SettingsGatewayConfigurationDTO configurations(List<GatewayConfigurationDTO> configurations) {
@@ -109,13 +127,14 @@ public boolean equals(java.lang.Object o) {
109127
SettingsGatewayConfigurationDTO settingsGatewayConfiguration = (SettingsGatewayConfigurationDTO) o;
110128
return Objects.equals(type, settingsGatewayConfiguration.type) &&
111129
Objects.equals(displayName, settingsGatewayConfiguration.displayName) &&
130+
Objects.equals(supportedModes, settingsGatewayConfiguration.supportedModes) &&
112131
Objects.equals(configurations, settingsGatewayConfiguration.configurations) &&
113132
Objects.equals(defaultHostnameTemplate, settingsGatewayConfiguration.defaultHostnameTemplate);
114133
}
115134

116135
@Override
117136
public int hashCode() {
118-
return Objects.hash(type, displayName, configurations, defaultHostnameTemplate);
137+
return Objects.hash(type, displayName, supportedModes, configurations, defaultHostnameTemplate);
119138
}
120139

121140
@Override
@@ -125,6 +144,7 @@ public String toString() {
125144

126145
sb.append(" type: ").append(toIndentedString(type)).append("\n");
127146
sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n");
147+
sb.append(" supportedModes: ").append(toIndentedString(supportedModes)).append("\n");
128148
sb.append(" configurations: ").append(toIndentedString(configurations)).append("\n");
129149
sb.append(" defaultHostnameTemplate: ").append(toIndentedString(defaultHostnameTemplate)).append("\n");
130150
sb.append("}");

components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/java/org/wso2/carbon/apimgt/rest/api/admin/v1/utils/mappings/SettingsMappingUtil.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
import org.apache.commons.logging.LogFactory;
2323
import org.wso2.carbon.apimgt.api.APIDefinition;
2424
import org.wso2.carbon.apimgt.api.APIManagementException;
25-
import org.wso2.carbon.apimgt.api.model.ConfigurationDto;
26-
import org.wso2.carbon.apimgt.api.model.GatewayAgentConfiguration;
27-
import org.wso2.carbon.apimgt.api.model.KeyManagerConnectorConfiguration;
28-
import org.wso2.carbon.apimgt.api.model.Scope;
25+
import org.wso2.carbon.apimgt.api.model.*;
2926
import org.wso2.carbon.apimgt.impl.APIConstants;
3027
import org.wso2.carbon.apimgt.impl.internal.ServiceReferenceHolder;
3128
import org.wso2.carbon.apimgt.impl.utils.APIUtil;
@@ -170,6 +167,7 @@ private static List<SettingsGatewayConfigurationDTO> getSettingsGatewayConfigura
170167
settingsFederatedGatewayConfigurationDTO.setType(gatewayConfiguration.getType());
171168
settingsFederatedGatewayConfigurationDTO.setDisplayName(gatewayConfiguration.getType());
172169
settingsFederatedGatewayConfigurationDTO.setDefaultHostnameTemplate(gatewayConfiguration.getDefaultHostnameTemplate());
170+
settingsFederatedGatewayConfigurationDTO.setSupportedModes(getSupportedGatewayModes(gatewayConfiguration));
173171
List<ConfigurationDto> connectionConfigurations = gatewayConfiguration.getConnectionConfigurations();
174172
if (connectionConfigurations != null) {
175173
for (ConfigurationDto dto : connectionConfigurations) {
@@ -186,13 +184,33 @@ private static List<SettingsGatewayConfigurationDTO> getSettingsGatewayConfigura
186184
SettingsGatewayConfigurationDTO gateway = new SettingsGatewayConfigurationDTO();
187185
gateway.setType(type);
188186
gateway.setDisplayName(type);
187+
if (APIConstants.API_GATEWAY_TYPE_REGULAR.equals(type) || APIConstants.API_GATEWAY_TYPE_APK.equals(type)) {
188+
List<String> supportedModes = new ArrayList<>();
189+
supportedModes.add(GatewayMode.WRITE_ONLY.getMode());
190+
gateway.setSupportedModes(supportedModes);
191+
}
189192
if (list.stream().noneMatch(obj -> obj.getType().equals(type))) {
190193
list.add(gateway);
191194
}
192195
}
193196
return list;
194197
}
195198

199+
private static List<String> getSupportedGatewayModes(GatewayAgentConfiguration gatewayConfiguration) {
200+
//Deriving the supported modes from the gateway connector
201+
List<String> supportedModes = new ArrayList<>();
202+
if (gatewayConfiguration.getGatewayDeployerImplementation() != null) {
203+
supportedModes.add(GatewayMode.WRITE_ONLY.getMode());
204+
}
205+
if (gatewayConfiguration.getDiscoveryImplementation() != null) {
206+
supportedModes.add(GatewayMode.READ_ONLY.getMode());
207+
}
208+
if (supportedModes.size() == 2) {
209+
supportedModes.add(GatewayMode.READ_WRITE.getMode());
210+
}
211+
return supportedModes;
212+
}
213+
196214
private static GatewayConfigurationDTO fromConfigurationToConfigurationDTO(ConfigurationDto configuration) {
197215
GatewayConfigurationDTO dto = new GatewayConfigurationDTO();
198216
dto.setName(configuration.getName());

components/apimgt/org.wso2.carbon.apimgt.rest.api.admin.v1/src/main/resources/admin-api.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5456,7 +5456,7 @@ components:
54565456
- READ_WRITE
54575457
- WRITE_ONLY
54585458
example: READ_WRITE
5459-
default: READ_WRITE
5459+
default: WRITE_ONLY
54605460
description: |
54615461
The mode of the environment. This indicates whether the environment is in read-only or read-write mode.
54625462
**READ_ONLY:** The environment is in read-only mode. API cannot be deployed, only discovery is possible.
@@ -6052,6 +6052,11 @@ components:
60526052
displayName:
60536053
type: string
60546054
example: default
6055+
supportedModes:
6056+
type: array
6057+
items:
6058+
type: string
6059+
example: 'READ_WRITE'
60556060
configurations:
60566061
type: array
60576062
items:

components/apimgt/org.wso2.carbon.apimgt.rest.api.common/src/main/resources/admin-api.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5456,7 +5456,7 @@ components:
54565456
- READ_WRITE
54575457
- WRITE_ONLY
54585458
example: READ_WRITE
5459-
default: READ_WRITE
5459+
default: WRITE_ONLY
54605460
description: |
54615461
The mode of the environment. This indicates whether the environment is in read-only or read-write mode.
54625462
**READ_ONLY:** The environment is in read-only mode. API cannot be deployed, only discovery is possible.
@@ -6052,6 +6052,11 @@ components:
60526052
displayName:
60536053
type: string
60546054
example: default
6055+
supportedModes:
6056+
type: array
6057+
items:
6058+
type: string
6059+
example: 'READ_WRITE'
60556060
configurations:
60566061
type: array
60576062
items:

0 commit comments

Comments
 (0)