Support to build openstack related apps using Bazel
Change-Id: Ibc9f43a8fd92bb41b162a88a1eb3e8c8c5ad990a
diff --git a/apps/openstacknetworking/BUILD b/apps/openstacknetworking/BUILD
new file mode 100644
index 0000000..e9e995c
--- /dev/null
+++ b/apps/openstacknetworking/BUILD
@@ -0,0 +1,15 @@
+BUNDLES = [
+ "//apps/openstacknetworking/api:onos-apps-openstacknetworking-api",
+ "//apps/openstacknetworking/app:onos-apps-openstacknetworking-app",
+]
+
+onos_app(
+ category = "Integration",
+ description = "SONA Openstack Networking Application.",
+ included_bundles = BUNDLES,
+ required_apps = [
+ "org.onosproject.openstacknode",
+ ],
+ title = "OpenStack Networking Application",
+ url = "https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization",
+)
diff --git a/apps/openstacknetworking/api/BUILD b/apps/openstacknetworking/api/BUILD
new file mode 100644
index 0000000..5348b60
--- /dev/null
+++ b/apps/openstacknetworking/api/BUILD
@@ -0,0 +1,15 @@
+load(
+ "//apps/openstacknode:openstack4j.bzl",
+ "ALL_PACKAGES",
+ "EXCLUDE_PACKAGES",
+ "INCLUDE_PACKAGES",
+)
+
+COMPILE_DEPS = CORE_DEPS + [
+ "@openstack4j_core//jar",
+]
+
+osgi_jar_with_tests(
+ import_packages = INCLUDE_PACKAGES + "," + EXCLUDE_PACKAGES + "," + ALL_PACKAGES,
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacknetworking/app/BUILD b/apps/openstacknetworking/app/BUILD
new file mode 100644
index 0000000..529c9c0
--- /dev/null
+++ b/apps/openstacknetworking/app/BUILD
@@ -0,0 +1,43 @@
+load(
+ "//apps/openstacknode:openstack4j.bzl",
+ "ALL_PACKAGES",
+ "EXCLUDE_PACKAGES",
+ "INCLUDE_PACKAGES",
+ "get_jackson_deps_path",
+ "get_openstack4j_deps_path",
+)
+
+COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + CLI + REST + [
+ "//core/store/serializers:onos-core-serializers",
+ "//protocols/ovsdb/api:onos-protocols-ovsdb-api",
+ "//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api",
+ "//apps/openstacknetworking/api:onos-apps-openstacknetworking-api",
+ "@openstack4j_core//jar",
+ "@openstack4j_http_connector//jar",
+ "@openstack4j_httpclient//jar",
+ "@json_patch//jar",
+ "@jackson_coreutils//jar",
+ "@btf//jar",
+ "@msg_simple//jar",
+ "@snakeyaml//jar",
+]
+
+TEST_DEPS = TEST_ADAPTERS + TEST_REST + [
+ "//core/api:onos-api-tests",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api-tests",
+ "//core/common:onos-core-common-tests",
+ "//web/api:onos-rest-tests",
+]
+
+osgi_jar_with_tests(
+ api_description = "REST API for OpenStack Networking",
+ api_package = "org.onosproject.openstacknetworking.web",
+ api_title = "OpenStack Networking API",
+ api_version = "1.0",
+ bundle_classpath = get_openstack4j_deps_path() + get_jackson_deps_path(),
+ import_packages = INCLUDE_PACKAGES + "," + EXCLUDE_PACKAGES + "," + ALL_PACKAGES,
+ test_deps = TEST_DEPS,
+ web_context = "/onos/openstacknetworking",
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacknetworkingui/BUILD b/apps/openstacknetworkingui/BUILD
new file mode 100644
index 0000000..faf4563
--- /dev/null
+++ b/apps/openstacknetworkingui/BUILD
@@ -0,0 +1,35 @@
+EXCLUDE_PACKAGES = "!org.apache.sshd.client,!org.apache.sshd.client.*,!org.apache.sshd.common.util.io"
+
+COMPILE_DEPS = CORE_DEPS + JACKSON + CLI + REST + [
+ "//core/store/serializers:onos-core-serializers",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api",
+ "//apps/openstacknetworking/api:onos-apps-openstacknetworking-api",
+ "@sshd_core//jar",
+]
+
+EXCLUDED_BUNDLES = [
+ "@sshd_core//jar",
+]
+
+TEST_DEPS = TEST_ADAPTERS + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+]
+
+osgi_jar_with_tests(
+ import_packages = EXCLUDE_PACKAGES,
+ test_deps = TEST_DEPS,
+ deps = COMPILE_DEPS,
+)
+
+onos_app(
+ app_name = "org.onosproject.openstacknetworkingui",
+ category = "GUI",
+ description = "Openstack Networking UI Service",
+ excluded_bundles = EXCLUDED_BUNDLES,
+ required_apps = [
+ "org.onosproject.openstacknetworking",
+ ],
+ title = "Openstack Networking UI",
+ url = "http://onosproject.org",
+)
diff --git a/apps/openstacknode/BUILD b/apps/openstacknode/BUILD
new file mode 100644
index 0000000..06c2abf
--- /dev/null
+++ b/apps/openstacknode/BUILD
@@ -0,0 +1,16 @@
+BUNDLES = [
+ "//apps/openstacknode/api:onos-apps-openstacknode-api",
+ "//apps/openstacknode/app:onos-apps-openstacknode-app",
+]
+
+onos_app(
+ category = "Integration",
+ description = "SONA Openstack Node Bootstrap Application.",
+ included_bundles = BUNDLES,
+ required_apps = [
+ "org.onosproject.ovsdb-base",
+ "org.onosproject.drivers.ovsdb",
+ ],
+ title = "OpenStack Node Bootstrap",
+ url = "http://onosproject.org",
+)
diff --git a/apps/openstacknode/api/BUILD b/apps/openstacknode/api/BUILD
new file mode 100644
index 0000000..9cccaaa
--- /dev/null
+++ b/apps/openstacknode/api/BUILD
@@ -0,0 +1,24 @@
+load(
+ "//apps/openstacknode:openstack4j.bzl",
+ "ALL_PACKAGES",
+ "EXCLUDE_PACKAGES",
+ "INCLUDE_PACKAGES",
+)
+
+COMPILE_DEPS = CORE_DEPS + CLI + [
+ "//core/store/serializers:onos-core-serializers",
+ "//protocols/ovsdb/api:onos-protocols-ovsdb-api",
+ "//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc",
+]
+
+TEST_DEPS = TEST_ADAPTERS + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+]
+
+osgi_jar_with_tests(
+ exclude_tests = ["org.onosproject.openstacknode.api.OpenstackNodeTest"],
+ import_packages = INCLUDE_PACKAGES + "," + EXCLUDE_PACKAGES + "," + ALL_PACKAGES,
+ test_deps = TEST_ADAPTERS,
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacknode/app/BUILD b/apps/openstacknode/app/BUILD
new file mode 100644
index 0000000..36b55f5
--- /dev/null
+++ b/apps/openstacknode/app/BUILD
@@ -0,0 +1,42 @@
+load(
+ "//apps/openstacknode:openstack4j.bzl",
+ "ALL_PACKAGES",
+ "EXCLUDE_PACKAGES",
+ "INCLUDE_PACKAGES",
+ "get_jackson_deps_path",
+ "get_openstack4j_deps_path",
+)
+
+COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + CLI + REST + [
+ "//core/store/serializers:onos-core-serializers",
+ "//protocols/ovsdb/api:onos-protocols-ovsdb-api",
+ "//protocols/ovsdb/rfc:onos-protocols-ovsdb-rfc",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api",
+ "@openstack4j_core//jar",
+ "@openstack4j_http_connector//jar",
+ "@openstack4j_httpclient//jar",
+ "@json_patch//jar",
+ "@jackson_coreutils//jar",
+ "@btf//jar",
+ "@msg_simple//jar",
+ "@snakeyaml//jar",
+]
+
+TEST_DEPS = TEST_ADAPTERS + TEST_REST + [
+ "//core/api:onos-api-tests",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api-tests",
+ "//core/common:onos-core-common-tests",
+ "//web/api:onos-rest-tests",
+]
+
+osgi_jar_with_tests(
+ api_description = "REST API for OpenStack Node",
+ api_package = "org.onosproject.openstacknode.web",
+ api_title = "OpenStack Node API",
+ api_version = "1.0",
+ bundle_classpath = get_openstack4j_deps_path() + get_jackson_deps_path(),
+ import_packages = INCLUDE_PACKAGES + "," + EXCLUDE_PACKAGES + "," + ALL_PACKAGES,
+ test_deps = TEST_DEPS,
+ web_context = "/onos/openstacknode",
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacknode/openstack4j.bzl b/apps/openstacknode/openstack4j.bzl
new file mode 100644
index 0000000..fc68a41
--- /dev/null
+++ b/apps/openstacknode/openstack4j.bzl
@@ -0,0 +1,41 @@
+INCLUDE_PACKAGES = "com.google.common.net,com.google.common.io,com.fasterxml.jackson.annotation"
+EXCLUDE_PACKAGES = "!org.openstack4j,!org.openstack4j.*,!org.openstack4j.api,!org.openstack4j.api.*,!org.openstack4j.core.*,!org.openstack4j.model.network,!org.openstack4j.model.common,!org.openstack4j.openstack"
+ALL_PACKAGES = "*"
+
+def get_openstack4j_deps_path():
+
+ WEB_INF_PATH = 'WEB-INF/classes/deps/'
+ OPENSTACK4J_DEPS = [
+ 'openstack4j-core',
+ 'openstack4j-http-connector',
+ 'openstack4j-httpclient',
+ ]
+ OPENSTACK4J_VER = '3.1.0'
+
+ openstack_deps_path = ''
+
+ for dep in OPENSTACK4J_DEPS:
+ name = dep + '-' + OPENSTACK4J_VER + '.jar'
+ path = WEB_INF_PATH + name
+ openstack_deps_path = openstack_deps_path + path + ','
+
+ return openstack_deps_path
+
+def get_jackson_deps_path():
+
+ WEB_INF_PATH = 'WEB-INF/classes/deps/'
+ JACKSON_DEPS_WITH_VER = [
+ 'json-patch-1.9.jar',
+ 'jackson-coreutils-1.6.jar',
+ 'msg-simple-1.1.jar',
+ 'btf-1.2.jar',
+ 'snakeyaml-1.15.jar'
+ ]
+
+ jackson_deps_path = ''
+
+ for dep in JACKSON_DEPS_WITH_VER:
+ path = WEB_INF_PATH + dep
+ jackson_deps_path = jackson_deps_path + path + ','
+
+ return jackson_deps_path
\ No newline at end of file
diff --git a/apps/openstacktelemetry/BUILD b/apps/openstacktelemetry/BUILD
new file mode 100644
index 0000000..134dc51
--- /dev/null
+++ b/apps/openstacktelemetry/BUILD
@@ -0,0 +1,28 @@
+BUNDLES = [
+ "@kafka_clients//jar",
+ "@influxdb_java//jar",
+ "@commons_codec//jar",
+ "@retrofit//jar",
+ "@okhttp//jar",
+ "@logging_interceptor//jar",
+ "@gson//jar",
+ "@okio//jar",
+ "@moshi//jar",
+ "@converter_moshi//jar",
+ "@protobuf_java_3_2_0//jar",
+ "@google_instrumentation_0_3_0//jar",
+ "@grpc_core_1_3_1//jar",
+ "//apps/openstacktelemetry/api:onos-apps-openstacktelemetry-api",
+ "//apps/openstacktelemetry/app:onos-apps-openstacktelemetry-app",
+]
+
+onos_app(
+ category = "Integration",
+ description = "SONA Openstack Telemetry Application.",
+ included_bundles = BUNDLES,
+ required_apps = [
+ "org.onosproject.openstacknetworking",
+ ],
+ title = "OpenStack Telemetry Application",
+ url = "https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization",
+)
diff --git a/apps/openstacktelemetry/api/BUILD b/apps/openstacktelemetry/api/BUILD
new file mode 100644
index 0000000..167d8ce
--- /dev/null
+++ b/apps/openstacktelemetry/api/BUILD
@@ -0,0 +1,16 @@
+COMPILE_DEPS = CORE_DEPS + [
+ "@kafka_clients//jar",
+ "@jersey_client//jar",
+ "@javax_ws_rs_api//jar",
+ "@influxdb_java//jar",
+]
+
+TEST_DEPS = TEST_ADAPTERS + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+]
+
+osgi_jar_with_tests(
+ test_deps = TEST_DEPS,
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacktelemetry/app/BUILD b/apps/openstacktelemetry/app/BUILD
new file mode 100644
index 0000000..434c13c
--- /dev/null
+++ b/apps/openstacktelemetry/app/BUILD
@@ -0,0 +1,27 @@
+COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + REST + CLI + GRPC_1_3 + [
+ "@kafka_clients//jar",
+ "@jersey_client//jar",
+ "@influxdb_java//jar",
+ "@grpc_core_1_3_1//jar",
+ "//core/store/serializers:onos-core-serializers",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api",
+ "//apps/openstacknetworking/api:onos-apps-openstacknetworking-api",
+ "//apps/openstacktelemetry/api:onos-apps-openstacktelemetry-api",
+ "@grpc_protobuf_lite_1_3_1//jar",
+]
+
+TEST_DEPS = TEST_ADAPTERS + TEST_REST + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+ "//web/api:onos-rest-tests",
+]
+
+osgi_jar_with_tests(
+ api_description = "OpenStack Network Telemetry REST API",
+ api_package = "org.onosproject.openstacktelemetry.web",
+ api_title = "OpenStack Network Telemetry REST API",
+ api_version = "1.0",
+ test_deps = TEST_DEPS,
+ web_context = "/onos/openstacktelemetry",
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacktroubleshoot/BUILD b/apps/openstacktroubleshoot/BUILD
new file mode 100644
index 0000000..c7f776f
--- /dev/null
+++ b/apps/openstacktroubleshoot/BUILD
@@ -0,0 +1,13 @@
+BUNDLES = [
+ "//apps/openstacktroubleshoot/api:onos-apps-openstacktroubleshoot-api",
+ "//apps/openstacktroubleshoot/app:onos-apps-openstacktroubleshoot-app",
+]
+
+onos_app(
+ category = "Integration",
+ description = "SONA Openstack Troubleshoot Application.",
+ included_bundles = BUNDLES,
+ required_apps = ["org.onosproject.openstacknetworking"],
+ title = "OpenStack Troubleshoot",
+ url = "http://onosproject.org",
+)
diff --git a/apps/openstacktroubleshoot/api/BUILD b/apps/openstacktroubleshoot/api/BUILD
new file mode 100644
index 0000000..b22d9f6
--- /dev/null
+++ b/apps/openstacktroubleshoot/api/BUILD
@@ -0,0 +1,11 @@
+COMPILE_DEPS = CORE_DEPS + CLI
+
+TEST_DEPS = TEST_ADAPTERS + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+]
+
+osgi_jar_with_tests(
+ test_deps = TEST_DEPS,
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstacktroubleshoot/app/BUILD b/apps/openstacktroubleshoot/app/BUILD
new file mode 100644
index 0000000..3c979d2
--- /dev/null
+++ b/apps/openstacktroubleshoot/app/BUILD
@@ -0,0 +1,19 @@
+COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + CLI + REST + [
+ "//apps/openstacktroubleshoot/api:onos-apps-openstacktroubleshoot-api",
+]
+
+TEST_DEPS = TEST_ADAPTERS + TEST_REST + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+ "//web/api:onos-rest-tests",
+]
+
+osgi_jar_with_tests(
+ api_description = "REST API for OpenStack Troubleshoot",
+ api_package = "org.onosproject.openstacktroubleshoot.web",
+ api_title = "OpenStack Troubleshoot API",
+ api_version = "1.0",
+ test_deps = TEST_DEPS,
+ web_context = "/onos/openstacktroubleshoot",
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstackvtap/BUILD b/apps/openstackvtap/BUILD
new file mode 100644
index 0000000..fad480d
--- /dev/null
+++ b/apps/openstackvtap/BUILD
@@ -0,0 +1,15 @@
+BUNDLES = [
+ "//apps/openstackvtap/api:onos-apps-openstackvtap-api",
+ "//apps/openstackvtap/app:onos-apps-openstackvtap-app",
+]
+
+onos_app(
+ category = "Integration",
+ description = "SONA Openstack vTap Application.",
+ included_bundles = BUNDLES,
+ required_apps = [
+ "org.onosproject.openstacknetworking",
+ ],
+ title = "OpenStack vTap Application",
+ url = "https://wiki.onosproject.org/display/ONOS/SONA%3A+DC+Network+Virtualization",
+)
diff --git a/apps/openstackvtap/api/BUILD b/apps/openstackvtap/api/BUILD
new file mode 100644
index 0000000..36d2da1
--- /dev/null
+++ b/apps/openstackvtap/api/BUILD
@@ -0,0 +1,11 @@
+COMPILE_DEPS = CORE_DEPS
+
+TEST_DEPS = TEST_ADAPTERS + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+]
+
+osgi_jar_with_tests(
+ test_deps = TEST_DEPS,
+ deps = COMPILE_DEPS,
+)
diff --git a/apps/openstackvtap/app/BUILD b/apps/openstackvtap/app/BUILD
new file mode 100644
index 0000000..078ed2b
--- /dev/null
+++ b/apps/openstackvtap/app/BUILD
@@ -0,0 +1,22 @@
+COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + CLI + REST + [
+ "//core/store/serializers:onos-core-serializers",
+ "//apps/openstacknetworking/api:onos-apps-openstacknetworking-api",
+ "//apps/openstacknode/api:onos-apps-openstacknode-api",
+ "//apps/openstackvtap/api:onos-apps-openstackvtap-api",
+]
+
+TEST_DEPS = TEST_ADAPTERS + TEST_REST + [
+ "//core/api:onos-api-tests",
+ "//core/common:onos-core-common-tests",
+ "//web/api:onos-rest-tests",
+]
+
+osgi_jar_with_tests(
+ api_description = "OpenStack Network vTap REST API",
+ api_package = "org.onosproject.openstackvtap.web",
+ api_title = "OpenStack Network vTap REST API",
+ api_version = "1.0",
+ test_deps = TEST_DEPS,
+ web_context = "/onos/openstackvtap",
+ deps = COMPILE_DEPS,
+)