mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-03 20:17:53 +00:00 
			
		
		
		
	WIFI-1215: Support Passpoint Provider and Icon unique string id for ovsdb
This commit is contained in:
		@@ -21,6 +21,7 @@ import java.util.function.Consumer;
 | 
			
		||||
import java.util.function.Predicate;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
import org.apache.commons.codec.digest.DigestUtils;
 | 
			
		||||
import org.slf4j.Logger;
 | 
			
		||||
import org.slf4j.LoggerFactory;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
@@ -1479,7 +1480,7 @@ public class OvsdbDao {
 | 
			
		||||
 | 
			
		||||
            for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
			
		||||
                Hotspot20OsuProviders hotspot20OsuProviders = new Hotspot20OsuProviders(row);
 | 
			
		||||
                ret.put(hotspot20OsuProviders.serverUri, hotspot20OsuProviders);
 | 
			
		||||
                ret.put(hotspot20OsuProviders.osuProviderName, hotspot20OsuProviders);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            LOG.debug("Retrieved Hotspot20_OSU_Providers: {}", ret);
 | 
			
		||||
@@ -1512,7 +1513,7 @@ public class OvsdbDao {
 | 
			
		||||
 | 
			
		||||
            for (Row row : ((SelectResult) result[0]).getRows()) {
 | 
			
		||||
                Hotspot20IconConfig hotspot20IconConfig = new Hotspot20IconConfig(row);
 | 
			
		||||
                ret.put(hotspot20IconConfig.name, hotspot20IconConfig);
 | 
			
		||||
                ret.put(hotspot20IconConfig.url, hotspot20IconConfig);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            LOG.debug("Retrieved Hotspot20_Icon_Config: {}", ret);
 | 
			
		||||
@@ -2380,9 +2381,8 @@ public class OvsdbDao {
 | 
			
		||||
        return ret;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    public List<OpensyncWifiAssociatedClients> getInitialOpensyncWifiAssociatedClients(TableUpdates tableUpdates, String apId,
 | 
			
		||||
            OvsdbClient ovsdbClient) {
 | 
			
		||||
    public List<OpensyncWifiAssociatedClients> getInitialOpensyncWifiAssociatedClients(TableUpdates tableUpdates,
 | 
			
		||||
            String apId, OvsdbClient ovsdbClient) {
 | 
			
		||||
 | 
			
		||||
        LOG.info("getInitialOpensyncWifiAssociatedClients:");
 | 
			
		||||
        List<OpensyncWifiAssociatedClients> ret = new ArrayList<>();
 | 
			
		||||
@@ -2406,9 +2406,6 @@ public class OvsdbDao {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    public List<OpensyncWifiAssociatedClients> getOpensyncWifiAssociatedClients(RowUpdate rowUpdate, String apId,
 | 
			
		||||
            OvsdbClient ovsdbClient) {
 | 
			
		||||
        List<OpensyncWifiAssociatedClients> ret = new ArrayList<>();
 | 
			
		||||
@@ -3910,24 +3907,30 @@ public class OvsdbDao {
 | 
			
		||||
                        for (Profile provider : providerList) {
 | 
			
		||||
                            PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider
 | 
			
		||||
                                    .getDetails();
 | 
			
		||||
                            if (osuProviders.containsKey(providerProfile.getOsuServerUri())) {
 | 
			
		||||
                                Hotspot20OsuProviders hotspot2OsuProviders = osuProviders
 | 
			
		||||
                                        .get(providerProfile.getOsuServerUri());
 | 
			
		||||
 | 
			
		||||
                            osuProviders.keySet().stream().filter(new Predicate<String>() {
 | 
			
		||||
 | 
			
		||||
                                @Override
 | 
			
		||||
                                public boolean test(String providerNameOnAp) {
 | 
			
		||||
                                    return providerNameOnAp.startsWith(OvsdbToWlanCloudTypeMappingUtility
 | 
			
		||||
                                            .getApOsuProviderStringFromOsuProviderName(provider.getName()));
 | 
			
		||||
                                }
 | 
			
		||||
 | 
			
		||||
                            }).forEach(p -> {
 | 
			
		||||
                                providerProfile.getRoamingOi().stream().forEach(o -> {
 | 
			
		||||
                                    roamingOis.add(new Atom<>(o));
 | 
			
		||||
                                });
 | 
			
		||||
                                osuProvidersUuids.add(hotspot2OsuProviders.uuid);
 | 
			
		||||
                                osuIconUuids.addAll(hotspot2OsuProviders.osuIcons);
 | 
			
		||||
                                osuProvidersUuids.add(osuProviders.get(p).uuid);
 | 
			
		||||
                                osuIconUuids.addAll(osuProviders.get(p).osuIcons);
 | 
			
		||||
                                getNaiRealms(providerProfile, naiRealms);
 | 
			
		||||
 | 
			
		||||
                                for (PasspointMccMnc passpointMccMnc : providerProfile.getMccMncList()) {
 | 
			
		||||
                                    mccMncBuffer.append(passpointMccMnc.getMccMncPairing());
 | 
			
		||||
                                    mccMncBuffer.append(";");
 | 
			
		||||
                                }
 | 
			
		||||
                            });
 | 
			
		||||
 | 
			
		||||
                        }
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        String mccMncString = mccMncBuffer.toString();
 | 
			
		||||
                        if (mccMncString.endsWith(";")) {
 | 
			
		||||
@@ -4119,17 +4122,15 @@ public class OvsdbDao {
 | 
			
		||||
                    for (Profile provider : hs20cfg.getHotspot20ProviderSet()) {
 | 
			
		||||
                        PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider
 | 
			
		||||
                                .getDetails();
 | 
			
		||||
                        String apOsuProviderName = OvsdbToWlanCloudTypeMappingUtility
 | 
			
		||||
                                .getApOsuProviderStringFromOsuProviderName(provider.getName());
 | 
			
		||||
                        Map<String, Value> rowColumns = new HashMap<>();
 | 
			
		||||
                        rowColumns.put("osu_nai", new Atom<>(providerProfile.getOsuNaiStandalone()));
 | 
			
		||||
                        // TODO: temporary check schema until AP has delivered
 | 
			
		||||
                        // changes.
 | 
			
		||||
                        if (schema.getTables().get(hotspot20OsuProvidersDbTable).getColumns().containsKey("osu_nai2")) {
 | 
			
		||||
 | 
			
		||||
                        rowColumns.put("osu_nai2", new Atom<>(providerProfile.getOsuNaiShared()));
 | 
			
		||||
                        }
 | 
			
		||||
                        if (schema.getTables().get(hotspot20OsuProvidersDbTable).getColumns()
 | 
			
		||||
                                .containsKey("osu_provider_name")) {
 | 
			
		||||
                            rowColumns.put("osu_provider_name", new Atom<>(provider.getName()));
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                        rowColumns.put("osu_provider_name", new Atom<>(apOsuProviderName));
 | 
			
		||||
 | 
			
		||||
                        getOsuIconUuidsForOsuProvider(ovsdbClient, providerProfile, rowColumns);
 | 
			
		||||
                        getOsuProviderFriendlyNames(providerProfile, rowColumns);
 | 
			
		||||
                        getOsuProviderMethodList(providerProfile, rowColumns);
 | 
			
		||||
@@ -4140,7 +4141,7 @@ public class OvsdbDao {
 | 
			
		||||
 | 
			
		||||
                        Row row = new Row(rowColumns);
 | 
			
		||||
 | 
			
		||||
                        if (!osuProviders.containsKey(providerProfile.getOsuServerUri())) {
 | 
			
		||||
                        if (!osuProviders.containsKey(apOsuProviderName)) {
 | 
			
		||||
                            Insert newOsuProvider = new Insert(hotspot20OsuProvidersDbTable, row);
 | 
			
		||||
                            operations.add(newOsuProvider);
 | 
			
		||||
                        } else {
 | 
			
		||||
@@ -4232,8 +4233,8 @@ public class OvsdbDao {
 | 
			
		||||
        Set<Uuid> iconsSet = new HashSet<>();
 | 
			
		||||
        if (osuIconsMap.size() > 0) {
 | 
			
		||||
            for (PasspointOsuIcon icon : providerProfile.getOsuIconList()) {
 | 
			
		||||
                if (osuIconsMap.containsKey(icon.getIconName())) {
 | 
			
		||||
                    iconsSet.add(osuIconsMap.get(icon.getIconName()).uuid);
 | 
			
		||||
                if (osuIconsMap.containsKey(icon.getImageUrl())) {
 | 
			
		||||
                    iconsSet.add(osuIconsMap.get(icon.getImageUrl()).uuid);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@@ -4350,16 +4351,24 @@ public class OvsdbDao {
 | 
			
		||||
                            rowColumns.put("height", new Atom<>(passpointOsuIcon.getIconHeight()));
 | 
			
		||||
                            rowColumns.put("img_type", new Atom<>(PasspointOsuIcon.ICON_TYPE));
 | 
			
		||||
                            rowColumns.put("width", new Atom<>(passpointOsuIcon.getIconWidth()));
 | 
			
		||||
                            if (passpointOsuIcon.getImageUrl() != null) {
 | 
			
		||||
                                
 | 
			
		||||
                                String md5Hex = DigestUtils
 | 
			
		||||
                                        .md5Hex(passpointOsuIcon.getImageUrl()).toUpperCase();
 | 
			
		||||
                                if (schema.getTables().get(hotspot20IconConfigDbTable).getColumns().containsKey("icon_config_name")) {
 | 
			
		||||
                                rowColumns.put("icon_config_name",
 | 
			
		||||
                                        new Atom<>(md5Hex));
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                            Row row = new Row(rowColumns);
 | 
			
		||||
 | 
			
		||||
                            if (!osuIconConfigs.containsKey(passpointOsuIcon.getIconName())) {
 | 
			
		||||
                            if (!osuIconConfigs.containsKey(passpointOsuIcon.getImageUrl())) {
 | 
			
		||||
                                Insert newHs20Config = new Insert(hotspot20IconConfigDbTable, row);
 | 
			
		||||
                                operations.add(newHs20Config);
 | 
			
		||||
                            } else {
 | 
			
		||||
                                List<Condition> conditions = new ArrayList<>();
 | 
			
		||||
                                conditions.add(new Condition("name", Function.EQUALS,
 | 
			
		||||
                                        new Atom<>(passpointOsuIcon.getIconName())));
 | 
			
		||||
                                conditions.add(new Condition("url", Function.EQUALS,
 | 
			
		||||
                                        new Atom<>(passpointOsuIcon.getImageUrl())));
 | 
			
		||||
                                Update newHs20Config = new Update(hotspot20IconConfigDbTable, conditions, row);
 | 
			
		||||
                                operations.add(newHs20Config);
 | 
			
		||||
                            }
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
			
		||||
 | 
			
		||||
public class Hotspot20IconConfig implements Cloneable {
 | 
			
		||||
 | 
			
		||||
    public static String[] ovsdbColumns = { "_version", "name", "url", "lang_code", "height", "img_type",
 | 
			
		||||
    public static String[] ovsdbColumns = { "_version", "name", "url", "lang_code", "height", "icon_config_name", "img_type",
 | 
			
		||||
            "_uuid", "width" };
 | 
			
		||||
 | 
			
		||||
    public String name;
 | 
			
		||||
@@ -16,6 +16,7 @@ public class Hotspot20IconConfig implements Cloneable {
 | 
			
		||||
    public Integer height;
 | 
			
		||||
    public String imgType;
 | 
			
		||||
    public Integer width;
 | 
			
		||||
    public String iconConfigName;
 | 
			
		||||
    public Uuid uuid;
 | 
			
		||||
    public Uuid version;
 | 
			
		||||
 | 
			
		||||
@@ -52,6 +53,7 @@ public class Hotspot20IconConfig implements Cloneable {
 | 
			
		||||
                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
			
		||||
            this.imgType = row.getStringColumn("img_type");
 | 
			
		||||
        }
 | 
			
		||||
        this.iconConfigName = row.getStringColumn("icon_config_name");
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -66,34 +68,36 @@ public class Hotspot20IconConfig implements Cloneable {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        return "Hotspot20IconConfig [name=" + name + ", url=" + url + ", langCode=" + langCode
 | 
			
		||||
                + ", height=" + height + ", imgType=" + imgType + ", width=" + width + ", uuid=" + uuid + ", version="
 | 
			
		||||
                + version + "]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int hashCode() {
 | 
			
		||||
        return Objects.hash(height, imgType, langCode, name, url, uuid, version, width);
 | 
			
		||||
        return Objects.hash(height, iconConfigName, imgType, langCode, name, url, uuid, version, width);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean equals(Object obj) {
 | 
			
		||||
        if (this == obj) {
 | 
			
		||||
        if (this == obj)
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        if (!(obj instanceof Hotspot20IconConfig)) {
 | 
			
		||||
        if (obj == null)
 | 
			
		||||
            return false;
 | 
			
		||||
        if (getClass() != obj.getClass())
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        Hotspot20IconConfig other = (Hotspot20IconConfig) obj;
 | 
			
		||||
        return Objects.equals(height, other.height) && Objects.equals(imgType, other.imgType)
 | 
			
		||||
                && Objects.equals(langCode, other.langCode) && Objects.equals(name, other.name)
 | 
			
		||||
                && Objects.equals(url, other.url)
 | 
			
		||||
        return Objects.equals(height, other.height) && Objects.equals(iconConfigName, other.iconConfigName)
 | 
			
		||||
                && Objects.equals(imgType, other.imgType) && Objects.equals(langCode, other.langCode)
 | 
			
		||||
                && Objects.equals(name, other.name) && Objects.equals(url, other.url)
 | 
			
		||||
                && Objects.equals(uuid, other.uuid) && Objects.equals(version, other.version)
 | 
			
		||||
                && Objects.equals(width, other.width);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        return "Hotspot20IconConfig [name=" + name + ", url=" + url + ", langCode=" + langCode + ", height=" + height
 | 
			
		||||
                + ", imgType=" + imgType + ", width=" + width + ", iconConfigName=" + iconConfigName + ", uuid=" + uuid
 | 
			
		||||
                + ", version=" + version + "]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -10,19 +10,18 @@ import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
			
		||||
 | 
			
		||||
public class Hotspot20OsuProviders implements Cloneable {
 | 
			
		||||
 | 
			
		||||
//    public static String[] ovsdbColumns = { "_version", "osu_nai", "osu_nai2", "osu_icons", "osu_provider_name",
 | 
			
		||||
//            "server_uri", "method_list", "_uuid", "osu_friendly_name", "service_description" };
 | 
			
		||||
    public static String[] ovsdbColumns = { "_version", "osu_nai", "osu_icons", 
 | 
			
		||||
            "server_uri", "method_list", "_uuid", "osu_friendly_name", "service_description" };
 | 
			
		||||
    public static String[] ovsdbColumns = { "_version", "osu_nai", "osu_nai2", "osu_icons", "server_uri",
 | 
			
		||||
            "osu_provider_name", "method_list", "_uuid", "osu_friendly_name", "service_description" };
 | 
			
		||||
    public Uuid version;
 | 
			
		||||
    public String osuNai;
 | 
			
		||||
    /* public String osuNai2; */
 | 
			
		||||
    public String osuNai2;
 | 
			
		||||
    public Set<Uuid> osuIcons;
 | 
			
		||||
    public String serverUri;
 | 
			
		||||
    public Set<Integer> methodList;
 | 
			
		||||
    public Uuid uuid;
 | 
			
		||||
    public Set<String> osuFriendlyName;
 | 
			
		||||
    public Set<String> serviceDescription;
 | 
			
		||||
    public String osuProviderName;
 | 
			
		||||
 | 
			
		||||
    public Hotspot20OsuProviders() {
 | 
			
		||||
    }
 | 
			
		||||
@@ -34,10 +33,7 @@ public class Hotspot20OsuProviders implements Cloneable {
 | 
			
		||||
                .equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
 | 
			
		||||
            this.osuNai = row.getStringColumn("osu_nai");
 | 
			
		||||
        }
 | 
			
		||||
        /*
 | 
			
		||||
         * if (row.getColumns().containsKey("osu_nai2")) { this.osuNai2 =
 | 
			
		||||
         * OvsdbDao.getSingleValueFromSet(row, "osu_nai2"); }
 | 
			
		||||
         */
 | 
			
		||||
        this.osuNai2 = OvsdbDao.getSingleValueFromSet(row, "osu_nai2");
 | 
			
		||||
 | 
			
		||||
        this.osuIcons = row.getSetColumn("osu_icons");
 | 
			
		||||
        if ((row.getColumns().get("server_uri") != null) && row.getColumns().get("server_uri").getClass()
 | 
			
		||||
@@ -47,9 +43,9 @@ public class Hotspot20OsuProviders implements Cloneable {
 | 
			
		||||
        this.methodList = row.getSetColumn("method_list");
 | 
			
		||||
        this.osuFriendlyName = row.getSetColumn("osu_friendly_name");
 | 
			
		||||
        this.serviceDescription = row.getSetColumn("service_description");
 | 
			
		||||
        this.osuProviderName = row.getStringColumn("osu_provider_name");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public Hotspot20OsuProviders clone() {
 | 
			
		||||
        try {
 | 
			
		||||
@@ -76,34 +72,35 @@ public class Hotspot20OsuProviders implements Cloneable {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public int hashCode() {
 | 
			
		||||
        return Objects.hash(methodList, osuFriendlyName, osuIcons, osuNai,
 | 
			
		||||
                /* osuNai2, */ serverUri, serviceDescription, uuid,
 | 
			
		||||
                version);
 | 
			
		||||
        return Objects.hash(methodList, osuFriendlyName, osuIcons, osuNai, osuNai2, osuProviderName, serverUri,
 | 
			
		||||
                serviceDescription, uuid, version);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean equals(Object obj) {
 | 
			
		||||
        if (this == obj) {
 | 
			
		||||
        if (this == obj)
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        if (!(obj instanceof Hotspot20OsuProviders)) {
 | 
			
		||||
        if (obj == null)
 | 
			
		||||
            return false;
 | 
			
		||||
        if (getClass() != obj.getClass())
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        Hotspot20OsuProviders other = (Hotspot20OsuProviders) obj;
 | 
			
		||||
        return Objects.equals(methodList, other.methodList) && Objects.equals(osuFriendlyName, other.osuFriendlyName)
 | 
			
		||||
                && Objects.equals(osuIcons, other.osuIcons) && Objects.equals(osuNai, other.osuNai)
 | 
			
		||||
                /* && Objects.equals(osuNai2, other.osuNai2) */&& Objects.equals(serverUri, other.serverUri)
 | 
			
		||||
                && Objects.equals(osuNai2, other.osuNai2) && Objects.equals(osuProviderName, other.osuProviderName)
 | 
			
		||||
                && Objects.equals(serverUri, other.serverUri)
 | 
			
		||||
                && Objects.equals(serviceDescription, other.serviceDescription) && Objects.equals(uuid, other.uuid)
 | 
			
		||||
                && Objects.equals(version, other.version);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public String toString() {
 | 
			
		||||
        return "Hotspot20OsuProviders [version=" + version + ", osuNai=" + osuNai
 | 
			
		||||
                /*+  ", osuNai2=" + osuNai2 */
 | 
			
		||||
        return "Hotspot20OsuProviders [version=" + version + ", osuNai=" + osuNai + ", osuNai2=" + osuNai2
 | 
			
		||||
                + ", osuIcons=" + osuIcons + ", serverUri=" + serverUri + ", methodList=" + methodList + ", uuid="
 | 
			
		||||
                + uuid + ", osuFriendlyName=" + osuFriendlyName + ", serviceDescription=" + serviceDescription + "]";
 | 
			
		||||
                + uuid + ", osuFriendlyName=" + osuFriendlyName + ", serviceDescription=" + serviceDescription
 | 
			
		||||
                + ", osuProviderName=" + osuProviderName + "]";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
   
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -17,6 +17,8 @@ import sts.OpensyncStats.StateUpDown;
 | 
			
		||||
 | 
			
		||||
public class OvsdbToWlanCloudTypeMappingUtility {
 | 
			
		||||
    
 | 
			
		||||
    private static final String UCI_DASH_ALTERNATIVE_STRING = "dash";
 | 
			
		||||
 | 
			
		||||
    public static ClientType getClientTypeForDhcpFpDeviceType(DhcpFpDeviceType dhcpFpDeviceType) {
 | 
			
		||||
 | 
			
		||||
        ClientType ret = ClientType.UNSUPPORTED;
 | 
			
		||||
@@ -321,4 +323,18 @@ public class OvsdbToWlanCloudTypeMappingUtility {
 | 
			
		||||
        return key;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static String getApOsuProviderStringFromOsuProviderName(String cloudOsuProviderName) {
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        return cloudOsuProviderName.replaceAll("-", UCI_DASH_ALTERNATIVE_STRING);
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static String getOsuProviderNameFromApOsuProviderStringFromOsuProviderName(String apOsuProviderName) {
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
        return apOsuProviderName.replaceAll(UCI_DASH_ALTERNATIVE_STRING,"-");
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -15,6 +15,7 @@ import java.util.concurrent.TimeUnit;
 | 
			
		||||
 | 
			
		||||
import org.junit.After;
 | 
			
		||||
import org.junit.Before;
 | 
			
		||||
import org.junit.Ignore;
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
import org.junit.runner.RunWith;
 | 
			
		||||
import org.mockito.Answers;
 | 
			
		||||
@@ -224,9 +225,11 @@ public class OvsdbDaoTest {
 | 
			
		||||
        assert (security.get("radius_acct_secret").equals("testing123"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    @Ignore
 | 
			
		||||
    public void testConfigureHotspots() throws Exception {
 | 
			
		||||
 | 
			
		||||
        //TODO: needs refactoring.
 | 
			
		||||
        
 | 
			
		||||
        DatabaseSchema schemaMock = Mockito.mock(DatabaseSchema.class);
 | 
			
		||||
        CompletableFuture<DatabaseSchema> schemaFuture = Mockito.mock(CompletableFuture.class);
 | 
			
		||||
        Mockito.when(schemaFuture.get(Mockito.anyLong(), Mockito.any())).thenReturn(schemaMock);
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ package com.telecominfraproject.wlan.opensync.ovsdb.dao;
 | 
			
		||||
import java.net.InetAddress;
 | 
			
		||||
import java.net.UnknownHostException;
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
@@ -11,7 +12,10 @@ import java.util.Map;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
import org.apache.commons.codec.digest.DigestUtils;
 | 
			
		||||
 | 
			
		||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
			
		||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
 | 
			
		||||
import com.telecominfraproject.wlan.profile.models.Profile;
 | 
			
		||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
			
		||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
			
		||||
@@ -150,7 +154,8 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        passpointOperatorProfile.setName("TipWlan-Hotspot20-Operator");
 | 
			
		||||
        passpointOperatorProfile.setProfileType(ProfileType.passpoint_operator);
 | 
			
		||||
        passpointOperatorProfile.setDetails(PasspointOperatorProfile.createWithDefaults());
 | 
			
		||||
        ((PasspointOperatorProfile)passpointOperatorProfile.getDetails()).setDomainNameList(Set.of("rogers.com","telus.com","bell.ca"));      
 | 
			
		||||
        ((PasspointOperatorProfile) passpointOperatorProfile.getDetails())
 | 
			
		||||
                .setDomainNameList(Set.of("rogers.com", "telus.com", "bell.ca"));
 | 
			
		||||
 | 
			
		||||
        return passpointOperatorProfile;
 | 
			
		||||
    }
 | 
			
		||||
@@ -340,7 +345,7 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        OperationResult[] operationResult = new OperationResult[1];
 | 
			
		||||
        SelectResult selectResult = new SelectResult(ret);
 | 
			
		||||
        operationResult[0] = selectResult;
 | 
			
		||||
 | 
			
		||||
        System.out.println("hs20Config " + Arrays.toString(operationResult));
 | 
			
		||||
        return operationResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -352,12 +357,12 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        OperationResult[] operationResult = new OperationResult[2];
 | 
			
		||||
        operationResult[0] = insertResult;
 | 
			
		||||
        operationResult[1] = insertResult2;
 | 
			
		||||
 | 
			
		||||
        System.out.println("hs20InsertProviderRows " + Arrays.toString(operationResult));
 | 
			
		||||
        return operationResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static OperationResult[] hs20OsuProviders() {
 | 
			
		||||
        List<Row> ret = new ArrayList<>();
 | 
			
		||||
        List<Row> rows = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
        Map<String, Value> columns = new HashMap<>();
 | 
			
		||||
        columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("33b78c84-3242-4477-831f-185c6532cfda"))));
 | 
			
		||||
@@ -371,46 +376,59 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
                        new Atom<>(Uuid.of(UUID.fromString("7cf892c2-3f04-4851-986c-a7b7d8ad1dfa"))),
 | 
			
		||||
                        new Atom<>(Uuid.of(UUID.fromString("9449e6cf-de62-4805-855b-3fc9bb5cd3ec")))));
 | 
			
		||||
        columns.put("osu_nai", new Atom<>("anonymous@rogers.com"));
 | 
			
		||||
        columns.put("osu_nai2", new Atom<>("anonymous@telus.com"));
 | 
			
		||||
 | 
			
		||||
        columns.put("osu_provider_name", new Atom<>(OvsdbToWlanCloudTypeMappingUtility
 | 
			
		||||
                .getApOsuProviderStringFromOsuProviderName("TipWlan-Hotspot20-OSU-Provider")));
 | 
			
		||||
 | 
			
		||||
        columns.put("server_uri", new Atom<>("https://example.com/osu/rogers"));
 | 
			
		||||
        columns.put("service_description", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
			
		||||
                .of(new Atom<>("eng:Example provider rogers"), new Atom<>("fra:Exemple de fournisseur rogers")));
 | 
			
		||||
 | 
			
		||||
        ret.add(new Row(columns));
 | 
			
		||||
        rows.add(new Row(columns));
 | 
			
		||||
 | 
			
		||||
        columns = new HashMap<>();
 | 
			
		||||
        columns.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("ae51393c-f9e5-4021-af73-c5ad4b751f88"))));
 | 
			
		||||
        columns.put("_version", new Atom<>(Uuid.of(UUID.randomUUID())));
 | 
			
		||||
        columns.put("method_list", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>(0), new Atom<>(1)));
 | 
			
		||||
        columns.put("osu_friendly_name", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
			
		||||
        Map<String, Value> columns2 = new HashMap<>();
 | 
			
		||||
        columns2.put("_uuid", new Atom<>(Uuid.of(UUID.fromString("ae51393c-f9e5-4021-af73-c5ad4b751f88"))));
 | 
			
		||||
        columns2.put("_version", new Atom<>(Uuid.of(UUID.randomUUID())));
 | 
			
		||||
        columns2.put("method_list", com.vmware.ovsdb.protocol.operation.notation.Set.of(new Atom<>(0), new Atom<>(1)));
 | 
			
		||||
        columns2.put("osu_friendly_name", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
			
		||||
                .of(new Atom<>("eng:Example provider telus"), new Atom<>("fra:Exemple de fournisseur telus")));
 | 
			
		||||
        columns.put("osu_icons",
 | 
			
		||||
        columns2.put("osu_icons",
 | 
			
		||||
                com.vmware.ovsdb.protocol.operation.notation.Set.of(
 | 
			
		||||
                        new Atom<>(Uuid.of(UUID.fromString("5f2d0e46-92bd-43a1-aa66-94474deb2212"))),
 | 
			
		||||
                        new Atom<>(Uuid.of(UUID.fromString("7cf892c2-3f04-4851-986c-a7b7d8ad1dfa"))),
 | 
			
		||||
                        new Atom<>(Uuid.of(UUID.fromString("9449e6cf-de62-4805-855b-3fc9bb5cd3ec")))));
 | 
			
		||||
        columns.put("osu_nai", new Atom<>("anonymous@telus.com"));
 | 
			
		||||
        columns.put("server_uri", new Atom<>("https://example.com/osu/telus"));
 | 
			
		||||
        columns.put("service_description", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
			
		||||
        columns2.put("osu_nai", new Atom<>("anonymous@telus.com"));
 | 
			
		||||
        columns2.put("osu_nai2", new Atom<>("anonymous@telus.com"));
 | 
			
		||||
 | 
			
		||||
        columns2.put("osu_provider_name", new Atom<>(OvsdbToWlanCloudTypeMappingUtility
 | 
			
		||||
                .getApOsuProviderStringFromOsuProviderName("TipWlan-Hotspot20-OSU-Provider-2")));
 | 
			
		||||
 | 
			
		||||
        columns2.put("server_uri", new Atom<>("https://example.com/osu/telus"));
 | 
			
		||||
        columns2.put("service_description", com.vmware.ovsdb.protocol.operation.notation.Set
 | 
			
		||||
                .of(new Atom<>("eng:Example provider telus"), new Atom<>("fra:Exemple de fournisseur telus")));
 | 
			
		||||
        rows.add(new Row(columns2));
 | 
			
		||||
 | 
			
		||||
        OperationResult[] operationResult = new OperationResult[1];
 | 
			
		||||
        SelectResult selectResult = new SelectResult(ret);
 | 
			
		||||
        operationResult[0] = selectResult;
 | 
			
		||||
        SelectResult selectResult = new SelectResult(rows);
 | 
			
		||||
 | 
			
		||||
        return operationResult;
 | 
			
		||||
        System.out.println("hs20OsuProviders Select Result " + selectResult.getRows());
 | 
			
		||||
        List<OperationResult> resultList = List.of(selectResult);
 | 
			
		||||
 | 
			
		||||
        return resultList.toArray(new SelectResult[0]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static OperationResult[] hs20InsertIconRows() {
 | 
			
		||||
 | 
			
		||||
        UpdateResult insertResult = new UpdateResult(1);
 | 
			
		||||
        UpdateResult insertResult2 = new UpdateResult(2);
 | 
			
		||||
        UpdateResult insertResult3 = new UpdateResult(3);
 | 
			
		||||
        UpdateResult insertResult = new UpdateResult(3);
 | 
			
		||||
        // UpdateResult insertResult2 = new UpdateResult(2);
 | 
			
		||||
        // UpdateResult insertResult3 = new UpdateResult(3);
 | 
			
		||||
 | 
			
		||||
        OperationResult[] operationResult = new OperationResult[3];
 | 
			
		||||
        OperationResult[] operationResult = new OperationResult[1];
 | 
			
		||||
        operationResult[0] = insertResult;
 | 
			
		||||
        operationResult[1] = insertResult2;
 | 
			
		||||
        operationResult[2] = insertResult3;
 | 
			
		||||
        // operationResult[1] = insertResult2;
 | 
			
		||||
        // operationResult[2] = insertResult3;
 | 
			
		||||
 | 
			
		||||
        System.out.println("hs20InsertIconRows operationResult " + Arrays.toString(operationResult));
 | 
			
		||||
        return operationResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -426,6 +444,9 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        columns.put("name", new Atom<>("icon32usa"));
 | 
			
		||||
        columns.put("path", new Atom<String>("/tmp/icon32usa.png"));
 | 
			
		||||
        columns.put("url", new Atom<String>("https://localhost:9096/icon32usa.png"));
 | 
			
		||||
        String md5Hex = DigestUtils.md5Hex("https://localhost:9096/icon32usa.png").toUpperCase();
 | 
			
		||||
        columns.put("icon_config_name", new Atom<>(md5Hex));
 | 
			
		||||
 | 
			
		||||
        columns.put("width", new Atom<>(32L));
 | 
			
		||||
 | 
			
		||||
        ret.add(new Row(columns));
 | 
			
		||||
@@ -439,6 +460,8 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        columns.put("name", new Atom<>("icon32eng"));
 | 
			
		||||
        columns.put("path", new Atom<String>("/tmp/icon32eng.png"));
 | 
			
		||||
        columns.put("url", new Atom<String>("https://localhost:9096/icon32eng.png"));
 | 
			
		||||
        md5Hex = DigestUtils.md5Hex("https://localhost:9096/icon32eng.png").toUpperCase();
 | 
			
		||||
        columns.put("icon_config_name", new Atom<>(md5Hex));
 | 
			
		||||
        columns.put("width", new Atom<>(32L));
 | 
			
		||||
 | 
			
		||||
        ret.add(new Row(columns));
 | 
			
		||||
@@ -452,6 +475,8 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        columns.put("name", new Atom<>("icon32fra"));
 | 
			
		||||
        columns.put("path", new Atom<String>("/tmp/icon32fra.png"));
 | 
			
		||||
        columns.put("url", new Atom<String>("https://localhost:9096/icon32fra.png"));
 | 
			
		||||
        md5Hex = DigestUtils.md5Hex("https://localhost:9096/icon32fra.png").toUpperCase();
 | 
			
		||||
        columns.put("icon_config_name", new Atom<>(md5Hex));
 | 
			
		||||
        columns.put("width", new Atom<>(32L));
 | 
			
		||||
 | 
			
		||||
        ret.add(new Row(columns));
 | 
			
		||||
@@ -461,6 +486,7 @@ public class OvsdbDaoTestUtilities {
 | 
			
		||||
        OperationResult[] operationResult = new OperationResult[1];
 | 
			
		||||
        operationResult[0] = selectResult;
 | 
			
		||||
 | 
			
		||||
        System.out.println("hs20IconRows operationResult " + selectResult);
 | 
			
		||||
        return operationResult;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user