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

COMPILE_DEPS = [
    '//lib:CORE_DEPS',
    '//lib:JACKSON',
    '//lib:KRYO',
    '//core/store/serializers:onos-core-serializers',
    '//lib:org.apache.karaf.shell.console',
    '//lib:javax.ws.rs-api',
    '//utils/rest:onlab-rest',
    '//cli:onos-cli',
    '//apps/openstacknode/api:onos-apps-openstacknode-api',
    '//lib:openstack4j-core',
    '//lib:openstack4j-http-connector',
    '//lib:openstack4j-httpclient',
    '//lib:json-patch',
    '//lib:jackson-coreutils',
    '//lib:btf',
    '//lib:msg-simple',
    '//lib:snakeyaml',
]

TEST_DEPS = [
    '//lib:TEST_ADAPTERS',
    '//core/api:onos-api-tests',
    '//core/common:onos-core-common-tests',
    '//web/api:onos-rest-tests',
    '//lib:TEST_REST',
]

BUNDLES = [
    '//apps/openstacknetworking:onos-apps-openstacknetworking',
]

INCLUDE_PACKAGES = 'com.google.common.net,com.google.common.io,com.fasterxml.jackson.annotation'
EXCLUDE_PACKAGES = '!org.openstack4j,!org.openstack4j.*'
ALL_PACKAGES = '*'

osgi_jar_with_tests (
    deps = COMPILE_DEPS,
    test_deps = TEST_DEPS,
    web_context = '/onos/openstacknetworking',
    api_title = 'OpenStack Networking API',
    api_version = '1.0',
    api_description = 'REST API for OpenStack Networking',
    api_package = 'org.onosproject.openstacknetworking.web',

    # dependency embedding
    import_packages = INCLUDE_PACKAGES + ',' + EXCLUDE_PACKAGES  + ',' + ALL_PACKAGES,
    bundle_classpath = get_openstack4j_deps_path() + get_jackson_deps_path()
)

onos_app (
    app_name = 'org.onosproject.openstacknetworking',
    title = 'OpenStack Networking',
    category = 'Utility',
    url = 'http://onosproject.org',
    included_bundles = BUNDLES,
    description = 'OpenStack Networking application.',
    required_apps = [
        'org.onosproject.openstacknode'
    ]
)