diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-03-03 13:13:05 +0900 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2015-03-03 13:13:05 +0900 |
commit | 84a846719d75cad500ac83f34eda11035a332599 (patch) | |
tree | 3d380a607d962057b5ce5115e2ce079eb9b83a4c | |
parent | f0ae221b894fdd02f697f4fb6994623082e2175e (diff) |
tools: add README for yang plugin
also do some cleanups.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r-- | tools/pyang_plugins/README.rst | 20 | ||||
-rw-r--r-- | tools/pyang_plugins/bgpyang2golang.py | 19 |
2 files changed, 22 insertions, 17 deletions
diff --git a/tools/pyang_plugins/README.rst b/tools/pyang_plugins/README.rst new file mode 100644 index 00000000..04d25614 --- /dev/null +++ b/tools/pyang_plugins/README.rst @@ -0,0 +1,20 @@ +What's this ? +============= +This is a pyang plugin to generate config/bgp_configs.go from +openconfig yang files. + +Currently, we made some modifications to the yang files: + + https://github.com/osrg/yang/tree/gobgp + + +How to use +========== + $ git clone -b gobgp https://github.com/osrg/yang + $ YANG_DIR=`pwd`/yang/experimental/openconfig + $ cd $PYANG_INSTALL_DIR + $ source ./env.sh + $ PYTHONPATH=. ./bin/pyang --plugindir $GOBGP_PATH/tools/pyang_plugins \ + -p $YANG_DIR/bgp \ + -p $YANG_DIR/policy \ + -f golang $YANG_DIR/bgp/bgp.yang |gofmt > $GOBGP_PATH/config/bgp_configs.go diff --git a/tools/pyang_plugins/bgpyang2golang.py b/tools/pyang_plugins/bgpyang2golang.py index 99c3a13b..ee81c311 100644 --- a/tools/pyang_plugins/bgpyang2golang.py +++ b/tools/pyang_plugins/bgpyang2golang.py @@ -1,4 +1,4 @@ -# Copyright (C) 2014 Nippon Telegraph and Telephone Corporation. +# Copyright (C) 2014,2015 Nippon Telegraph and Telephone Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,23 +13,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -# this is a pyang plugin to generate $GOBGP_PATH/config/bgp_configs.go -# usage example: -# GOBGP_PATH=$GOPATH/src/github.com/osrg/gobgp -# cd $PYANG_INSTALL_DIR -# source ./env.sh -# PYTHONPATH=. ./bin/pyang --plugindir $GOBGP_PATH/tools/pyang_plugins \ -# -p $GOBGP_PATH/tools/yang/ -f golang \ -# $GOBGP_PATH/tools/yang/bgp.yang > out.go -# gofmt out.go > $GOBGP_PATH/config/bgp_configs.go -# -# NOTICE: copy related yang files into $PYANG_INSTALL_DIR/modules/ in advance. import StringIO from pyang import plugin _COPYRIGHT_NOTICE = """ -// Copyright (C) 2014 Nippon Telegraph and Telephone Corporation. +// Copyright (C) 2014,2015 Nippon Telegraph and Telephone Corporation. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -69,12 +58,10 @@ def emit_golang(ctx, module, fd): # visit typedef visit_typedef(ctx, module) - #visit_typedef(ctx, ctx.get_module('bgp-policy')) visit_typedef(ctx, ctx.get_module('routing-policy')) visit_typedef(ctx, ctx.get_module('bgp-multiprotocol')) visit_typedef(ctx, ctx.get_module('bgp-operational')) # visit identity - #visit_identity(ctx, ctx.get_module('bgp-policy')) visit_identity(ctx, ctx.get_module('routing-policy')) visit_identity(ctx, ctx.get_module('bgp-multiprotocol')) visit_identity(ctx, ctx.get_module('bgp-operational')) @@ -87,12 +74,10 @@ def emit_golang(ctx, module, fd): generate_header(ctx) emit_typedef(ctx, module) - #emit_typedef(ctx, ctx.get_module('bgp-policy')) emit_typedef(ctx, ctx.get_module('routing-policy')) emit_typedef(ctx, ctx.get_module('bgp-multiprotocol')) emit_typedef(ctx, ctx.get_module('bgp-operational')) - for struct in ctx.golang_struct_def: struct_name = struct.arg if struct_name in done: |