aboutsummaryrefslogtreecommitdiffstats
path: root/src/gnmi/sysrepoapi.h
diff options
context:
space:
mode:
authorYohanPipereau <ypiperea@cisco.com>2019-06-17 14:55:16 +0200
committerYohanPipereau <ypiperea@cisco.com>2019-06-17 15:27:32 +0200
commitb7b52e85c1b05a456119c11b9cf8e79d660194cc (patch)
tree3c218784e367bfdb43363fd2b04a4254d48c13a9 /src/gnmi/sysrepoapi.h
parentec995e056d985f9ef54f92adbcbe626967912592 (diff)
[gnmi] Remove gNMI from sweetcomb
Reasons for removing it: -This gNMI server has been upgraded to a more stable form. -It should live in a separate project because gNMI server is only dependant of sysrepo not of VPP or sweetcomb. -There were strange dependencies to this implementation like an XML parser library. -Capabilities RPC was answering wrong version number (1001 instead of 0.7.0) and encodings (ASCII vs JSON). -Error codes were not return to client in case of problem of configuration. Typically for element not found. -This server uses sysrepo C API though bindings for C++ can be obtained. -Documentation was missing. -Set RPC could not identify a key in a YANG list because a YANG library must be used for this not just a JSON parser. -It would be difficult to adapt this server to support more encodings than JSON. The new gNMI server offers an easier way to add encodings. -Log control level has been implemented in the new gNMI server. -Subscribe RPC has been added to the new server. Link to the new gNMI server: https://github.com/YohanPipereau/sysrepo_gnxi Change-Id: If57ab23c776430552d9d70fea6681db1b56af525 Signed-off-by: YohanPipereau <ypiperea@cisco.com>
Diffstat (limited to 'src/gnmi/sysrepoapi.h')
-rw-r--r--src/gnmi/sysrepoapi.h109
1 files changed, 0 insertions, 109 deletions
diff --git a/src/gnmi/sysrepoapi.h b/src/gnmi/sysrepoapi.h
deleted file mode 100644
index 8ebcf95..0000000
--- a/src/gnmi/sysrepoapi.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (c) 2019 PANTHEON.tech.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SYSREPOAPI_H
-#define SYSREPOAPI_H
-
-#include "gnmidata.h"
-#include "eventreciverbase.h"
-
-#include <sysrepo.h>
-#include <sysrepo/values.h>
-#include <string>
-#include <list>
-
-#include <iostream>
-
-struct SysrepoValue
-{
- void setXPath(const std::string &str) {
- std::string tmp = str;
- std::size_t pos = 0;
-
- while (std::string::npos != (pos = tmp.find(":", pos))) {
- tmp.replace(pos, std::string(":").length(), "/");
- }
-
- xpath = tmp;
- }
-
- std::string xpath;
- std::string value;
-};
-
-struct SysrepSchema
-{
- std::string moduleName;
- std::string revision;
-};
-
-/**
- * @todo write docs
- */
-class SysrepoAPI : public virtual BaseSender<SysrepoAPI>
-{
-public:
- /**
- * Default constructor
- */
- SysrepoAPI();
-
- /**
- * Destructor
- */
- ~SysrepoAPI();
-
- void setSysrepoName(const std::string &sysrepo_name);
-
- void connect();
- void createSession(sr_datastore_e sesType = SR_DS_RUNNING);
- void closeSession();
- void commit();
-
- void addData(const gNMIData &data);
- void getItemMessage();
- void setItemMessage();
- void rpcSend(const std::string &xpath, sr_val_t &input);
- void eventSubscribeMessage();
- const std::list<SysrepSchema> &getSchemas();
-// void print_value();
-
- std::list<gNMIData> getOutputData() const;
- void cleanData();
-
-private:
- friend void event_notif_cb(const sr_ev_notif_type_t notif_type,
- const char *xpath, const sr_val_t *values,
- const size_t value_cnt, time_t timestamp,
- void *private_ct);
- enum sr_type_e convergNMITypeToSysrepo(gNMIData::ValueType type);
- gNMIData::ValueType convergSysrepoTypeTogNMI(sr_type_e type);
- void setSrVal(sr_val_t &value, const gNMIData &gData);
- void setOutVal(const sr_val_t &value);
-
-private:
- std::string sysrepo_name = "app";
- sr_conn_ctx_t *conn = nullptr;
- sr_session_ctx_t *sess = nullptr;
- sr_subscription_ctx_t *subscription = nullptr;
-
- std::list<gNMIData> inputData;
- std::list<gNMIData> outpuData;
- std::list<SysrepSchema> schemaList;
-
-};
-
-#endif // SYSREPOAPI_H