Created yang_model bucklet.

Change-Id: I01986161ef40abe4f0df3a9d9a1e7bc43f0eba71
This commit is contained in:
Thomas Vachuska 2017-03-23 15:00:08 -07:00
parent 01001b9cae
commit 22f731c007
2 changed files with 66 additions and 49 deletions

View File

@ -1,9 +1,73 @@
include_defs('//onos.defs')
include_defs('//bucklets/onos.bucklet')
include_defs('//bucklets/onos_app.bucklet')
def _get_name():
base_path = get_base_path()
return ONOS_ARTIFACT_BASE + base_path.replace('/', '-') #TODO Unix-separator
YANG_TOOLS = [
'//apps/yang:onos-apps-yang',
'//lib:onos-yang-runtime',
]
def yang_model(
name = None,
app_name = None,
title = 'YANG Model',
url = 'http://onosproject.org',
description = None,
deps = [],
**kwargs
):
if name is None:
name = _get_name()
yang = name + '-yang'
yangSrcs = yang + '#srcs'
schema = name + '-schema'
registrator = name + '-registrator'
yang_library(
name = yang,
srcs = glob(['src/**/*.yang']),
)
genrule(
name = schema,
srcs = [ ':' + yangSrcs ],
cmd = '$(location //buck-tools:yang-schema) $OUT $SRCS',
out = 'yang'
)
genrule(
name = registrator,
srcs = [ ':' + yangSrcs ],
cmd = '$(location //buck-tools:yang-registrator) $OUT app_name $SRCS',
out = 'YangModelRegistrator.java'
)
osgi_jar(
name = 'onos-models-demo',
srcs = [ ':' + yangSrcs, ':' + registrator ],
deps = deps + YANG_TOOLS,
resources = [ ':' + schema ],
resources_root = ".",
do_checkstyle = False,
do_javadocs = False,
)
onos_app (
app_name = app_name,
title = title,
category = 'Model',
url = url,
description = description,
required_apps = [ 'org.onosproject.yang' ],
)
def yang_osgi_jar(
name = None,
srcs = None,

View File

@ -2,56 +2,9 @@ COMPILE_DEPS = [
'//lib:CORE_DEPS',
]
# The following will be wrapped into a macro to be used something like this:
#
# yang_model (
# app_name = 'org.onosproject.models.foobar',
# title = 'Demo YANG Model',
# url = 'http://onosproject.org',
# )
YANG_TOOLS = [
'//apps/yang:onos-apps-yang',
'//lib:onos-yang-runtime',
]
yang_library(
name = 'yang',
srcs = glob(['src/**/*.yang']),
)
genrule(
name = 'schema',
srcs = [ ':yang#srcs' ],
cmd = '$(location //buck-tools:yang-schema) $OUT $SRCS',
out = 'yang'
)
genrule(
name = 'registrator',
srcs = glob(['src/**/*.yang']),
cmd = '$(location //buck-tools:yang-registrator) $OUT org.onosproject.models.demo $SRCS',
out = 'YangModelRegistrator.java'
)
osgi_jar(
name = 'onos-models-demo',
# srcs = [ ':registrator' ],
srcs = [ ':yang#srcs', ':registrator' ],
deps = COMPILE_DEPS + YANG_TOOLS,
resources = [ ':schema' ],
resources_root = ".",
do_checkstyle = False,
do_javadocs = False,
)
onos_app (
yang_model (
app_name = 'org.onosproject.models.demo',
title = 'Demo YANG Model',
category = 'Model',
url = 'http://onosproject.org',
description = 'Demo YANG model extension.',
required_apps = [ 'org.onosproject.yang' ],
deps = COMPILE_DEPS,
)