Skip to content

Commit a281277

Browse files
Gupta, SuryaGupta, Surya
authored andcommitted
[CSTACKEX-129] NFS3 Primary storage-pool is not failing even if NFS3 protocol is not enabled at the storage VM
1 parent a782fa3 commit a281277

2 files changed

Lines changed: 24 additions & 27 deletions

File tree

plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/feign/model/Svm.java

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ public class Svm {
3636
@JsonProperty("name")
3737
private String name = null;
3838

39-
@JsonProperty("iscsi.enabled")
40-
private Boolean iscsiEnabled = null;
39+
@JsonProperty("iscsi")
40+
private ProtocolStatus iscsi = null;
4141

42-
@JsonProperty("fcp.enabled")
43-
private Boolean fcpEnabled = null;
42+
@JsonProperty("fcp")
43+
private ProtocolStatus fcp = null;
4444

45-
@JsonProperty("nfs.enabled")
46-
private Boolean nfsEnabled = null;
45+
@JsonProperty("nfs")
46+
private ProtocolStatus nfs = null;
4747

4848
@JsonProperty("aggregates")
4949
private List<Aggregate> aggregates = null;
@@ -73,28 +73,16 @@ public void setName(String name) {
7373
this.name = name;
7474
}
7575

76-
public Boolean getIscsiEnabled() {
77-
return iscsiEnabled;
76+
public Boolean getNfsEnabled() {
77+
return nfs == null ? false : nfs.getEnabled();
7878
}
7979

80-
public void setIscsiEnabled(Boolean iscsiEnabled) {
81-
this.iscsiEnabled = iscsiEnabled;
80+
public Boolean getIscsiEnabled() {
81+
return iscsi == null ? false : iscsi.getEnabled();
8282
}
8383

8484
public Boolean getFcpEnabled() {
85-
return fcpEnabled;
86-
}
87-
88-
public void setFcpEnabled(Boolean fcpEnabled) {
89-
this.fcpEnabled = fcpEnabled;
90-
}
91-
92-
public Boolean getNfsEnabled() {
93-
return nfsEnabled;
94-
}
95-
96-
public void setNfsEnabled(Boolean nfsEnabled) {
97-
this.nfsEnabled = nfsEnabled;
85+
return fcp == null ? false : fcp.getEnabled();
9886
}
9987

10088
public List<Aggregate> getAggregates() {
@@ -141,6 +129,15 @@ public int hashCode() {
141129
return Objects.hashCode(getUuid());
142130
}
143131

132+
@JsonIgnoreProperties(ignoreUnknown = true)
133+
@JsonInclude(JsonInclude.Include.NON_NULL)
134+
public static class ProtocolStatus {
135+
@JsonProperty("enabled")
136+
private Boolean enabled;
137+
public Boolean getEnabled() { return enabled; }
138+
public void setEnabled(Boolean enabled) { this.enabled = enabled; }
139+
}
140+
144141
@JsonInclude(JsonInclude.Include.NON_NULL)
145142
public static class Links { }
146143
}

plugins/storage/volume/ontap/src/main/java/org/apache/cloudstack/storage/service/StorageStrategy.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,8 @@ public boolean connect() {
108108
Svm svm = new Svm();
109109
logger.info("Fetching the SVM details...");
110110
Map<String, Object> queryParams = Map.of(OntapStorageConstants.NAME, svmName, OntapStorageConstants.FIELDS, OntapStorageConstants.AGGREGATES +
111-
OntapStorageConstants.COMMA + OntapStorageConstants.STATE);
111+
OntapStorageConstants.COMMA + OntapStorageConstants.STATE +
112+
OntapStorageConstants.COMMA + OntapStorageConstants.NFS + OntapStorageConstants.COMMA + OntapStorageConstants.ISCSI);
112113
OntapResponse<Svm> svms = svmFeignClient.getSvmResponse(queryParams, authHeader);
113114
if (svms != null && svms.getRecords() != null && !svms.getRecords().isEmpty()) {
114115
svm = svms.getRecords().get(0);
@@ -118,16 +119,15 @@ public boolean connect() {
118119
}
119120

120121
logger.info("Validating SVM state and protocol settings...");
121-
logger.info("Protocol storage.getProtocol() = " + storage.getProtocol() + "Objects.equals(storage.getProtocol(), ProtocolType.ISCSI)" + Objects.equals(storage.getProtocol(), ProtocolType.ISCSI));
122-
logger.info("svm.getIscsiEnabled() : " + svm.getIscsiEnabled());
122+
logger.info("Protocol storage.getProtocol() = " + storage.getProtocol() + " Objects.equals(storage.getProtocol(), ProtocolType.ISCSI) " + Objects.equals(storage.getProtocol(), ProtocolType.ISCSI));
123+
logger.info("svm.getIscsiEnabled() : " + svm.getIscsiEnabled() + "svm.getNfsEnabled() : " + svm.getNfsEnabled());
123124
if (!Objects.equals(svm.getState(), OntapStorageConstants.RUNNING)) {
124125
logger.error("SVM " + svmName + " is not in running state.");
125126
return false;
126127
}
127128
if (Objects.equals(storage.getProtocol(), ProtocolType.NFS3) && !svm.getNfsEnabled()) {
128129
logger.error("NFS protocol is not enabled on SVM " + svmName);
129130
return false;
130-
131131
} else if (Objects.equals(storage.getProtocol(), ProtocolType.ISCSI) && !svm.getIscsiEnabled()) {
132132
logger.error("iSCSI protocol is not enabled on SVM " + svmName);
133133
return false;

0 commit comments

Comments
 (0)