X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fo1%2FSessionHandler.cpp;h=7c745ac5c0947849f88e85c05c6a8a41116748e4;hb=a31737d4988c5e02d4998c16973b1048fa2be9a4;hp=f4108c003a86ff9188236ffaa497019ee88f4ab8;hpb=b85b99f4675173c33e39787be1ceec428cefd51c;p=o-du%2Fl2.git diff --git a/src/o1/SessionHandler.cpp b/src/o1/SessionHandler.cpp index f4108c003..7c745ac5c 100644 --- a/src/o1/SessionHandler.cpp +++ b/src/o1/SessionHandler.cpp @@ -19,9 +19,14 @@ /* This file contains methods of Session/Connection creation and Subscription to YANG modules */ +#include +#include +#include "sysrepo.h" #include "SessionHandler.hpp" +#include "InitConfig.hpp" +#include "NrCellCb.hpp" - +using namespace std; /* Default constructor */ SessionHandler::SessionHandler() { @@ -46,10 +51,45 @@ bool SessionHandler::init() try { mConn = createConnection(); - mSess = createSession(mConn); - mSub = createSubscribe(mSess); - O1_LOG("\nO1 SessionHandler : Initialization done"); - return true; + if(mConn != NULL) + { + O1_LOG("\nO1 SessionHandler : Connection created"); + //removing nacm module temperary for auth issue resolve + //mConn.remove_module("ietf-netconf-acm"); + mSess = createSession(mConn); + if(mSess != NULL) + { + O1_LOG("\nO1 SessionHandler : Session created"); + mSub = createSubscribe(mSess); + if(mSub != NULL) + { + O1_LOG("\nO1 SessionHandler : Subscription created"); + if(InitConfig::instance().init(mSess)) + { + return true; + } + else + { + return false; + } + } + else + { + O1_LOG("\nO1 SessionHandler : Subscription failed"); + return false; + } + } + else + { + O1_LOG("\nO1 SessionHandler : Session failed"); + return false; + } + } + else + { + O1_LOG("\nO1 SessionHandler : connection failed"); + return false; + } } catch( const std::exception& e ) { @@ -115,6 +155,15 @@ bool SessionHandler::subscribeModule(sysrepo::S_Subscribe subscrb) subscrb->oper_get_items_subscribe(ALARM_MODULE_NAME_ORAN, \ ALARM_MODULE_PATH_ORAN, \ alarmOranCb); + + sysrepo::S_Callback nrCellCb(new NrCellCb()); + + subscrb->oper_get_items_subscribe(CELL_STATE_MODULE_NAME, \ + CELL_STATE_MODULE_PATH, \ + nrCellCb); + subscrb->module_change_subscribe(CELL_STATE_MODULE_NAME, nrCellCb); + + return true; }