blob: 22044b5af76279789514586df20237953a973e33 [file] [log] [blame]
Thomas Vachuskaad37e372017-08-03 12:07:01 -07001#!/bin/bash
2
3#
4# Copyright 2015-present Open Networking Foundation
5#
6# Licensed under the Apache License, Version 2.0 (the "License");
7# you may not use this file except in compliance with the License.
8# You may obtain a copy of the License at
9#
10# http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing, software
13# distributed under the License is distributed on an "AS IS" BASIS,
14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#
18
19# -----------------------------------------------------------------------------
20# Tool to compile the specified YANG file(s) using the ONOS live compilation.
21# -----------------------------------------------------------------------------
Thomas Vachuska4bd4bf12018-04-16 14:02:18 -070022function usage {
23 echo "usage: onos-compile-yang [-P port] [-u user] [-p password] [-v] \\"
24 echo " <yang-file|zip-file|jar-file|directory>" >&2
25 exit 1
26}
Thomas Vachuskaad37e372017-08-03 12:07:01 -070027
Thomas Vachuska4bd4bf12018-04-16 14:02:18 -070028. $(dirname $0)/_rest-port
Thomas Vachuska7f2a3562018-02-28 10:02:16 -080029. $(dirname $0)/_find-node
Thomas Vachuskaad37e372017-08-03 12:07:01 -070030
31node=$(find_node $1)
32yang=$2
33
Thomas Vachuska4bd4bf12018-04-16 14:02:18 -070034export URL=http://$node:$port/onos/yang/models
35export curl="curl $fail -sSL --user $user:$password --noproxy ${node} "
Thomas Vachuskaad37e372017-08-03 12:07:01 -070036
37[ -z $node -o "$node" = "-h" -o "$node" = "--help" -o "$node" = "-?" ] && usage
38
39if [ -d $yang ]; then
40 newYang=/tmp/$(basename $yang).jar
41 jar cf $newYang $yang
42 yang=$newYang
43fi
44
45file=$(basename $yang)
46modelId="$(echo $file | sed -E 's/(.zip|.jar|.yang)$//g')"
47curl $URL?modelId=$modelId -F"file=@$yang"