3 echo "Downloading yang dependencies..."
5 DIRECTORY="odl-lispflowmapping-yang-files"
7 # odl-lispflowmapping-yang-files will contain all the yang files
8 # odl-lispflowmapping-yang-files/LispFlowMappingYANGBindings will
9 # contain all the binding files generated by pyangbind.
10 mkdir -p ${WORKSPACE}/$DIRECTORY
12 GITWEB_LISP="https://git.opendaylight.org/gerrit/gitweb?p=lispflowmapping.git;a=blob_plain;hb=refs/heads/${DISTROBRANCH}"
13 GITWEB_MDSAL="https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=blob_plain"
15 # Download yang-files in the VM on fly using curl before generating
17 curl "$GITWEB_LISP;f=mappingservice/lisp-proto/src/main/yang/odl-lisp-proto.yang" -o ${WORKSPACE}/$DIRECTORY/odl-lisp-proto.yang
18 curl "$GITWEB_LISP;f=mappingservice/lisp-proto/src/main/yang/odl-inet-binary-types.yang" -o ${WORKSPACE}/$DIRECTORY/odl-inet-binary-types.yang
19 curl "$GITWEB_LISP;f=mappingservice/api/src/main/yang/odl-mappingservice.yang" -o ${WORKSPACE}/$DIRECTORY/odl-mappingservice.yang
20 curl "$GITWEB_LISP;f=mappingservice/lisp-proto/src/main/yang/odl-lisp-address-types.yang" -o ${WORKSPACE}/$DIRECTORY/odl-lisp-address-types.yang
22 # ietf-{inet,yang}-types.yang folder renamed in Neon, and there is no stable/neon branch
23 if [ ${DISTROBRANCH} = "stable/oxygen" -o ${DISTROBRANCH} = "stable/fluorine" ]
25 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/yang-ext/src/main/yang/yang-ext.yang" -o ${WORKSPACE}/$DIRECTORY/yang-ext.yang
26 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/ietf/ietf-lisp-address-types/src/main/yang/ietf-lisp-address-types.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-lisp-address-types.yang
27 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/ietf/ietf-yang-types-20130715/src/main/yang/ietf-yang-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-yang-types.yang
28 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/ietf/ietf-inet-types-2013-07-15/src/main/yang/ietf-inet-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-inet-types.yang
29 elif [ ${DISTROBRANCH} = "stable/neon" ]
31 curl "$GITWEB_MDSAL;hb=refs/tags/v3.0.6;f=model/yang-ext/src/main/yang/yang-ext.yang" -o ${WORKSPACE}/$DIRECTORY/yang-ext.yang
32 curl "$GITWEB_MDSAL;hb=refs/tags/v3.0.6;f=model/ietf/ietf-lisp-address-types/src/main/yang/ietf-lisp-address-types.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-lisp-address-types.yang
33 curl "$GITWEB_MDSAL;hb=refs/tags/v3.0.6;f=model/ietf/rfc6991-ietf-yang-types/src/main/yang/ietf-yang-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-yang-types.yang
34 curl "$GITWEB_MDSAL;hb=refs/tags/v3.0.6;f=model/ietf/rfc6991-ietf-inet-types/src/main/yang/ietf-inet-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-inet-types.yang
35 elif [ ${DISTROBRANCH} = "stable/sodium" ]
37 curl "$GITWEB_MDSAL;hb=refs/tags/v4.0.4;f=model/yang-ext/src/main/yang/yang-ext.yang" -o ${WORKSPACE}/$DIRECTORY/yang-ext.yang
38 curl "$GITWEB_MDSAL;hb=refs/tags/v4.0.4;f=model/ietf/ietf-lisp-address-types/src/main/yang/ietf-lisp-address-types.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-lisp-address-types.yang
39 curl "$GITWEB_MDSAL;hb=refs/tags/v4.0.4;f=model/ietf/rfc6991-ietf-yang-types/src/main/yang/ietf-yang-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-yang-types.yang
40 curl "$GITWEB_MDSAL;hb=refs/tags/v4.0.4;f=model/ietf/rfc6991-ietf-inet-types/src/main/yang/ietf-inet-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-inet-types.yang
42 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/yang-ext/src/main/yang/yang-ext.yang" -o ${WORKSPACE}/$DIRECTORY/yang-ext.yang
43 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/ietf/ietf-lisp-address-types/src/main/yang/ietf-lisp-address-types.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-lisp-address-types.yang
44 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/ietf/rfc6991-ietf-yang-types/src/main/yang/ietf-yang-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-yang-types.yang
45 curl "$GITWEB_MDSAL;hb=refs/heads/${DISTROBRANCH};f=model/ietf/rfc6991-ietf-inet-types/src/main/yang/ietf-inet-types@2013-07-15.yang" -o ${WORKSPACE}/$DIRECTORY/ietf-inet-types.yang
48 # Copy bits patch to yang file directory
49 cp ${WORKSPACE}/test/csit/suites/lispflowmapping/scripts/bits.patch ${WORKSPACE}/$DIRECTORY
51 # Go to odl-lispflowmapping-yang-files directory
52 pushd ${WORKSPACE}/$DIRECTORY
54 # Currently bits are not supported in pyangbind plugin so
55 # We need to apply patch to generate pyangbind bindings
57 patch -i bits.patch && echo 'Patch applied successfully!'
59 # Generate binding files using pyangbind
60 PYBINDPLUGIN=`/usr/bin/env python -c 'import pyangbind; import os; print "%s/plugin" % os.path.dirname(pyangbind.__file__)'`
61 pyang --plugindir $PYBINDPLUGIN -f pybind --build-rpcs --split-class-dir ${WORKSPACE}/$DIRECTORY/LISPFlowMappingYANGBindings ./odl-mappingservice.yang
63 # Go back the main direcory
66 echo "Yang Dependencies and bindings downloaded successfully in ${WORKSPACE}/$DIRECTORY"