Created yang_model bucklet.
Change-Id: I01986161ef40abe4f0df3a9d9a1e7bc43f0eba71
diff --git a/bucklets/yang.bucklet b/bucklets/yang.bucklet
index 9c15a51..3d68180 100644
--- a/bucklets/yang.bucklet
+++ b/bucklets/yang.bucklet
@@ -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,