Java tutorial
/* * Copyright 2014 VNPT-Technology. All rights reserved. * VNPT-Technology PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package net.vnpttech.collection.openacs.poller; import net.vnpttech.collection.openacs.mycommand.*; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.SortedSet; import java.util.TreeSet; import net.vnpttech.collection.openacs.common.AppConfig; import net.vnpttech.collection.openacs.exception.Tr069Exception; import net.vnpttech.collection.openacs.myobject.DataFileModel; import net.vnpttech.collection.openacs.ws.model.DeviceInfo; import net.vnpttech.collection.openacs.ws.model.WirelessSecurity; import org.apache.commons.lang.StringUtils; import net.vnpttech.collection.openacs.myobject.LanSetupObject; import net.vnpttech.collection.openacs.myobject.LanSetup_IPLease; import net.vnpttech.collection.openacs.myobject.Layer2InterfaceObject; import net.vnpttech.collection.openacs.myobject.Layer3GUIObject; import net.vnpttech.collection.openacs.myobject.PerformanceJAXBWrapper; import net.vnpttech.collection.openacs.myobject.PerformanceObject; import net.vnpttech.collection.openacs.myobject.SimpleObject; import net.vnpttech.collection.openacs.myobject.StaticDynamicDNSObject; import net.vnpttech.collection.openacs.myobject.StaticRouteObject; import net.vnpttech.collection.openacs.myobject.WANGUIObject; import net.vnpttech.collection.openacs.myobject.WANGUIObjectEthernet; import net.vnpttech.collection.openacs.myobject.WanServiceObject; import net.vnpttech.collection.openacs.myobject.WirelessObject; import net.vnpttech.collection.openacs.tree.Root; import net.vnpttech.collection.openacs.tree.DataFileUtils; import net.vnpttech.collection.openacs.tree.TreeUtils; import net.vnpttech.collection.openacs.ws.model.BrigdingGroup; import net.vnpttech.collection.openacs.ws.model.DeviceInterface; import net.vnpttech.collection.openacs.ws.model.IPoEWanServiceDHCP; import net.vnpttech.collection.openacs.ws.model.IPoEWanServiceStatic; import net.vnpttech.collection.openacs.ws.model.ModelUtils; import net.vnpttech.collection.openacs.ws.model.ModemDataTree; import net.vnpttech.collection.openacs.ws.model.ModemInterfaceGroups; import net.vnpttech.collection.openacs.ws.model.ParameterInforStruct; import net.vnpttech.collection.openacs.ws.model.ParameterModel; /** * * @author Vunb * @date Oct 9, 2014 * @update Oct 9, 2014 */ public class TR069ONTPoller extends TR069Poller { public TR069ONTPoller(String user_Username, String serialNumber, String connectionRequestURL) { super(user_Username, serialNumber, connectionRequestURL); } public TR069ONTPoller(String serialNumber, String connectionRequestURL) { super("System", serialNumber, connectionRequestURL); } public Layer2InterfaceObject addLayer2LanObjByVersion(String modelName) throws Exception { DataFileUtils myUtil = new DataFileUtils(); //ArrayList<String> atmLine = myUtil.getLineFromFile(FilePath.GET_ETHERNET_INTERFACE); DataFileModel datamodel = myUtil.getListSimpleObjectFromFile(FilePath.GET_ETHERNET_INTERFACE, modelName); SimpleObject root = datamodel.getRoot(); String defInstance = System.getProperty("Layer2_LAN_DefaultInstance", "1"); int atmInstance = Integer.parseInt(defInstance); ArrayList<SimpleObject> listObject = datamodel.getDataModel(atmInstance); Layer2InterfaceObject layer2 = new Layer2InterfaceObject(); layer2.setDeviceModelName(modelName); layer2.setRootName(root.getParameter()); layer2.setType(Layer2InterfaceObject.ETHERNET_TYPE); layer2.setInstance(atmInstance); layer2.setListObject(listObject); //return temp; return layer2; } public Layer2InterfaceObject addLayer2LanObj() throws Exception { return addLayer2LanObj(0); } public Layer2InterfaceObject addLayer2LanObj(int dslLatency) throws Exception { Layer2InterfaceObject returnValue = new Layer2InterfaceObject(); returnValue.setIfName("eth0"); // V1: eth0 DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_LANLayer2); //build Command Integer instance = addObjectValue(lines.get(0), null, AddObjectCommand.ADDOBJ_LAYER2); if (instance != null) { sb.setLength(0); sb.append("addLayer2LanObj success: New instance=").append(instance); logger.debug(sb); returnValue.setRootName(lines.get(0)); returnValue.setInstance(instance); returnValue.setType(Layer2InterfaceObject.ETHERNET_TYPE); // ONT working only on Ethernet Interface !!! :D return returnValue; } else { sb.setLength(0); sb.append("addLayer2LanObj_V2 error: SerialNumber=").append(serialNumber).append(", Instance=") .append(instance).append(", Path=").append(lines.get(0)); logger.error(sb); throw new Exception("addLayer2LanObj fail: instance NULL"); } } public Layer2InterfaceObject addLayer2LanObj_VER2() throws Exception { Layer2InterfaceObject returnValue = new Layer2InterfaceObject(); returnValue.setIfName("veip0"); // VER2: veip0 DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_LANLayer2_V2); ArrayList<SimpleObject> datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //set value datas.get(0).setValue(returnValue.getIfName()); datas.get(1).setValue("VlanMuxMode"); datas.get(2).setValue("TRUE"); //build Command Integer instance = addObjectValue(lines.get(0), datas, AddObjectCommand.ADDOBJ_LAYER2); if (instance != null) { sb.setLength(0); sb.append("addLayer2LanObj_V2 success: SerialNumber=").append(serialNumber).append(", Instance=") .append(instance).append(", Path=").append(lines.get(0)); logger.debug(sb); returnValue.setRootName(lines.get(0)); returnValue.setInstance(instance); returnValue.setType(Layer2InterfaceObject.ETHERNET_TYPE); // ONT working only on Ethernet Interface !!! :D return returnValue; } else { sb.setLength(0); sb.append("addLayer2LanObj_V2 error: SerialNumber=").append(serialNumber).append(", Instance=") .append(instance).append(", Path=").append(lines.get(0)); logger.error(sb); throw new Exception("addLayer2LanObj_V2 error: instance NULL"); } } public Layer2InterfaceObject getDefaulLayer2LanObj_VER3() throws IOException { DataFileUtils myUtil = new DataFileUtils(); ArrayList<String> atmLine = myUtil.getLineFromFile(FilePath.GET_ETHERNET_INTERFACE); String rootName = atmLine.get(0); String defInstance = System.getProperty("Layer2_LAN_DefaultInstance", "1"); int atmInstance = Integer.parseInt(defInstance); Layer2InterfaceObject temp = new Layer2InterfaceObject(); temp.setRootName(rootName); temp.setType(Layer2InterfaceObject.ETHERNET_TYPE); temp.setInstance(atmInstance); for (int j = 1; j < atmLine.size(); j++) { ArrayList<String> element4 = myUtil.get4ElementFromLine(atmLine.get(j)); SimpleObject tmp_ob = new SimpleObject(); tmp_ob.setId(Integer.parseInt(element4.get(0))); tmp_ob.setName(element4.get(1)); tmp_ob.setParameter(rootName + "." + String.valueOf(atmInstance) + "." + element4.get(2)); tmp_ob.setType(element4.get(3)); temp.getListObject().add(tmp_ob); } return temp; } public WanServiceObject addPPPoEWanService(Layer2InterfaceObject layer2, String serviceName, String username, String password, int vlanMux802_1Priority, int vlanMuxID, boolean ipV4Enabled, boolean ipV6Enabled, boolean natEnabled, boolean firewallEnabled, String connectionId, int wanIndex) throws Exception { WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myUtil = new DataFileUtils(); String modelName = layer2.getDeviceModelName(); DataFileModel datamodel = myUtil.getListSimpleObjectFromFile(FilePath.ADDOBJEC_PPPWANSERVICE, modelName); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANPPPConnection"; String ipV4Enabe = ipV4Enabled ? "1" : "0"; String ipV6Enabe = ipV6Enabled ? "1" : "0"; String natEnable = natEnabled ? "1" : "0"; String firewallEnable = firewallEnabled ? "1" : "0"; datamodel.setValue("ServiceDescription", serviceName); datamodel.setValue("VlanMux8021p", vlanMux802_1Priority); datamodel.setValue("VlanMuxID", vlanMuxID); datamodel.setValue("Username", username); datamodel.setValue("Password", password); datamodel.setValue("IPv4Enabled", ipV4Enabe); datamodel.setValue("IPv6Enabled", ipV6Enabe); datamodel.setValue("NATEnabled", natEnable); datamodel.setValue("FirewallEnabled", firewallEnable); datamodel.setValue("ConnectionId", connectionId); datamodel.setValue("WanIndex", wanIndex); datamodel.setValue("IfName", serviceName); //build command ArrayList<SimpleObject> datas = datamodel.getDataModel(null, null); Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.PPPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addPPPoEWanService(Layer2InterfaceObject layer2, String serviceName, String username, String password, int vlanMux802_1Priority, int vlanMuxID, boolean ipV4Enabled, boolean ipV6Enabled, boolean natEnabled, boolean firewallEnabled, String connectionId) throws Exception { return addPPPoEWanService(layer2, serviceName, username, password, vlanMux802_1Priority, vlanMuxID, ipV4Enabled, ipV6Enabled, natEnabled, firewallEnabled, connectionId, 0); // default wanindex = 0 } public WanServiceObject addIPoEWanService(Layer2InterfaceObject layer2, IPoEWanServiceDHCP ipoeWanDHCP) throws Exception { WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myUtil = new DataFileUtils(); // ArrayList<String> lines = myUtil.getLineFromFile(FilePath.ADDOBJECT_IPWANService); // ArrayList<SimpleObject> datas = myUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; String modelName = layer2.getDeviceModelName(); DataFileModel datamodel = myUtil.getListSimpleObjectFromFile(FilePath.ADDOBJECT_IPWANService, modelName); String ipV4Enabe = ipoeWanDHCP.isIpV4Enabled() ? "1" : "0"; String ipV6Enabe = ipoeWanDHCP.isIpV6Enabled() ? "1" : "0"; String natEnable = ipoeWanDHCP.isNatEnabled() ? "1" : "0"; String firewallEnable = ipoeWanDHCP.isFirewallEnabled() ? "1" : "0"; // use default in datafile datamodel.setValue("ServiceDescription", ipoeWanDHCP.getServiceName()); datamodel.setValue("VlanMux8021p", ipoeWanDHCP.getVlanMux8021Priority()); datamodel.setValue("VlanMuxID", ipoeWanDHCP.getVlanMuxID()); datamodel.setValue("IPv4Enabled", ipV4Enabe); datamodel.setValue("IPv6Enabled", ipV6Enabe); datamodel.setValue("NATEnabled", natEnable); datamodel.setValue("FirewallEnabled", firewallEnable); datamodel.setValue("ConnectionId", ipoeWanDHCP.getConnectionId()); datamodel.setValue("WanIndex", ipoeWanDHCP.getWanIndex()); // datamodel.setValue("IfName", ipoeWanDHCP.getServiceName()); ArrayList<SimpleObject> datas = datamodel.getDataModel(null, null); Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.IPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addIPoEWanService(Layer2InterfaceObject layer2, IPoEWanServiceStatic ipoeWanStatic) throws Exception { WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myUtil = new DataFileUtils(); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; String modelName = layer2.getDeviceModelName(); DataFileModel datamodel = myUtil.getListSimpleObjectFromFile(FilePath.ADDOBJECT_IPWANServiceStatic, modelName); String ipV4Enabe = ipoeWanStatic.isIpV4Enabled() ? "1" : "0"; String ipV6Enabe = ipoeWanStatic.isIpV6Enabled() ? "1" : "0"; String natEnable = ipoeWanStatic.isNatEnabled() ? "1" : "0"; String firewallEnable = ipoeWanStatic.isFirewallEnabled() ? "1" : "0"; // use default in datafile //datamodel.setValue("Enable", "1"); //datamodel.setValue("ConnectionType", "IP_Routed"); datamodel.setValue("ServiceDescription", ipoeWanStatic.getServiceName()); datamodel.setValue("VlanMux8021p", ipoeWanStatic.getVlanMux8021Priority()); datamodel.setValue("VlanMuxID", ipoeWanStatic.getVlanMuxID()); datamodel.setValue("IPv4Enabled", ipV4Enabe); datamodel.setValue("IPv6Enabled", ipV6Enabe); datamodel.setValue("NATEnabled", natEnable); datamodel.setValue("FirewallEnabled", firewallEnable); //datamodel.setValue("AddressingType", ipoeWanStatic.getAddressingType()); //datamodel.setValue("MaxMTUSize", "1500"); datamodel.setValue("ConnectionId", ipoeWanStatic.getConnectionId()); datamodel.setValue("WanIndex", ipoeWanStatic.getWanIndex()); datamodel.setValue("IPAddress", ipoeWanStatic.getExternalIPAddress()); datamodel.setValue("SubnetMask", ipoeWanStatic.getSubnetMask()); datamodel.setValue("DefaultGateway", ipoeWanStatic.getDefaultGateway()); datamodel.setValue("ConnectionId", ipoeWanStatic.getConnectionId()); datamodel.setValue("WanIndex", ipoeWanStatic.getWanIndex()); datamodel.setValue("IfName", ipoeWanStatic.getServiceName()); // ArrayList<String> lines = myUtil.getLineFromFile(FilePath.ADDOBJECT_IPWANServiceStatic); // ArrayList<SimpleObject> datas = myUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter // String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; // String ipV4Enabe = ipoeWanStatic.isIpV4Enabled() ? "1" : "0"; // String ipV6Enabe = ipoeWanStatic.isIpV6Enabled() ? "1" : "0"; // String natEnable = ipoeWanStatic.isNatEnabled() ? "1" : "0"; // String firewallEnable = ipoeWanStatic.isFirewallEnabled() ? "1" : "0"; //add value // datas.get(0).setValue("1"); // enable xsd:boolean // datas.get(1).setValue(layer2.getIfName() + "." + layer2.getInstance()); // if name // datas.get(2).setValue("IP_Routed"); // datas.get(3).setValue(ipoeWanStatic.getServiceName()); // datas.get(4).setValue("" + ipoeWanStatic.getVlanMux8021Priority()); // (0) // datas.get(5).setValue("" + ipoeWanStatic.getVlanMuxID()); //100 // datas.get(6).setValue(ipV4Enabe); // ipV4Enabled (TRUE:1) // datas.get(7).setValue(ipV6Enabe); // ipV6Enabled (FALSE:0) // datas.get(8).setValue(natEnable); // natEnabled (FALSE:0) // datas.get(9).setValue(firewallEnable); // firewallEnabled (FALSE:0) // datas.get(10).setValue(ipoeWanStatic.getAddressingType()); // AddressingType (Static) // datas.get(11).setValue(ipoeWanStatic.getExternalIPAddress()); // ExternalIPAddress // datas.get(12).setValue(ipoeWanStatic.getSubnetMask()); // SubnetMask // datas.get(13).setValue(ipoeWanStatic.getDefaultGateway()); // DefaultGateway // if (ipoeWanStatic.getWanIndex() != null && !"0".equals(ipoeWanStatic.getWanIndex())) { // datas.get(14).setValue(String.valueOf(ipoeWanStatic.getWanIndex())); // } else { // datas.remove(14); // } //build command ArrayList<SimpleObject> datas = datamodel.getDataModel(null, null); Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { // config DNS sb.setLength(0); if (!StringUtils.isBlank(ipoeWanStatic.getDnsIfName())) { sb.append(ipoeWanStatic.getDnsIfName()); } // for dns2 if (!StringUtils.isBlank(ipoeWanStatic.getDnsServers())) { if (sb.length() != 0) { sb.append(",").append(ipoeWanStatic.getDnsServers()); } else { sb.append(ipoeWanStatic.getDnsServers()); } } if (sb.length() != 0) { DataFileModel dnsModel = myUtil.getListSimpleObjectFromFile(FilePath.Set_DNSServers, modelName); //dnsModel.setValue(modelName, null); dnsModel.setValue("DNSServers", ipoeWanStatic.getDnsServers()); ArrayList<SimpleObject> dns = dnsModel.getDataModel(); for (SimpleObject tmp : dns) { if (tmp.getParameter().contains("DNSIfName")) { tmp.setValue(""); } else if (tmp.getParameter().contains("DNSServers")) { tmp.setValue(sb.toString()); } } setValueObjects(dns); } returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.IPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addBridgeWanService(Layer2InterfaceObject layer2, String serviceDescription, int vlanMux802_1Priority, int vlanMuxID, String connectionId, int wanIndex) throws Exception { String serviceName = serviceDescription; WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myUtil = new DataFileUtils(); // ArrayList<String> lines = myUtil.getLineFromFile(FilePath.ADDOBJEC_BridgeWANSERVICE); // ArrayList<SimpleObject> datas = myUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; String modelName = layer2.getDeviceModelName(); DataFileModel datamodel = myUtil.getListSimpleObjectFromFile(FilePath.ADDOBJEC_BridgeWANSERVICE, modelName); // // use default in datafile // datamodel.setValue("Enable", "TRUE"); // datamodel.setValue("ConnectionType", "IP_Bridged"); // datamodel.setValue("IGMP_SOURCEEnabled", "TRUE"); // datamodel.setValue("MLD_SOURCEEnabled", "TRUE"); // datamodel.setValue("VlanTpid", "0"); datamodel.setValue("ServiceDescription", serviceName); datamodel.setValue("VlanMux8021p", vlanMux802_1Priority); datamodel.setValue("VlanMuxID", vlanMuxID); datamodel.setValue("ConnectionId", connectionId); datamodel.setValue("WanIndex", wanIndex); datamodel.setValue("IfName", serviceName); datamodel.remove(DataFileModel.ROOT); //rebuid parameter // String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; // //add value // datas.get(0).setValue("TRUE"); // datas.get(1).setValue(layer2.getIfName() + "." + layer2.getInstance()); // 2104-12-04: change to eth0 from eth1 // datas.get(2).setValue("IP_Bridged"); //Unconfigured, IP_Routed, IP_Bridged // datas.get(3).setValue(serviceName); // datas.get(4).setValue("TRUE"); // datas.get(5).setValue("TRUE"); // datas.get(6).setValue(String.valueOf(vlanMux802_1Priority)); // datas.get(7).setValue(String.valueOf(vlanMuxID)); // datas.get(8).setValue("TRUE"); // datas.get(9).setValue("0"); // xoa 6-SOURCEEnabled-X_BROADCOM_COM_IGMP_SOURCEEnabled-xsd:boolean // Do: khong the set duoc value: xsd:boolean(1) //datas.remove(8); // V1, V2: ko c ? //datas.remove(5); // V1, V3: ko c ? //build command ArrayList<SimpleObject> datas = datamodel.getDataModel(null, null); Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.Bridge_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addBridgeWanService(Layer2InterfaceObject layer2, String serviceDescription, int vlanMux802_1Priority, int vlanMuxID, String connectionId) throws Exception { return addBridgeWanService(layer2, serviceDescription, vlanMux802_1Priority, vlanMuxID, connectionId, 0); // default cho wanidex = 0 } public WanServiceObject addPPPoEWanService_ethernet(String serviceName, String username, String password, int vlanMux802_1Priority, int vlanMuxID, boolean ipV4Enabled, boolean ipV6Enabled, boolean natEnabled, boolean firewallEnabled) throws Exception { if (true) { throw new Exception("This version does not support ONT v2"); } //set init data // 2104-12-04: change to eth0 from eth1 ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj2 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_IfName", "eth0", "xsd:string"); SimpleObject obj3 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); setValueObjects(datasetup); //add layer 2 Layer2InterfaceObject layer2 = addLayer2LanObj(); //add wan interface //WanServiceObject returnVl = addPPPoEWanService(layer2, "", username, password, "pppoe_eth0.200"); WanServiceObject returnVl = addPPPoEWanService(layer2, serviceName, username, password, vlanMux802_1Priority, vlanMuxID, ipV4Enabled, ipV6Enabled, natEnabled, firewallEnabled, null); return returnVl; } public WanServiceObject addIPoEWanServiceDHCP_ethernet(IPoEWanServiceDHCP dhcpWanService) throws Exception { //set init data // 2104-12-04: change to eth0 from eth1 ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj2 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_IfName", "eth0", "xsd:string"); SimpleObject obj3 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); setValueObjects(datasetup); //add layer 2 Layer2InterfaceObject layer2 = addLayer2LanObj(); if (org.apache.commons.lang.StringUtils.isBlank(dhcpWanService.getServiceName())) { String wanPort = "eth0"; dhcpWanService.setServiceName("ipoe_" + wanPort + "." + dhcpWanService.getVlanMuxID()); //ipoe_eth0.100 } //add wan interface WanServiceObject returnVl = addIPoEWanService(layer2, dhcpWanService); return returnVl; } public WanServiceObject addIPoEWanServiceStatic_ethernet(IPoEWanServiceStatic staticWanService) throws Exception { //set init data // 2104-12-04: change to eth0 from eth1 ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj2 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_IfName", "eth0", "xsd:string"); SimpleObject obj3 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); setValueObjects(datasetup); //add layer 2 Layer2InterfaceObject layer2 = addLayer2LanObj(); if (org.apache.commons.lang.StringUtils.isBlank(staticWanService.getServiceName())) { String wanPort = layer2.getIfName(); // "eth0"; staticWanService.setServiceName("ipoe_" + wanPort + "." + staticWanService.getVlanMuxID()); //ipoe_eth0.100 } //add wan interface WanServiceObject returnVl = addIPoEWanService(layer2, staticWanService); return returnVl; } public WanServiceObject addBridgeWanService_ethernet(String serviceDescription, int vlanMux802_1Priority, int vlanMuxID, String connectionId) throws Exception { //set init data ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj2 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_IfName", "eth0", "xsd:string"); SimpleObject obj3 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); setValueObjects(datasetup); //add layer 2 Layer2InterfaceObject layer2 = addLayer2LanObj(); //add wan interface // 2104-12-04: change to eth0 from eth1 // 2105-01-14: enter prameters from user WanServiceObject returnVl = addBridgeWanService(layer2, serviceDescription, vlanMux802_1Priority, vlanMuxID, connectionId); return returnVl; } public DeviceInfo getDeviceInfo() throws IOException, Exception { Map<String, String> datas = getTreeValue(DeviceInfo.DataTree.Root + "."); DeviceInfo devInfo = ModelUtils.parseDeviceInfo(datas); return devInfo; } /** * ham cu ko dung, chuan bi xoa * * @return * @throws Exception */ public ModemInterfaceGroups getDeviceInterfaceGroups2() throws Exception { String dataTree = "InternetGatewayDevice."; // InternetGatewayDevice.Layer2Bridging."; Map<String, String> datas = getTreeValue(dataTree); ModemInterfaceGroups ifgroups = new ModemInterfaceGroups(); Map<String, BrigdingGroup> brigdingGroups = ModelUtils.parseBrigdingGroup(datas); Map<String, DeviceInterface> devinterfaces = ModelUtils.parseDeviceInterface(datas); ArrayList<BrigdingGroup> bgroups = new ArrayList<BrigdingGroup>(); SortedSet<String> set = new TreeSet<String>(brigdingGroups.keySet()); for (String key : set) { bgroups.add(brigdingGroups.get(key)); } ArrayList<DeviceInterface> devifs = new ArrayList<DeviceInterface>(); set = new TreeSet<String>(devinterfaces.keySet()); for (String key : set) { DeviceInterface devif = devinterfaces.get(key); try { String ifRef = devif.getIfReference() + ".";// + "." + ModemDataTree.InterfaceDeviceName; //datas = getTreeValue(ifRef); String ifName = org.apache.commons.lang.StringUtils.defaultIfEmpty( datas.get(ifRef + ModemDataTree.X_InterfaceDeviceName), datas.get(ifRef + ModemDataTree.WlIfcname)); String name = datas.get(ifRef + ModemDataTree.InterfaceDeviceName); devif.setIfName(ifName); devif.setName(name); } catch (Exception ex) { System.out.println("ERROR: " + ex.getMessage()); ex.printStackTrace(System.out); } devifs.add(devif); } ifgroups.setBrigdingGroup(bgroups); ifgroups.setDeviceInterfaces(devifs); return ifgroups; } /** * ham nay thuc hien get interface v interface group theo 2 buoc nhanh hon * so voi cach get cu lay ca thong tin InternetGatewayDevice. * * @return * @throws Exception */ public ModemInterfaceGroups getDeviceInterfaceGroups() throws Exception { String dataTree = "InternetGatewayDevice.Layer2Bridging."; Map<String, String> datas = getTreeValue(dataTree); // lay ve thong tin interface group // thong tin ve interface key, group key Map<String, BrigdingGroup> brigdingGroups = ModelUtils.parseBrigdingGroup(datas); Map<String, DeviceInterface> devinterfaces = ModelUtils.parseDeviceInterface(datas); ArrayList<BrigdingGroup> bgroups = new ArrayList<BrigdingGroup>(); ArrayList<DeviceInterface> digroup = new ArrayList<DeviceInterface>(); ModemInterfaceGroups ifgroups = new ModemInterfaceGroups(); //lay duoc xong brigdingGroups for (Map.Entry<String, BrigdingGroup> entry : brigdingGroups.entrySet()) { bgroups.add(entry.getValue()); } // get lan dau //van con thieu 3 tham so la filterKey-ifGroupKey-ifName thc hin ly tip List<String> listSendToGet = new ArrayList<String>(); for (Map.Entry<String, DeviceInterface> entry : devinterfaces.entrySet()) { String Key = entry.getKey(); DeviceInterface Value = entry.getValue(); String strSend = Value.getIfReference(); String strIfName = ""; if (strSend.contains(WlVirtIntfCfg)) { strIfName = strSend + "." + WlIfcname; } else { strIfName = strSend + "." + X_BROADCOM_COM_IfName; } if (strSend.contains(WANConnectionDevice)) { // voi wan interface thi lay duoc name String name = strSend + "." + InterfaceDeviceName; listSendToGet.add(name); } listSendToGet.add(strIfName); } // get ve name va interface name GetValueCommand cm = new GetValueCommand(serialNumber, connectionRequestURL); for (String strSend : listSendToGet) { cm.addParameter(strSend); } boolean hasError = cm.executeCommand(); if (hasError) { throw new Exception(cm.getErrorString()); } Map<String, String> mapAdd = cm.getReturnValue(); for (Map.Entry<String, DeviceInterface> entry : devinterfaces.entrySet()) { DeviceInterface diTemp = entry.getValue(); String ifRef = diTemp.getIfReference() + "."; String ifName = org.apache.commons.lang.StringUtils .defaultIfEmpty(mapAdd.get(ifRef + X_BROADCOM_COM_IfName), mapAdd.get(ifRef + WlIfcname)); String name = mapAdd.get(ifRef + InterfaceDeviceName); diTemp.setName(name); diTemp.setIfName(ifName); digroup.add(diTemp); } ifgroups.setBrigdingGroup(bgroups); ifgroups.setDeviceInterfaces(digroup); return ifgroups; } public ModemInterfaceGroups getDeviceInterfaceGroupsV2() throws Exception { String dataTree = "InternetGatewayDevice.Layer2Bridging"; Map<String, String> datas = getTreeValue(ModemDataTree.Layer2Bridging.Root + "."); ModemInterfaceGroups ifgroups = new ModemInterfaceGroups(); Map<String, BrigdingGroup> brigdingGroups = ModelUtils.parseBrigdingGroup(datas); Map<String, DeviceInterface> devinterfaces = ModelUtils.parseDeviceInterface(datas); ArrayList<BrigdingGroup> bgroups = new ArrayList<BrigdingGroup>(); SortedSet<String> set = new TreeSet<String>(brigdingGroups.keySet()); for (String key : set) { bgroups.add(brigdingGroups.get(key)); } ArrayList<DeviceInterface> devifs = new ArrayList<DeviceInterface>(); set = new TreeSet<String>(devinterfaces.keySet()); for (String key : set) { DeviceInterface devif = devinterfaces.get(key); try { String ifRef = devif.getIfReference() + ".";// + "." + ModemDataTree.InterfaceDeviceName; datas = getTreeValue(ifRef); String ifName = org.apache.commons.lang.StringUtils.defaultIfEmpty( datas.get(ifRef + ModemDataTree.X_InterfaceDeviceName), datas.get(ifRef + ModemDataTree.WlIfcname)); String name = datas.get(ifRef + ModemDataTree.InterfaceDeviceName); devif.setIfName(ifName); devif.setName(name); } catch (Exception ex) { System.out.println("ERROR: " + ex.getMessage()); ex.printStackTrace(); } devifs.add(devif); } ifgroups.setBrigdingGroup(bgroups); ifgroups.setDeviceInterfaces(devifs); return ifgroups; } public boolean setDataTree(Map<String, String> mapData) throws Exception { if (mapData != null && !mapData.isEmpty()) { ArrayList<SimpleObject> listData = new ArrayList<SimpleObject>(); for (String key : mapData.keySet()) { String value = mapData.get(key); listData.add(new SimpleObject(key, value, "xsd:string")); } return setValueObjects(listData); } else { return true; } } public Layer2InterfaceObject addLayer2ATMObj(int vpi, int vci, int dslLatency) throws Exception { Layer2InterfaceObject returnValue = new Layer2InterfaceObject(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJEC_ATM); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //set value datas.get(0).setValue("PVC: " + vpi + "/" + vci); datas.get(1).setValue(TR069StaticParameter.LinkType_EOA); datas.get(2).setValue(String.valueOf(dslLatency)); //datas.get(3).setValue("atm"); datas.get(4).setValue("VlanMuxMode"); datas.get(5).setValue(String.valueOf(8)); datas.get(6).setValue(String.valueOf(1)); datas.get(7).setValue(String.valueOf(1)); datas.get(8).setValue(String.valueOf(8)); //build Command Integer instance = addObjectValue(lines.get(0), datas, AddObjectCommand.ADDOBJ_LAYER2); if (instance != null) { returnValue.setRootName(lines.get(0)); returnValue.setInstance(instance); returnValue.setType(Layer2InterfaceObject.ATM_TYPE); ArrayList<SimpleObject> dataList = new ArrayList<SimpleObject>(); for (int i = 0; i < 4; i++) { dataList.add(datas.get(i)); } returnValue.setListObject(dataList); return returnValue; } return null; } public Layer2InterfaceObject addLayer2PTMObj(int dslLatency) throws Exception { Layer2InterfaceObject returnValue = new Layer2InterfaceObject(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_PTM); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //set Value datas.get(0).setValue(String.valueOf(dslLatency)); datas.get(1).setValue("ptm"); datas.get(2).setValue("VlanMuxMode"); datas.get(3).setValue("1"); datas.get(4).setValue("1"); //build command Integer instance = addObjectValue(lines.get(0), datas, AddObjectCommand.ADDOBJ_LAYER2); if (instance != null) { returnValue.setRootName(lines.get(0)); returnValue.setInstance(instance); returnValue.setType(Layer2InterfaceObject.PTM_TYPE); ArrayList<SimpleObject> dataList = new ArrayList<SimpleObject>(); for (int i = 0; i < 2; i++) { dataList.add(datas.get(i)); } returnValue.setListObject(dataList); return returnValue; } return null; // return false; } public WanServiceObject new_addPPPoEWanService(int dslLatency, int vpi, int vci, String username, String password) throws Exception { Layer2InterfaceObject layer2 = addLayer2ATMObj(vpi, vci, dslLatency); WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJEC_PPPWANSERVICE); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANPPPConnection"; //add value datas.get(0).setValue("pppoe_" + dslLatency + "_" + vpi + "_" + vci); datas.get(1).setValue("ppp" + layer2.getInstance() + "."); datas.get(2).setValue(username); datas.get(3).setValue(password); datas.get(4).setValue("pppoe"); datas.get(5).setValue("1"); datas.get(6).setValue("1"); datas.get(7).setValue("1"); datas.get(8).setValue("IP_Routed"); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.PPPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addPPPoEWanService(Layer2InterfaceObject layer2, String description, String username, String password, String servicename) throws Exception { WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJEC_PPPWANSERVICE); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANPPPConnection"; //add value datas.get(0).setValue(description); datas.get(1).setValue("ppp" + layer2.getInstance() + "."); datas.get(2).setValue(username); datas.get(3).setValue(password); datas.get(4).setValue(servicename); datas.get(5).setValue("1"); datas.get(6).setValue("1"); datas.get(7).setValue("1"); datas.get(8).setValue("IP_Routed"); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.PPPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject new_addPPPoEWanService_ethernet(int dslLatency, String username, String password) throws Exception { //setup bien ban dau ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.IfName", "eth0", "xsd:string"); SimpleObject obj2 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.MoveToWANSide", "1", "xsd:boolean"); SimpleObject obj3 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.MoveToLANSide", "0", "xsd:boolean"); SimpleObject obj4 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj5 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); datasetup.add(obj4); datasetup.add(obj5); setValueObjects(datasetup); // //add layer 2 Layer2InterfaceObject retu = addLayer2LanObj(dslLatency); ////add wan interface WanServiceObject returnVl = addPPPoEWanService(retu, "pppoe_eth0", username, password, "pppoelan"); return returnVl; } public BrigdingGroup addInterfaceGroup(String bridgeEnable, String bridgeName, String wanInterfaceId, String... lanInterfaceIds) throws Exception { DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJEC_InterfaceGroup); ArrayList<SimpleObject> datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //set value datas.get(0).setValue(bridgeEnable); datas.get(1).setValue(bridgeName); //build Command, add object InternetGatewayDevice.Layer2Bridging.Bridge. // return number instance // set param InternetGatewayDevice.Layer2Bridging.Bridge.6.BridgeEnable, InternetGatewayDevice.Layer2Bridging.Bridge.6.BridgeName Integer instance = addObjectValue(lines.get(0), datas, AddObjectCommand.ADDOBJ_BRIDGE); if (instance != null && instance > 0) { // add FilterBridgeReference String groupDataTree = ModemDataTree.Layer2Bridging.Bridge.Root + "." + instance + "."; // get new bridge group info InternetGatewayDevice.Layer2Bridging.Bridge.new. Map<String, String> groupDatas = getTreeValue(groupDataTree); Map<String, BrigdingGroup> groupMaps = ModelUtils.parseBrigdingGroup(groupDatas); String index = instance.toString(); BrigdingGroup newGroup = groupMaps.get(index); // group moi duoc add them // update Available Interface ? ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject( ModemDataTree.Layer2Bridging.Filter.Root + "." + wanInterfaceId + "." + ModemDataTree.Layer2Bridging.Filter.FilterBridgeReference, newGroup.getBridgeKey(), ModemDataTree.DataType.INT); datasetup.add(obj1); for (String lanInterfaceId : lanInterfaceIds) { SimpleObject obj2 = new SimpleObject( ModemDataTree.Layer2Bridging.Filter.Root + "." + lanInterfaceId + "." + ModemDataTree.Layer2Bridging.Filter.FilterBridgeReference, newGroup.getBridgeKey(), ModemDataTree.DataType.INT); datasetup.add(obj2); } // set values FilterBridgeReference boolean resultAddGroup = setValueObjects(datasetup); System.out.println("[*************** RESULT *****************]"); System.out.println("RESULT add interfaces to group: " + resultAddGroup); return newGroup; } return null; } public boolean removeInterfaceGroup(String bridgeGroupKey, String wanInterfaceId, String... lanInterfaceIds) throws Exception { if ("0".equals(bridgeGroupKey) || StringUtils.isBlank(bridgeGroupKey)) { // do not delete default group return false; } // update Available Interface ? String defaultGroupKey = "0"; ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject( ModemDataTree.Layer2Bridging.Filter.Root + "." + wanInterfaceId + "." + ModemDataTree.Layer2Bridging.Filter.FilterBridgeReference, defaultGroupKey, ModemDataTree.DataType.INT); datasetup.add(obj1); for (String lanInterfaceId : lanInterfaceIds) { SimpleObject obj2 = new SimpleObject( ModemDataTree.Layer2Bridging.Filter.Root + "." + lanInterfaceId + "." + ModemDataTree.Layer2Bridging.Filter.FilterBridgeReference, defaultGroupKey, ModemDataTree.DataType.INT); datasetup.add(obj2); } // update Default boolean result = setValueObjects(datasetup); System.out.println("Update Default Group result: " + result); // Delete Object String dataTree = ModemDataTree.Layer2Bridging.Bridge.Root + "." + bridgeGroupKey + "."; result = deleteObject(dataTree); // update BridgeFilter return result; } public WanServiceObject addBridgeWanService(int dslLatency, int vpi, int vci) throws Exception { Layer2InterfaceObject layer2 = addLayer2ATMObj(vpi, vci, dslLatency); WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJEC_BridgeWANSERVICE); ArrayList<SimpleObject> datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; //add value datas.get(0).setValue("br_" + dslLatency + "_" + vpi + "_" + vci); datas.get(1).setValue("atm" + layer2.getInstance() + "."); datas.get(2).setValue("1"); datas.get(3).setValue("1"); datas.get(4).setValue("0"); datas.get(5).setValue("IP_Bridged"); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.Bridge_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject new_addIPoEWanServiceDHCP_ethernet(int dslLatency, boolean nat, boolean firewall) throws Exception { //setup bien ban dau ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.IfName", "eth0", "xsd:string"); SimpleObject obj2 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.MoveToWANSide", "1", "xsd:boolean"); SimpleObject obj3 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.MoveToLANSide", "0", "xsd:boolean"); SimpleObject obj4 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj5 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); datasetup.add(obj4); datasetup.add(obj5); setValueObjects(datasetup); // //add layer 2 Layer2InterfaceObject retu = addLayer2LanObj(dslLatency); ////add wan interface WanServiceObject returnVl = addIPoEWanServiceDHCP(retu, "ipoe_eth0", nat, firewall); return returnVl; } public WanServiceObject new_addIPoEWanServiceStatic_ethernet(int dslLatency, String ipaddress, String subnetmask, String gateway, String dns1, String dns2, boolean nat, boolean firewall) throws Exception { //setup bien ban dau ArrayList<SimpleObject> datasetup = new ArrayList<SimpleObject>(); SimpleObject obj1 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.IfName", "eth0", "xsd:string"); SimpleObject obj2 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.MoveToWANSide", "1", "xsd:boolean"); SimpleObject obj3 = new SimpleObject("InternetGatewayDevice.X_BROADCOM_COM_InterfaceControl.MoveToLANSide", "0", "xsd:boolean"); SimpleObject obj4 = new SimpleObject("InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.Enable", "1", "xsd:boolean"); SimpleObject obj5 = new SimpleObject( "InternetGatewayDevice.WANDevice.3.WANEthernetInterfaceConfig.X_BROADCOM_COM_ConnectionMode", "VlanMuxMode", "xsd:string"); datasetup.add(obj1); datasetup.add(obj2); datasetup.add(obj3); datasetup.add(obj4); datasetup.add(obj5); setValueObjects(datasetup); // //add layer 2 Layer2InterfaceObject retu = addLayer2LanObj(dslLatency); ////add wan interface WanServiceObject returnVl = addIPoEWanServiceStatic(retu, "ipoe_eth0", ipaddress, subnetmask, gateway, dns1, dns2, nat, firewall); return returnVl; } public WanServiceObject new_addIPoEWanServiceDHCP(int dslLatency, int vpi, int vci, boolean nat, boolean firewall) throws Exception { Layer2InterfaceObject layer2 = addLayer2ATMObj(vpi, vci, dslLatency); WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_IPWANServiceDHCP); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; //add value datas.get(0).setValue("ipoe_" + dslLatency + "_" + vpi + "_" + vci); // datas.get(1).setValue("atm0."); datas.get(2).setValue(TR069StaticParameter.AddressingType_DHCP); datas.get(3).setValue("1"); datas.get(4).setValue(String.valueOf(nat)); datas.get(5).setValue(String.valueOf(firewall)); datas.get(6).setValue("IP_Routed"); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.IPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addIPoEWanServiceDHCP(Layer2InterfaceObject layer2, String description, boolean nat, boolean firewall) throws Exception { WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_IPWANServiceDHCP); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; //add value datas.get(0).setValue(description); // datas.get(1).setValue("atm0."); datas.get(2).setValue(TR069StaticParameter.AddressingType_DHCP); datas.get(3).setValue("1"); datas.get(4).setValue(String.valueOf(nat)); datas.get(5).setValue(String.valueOf(firewall)); datas.get(6).setValue("IP_Routed"); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.IPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject new_addIPoEWanServiceStatic(int dslLatency, int vpi, int vci, String ipaddress, String subnetmask, String gateway, String dns1, String dns2, boolean nat, boolean firewall) throws Exception { Layer2InterfaceObject layer2 = addLayer2ATMObj(vpi, vci, dslLatency); WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_IPWANServiceStatic); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; //add value datas.get(0).setValue("ipoe_" + dslLatency + "_" + vpi + "_" + vci); // datas.get(1).setValue("atm0."); datas.get(2).setValue(TR069StaticParameter.AddressingType_Static); datas.get(3).setValue(ipaddress); datas.get(4).setValue(subnetmask); datas.get(5).setValue(gateway); datas.get(6).setValue("1"); datas.get(7).setValue(String.valueOf(nat)); datas.get(8).setValue(String.valueOf(firewall)); datas.get(9).setValue("IP_Routed"); datas.get(10).setValue(dns1 + "," + dns2); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.IPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public WanServiceObject addIPoEWanServiceStatic(Layer2InterfaceObject layer2, String description, String ipaddress, String subnetmask, String gateway, String dns1, String dns2, boolean nat, boolean firewall) throws Exception { WanServiceObject returnValue = new WanServiceObject(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDOBJECT_IPWANServiceStatic); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //rebuid parameter String path = layer2.getRootName() + "." + layer2.getInstance() + "." + "WANIPConnection"; //add value datas.get(0).setValue(description); // datas.get(1).setValue("atm0."); datas.get(2).setValue(TR069StaticParameter.AddressingType_Static); datas.get(3).setValue(ipaddress); datas.get(4).setValue(subnetmask); datas.get(5).setValue(gateway); datas.get(6).setValue("1"); datas.get(7).setValue(String.valueOf(nat)); datas.get(8).setValue(String.valueOf(firewall)); datas.get(9).setValue("IP_Routed"); datas.get(10).setValue(dns1 + "," + dns2); //build command Integer instance = addObjectValue(path, datas, AddObjectCommand.ADDOBJ_WANSERVICE); if (instance != null) { returnValue.setLayer2Interface(layer2); returnValue.setType(WanServiceObject.IPoE_TYPE); returnValue.setInstance(instance); returnValue.setListObject(datas); } return returnValue; } public boolean addLANStaticIPLease(String macAddress, String ipAddress) throws Exception { ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.ADDLAN_IPLEASE); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); //set value datas.get(0).setValue(macAddress); datas.get(1).setValue(ipAddress); datas.get(2).setValue(String.valueOf(1)); //build command Integer instance = addObjectValue(lines.get(0), datas, AddObjectCommand.ADDOBJ_IPLEASE); if (instance != null) { return true; } return false; } public boolean addStaticRoute(String destIP, String subnetMask, String type, String ifname, String gateway) throws Exception { ArrayList<SimpleObject> datas = new ArrayList<SimpleObject>(); DataFileUtils myStringUtil = new DataFileUtils(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.STATIC_ROUTE_IP); datas = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); datas.get(0).setValue(gateway); datas.get(1).setValue(subnetMask); datas.get(2).setValue(ifname); datas.get(3).setValue("-1"); datas.get(4).setValue(destIP); datas.get(5).setValue("-1"); datas.get(6).setValue("1"); if (type.equals(WanServiceObject.PPPoE_TYPE) || type.equals(WanServiceObject.PPPoA_TYPE)) { datas.remove(0); } //build command Integer instance = addObjectValue(lines.get(0), datas, AddObjectCommand.ADDOBJ_IPLEASE); return instance != null; } public ArrayList<SimpleObject> getInfoManagement() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.ManagementServer."); //get data from file DataFileUtils myUtil = new DataFileUtils(); ArrayList<SimpleObject> returnValue = myUtil.getListSimpleObjectFromFile(FilePath.GET_MANAGEMENT_SERVER); //set data TreeUtils myTreeUtil = new TreeUtils(); myTreeUtil.getArrayValues(tempRoot, returnValue); return returnValue; } public WANGUIObjectEthernet getWANGUIObject_ethernet() throws Exception { int __VERSION = 1; return getWANGUIObject_ethernet(__VERSION); } /** * This api is old, please use modelName instead of this * * @param __VERSION * @return WANGUIObjectEthernet * @throws java.lang.Exception * @deprecated use {@link #getWANGUIObject_ethernet(String modelName)} * instead. */ @Deprecated public WANGUIObjectEthernet getWANGUIObject_ethernet(final int __VERSION) throws Exception { String pathTemplate = "InternetGatewayDevice.WANDevice.%s.WANConnectionDevice"; String dataTree; if (__VERSION == 2) { dataTree = String.format(pathTemplate, AppConfig.ONT_V2_WANDEVICE_INDEX); } else { // default __VERSION = 1; dataTree = String.format(pathTemplate, AppConfig.ONT_V1_WANDEVICE_INDEX); } Root tempRoot = getTreeRoot(dataTree + "."); tempRoot.setPath(dataTree); tempRoot.setVersion(__VERSION); WANGUIObjectEthernet returnValue = new WANGUIObjectEthernet(); ArrayList<Layer2InterfaceObject> layer2 = getLayer2LanInterface(tempRoot); ArrayList<Layer2InterfaceObject> layer2Data = new ArrayList<Layer2InterfaceObject>(); for (Layer2InterfaceObject item : layer2) { if (TR069StaticParameter.LinkType_EOA.equals(item.getListObject().get(1).getValue())) { layer2Data.add(item); } } returnValue.setLayer2LanInterface(layer2Data); returnValue.setWanService(getEthernetWANService(tempRoot)); return returnValue; } public WANGUIObject getWANGUIObject() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice.1.WANConnectionDevice."); WANGUIObject returnValue = new WANGUIObject(); ArrayList<Layer2InterfaceObject> layer2 = getATMInterface(tempRoot); ArrayList<Layer2InterfaceObject> layer2Data = new ArrayList<Layer2InterfaceObject>(); for (Layer2InterfaceObject item : layer2) { if (TR069StaticParameter.LinkType_EOA.equals(item.getListObject().get(1).getValue())) { layer2Data.add(item); } } returnValue.setAtmInterface(layer2Data); returnValue.setWanService(getATMWANService(tempRoot)); return returnValue; } public ArrayList<WanServiceObject> getEthernetWANService() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice.3.WANConnectionDevice."); return getEthernetWANService(tempRoot); } public ArrayList<WanServiceObject> getEthernetWANService(Root tempRoot) throws Exception { return toEthernetWANService(tempRoot); } public ArrayList<WanServiceObject> getATMWANService() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice.1.WANConnectionDevice."); return getATMWANService(tempRoot); } public ArrayList<WanServiceObject> getATMWANService(Root tempRoot) throws Exception { ArrayList<WanServiceObject> returnValue = new ArrayList<WanServiceObject>(); DataFileUtils myUtil = new DataFileUtils(); TreeUtils myTreeUtil = new TreeUtils(); ArrayList<Layer2InterfaceObject> layer2 = getATMInterface(tempRoot); //get PPPoE ArrayList<SimpleObject> listObj_PPP = myUtil.getListSimpleObjectFromFile(FilePath.GET_PPPoE); for (int i = 0; i < layer2.size(); i++) { String str_ppp = layer2.get(i).getRootName() + "." + layer2.get(i).getInstance() + ".WANPPPConnection"; //System.out.println("123124556: "+str_ppp_atm); ArrayList<Integer> ppp_Instances = myTreeUtil.getListInstanceFromPath(tempRoot, str_ppp); //System.out.println("xxxxx: "+ppp_atmInstances.size()); if (ppp_Instances != null) { //list Object from file for (int j = 0; j < ppp_Instances.size(); j++) { WanServiceObject temp3 = new WanServiceObject(); temp3.setLayer2Interface(layer2.get(i)); if (TR069StaticParameter.LinkType_EOA.equals(layer2.get(i).getListObject().get(1).getValue())) { temp3.setType(WanServiceObject.PPPoE_TYPE); } else { temp3.setType(WanServiceObject.PPPoA_TYPE); } //clone list obj2 ArrayList<SimpleObject> listObj = new ArrayList<SimpleObject>(); for (int u = 0; u < listObj_PPP.size(); u++) { listObj.add(listObj_PPP.get(u).cloneObject()); //SimpleObject yyy = xxx.; } //end clone temp3.setInstance(ppp_Instances.get(j)); for (int k = 0; k < listObj.size(); k++) { // System.out.println("uuuu : "+str_ppp_atm+"."+ppp_atmInstances.get(j)+"."+listObj.get(k).getParameter()); listObj.get(k).setParameter( str_ppp + "." + ppp_Instances.get(j) + "." + listObj.get(k).getParameter()); } temp3.setListObject(myTreeUtil.getArrayValues(tempRoot, listObj)); returnValue.add(temp3); } } } //get IPoE ArrayList<SimpleObject> listObj_IP = myUtil.getListSimpleObjectFromFile(FilePath.GET_IPoE); for (int i = 0; i < layer2.size(); i++) { String str_ip = layer2.get(i).getRootName() + "." + layer2.get(i).getInstance() + ".WANIPConnection"; //System.out.println("123124556: "+str_ppp_atm); ArrayList<Integer> ip_Instances = myTreeUtil.getListInstanceFromPath(tempRoot, str_ip); //System.out.println("xxxxx: "+ppp_atmInstances.size()); if (ip_Instances != null) { //list Object from file for (int j = 0; j < ip_Instances.size(); j++) { WanServiceObject temp3 = new WanServiceObject(); temp3.setLayer2Interface(layer2.get(i)); if (TR069StaticParameter.LinkType_EOA.equals(layer2.get(i).getListObject().get(1).getValue())) { temp3.setType(WanServiceObject.IPoE_TYPE); } else { temp3.setType(WanServiceObject.IPoA_TYPE); } //clone list obj2 ArrayList<SimpleObject> listObj = new ArrayList<SimpleObject>(); for (int u = 0; u < listObj_IP.size(); u++) { listObj.add(listObj_IP.get(u).cloneObject()); //SimpleObject yyy = xxx.; } //end clone temp3.setInstance(ip_Instances.get(j)); for (int k = 0; k < listObj.size(); k++) { // System.out.println("uuuu : "+str_ip_atm+"."+ip_atmInstances.get(j)+"."+listObj.get(k).getParameter()); listObj.get(k).setParameter( str_ip + "." + ip_Instances.get(j) + "." + listObj.get(k).getParameter()); } temp3.setListObject(myTreeUtil.getArrayValues(tempRoot, listObj)); returnValue.add(temp3); } } } return returnValue; } public ArrayList<WanServiceObject> getWANService() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice."); return getWANService(tempRoot); } public ArrayList<WanServiceObject> getWANService(Root tempRoot) throws Exception { ArrayList<WanServiceObject> returnValue = new ArrayList<WanServiceObject>(); DataFileUtils myUtil = new DataFileUtils(); TreeUtils myTreeUtil = new TreeUtils(); ArrayList<Layer2InterfaceObject> layer2 = getLayer2Interface(tempRoot); //get PPPoE ArrayList<SimpleObject> listObj_PPP = myUtil.getListSimpleObjectFromFile(FilePath.GET_PPPoE); for (int i = 0; i < layer2.size(); i++) { String str_ppp = layer2.get(i).getRootName() + "." + layer2.get(i).getInstance() + ".WANPPPConnection"; //System.out.println("123124556: "+str_ppp_atm); ArrayList<Integer> ppp_Instances = myTreeUtil.getListInstanceFromPath(tempRoot, str_ppp); //System.out.println("xxxxx: "+ppp_atmInstances.size()); if (ppp_Instances != null) { //list Object from file for (int j = 0; j < ppp_Instances.size(); j++) { WanServiceObject temp3 = new WanServiceObject(); temp3.setLayer2Interface(layer2.get(i)); temp3.setType(WanServiceObject.PPPoE_TYPE); //clone list obj2 ArrayList<SimpleObject> listObj = new ArrayList<SimpleObject>(); for (int u = 0; u < listObj_PPP.size(); u++) { listObj.add(listObj_PPP.get(u).cloneObject()); //SimpleObject yyy = xxx.; } //end clone temp3.setInstance(ppp_Instances.get(j)); for (int k = 0; k < listObj.size(); k++) { // System.out.println("uuuu : "+str_ppp_atm+"."+ppp_atmInstances.get(j)+"."+listObj.get(k).getParameter()); listObj.get(k).setParameter( str_ppp + "." + ppp_Instances.get(j) + "." + listObj.get(k).getParameter()); } temp3.setListObject(myTreeUtil.getArrayValues(tempRoot, listObj)); returnValue.add(temp3); } } } //get IPoE ArrayList<SimpleObject> listObj_IP = myUtil.getListSimpleObjectFromFile(FilePath.GET_IPoE); for (int i = 0; i < layer2.size(); i++) { String str_ip = layer2.get(i).getRootName() + "." + layer2.get(i).getInstance() + ".WANIPConnection"; //System.out.println("123124556: "+str_ppp_atm); ArrayList<Integer> ip_Instances = myTreeUtil.getListInstanceFromPath(tempRoot, str_ip); //System.out.println("xxxxx: "+ppp_atmInstances.size()); if (ip_Instances != null) { //list Object from file for (int j = 0; j < ip_Instances.size(); j++) { WanServiceObject temp3 = new WanServiceObject(); temp3.setLayer2Interface(layer2.get(i)); temp3.setType(WanServiceObject.IPoE_TYPE); //clone list obj2 ArrayList<SimpleObject> listObj = new ArrayList<SimpleObject>(); for (int u = 0; u < listObj_IP.size(); u++) { listObj.add(listObj_IP.get(u).cloneObject()); //SimpleObject yyy = xxx.; } //end clone temp3.setInstance(ip_Instances.get(j)); for (int k = 0; k < listObj.size(); k++) { // System.out.println("uuuu : "+str_ip_atm+"."+ip_atmInstances.get(j)+"."+listObj.get(k).getParameter()); listObj.get(k).setParameter( str_ip + "." + ip_Instances.get(j) + "." + listObj.get(k).getParameter()); } temp3.setListObject(myTreeUtil.getArrayValues(tempRoot, listObj)); returnValue.add(temp3); } } } return returnValue; } public ArrayList<Layer2InterfaceObject> getATMInterface(String root) throws Exception { Root tempRoot = getTreeRoot(root); return getATMInterface(tempRoot); } public ArrayList<Layer2InterfaceObject> getATMInterface(Root tempRoot) throws Exception { ArrayList<Layer2InterfaceObject> returnValue = new ArrayList<Layer2InterfaceObject>(); //get data from file DataFileUtils myUtil = new DataFileUtils(); TreeUtils myTreeUtil = new TreeUtils(); //ATM ArrayList<String> atmLine = myUtil.getLineFromFile(FilePath.GET_ATM_INTERFACE); ArrayList<Integer> atmInstances = myTreeUtil.getListInstanceFromPath(tempRoot, atmLine.get(0)); if (atmInstances != null) { for (int i = 0; i < atmInstances.size(); i++) { Layer2InterfaceObject temp = new Layer2InterfaceObject(); temp.setRootName(atmLine.get(0)); temp.setType(Layer2InterfaceObject.ATM_TYPE); temp.setInstance(atmInstances.get(i)); for (int j = 1; j < atmLine.size(); j++) { ArrayList<String> element4 = myUtil.get4ElementFromLine(atmLine.get(j)); SimpleObject tmp_ob = new SimpleObject(); tmp_ob.setId(Integer.parseInt(element4.get(0))); tmp_ob.setName(element4.get(1)); tmp_ob.setParameter( atmLine.get(0) + "." + String.valueOf(atmInstances.get(i)) + "." + element4.get(2)); tmp_ob.setType(element4.get(3)); temp.getListObject().add(tmp_ob); } returnValue.add(temp); } } //set data myTreeUtil.getArrayValues_2(tempRoot, returnValue); return returnValue; } public ArrayList<Layer2InterfaceObject> getLayer2LanInterface() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice.3.WANConnectionDevice."); return getLayer2Interface(tempRoot); } public ArrayList<Layer2InterfaceObject> getLayer2LanInterface(Root tempRoot) throws Exception { return toLayer2LanInterface(tempRoot); } public ArrayList<Layer2InterfaceObject> getLayer2Interface() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice."); return getLayer2Interface(tempRoot); } public ArrayList<Layer2InterfaceObject> getLayer2Interface(Root tempRoot) throws Exception { ArrayList<Layer2InterfaceObject> returnValue = new ArrayList<Layer2InterfaceObject>(); //Root tempRoot = getTreeRoot("InternetGatewayDevice.WANDevice."); //listTree(tempRoot); //get data from file DataFileUtils myUtil = new DataFileUtils(); TreeUtils myTreeUtil = new TreeUtils(); //ATM ArrayList<String> atmLine = myUtil.getLineFromFile(FilePath.GET_ATM_INTERFACE); ArrayList<Integer> atmInstances = myTreeUtil.getListInstanceFromPath(tempRoot, atmLine.get(0)); for (int i = 0; i < atmInstances.size(); i++) { Layer2InterfaceObject temp = new Layer2InterfaceObject(); temp.setRootName(atmLine.get(0)); temp.setType(Layer2InterfaceObject.ATM_TYPE); temp.setInstance(atmInstances.get(i)); for (int j = 1; j < atmLine.size(); j++) { ArrayList<String> element4 = myUtil.get4ElementFromLine(atmLine.get(j)); SimpleObject tmp_ob = new SimpleObject(); tmp_ob.setId(Integer.parseInt(element4.get(0))); tmp_ob.setName(element4.get(1)); tmp_ob.setParameter( atmLine.get(0) + "." + String.valueOf(atmInstances.get(i)) + "." + element4.get(2)); tmp_ob.setType(element4.get(3)); temp.getListObject().add(tmp_ob); } returnValue.add(temp); } //PTM ArrayList<String> ptmLine = myUtil.getLineFromFile(FilePath.GET_PTM_INTERFACE); ArrayList<Integer> ptmInstances = myTreeUtil.getListInstanceFromPath(tempRoot, ptmLine.get(0)); if (ptmInstances != null) { for (int i = 0; i < ptmInstances.size(); i++) { Layer2InterfaceObject temp = new Layer2InterfaceObject(); temp.setRootName(ptmLine.get(0)); temp.setType(Layer2InterfaceObject.PTM_TYPE); temp.setInstance(ptmInstances.get(i)); for (int j = 1; j < ptmLine.size(); j++) { ArrayList<String> element4 = myUtil.get4ElementFromLine(ptmLine.get(j)); SimpleObject tmp_ob = new SimpleObject(); tmp_ob.setId(Integer.parseInt(element4.get(0))); tmp_ob.setName(element4.get(1)); tmp_ob.setParameter( ptmLine.get(0) + "." + String.valueOf(ptmInstances.get(i)) + "." + element4.get(2)); tmp_ob.setType(element4.get(3)); temp.getListObject().add(tmp_ob); } returnValue.add(temp); } } //set data myTreeUtil.getArrayValues_2(tempRoot, returnValue); return returnValue; } public ArrayList<LanSetup_IPLease> getLAN_IPLease(String pathRoot, Root tempRoot) throws IOException { ArrayList<LanSetup_IPLease> returnValue = new ArrayList<LanSetup_IPLease>(); DataFileUtils myStringUtil = new DataFileUtils(); TreeUtils myTreeUtil = new TreeUtils(); ArrayList<String> getLine = myStringUtil.getLineFromFile(FilePath.READ_LANIPLEASE); ArrayList<Integer> listInstances = myTreeUtil.getListInstanceFromPath(tempRoot, pathRoot); if (listInstances != null) { for (int i = 0; i < listInstances.size(); i++) { LanSetup_IPLease returnObj = new LanSetup_IPLease(); returnObj.setRootName(pathRoot); returnObj.setInstance(listInstances.get(i)); for (int j = 1; j < getLine.size(); j++) { ArrayList<String> element4 = myStringUtil.get4ElementFromLine(getLine.get(j)); SimpleObject tmp = new SimpleObject(); tmp.setId(Integer.parseInt(element4.get(0))); tmp.setName(element4.get(1)); tmp.setParameter(pathRoot + "." + listInstances.get(i) + "." + element4.get(2)); tmp.setType(element4.get(3)); returnObj.getListObj().add(tmp); } myTreeUtil.getArrayValues(tempRoot, returnObj.getListObj()); returnValue.add(returnObj); } } return returnValue; } public LanSetupObject getLanSetup(String bridgeIndex) throws Exception { // get param from file DataFileModel dm = DataFileModel.createDataFileModel(FilePath.GET_LANPARAM, null); dm.setInstance(bridgeIndex); GetValueCommand cm = new GetValueCommand(serialNumber, connectionRequestURL); List<SimpleObject> datas = dm.getParsedValues(); for (SimpleObject data : datas) { cm.addParameter(data.getParameter()); } boolean hasError = cm.executeCommand(); if (hasError) { throw new Exception("can not get cpe params"); } // read config from return value LanSetupObject returnValue = new LanSetupObject(); Map<String, String> vlue = cm.getReturnValue(); // get lan common params ArrayList<SimpleObject> lanCommonList = new ArrayList<SimpleObject>(datas.size()); for (SimpleObject lanConfig : datas) { if (vlue.containsKey(lanConfig.getParameter())) { lanConfig.setValue(vlue.get(lanConfig.getParameter())); lanCommonList.add(lanConfig); } } returnValue.setLanCommon(lanCommonList); // read lan ip lease Root tempRoot = new Root("InternetGatewayDevice"); TreeUtils myTreeUtil = new TreeUtils(); for (Map.Entry<String, String> element : vlue.entrySet()) { tempRoot = myTreeUtil.createTree(tempRoot, element.getKey(), element.getValue()); } String pathRoot = "InternetGatewayDevice.LANDevice." + bridgeIndex + ".LANHostConfigManagement.DHCPConditionalServingPool"; ArrayList<LanSetup_IPLease> temp = getLAN_IPLease(pathRoot, tempRoot); returnValue.setLanIPLease(temp); return returnValue; } public ArrayList<WirelessObject> getWirelessInfor() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice.LANDevice.1.WLANConfiguration.1."); return getWirelessInfor(tempRoot); } public ArrayList<WirelessObject> getWirelessInfor(Root tempRoot) throws IOException { ArrayList<WirelessObject> returnValue = new ArrayList<WirelessObject>(); //get data DataFileUtils myStringUtil = new DataFileUtils(); TreeUtils myTreeUtil = new TreeUtils(); ArrayList<SimpleObject> dataFile = null; for (int i = 0; i < 4; i++) { WirelessObject wlObj = new WirelessObject(); if (i == 0) { dataFile = myStringUtil.getListSimpleObjectFromFile(FilePath.GET_WIRELESS); } else if (i == 1) { dataFile = myStringUtil.getListSimpleObjectFromFile(FilePath.GET_WIRELESS_1); } else if (i == 2) { dataFile = myStringUtil.getListSimpleObjectFromFile(FilePath.GET_WIRELESS_2); } else if (i == 3) { dataFile = myStringUtil.getListSimpleObjectFromFile(FilePath.GET_WIRELESS_3); } dataFile = myTreeUtil.getArrayValues(tempRoot, dataFile); if (i == 0) { //enable wlObj.getEnableWireless().add(dataFile.get(0)); wlObj.getEnableWireless().add(dataFile.get(1)); wlObj.getEnableWireless().add(dataFile.get(2)); //ssid wlObj.getSsidName().add(dataFile.get(3)); wlObj.getSsidName().add(dataFile.get(4)); //isolate wlObj.setIsolateClient(dataFile.get(5)); //hidden wlObj.getHidden().add(dataFile.get(6)); wlObj.getHidden().add(dataFile.get(7)); //DiableWMM wlObj.setDisableWMM(dataFile.get(8)); //Enable WMF wlObj.setEnableWMF(dataFile.get(9)); //max client wlObj.setMaxClient(dataFile.get(10)); //security wlObj.getSecurity().add(dataFile.get(11)); wlObj.getSecurity().add(dataFile.get(12)); wlObj.getSecurity().add(dataFile.get(13)); wlObj.getSecurity().add(dataFile.get(14)); wlObj.getSecurity().add(dataFile.get(15)); } else { //enable wlObj.getEnableWireless().add(dataFile.get(0)); wlObj.getEnableWireless().add(dataFile.get(1)); //ssid wlObj.getSsidName().add(dataFile.get(2)); wlObj.getSsidName().add(dataFile.get(3)); //isolate wlObj.setIsolateClient(dataFile.get(4)); //hidden wlObj.getHidden().add(dataFile.get(5)); wlObj.getHidden().add(dataFile.get(6)); //DiableWMM wlObj.setDisableWMM(dataFile.get(7)); //Enable WMF wlObj.setEnableWMF(dataFile.get(8)); //max client wlObj.setMaxClient(dataFile.get(9)); //security wlObj.getSecurity().add(dataFile.get(10)); wlObj.getSecurity().add(dataFile.get(11)); wlObj.getSecurity().add(dataFile.get(12)); wlObj.getSecurity().add(dataFile.get(13)); wlObj.getSecurity().add(dataFile.get(14)); } returnValue.add(wlObj); } return returnValue; } public PerformanceObject getPerformanceDevice() throws Exception { Root tempRoot = getTreeRoot("InternetGatewayDevice."); return getPerformanceDevice(tempRoot); } public PerformanceObject getPerformanceDevice(Root tempRoot) throws Exception { PerformanceObject returnValue = new PerformanceObject(); DataFileUtils myStringUtil = new DataFileUtils(); TreeUtils treeUtil = new TreeUtils(); ///////////////////////////get Lan Performance ArrayList<PerformanceJAXBWrapper> lanPerformance = new ArrayList<PerformanceJAXBWrapper>(); ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.GET_LANPERFORMANCE); ArrayList<SimpleObject> lanPerformanceItem = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); ArrayList<Integer> instances = treeUtil.getListInstanceFromPath(tempRoot, "InternetGatewayDevice.LANDevice.1.LANEthernetInterfaceConfig"); if (instances != null) { for (Integer in : instances) { //clone lan performance item ArrayList<SimpleObject> cloneLanPerform = new ArrayList<SimpleObject>(); for (SimpleObject simpleObj : lanPerformanceItem) { cloneLanPerform.add(simpleObj.cloneObject()); } //end clone & now edit parameter for (SimpleObject obj : cloneLanPerform) { obj.setParameter(lines.get(0) + "." + in + "." + obj.getParameter()); } //add value to list parameter cloneLanPerform = treeUtil.getArrayValues(tempRoot, cloneLanPerform); //add to returnvalue PerformanceJAXBWrapper lanWrapper = new PerformanceJAXBWrapper(); lanWrapper.setPerformanceWrapper(cloneLanPerform); lanPerformance.add(lanWrapper); } } returnValue.setLanPerformance(lanPerformance); //end get lan performance ///////////////////////////get WLAN Performance ArrayList<SimpleObject> wlanPerformance = myStringUtil .getListSimpleObjectFromFile(FilePath.GET_WLANPERFORMANCE); //add value to list parameter wlanPerformance = treeUtil.getArrayValues(tempRoot, wlanPerformance); //add to returnvalue returnValue.setWlanPerformance(wlanPerformance); //end get wlan performmanc ////////////////////////get WAN Performance ArrayList<PerformanceJAXBWrapper> wanPerformance = new ArrayList<PerformanceJAXBWrapper>(); ArrayList<WanServiceObject> wanServiceObj = getATMWANService(tempRoot); ArrayList<SimpleObject> fileObj = myStringUtil.getListSimpleObjectFromFile(FilePath.GET_WANPERFORMANCE); for (WanServiceObject item : wanServiceObj) { //clone obj ArrayList<SimpleObject> cloneObj = new ArrayList<SimpleObject>(); for (SimpleObject fileObjItem : fileObj) { cloneObj.add(fileObjItem.cloneObject()); } //end clone & now edit parameter Layer2InterfaceObject layer2Obj = item.getLayer2Interface(); String path = layer2Obj.getRootName() + "." + layer2Obj.getInstance() + "."; if (item.getType().equals(WanServiceObject.IPoE_TYPE)) { path = path + "WANIPConnection."; } else { path = path + "WANPPPConnection."; } path = path + item.getInstance() + "."; //edit parameter name for (SimpleObject obj : cloneObj) { obj.setParameter(path + obj.getParameter()); } //add value to list parameter cloneObj = treeUtil.getArrayValues(tempRoot, cloneObj); PerformanceJAXBWrapper wanWrapper = new PerformanceJAXBWrapper(); wanWrapper.setPerformanceWrapper(cloneObj); //add to returnvalue wanPerformance.add(wanWrapper); } returnValue.setWanPerformance(wanPerformance); //end get wan performance ///////////////////////get DSL Performance ArrayList<SimpleObject> dslPerformance = myStringUtil .getListSimpleObjectFromFile(FilePath.GET_DSLPERFORMANCE); ArrayList<SimpleObject> opticalInfo = myStringUtil.getListSimpleObjectFromFile(FilePath.GET_OPTICAL_INFO); //add value to list parameter dslPerformance = treeUtil.getArrayValues(tempRoot, dslPerformance); opticalInfo = treeUtil.getArrayValues(tempRoot, opticalInfo); //add traffic type SimpleObject trafficType = new SimpleObject("", "TrafficType", "ATM", "xsd:string"); trafficType.setId(16); dslPerformance.add(trafficType); //add to returnvalue returnValue.setDslPerformance(dslPerformance); returnValue.setOpticalInfo(opticalInfo); //end get dsl return returnValue; } // public Layer3GUIObject getLayer3GUIObject() throws Exception { // Root tempRoot = getTreeRoot("InternetGatewayDevice."); // return getLayer3GUIObject(tempRoot); // } // // public Layer3GUIObject getLayer3GUIObject(Root tempRoot) throws Exception { // Layer3GUIObject returnValue = new Layer3GUIObject(); // DataFileUtils myStringUtil = new DataFileUtils(); // ArrayList<String> lines = myStringUtil.getLineFromFile(FilePath.STATIC_ROUTE_IP); // TreeUtils treeUtil = new TreeUtils(); // // //set value default gateway // SimpleObject defaultGateway = new SimpleObject(); // defaultGateway.setParameter(TR069StaticParameter.Default_Gateway); // defaultGateway.setType("xsd:string"); // defaultGateway.setValue(treeUtil.getValueFromPath(tempRoot, TR069StaticParameter.Default_Gateway)); // returnValue.setDefaultGateway(defaultGateway); // //set value default dns // SimpleObject defaultDNS = new SimpleObject(); // defaultDNS.setParameter(TR069StaticParameter.Default_DNS); // defaultDNS.setType("xsd:string"); // defaultDNS.setValue(treeUtil.getValueFromPath(tempRoot, TR069StaticParameter.Default_DNS)); // returnValue.setDefaultDNS(defaultDNS); // //set value list wan service // ArrayList<WanServiceObject> listWanServiceObj = getATMWANService(tempRoot); // ArrayList<WanServiceObject> returnWanObj = new ArrayList<WanServiceObject>(); // for (WanServiceObject item : listWanServiceObj) { // if (item.getType().equals(WanServiceObject.IPoE_TYPE) || item.getType().equals(WanServiceObject.PPPoE_TYPE)) { // returnWanObj.add(item); // } // } // returnValue.setListWanService(returnWanObj); // //set value list static ip // ArrayList<StaticRouteObject> staticRouteObj = new ArrayList<StaticRouteObject>(); // ArrayList<Integer> listInstance = treeUtil.getListInstanceFromPath(tempRoot, lines.get(0)); // ArrayList<SimpleObject> dataSample = myStringUtil.getListSimpleObjectFromList(lines, 1, lines.size()); // if (listInstance != null) { // for (Integer item : listInstance) { // StaticRouteObject sttObj = new StaticRouteObject(); // sttObj.setInstance(item); // //clone // ArrayList<SimpleObject> cloneObj = new ArrayList<SimpleObject>(); // for (SimpleObject obj : dataSample) { // cloneObj.add(obj.cloneObject()); // } // //edit parameter name // for (SimpleObject obj : cloneObj) { // obj.setParameter(lines.get(0) + "." + item + "." + obj.getParameter()); // } // //set value // cloneObj = treeUtil.getArrayValues(tempRoot, cloneObj); // //end clone // sttObj.setListObj(cloneObj); // //add to list // staticRouteObj.add(sttObj); // } // } // returnValue.setListStaticRoute(staticRouteObj); // // return returnValue; // } public String getUptime() throws Exception { GetValueCommand cmand = new GetValueCommand(user_Username, serialNumber, connectionRequestURL, "InternetGatewayDevice.DeviceInfo.UpTime"); boolean ok = cmand.executeCommand(); Map<String, String> vlue = null; if (!ok) { vlue = cmand.getReturnValue(); } return vlue.get("InternetGatewayDevice.DeviceInfo.UpTime"); } public List<ParameterModel> getValue(List<String> listParam) throws Exception { GetValueCommand cmand = new GetValueCommand(serialNumber, connectionRequestURL); cmand.setTreeNode(listParam); boolean ok = cmand.executeCommand(); Map<String, String> vlue = null; if (!ok) { vlue = cmand.getReturnValue(); } if (ok) { throw new Tr069Exception(cmand.getErrorString()); } if (vlue != null) { List<ParameterModel> listParamModel = new ArrayList<ParameterModel>(vlue.size()); for (Map.Entry<String, String> entry : vlue.entrySet()) { System.out.println(entry.getKey() + " - " + entry.getValue()); ParameterModel tmp = new ParameterModel(); tmp.setParameter(entry.getKey()); tmp.setValue(entry.getValue()); listParamModel.add(tmp); } return listParamModel; } return null; } public String scheduleInform(int timeSchedule) throws Exception { ScheduleInformCommand cm = new ScheduleInformCommand(serialNumber, connectionRequestURL, timeSchedule); boolean ok = cm.executeCommand(); return ok == false ? "Success" : "Failed"; } public List<ParameterInforStruct> getParameterNames(String parameter, boolean nextLevel) throws Exception { GetParameterNamesCommand cmand = new GetParameterNamesCommand(serialNumber, connectionRequestURL); cmand.setParameterNames(parameter); cmand.setNextLevel(nextLevel); boolean ok = cmand.executeCommand(); Map<String, String> vlue = null; if (!ok) { vlue = cmand.getReturnValue(); } if (vlue != null) { List<ParameterInforStruct> listParamModel = new ArrayList<ParameterInforStruct>(vlue.size()); for (Map.Entry<String, String> entry : vlue.entrySet()) { System.out.println(entry.getKey() + " - " + entry.getValue()); ParameterInforStruct tmp = new ParameterInforStruct(); tmp.setParameterName(entry.getKey()); tmp.setWriteAble(Boolean.parseBoolean(entry.getValue())); listParamModel.add(tmp); } return listParamModel; } return null; } public StaticDynamicDNSObject addDynamicDNSObject(StaticDynamicDNSObject DDNSObject, String modelName) throws IOException, Exception { StaticDynamicDNSObject returnValue = new StaticDynamicDNSObject(); DataFileModel dm = DataFileModel.createDataFileModel(FilePath.StaticDynamicDNS, modelName); String Root = dm.getRoot().getParameter(); //dm.setValue("enable", DDNSObject.getEnable()); dm.setValue("fullyQualifiedDomainName", DDNSObject.getFullyQualifiedDomainName()); dm.setValue("ifName", DDNSObject.getIfName()); dm.setValue("fassword", DDNSObject.getPassWord()); dm.setValue("providerName", DDNSObject.getProviderName()); dm.setValue("userName", DDNSObject.getUserName()); ArrayList<SimpleObject> datas = dm.getDataModel(null, null); Integer instance = addObjectValue(Root, datas, AddObjectCommand.ADDBJ_DDNS); return returnValue; } //<editor-fold defaultstate="collapsed" desc="@Vunb 2015-03-06 add feature: wifi offload"> public Map<String, WirelessSecurity> getAllWirelessSecurity() throws IOException, Exception { Map<String, String> datas = getTreeValue(WirelessSecurity.DataTree.Root + "."); Map<String, WirelessSecurity> listWlSecurity = ModelUtils.parseWirelessSecurity(datas); return listWlSecurity; } public boolean configWirelessSecurity(WirelessSecurity wlSecurity) throws IOException, Exception { //0. check condition if (StringUtils.isBlank(wlSecurity.getWlAuthMode())) { throw new Exception("Network Authentication is required: NULL"); } else if (StringUtils.isBlank(wlSecurity.getWlSsid())) { throw new Exception("SSID is required: NULL"); } //1. get all wireless security enable WirelessSecurity selectSSID = null; Map<String, String> datas = getTreeValue(WirelessSecurity.DataTree.Root + "."); Map<String, WirelessSecurity> listWlSecurity = ModelUtils.parseWirelessSecurity(datas); for (WirelessSecurity item : listWlSecurity.values()) { if (wlSecurity.getWlSsid().equalsIgnoreCase(item.getWlSsid())) { selectSSID = item; } } if (selectSSID == null) { throw new Exception("SSID not Found."); } //2. set up data wireless security DataFileUtils dataFileUtil = new DataFileUtils(); ArrayList<String> lines = dataFileUtil.getLineFromFile(FilePath.Set_WirelessSecurity); ArrayList<SimpleObject> wlSecurityObj = dataFileUtil.getListSimpleObjectFromList(lines, 1, lines.size()); String wlsecRoot = lines.get(0) + "." + selectSSID.getInstance(); for (SimpleObject simpleObject : wlSecurityObj) { simpleObject.setParameter(wlsecRoot + "." + simpleObject.getParameter()); } wlSecurityObj.get(0).setValue(wlSecurity.getWlSsid()); wlSecurityObj.get(1).setValue(wlSecurity.getWlAuthMode()); wlSecurityObj.get(2).setValue(String.valueOf(wlSecurity.getWlWpaGTKRekey())); wlSecurityObj.get(3).setValue(wlSecurity.getWlRadiusServerIP()); wlSecurityObj.get(4).setValue(wlSecurity.getWlRadiusKey()); wlSecurityObj.get(5).setValue(String.valueOf(wlSecurity.getWlRadiusPort())); wlSecurityObj.get(6).setValue(wlSecurity.getWlWpa()); wlSecurityObj.get(7).setValue(wlSecurity.getWlWep()); wlSecurityObj.get(8).setValue(String.valueOf(wlSecurity.getWlPreauth())); wlSecurityObj.get(9).setValue(String.valueOf(wlSecurity.getWlNetReauth())); // check and remove unnecessary if (wlSecurity.getWlAuthMode().contains("wp2")) { wlSecurityObj.remove(8); wlSecurityObj.remove(9); } // request device boolean result = setValueObjects(wlSecurityObj); return result; } //</editor-fold> //<editor-fold defaultstate="collapsed" desc="2015-05-14: Support ONT VER2"> public WanServiceObject addPPPoEWanService_ethernet(String serviceName, String username, String password, int vlanMux802_1Priority, int vlanMuxID, boolean ipV4Enabled, boolean ipV6Enabled, boolean natEnabled, boolean firewallEnabled, String modelName, String connectionId, int wanIndex) throws Exception { Layer2InterfaceObject layer2 = addLayer2LanObjByVersion(modelName); //add wan interface serviceName = StringUtils.defaultIfEmpty(serviceName, "pppoe_veip0"); WanServiceObject returnVl = addPPPoEWanService(layer2, serviceName, username, password, vlanMux802_1Priority, vlanMuxID, ipV4Enabled, ipV6Enabled, natEnabled, firewallEnabled, connectionId, wanIndex); return returnVl; } public WanServiceObject addPPPoEWanService_ethernet(String serviceName, String username, String password, int vlanMux802_1Priority, int vlanMuxID, boolean ipV4Enabled, boolean ipV6Enabled, boolean natEnabled, boolean firewallEnabled, String modelName, String connectionId) throws Exception { return addPPPoEWanService_ethernet(serviceName, username, password, vlanMux802_1Priority, vlanMuxID, ipV4Enabled, ipV6Enabled, natEnabled, firewallEnabled, modelName, connectionId, 0); // default wanindex = 0 } public WanServiceObject addIPoEWanServiceDHCP_ethernet(IPoEWanServiceDHCP dhcpWanService, String modelName) throws Exception { Layer2InterfaceObject layer2 = addLayer2LanObjByVersion(modelName); //add wan interface WanServiceObject returnVl = addIPoEWanService(layer2, dhcpWanService); return returnVl; } public WanServiceObject addIPoEWanServiceStatic_ethernet(IPoEWanServiceStatic staticWanService, String modelName) throws Exception { Layer2InterfaceObject layer2 = addLayer2LanObjByVersion(modelName); //add wan interface WanServiceObject returnVl = addIPoEWanService(layer2, staticWanService); return returnVl; } public WanServiceObject addBridgeWanService(String serviceDescription, int vlanMux802_1Priority, int vlanMuxID, String modelName, String connectionId, int wanIndex) throws Exception { Layer2InterfaceObject layer2 = addLayer2LanObjByVersion(modelName); //add wan interface sb.setLength(0); sb.append("addBridgeWanService: ServiceDescription=").append(serviceDescription) .append(", vlanMux802_1Priority=").append(vlanMux802_1Priority).append(", vlanMuxID=") .append(vlanMuxID).append(", __MODEL_NAME=").append(modelName); logger.info(sb); WanServiceObject returnVl = addBridgeWanService(layer2, serviceDescription, vlanMux802_1Priority, vlanMuxID, connectionId, wanIndex); return returnVl; } public WanServiceObject addBridgeWanService(String serviceDescription, int vlanMux802_1Priority, int vlanMuxID, String modelName, String connectionId) throws Exception { return addBridgeWanService(serviceDescription, vlanMux802_1Priority, vlanMuxID, modelName, connectionId, 0); // default wanIndex = 0 } //</editor-fold> }