diff --git a/apps/dhcprelay/BUCK b/apps/dhcprelay/BUCK index a2bfb70d1a..903a23aeae 100644 --- a/apps/dhcprelay/BUCK +++ b/apps/dhcprelay/BUCK @@ -1,30 +1,8 @@ -COMPILE_DEPS = [ - '//lib:CORE_DEPS', - '//lib:JACKSON', - '//lib:KRYO', - '//lib:org.apache.karaf.shell.console', - '//cli:onos-cli', - '//core/store/serializers:onos-core-serializers', - '//apps/route-service/api:onos-apps-route-service-api', - '//apps/routing/fpm/api:onos-apps-routing-fpm-api', -] - -TEST_DEPS = [ - '//lib:TEST', - '//apps/route-service/api:onos-apps-route-service-api-tests', - '//core/api:onos-api-tests', -] - BUNDLES = [ - '//apps/dhcprelay:onos-apps-dhcprelay', - '//apps/routing/fpm/api:onos-apps-routing-fpm-api', + '//apps/dhcprelay/web:onos-apps-dhcprelay-web', + '//apps/dhcprelay/app:onos-apps-dhcprelay-app', ] -osgi_jar_with_tests ( - deps = COMPILE_DEPS, - test_deps = TEST_DEPS, -) - onos_app ( app_name = 'org.onosproject.dhcprelay', title = 'DHCP Relay Agent', diff --git a/apps/dhcprelay/BUILD b/apps/dhcprelay/BUILD index 956419e62c..c444b1a8ef 100644 --- a/apps/dhcprelay/BUILD +++ b/apps/dhcprelay/BUILD @@ -1,24 +1,8 @@ -COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + CLI + [ - "//core/store/serializers:onos-core-serializers", - "//apps/route-service/api:onos-apps-route-service-api", - "//apps/routing/fpm/api:onos-apps-routing-fpm-api", -] - -TEST_DEPS = TEST + [ - "//apps/route-service/api:onos-apps-route-service-api-tests", - "//core/api:onos-api-tests", -] - BUNDLES = [ - "//apps/dhcprelay:onos-apps-dhcprelay", - "//apps/routing/fpm/api:onos-apps-routing-fpm-api", + "//apps/dhcprelay/web:onos-apps-dhcprelay-web", + "//apps/dhcprelay/app:onos-apps-dhcprelay-app", ] -osgi_jar_with_tests( - test_deps = TEST_DEPS, - deps = COMPILE_DEPS, -) - onos_app( app_name = "org.onosproject.dhcprelay", category = "Utility", diff --git a/apps/dhcprelay/app/BUCK b/apps/dhcprelay/app/BUCK new file mode 100644 index 0000000000..d698297008 --- /dev/null +++ b/apps/dhcprelay/app/BUCK @@ -0,0 +1,21 @@ +COMPILE_DEPS = [ + '//lib:CORE_DEPS', + '//lib:JACKSON', + '//lib:KRYO', + '//lib:org.apache.karaf.shell.console', + '//cli:onos-cli', + '//core/store/serializers:onos-core-serializers', + '//apps/route-service/api:onos-apps-route-service-api', + '//apps/routing/fpm/api:onos-apps-routing-fpm-api', +] + +TEST_DEPS = [ + '//lib:TEST', + '//apps/route-service/api:onos-apps-route-service-api-tests', + '//core/api:onos-api-tests', +] + +osgi_jar_with_tests ( + deps = COMPILE_DEPS, + test_deps = TEST_DEPS, +) diff --git a/apps/dhcprelay/app/BUILD b/apps/dhcprelay/app/BUILD new file mode 100644 index 0000000000..29e49085b6 --- /dev/null +++ b/apps/dhcprelay/app/BUILD @@ -0,0 +1,15 @@ +COMPILE_DEPS = CORE_DEPS + JACKSON + KRYO + CLI + [ + "//core/store/serializers:onos-core-serializers", + "//apps/route-service/api:onos-apps-route-service-api", + "//apps/routing/fpm/api:onos-apps-routing-fpm-api", +] + +TEST_DEPS = TEST + [ + "//apps/route-service/api:onos-apps-route-service-api-tests", + "//core/api:onos-api-tests", +] + +osgi_jar_with_tests( + test_deps = TEST_DEPS, + deps = COMPILE_DEPS, +) diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerUtil.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerUtil.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerUtil.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerUtil.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerUtil.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerUtil.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerUtil.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerUtil.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/DhcpRelayManager.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/InternalPacket.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/InternalPacket.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/InternalPacket.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/InternalPacket.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/DhcpHandler.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/DhcpHandler.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/DhcpHandler.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/DhcpHandler.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/DhcpRelayService.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/DhcpRelayService.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/DhcpRelayService.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/DhcpRelayService.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/DhcpServerInfo.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/DhcpServerInfo.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/DhcpServerInfo.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/DhcpServerInfo.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/package-info.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/package-info.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/api/package-info.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/api/package-info.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmAddCommand.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmAddCommand.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmAddCommand.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmAddCommand.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmDeleteCommand.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmDeleteCommand.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmDeleteCommand.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmDeleteCommand.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmRoutesCommand.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmRoutesCommand.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmRoutesCommand.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpFpmRoutesCommand.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayAggCountersCommand.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayAggCountersCommand.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayAggCountersCommand.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayAggCountersCommand.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCommand.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCommand.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCommand.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCommand.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCounterCompleter.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCounterCompleter.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCounterCompleter.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayCounterCompleter.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayResetCompleter.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayResetCompleter.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayResetCompleter.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/DhcpRelayResetCompleter.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/package-info.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/package-info.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/cli/package-info.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/cli/package-info.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/DefaultDhcpRelayConfig.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/DefaultDhcpRelayConfig.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/DefaultDhcpRelayConfig.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/DefaultDhcpRelayConfig.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/DhcpServerConfig.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/DhcpServerConfig.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/DhcpServerConfig.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/DhcpServerConfig.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/EnableDhcpFpmConfig.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/EnableDhcpFpmConfig.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/EnableDhcpFpmConfig.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/EnableDhcpFpmConfig.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfig.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfig.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfig.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfig.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/IndirectDhcpRelayConfig.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/IndirectDhcpRelayConfig.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/IndirectDhcpRelayConfig.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/IndirectDhcpRelayConfig.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/package-info.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/package-info.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/config/package-info.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/config/package-info.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/package-info.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/package-info.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/package-info.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/package-info.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmPrefixStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmPrefixStore.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmPrefixStore.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmPrefixStore.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmRecord.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmRecord.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmRecord.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpFpmRecord.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRecord.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRecord.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRecord.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRecord.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCounters.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCounters.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCounters.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCounters.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCountersStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCountersStore.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCountersStore.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayCountersStore.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStore.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStore.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStore.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStoreEvent.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStoreEvent.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStoreEvent.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DhcpRelayStoreEvent.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayCountersStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayCountersStore.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayCountersStore.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayCountersStore.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStore.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStore.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStore.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/DistributedFpmPrefixStore.java diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/package-info.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/package-info.java similarity index 100% rename from apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/store/package-info.java rename to apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/store/package-info.java diff --git a/apps/dhcprelay/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/apps/dhcprelay/app/src/main/resources/OSGI-INF/blueprint/shell-config.xml similarity index 100% rename from apps/dhcprelay/src/main/resources/OSGI-INF/blueprint/shell-config.xml rename to apps/dhcprelay/app/src/main/resources/OSGI-INF/blueprint/shell-config.xml diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java b/apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java similarity index 100% rename from apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java rename to apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/DhcpRelayManagerTest.java diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/config/DhcpRelayConfigTest.java b/apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/config/DhcpRelayConfigTest.java similarity index 100% rename from apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/config/DhcpRelayConfigTest.java rename to apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/config/DhcpRelayConfigTest.java diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfigTest.java b/apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfigTest.java similarity index 100% rename from apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfigTest.java rename to apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/config/IgnoreDhcpConfigTest.java diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/store/DhcpRecordTest.java b/apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/store/DhcpRecordTest.java similarity index 100% rename from apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/store/DhcpRecordTest.java rename to apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/store/DhcpRecordTest.java diff --git a/apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStoreTest.java b/apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStoreTest.java similarity index 100% rename from apps/dhcprelay/src/test/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStoreTest.java rename to apps/dhcprelay/app/src/test/java/org/onosproject/dhcprelay/store/DistributedDhcpRelayStoreTest.java diff --git a/apps/dhcprelay/src/test/resources/dhcp-relay.json b/apps/dhcprelay/app/src/test/resources/dhcp-relay.json similarity index 100% rename from apps/dhcprelay/src/test/resources/dhcp-relay.json rename to apps/dhcprelay/app/src/test/resources/dhcp-relay.json diff --git a/apps/dhcprelay/src/test/resources/invalid-dhcp-relay.json b/apps/dhcprelay/app/src/test/resources/invalid-dhcp-relay.json similarity index 100% rename from apps/dhcprelay/src/test/resources/invalid-dhcp-relay.json rename to apps/dhcprelay/app/src/test/resources/invalid-dhcp-relay.json diff --git a/apps/dhcprelay/web/BUCK b/apps/dhcprelay/web/BUCK new file mode 100644 index 0000000000..d17384198c --- /dev/null +++ b/apps/dhcprelay/web/BUCK @@ -0,0 +1,23 @@ +COMPILE_DEPS = [ + '//lib:CORE_DEPS', + '//lib:JACKSON', + '//lib:KRYO', + '//lib:org.apache.karaf.shell.console', + '//cli:onos-cli', + '//utils/rest:onlab-rest', + '//lib:javax.ws.rs-api', + '//lib:jersey-server', + '//core/store/serializers:onos-core-serializers', + '//apps/route-service/api:onos-apps-route-service-api', + '//apps/dhcprelay/app:onos-apps-dhcprelay-app', + '//apps/routing/fpm/api:onos-apps-routing-fpm-api', +] + +osgi_jar ( + deps = COMPILE_DEPS, + web_context = '/onos/v1/dhcprelay', + api_title = 'DHCPRelay App', + api_version = '1.0', + api_description = 'REST API for DHCPRelay', + api_package = 'org.onosproject.dhcprelay.rest', +) \ No newline at end of file diff --git a/apps/dhcprelay/web/BUILD b/apps/dhcprelay/web/BUILD new file mode 100644 index 0000000000..1bdee493a1 --- /dev/null +++ b/apps/dhcprelay/web/BUILD @@ -0,0 +1,16 @@ +COMPILE_DEPS = CORE_DEPS + KRYO + JACKSON + REST + CLI + [ + "@jersey_server//jar", + "//core/store/serializers:onos-core-serializers", + "//apps/route-service/api:onos-apps-route-service-api", + "//apps/dhcprelay/app:onos-apps-dhcprelay-app", + "//apps/routing/fpm/api:onos-apps-routing-fpm-api", +] + +osgi_jar( + api_description = "REST API for DHCPRelay", + api_package = "org.onosproject.dhcprelay.rest", + api_title = "REST API for DHCPRelay Agent Application", + api_version = "1.0", + web_context = "/onos/v1/dhcprelay", + deps = COMPILE_DEPS, +) diff --git a/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/DhcpRelayWebApplication.java b/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/DhcpRelayWebApplication.java new file mode 100644 index 0000000000..180394a10e --- /dev/null +++ b/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/DhcpRelayWebApplication.java @@ -0,0 +1,31 @@ +/* + * Copyright 2018-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.dhcprelay.rest; + +import org.onlab.rest.AbstractWebApplication; + +import java.util.Set; + +/** + * DHCP Relay Web application. + */ +public class DhcpRelayWebApplication extends AbstractWebApplication { + @Override + public Set> getClasses() { + return getClasses(DhcpRelayWebResource.class); + } +} diff --git a/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/DhcpRelayWebResource.java b/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/DhcpRelayWebResource.java new file mode 100644 index 0000000000..9338a4bfb0 --- /dev/null +++ b/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/DhcpRelayWebResource.java @@ -0,0 +1,78 @@ +/* + * Copyright 2018-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.onosproject.dhcprelay.rest; + +import org.onlab.packet.IpAddress; +import org.onlab.packet.IpPrefix; +import org.onosproject.dhcprelay.api.DhcpRelayService; +import org.onosproject.rest.AbstractWebResource; +import org.onosproject.routeservice.Route; +import org.onosproject.routeservice.RouteStore; +import org.onosproject.routing.fpm.api.FpmRecord; +import org.slf4j.Logger; + +import javax.ws.rs.DELETE; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.core.Response; + +import java.io.IOException; +import java.util.Optional; + +import static org.slf4j.LoggerFactory.getLogger; + +/** + * DHCP Relay agent REST API. + */ +@Path("fpm-delete") +public class DhcpRelayWebResource extends AbstractWebResource { + private static final Logger LOG = getLogger(DhcpRelayWebResource.class); + + /** + * Deletes the fpm route from fpm record. + * Corresponding route from the route store + * + * @param prefix IpPrefix + * @return 204 NO CONTENT + * @throws IOException to signify bad request + */ + @DELETE + @Path("{prefix}") + public Response dhcpFpmDelete(@PathParam("prefix") String prefix) { + DhcpRelayService dhcpRelayService = get(DhcpRelayService.class); + RouteStore routeStore = get(RouteStore.class); + + try { + // removes fpm route from fpm record + Optional fpmRecord = dhcpRelayService.removeFpmRecord(IpPrefix.valueOf(prefix)); + if (fpmRecord.isPresent()) { + IpAddress nextHop = fpmRecord.get().nextHop(); + Route route = new Route(Route.Source.DHCP, IpPrefix.valueOf(prefix), nextHop); + // removes DHCP route from route store + routeStore.removeRoute(route); + } else { + LOG.warn("fpmRecord is not present"); + } + } catch (IllegalArgumentException ex) { + throw new IllegalArgumentException(ex); + } + + return Response.noContent().build(); + } + +} diff --git a/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/package-info.java b/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/package-info.java new file mode 100644 index 0000000000..959a884b5d --- /dev/null +++ b/apps/dhcprelay/web/src/main/java/org/onosproject/dhcprelay/rest/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2017-present Open Networking Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * DHCP Relay agent REST API. + */ +package org.onosproject.dhcprelay.rest; diff --git a/apps/dhcprelay/web/src/main/webapp/WEB-INF/web.xml b/apps/dhcprelay/web/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..0322a400fd --- /dev/null +++ b/apps/dhcprelay/web/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,57 @@ + + + + DHCPRELAY REST API v1.0 + + + + Secured + /* + + + admin + + + + + admin + + + + BASIC + karaf + + + + JAX-RS Service + org.glassfish.jersey.servlet.ServletContainer + + javax.ws.rs.Application + org.onosproject.dhcprelay.rest.DhcpRelayWebApplication + + 1 + + + + JAX-RS Service + /* + + diff --git a/modules.bzl b/modules.bzl index 8c9110ef93..c1b22eb25f 100644 --- a/modules.bzl +++ b/modules.bzl @@ -288,7 +288,8 @@ APP_JARS = [ "//apps/dhcp/app:onos-apps-dhcp-app", "//apps/imr/api:onos-apps-imr-api", "//apps/imr/app:onos-apps-imr-app", - "//apps/dhcprelay:onos-apps-dhcprelay", + "//apps/dhcprelay/app:onos-apps-dhcprelay-app", + "//apps/dhcprelay/web:onos-apps-dhcprelay-web", "//apps/fwd:onos-apps-fwd", "//apps/iptopology-api:onos-apps-iptopology-api", "//apps/routing/common:onos-apps-routing-common",