package com.owera.xaps.tr069.methods; public class GPVDecisionInspection { // protected static void processInspection(HTTPReqResData reqRes) throws TR069DatabaseException { // SessionData sessionData = reqRes.getSessionData(); // Unit u = sessionData.getUnit(); // ProvisioningState state = u.getProvisioningState(); // try { // populateToCollections(sessionData); // if (state == ProvisioningState.LOADING) { // Unittype unittype = sessionData.getUnittype(); // UnittypeParameter utp = unittype.getUnittypeParameters().getByName(SystemParameters.PROVISIONING_STATE); // List<UnitParameter> unitParameters = new ArrayList<UnitParameter>(); // UnitParameter up = new UnitParameter(utp, sessionData.getUnitId(), ProvisioningState.READY.toString(), sessionData.getProfile()); // unitParameters.add(up); // Log.debug(GPVDecision.class, "Reset from " + u.getProvisioningState() + " to READY state"); // DBAccessStatic.queueUnitParameters(u, unitParameters, sessionData.getProfile()); // Log.debug(GPVDecision.class, "Write changes to ACS"); // DBAccessSessionTR069 dbAccessSessionTR069 = new DBAccessSessionTR069(DBAccess.getDBI(), sessionData.getDbAccess()); // dbAccessSessionTR069.writeUnitSessionParams(sessionData); // reqRes.getResponse().setMethod(TR069Method.EMPTY); // sessionData.getProvisioningMessage().setProvOutput(ProvOutput.EMPTY); // } else if (state == ProvisioningState.STORING) { // DBAccessSessionTR069 dbAccessSessionTR069 = new DBAccessSessionTR069(DBAccess.getDBI(), sessionData.getDbAccess()); // dbAccessSessionTR069.writeUnitSessionParams(sessionData); // reqRes.getResponse().setMethod(TR069Method.SET_PARAMETER_VALUES); // sessionData.getProvisioningMessage().setProvOutput(ProvOutput.CONFIG); // } else { // reqRes.getResponse().setMethod(TR069Method.EMPTY); // sessionData.getProvisioningMessage().setProvOutput(ProvOutput.EMPTY); // } // } catch (SQLException sqle) { // throw new TR069DatabaseException(sqle); // } // } // // private static String msg(UnittypeParameter utp, String cpeValue, String acsValue, String action, String cause) { // if (utp.getFlag().isConfidential()) // return "-" + String.format("%-15s", action) + utp.getName() + " CPE:[*****] ACS:[*****] Flags:[" + utp.getFlag().toString() + "] Cause:[" + cause + "]"; // else // return "-" + String.format("%-15s", action) + utp.getName() + " CPE:[" + cpeValue + "] ACS:[" + acsValue + "] Flags:[" + utp.getFlag().toString() + "] Cause:[" + cause + "]"; // } // // private static void populateToCollections(SessionData sessionData) throws SQLException, NoAvailableConnectionException { // UnittypeParameters utps = sessionData.getUnittype().getUnittypeParameters(); // ParameterList toCPE = new ParameterList(); // List<ParameterValueStruct> toDB = new ArrayList<ParameterValueStruct>(); // Unit unit = sessionData.getUnit(); // ProvisioningState state = unit.getProvisioningState(); // if (state == ProvisioningState.LOADING) // Log.info(GPVDecisionInspection.class, "Provisioning in INSPECTION mode and " + state + " state, " + sessionData.getFromCPE().size() + " params from CPE may be copied to ACS session storage"); // else if (state == ProvisioningState.STORING) // Log.info(GPVDecisionInspection.class, "Provisioning in INSPECTION mode and " + state + " state, " + sessionData.getFromCPE().size() + " params maybe exchanged between CPE and ACS"); // for (int i = 0; i < sessionData.getFromCPE().size(); i++) { // ParameterValueStruct pvsCPE = sessionData.getFromCPE().get(i); // UnittypeParameter utp = utps.getByName(pvsCPE.getName()); // if (utp == null) { // Log.debug(GPVDecisionInspection.class, "The parameter name " + pvsCPE.getName() + " was not recognized in ACS, could happen if a GPV on all params was issued."); // continue; // } // if (state == ProvisioningState.LOADING) // toDB.add(pvsCPE); // else if (state == ProvisioningState.STORING) { // ParameterValueStruct pvsDB = (ParameterValueStruct) sessionData.getFromDB().get(pvsCPE.getName()); // String cpeV = pvsCPE.getValue(); // String acsV = null; // if (pvsDB != null) // acsV = pvsDB.getValue(); // if (acsV != null && !acsV.equals(cpeV)) { // if (utp.getFlag().isReadWrite()) { // Log.debug(GPVDecision.class, msg(utp, cpeV, acsV, "ACS->CPE", "Param has ReadWrite-flag")); // pvsDB.setType(pvsCPE.getType()); // toCPE.addParameterValueStruct(pvsDB); // } // toDB.add(pvsCPE); // } // } // } // sessionData.setToCPE(toCPE); // sessionData.setToDB(toDB); // Log.debug(GPVDecisionInspection.class, toCPE.getParameterValueList().size() + " params to CPE, " + toDB.size() + " params to ACS"); // } }