diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java index 11cffa9..61ff947 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbDaoBase.java @@ -65,6 +65,8 @@ public class OvsdbDaoBase { public static final String hotspot20IconConfigDbTable = "Hotspot20_Icon_Config"; public static final String hotspot20OsuProvidersDbTable = "Hotspot20_OSU_Providers"; public static final String hotspot20ConfigDbTable = "Hotspot20_Config"; + public static final String radiusConfigDbTable = "radius_config"; + public static final String realmConfigDbTable = "realm_config"; public static final String StartDebugEngineApCommand = "startPortForwardingSession"; public static final String StopDebugEngineApCommand = "stopSession"; diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbGet.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbGet.java index 1933d45..f02a349 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbGet.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/OvsdbGet.java @@ -18,6 +18,8 @@ import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20Config; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20IconConfig; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20OsuProviders; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.NodeConfigInfo; +import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.RadiusConfigInfo; +import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.RealmConfigInfo; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiInetConfigInfo; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiRadioConfigInfo; import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiStatsConfigInfo; @@ -169,4 +171,21 @@ public class OvsdbGet extends OvsdbDaoBase { return ret; } + Map getProvisionedRadiusConfigs(OvsdbClient ovsdbClient) { + Map ret = new HashMap<>(); + for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, radiusConfigDbTable, null)) { + RadiusConfigInfo radiusConfigInfo = new RadiusConfigInfo(row); + ret.put(radiusConfigInfo.radiusConfigName, radiusConfigInfo); + } + return ret; + } + + Map getProvisionedRealmConfigs(OvsdbClient ovsdbClient) { + Map ret = new HashMap<>(); + for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, realmConfigDbTable, null)) { + RealmConfigInfo realmConfigInfo = new RealmConfigInfo(row); + ret.put(realmConfigInfo.realmConfigName, realmConfigInfo); + } + return ret; + } } diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/models/RadiusConfigInfo.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/models/RadiusConfigInfo.java new file mode 100644 index 0000000..03c010e --- /dev/null +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/models/RadiusConfigInfo.java @@ -0,0 +1,73 @@ +package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; + +import java.util.Objects; + +import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDaoBase; +import com.vmware.ovsdb.protocol.operation.notation.Row; +import com.vmware.ovsdb.protocol.operation.notation.Uuid; + +public class RadiusConfigInfo implements Cloneable { + + public Uuid uuid; + public Uuid version; + public String server; + public String clientCert; + public String radiusConfigName; + public String passphrase; + public String clientKey; + public String caCert; + + public RadiusConfigInfo() { + + } + + public RadiusConfigInfo(Row row) { + this.uuid = row.getUuidColumn("_uuid"); + this.version = row.getUuidColumn("_version"); + this.server = row.getStringColumn("server"); + this.clientCert = OvsdbDaoBase.getSingleValueFromSet(row, "client_cert"); + this.caCert = OvsdbDaoBase.getSingleValueFromSet(row, "ca_cert"); + this.clientKey = OvsdbDaoBase.getSingleValueFromSet(row, "client_key"); + this.passphrase = OvsdbDaoBase.getSingleValueFromSet(row, "passphrase"); + this.radiusConfigName = row.getStringColumn("radius_config_name"); + } + + @Override + public RadiusConfigInfo clone() { + try { + return (RadiusConfigInfo)super.clone(); + } catch (CloneNotSupportedException e) { + throw new IllegalStateException("Cannot clone ", e); + } + } + + @Override + public int hashCode() { + return Objects.hash(caCert, clientCert, clientKey, passphrase, radiusConfigName, server, uuid, version); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RadiusConfigInfo other = (RadiusConfigInfo) obj; + return Objects.equals(caCert, other.caCert) && Objects.equals(clientCert, other.clientCert) + && Objects.equals(clientKey, other.clientKey) && Objects.equals(passphrase, other.passphrase) + && Objects.equals(radiusConfigName, other.radiusConfigName) && Objects.equals(server, other.server) + && Objects.equals(uuid, other.uuid) && Objects.equals(version, other.version); + } + + @Override + public String toString() { + return "RadiusConfigInfo [uuid=" + uuid + ", version=" + version + ", server=" + server + ", clientCert=" + + clientCert + ", radiusConfigName=" + radiusConfigName + ", passphrase=" + passphrase + ", clientKey=" + + clientKey + ", caCert=" + caCert + "]"; + } + + + +} diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/models/RealmConfigInfo.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/models/RealmConfigInfo.java new file mode 100644 index 0000000..b365d35 --- /dev/null +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/dao/models/RealmConfigInfo.java @@ -0,0 +1,65 @@ +package com.telecominfraproject.wlan.opensync.ovsdb.dao.models; + +import java.util.Objects; + +import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDaoBase; +import com.vmware.ovsdb.protocol.operation.notation.Row; +import com.vmware.ovsdb.protocol.operation.notation.Uuid; + +public class RealmConfigInfo implements Cloneable { + + public Uuid uuid; + public Uuid server; + public Uuid version; + public String realm; + public String realmConfigName; + + public RealmConfigInfo() { + + } + + public RealmConfigInfo(Row row) { + this.uuid = row.getUuidColumn("_uuid"); + this.version = row.getUuidColumn("_version"); + this.server = OvsdbDaoBase.getSingleValueFromSet(row, "server"); + this.realm = OvsdbDaoBase.getSingleValueFromSet(row, "realm"); + this.realmConfigName = row.getStringColumn("realm_config_name"); + } + + @Override + public RealmConfigInfo clone() { + try { + return (RealmConfigInfo)super.clone(); + } catch (CloneNotSupportedException e) { + throw new IllegalStateException("Cannot clone ", e); + } + } + + @Override + public int hashCode() { + return Objects.hash(realm, realmConfigName, server, uuid, version); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RealmConfigInfo other = (RealmConfigInfo) obj; + return Objects.equals(realm, other.realm) && Objects.equals(realmConfigName, other.realmConfigName) + && Objects.equals(server, other.server) && Objects.equals(uuid, other.uuid) + && Objects.equals(version, other.version); + } + + @Override + public String toString() { + return "RealmConfigInfo [uuid=" + uuid + ", server=" + server + ", version=" + version + ", realm=" + realm + + ", realmConfigName=" + realmConfigName + "]"; + } + + + +}