X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fo1%2FSessionHandler.cpp;h=4fbe39007cad313e02f77a802a1ebdede9febba3;hb=0c4403cc2355cc38d01c6645b1dad36dd4c1daa7;hp=f4108c003a86ff9188236ffaa497019ee88f4ab8;hpb=514d4c21e79d37636005186dd9ac5510742b7618;p=o-du%2Fl2.git diff --git a/src/o1/SessionHandler.cpp b/src/o1/SessionHandler.cpp index f4108c003..4fbe39007 100644 --- a/src/o1/SessionHandler.cpp +++ b/src/o1/SessionHandler.cpp @@ -19,9 +19,16 @@ /* 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" +#include "NrCellDuCb.hpp" +#include "RrmPolicyCb.hpp" - +using namespace std; /* Default constructor */ SessionHandler::SessionHandler() { @@ -30,7 +37,7 @@ SessionHandler::SessionHandler() /* Destructor */ SessionHandler::~SessionHandler() -{ +{ } /********************************************************************** @@ -46,10 +53,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 +157,26 @@ 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); + + sysrepo::S_Callback nrCellDuCb(new NrCellDuCb()); + subscrb->oper_get_items_subscribe(MANAGED_ELEMENT_MODULE_NAME, \ + MANAGED_ELEMENT_MODULE_PATH, \ + nrCellDuCb); + subscrb->module_change_subscribe(MANAGED_ELEMENT_MODULE_NAME, nrCellDuCb); + + sysrepo::S_Callback rrmPolicyCb(new RrmPolicyCb()); + subscrb->oper_get_items_subscribe(RRMPOLICY_MODULE_NAME, \ + RRMPOLICY_MODULE_PATH, \ + rrmPolicyCb); + subscrb->module_change_subscribe(RRMPOLICY_MODULE_NAME, rrmPolicyCb); + return true; }