From 94eff80e81076bc6b4a38d4e910ee93e6658dc59 Mon Sep 17 00:00:00 2001 From: Sho SHIMIZU Date: Mon, 22 Feb 2016 18:07:30 -0800 Subject: [PATCH] Remove deprecated interface, its implementation and CLIs Change-Id: Id644a8cd07abd6e0ece6392790943d401a81d180 --- .../cli/net/LinkResourceTestCommand.java | 141 ----------- .../cli/net/ResourceAllocationsCommand.java | 68 ------ .../cli/net/ResourceAvailableCommand.java | 84 ------- .../OSGI-INF/blueprint/shell-config.xml | 23 -- .../resource/link/LinkResourceService.java | 114 --------- .../resource/impl/LinkResourceManager.java | 227 ------------------ .../security/impl/DefaultPolicyBuilder.java | 2 +- 7 files changed, 1 insertion(+), 658 deletions(-) delete mode 100644 cli/src/main/java/org/onosproject/cli/net/LinkResourceTestCommand.java delete mode 100644 cli/src/main/java/org/onosproject/cli/net/ResourceAllocationsCommand.java delete mode 100644 cli/src/main/java/org/onosproject/cli/net/ResourceAvailableCommand.java delete mode 100644 core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceService.java delete mode 100644 core/net/src/main/java/org/onosproject/net/resource/impl/LinkResourceManager.java diff --git a/cli/src/main/java/org/onosproject/cli/net/LinkResourceTestCommand.java b/cli/src/main/java/org/onosproject/cli/net/LinkResourceTestCommand.java deleted file mode 100644 index f372f9c87a..0000000000 --- a/cli/src/main/java/org/onosproject/cli/net/LinkResourceTestCommand.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * 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.cli.net; - -import com.google.common.collect.Lists; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.apache.karaf.shell.commands.Option; -import org.onosproject.cli.AbstractShellCommand; -import org.onosproject.net.DeviceId; -import org.onosproject.net.Link; -import org.onosproject.net.Path; -import org.onosproject.net.intent.IntentId; -import org.onosproject.net.resource.link.DefaultLinkResourceRequest; -import org.onosproject.net.resource.link.LinkResourceAllocations; -import org.onosproject.net.resource.link.LinkResourceRequest; -import org.onosproject.net.resource.link.LinkResourceService; -import org.onosproject.net.topology.PathService; - -import java.util.List; -import java.util.Set; - -/** - * Commands to test out LinkResourceManager directly. - * - * @deprecated in Emu release - */ -@Deprecated -@Command(scope = "onos", name = "resource-request", - description = "request or remove resources" - + "[Using deprecated LinkResourceService]") -public class LinkResourceTestCommand extends AbstractShellCommand { - - // default is bandwidth. - @Option(name = "-m", aliases = "--mpls", description = "MPLS resource", - required = false, multiValued = false) - private boolean isMpls = false; - - @Option(name = "-o", aliases = "--optical", description = "Optical resource", - required = false, multiValued = false) - private boolean isOptical = false; - - @Option(name = "-d", aliases = "--delete", description = "Delete resource by intent ID", - required = false, multiValued = false) - private boolean remove = false; - - @Argument(index = 0, name = "srcString", description = "Link source", - required = true, multiValued = false) - String srcString = null; - - @Argument(index = 1, name = "dstString", description = "Link destination", - required = true, multiValued = false) - String dstString = null; - - @Argument(index = 2, name = "id", description = "Identifier", - required = true, multiValued = false) - int id; - - private LinkResourceService resService; - private PathService pathService; - - private static final int BANDWIDTH = 1_000_000; - - @Override - protected void execute() { - resService = get(LinkResourceService.class); - pathService = get(PathService.class); - - DeviceId src = DeviceId.deviceId(getDeviceId(srcString)); - DeviceId dst = DeviceId.deviceId(getDeviceId(dstString)); - IntentId intId = IntentId.valueOf(id); - - Set paths = pathService.getPaths(src, dst); - - if (paths == null || paths.isEmpty()) { - print("No path between %s and %s", srcString, dstString); - return; - } - - if (remove) { - LinkResourceAllocations lra = resService.getAllocations(intId); - resService.releaseResources(lra); - return; - } - - for (Path p : paths) { - List links = p.links(); - LinkResourceRequest.Builder request = null; - if (isMpls) { - List nlinks = Lists.newArrayList(); - try { - nlinks.addAll(links.subList(1, links.size() - 2)); - request = DefaultLinkResourceRequest.builder(intId, nlinks) - .addMplsRequest(); - } catch (IndexOutOfBoundsException e) { - log.warn("could not allocate MPLS path", e); - continue; - } - } else if (isOptical) { - request = DefaultLinkResourceRequest.builder(intId, links) - .addLambdaRequest(); - } else { - request = DefaultLinkResourceRequest.builder(intId, links) - .addBandwidthRequest(BANDWIDTH); - } - - if (request != null) { - LinkResourceRequest lrr = request.build(); - LinkResourceAllocations lra = resService.requestResources(lrr); - if (lra != null) { - break; - } - print("Allocated:\n%s", lra); - } else { - log.info("nothing to request"); - } - } - } - - public String getDeviceId(String deviceString) { - int slash = deviceString.indexOf('/'); - if (slash <= 0) { - return ""; - } - return deviceString.substring(0, slash); - } - -} diff --git a/cli/src/main/java/org/onosproject/cli/net/ResourceAllocationsCommand.java b/cli/src/main/java/org/onosproject/cli/net/ResourceAllocationsCommand.java deleted file mode 100644 index 968781f1c6..0000000000 --- a/cli/src/main/java/org/onosproject/cli/net/ResourceAllocationsCommand.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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.cli.net; - -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.onosproject.cli.AbstractShellCommand; -import org.onosproject.net.ConnectPoint; -import org.onosproject.net.Link; -import org.onosproject.net.link.LinkService; -import org.onosproject.net.resource.link.LinkResourceService; - -/** - * Lists allocations by link. Lists all allocations if link is unspecified. - * - * @deprecated in Emu release - */ -@Deprecated -@Command(scope = "onos", name = "resource-allocations", - description = "Lists allocations by link. Lists all allocations if link is unspecified." - + "[Using deprecated LinkResourceService]") -public class ResourceAllocationsCommand extends AbstractShellCommand { - - private static final String FMT = "src=%s/%s, dst=%s/%s, type=%s%s"; - private static final String COMPACT = "%s/%s-%s/%s"; - - @Argument(index = 0, name = "srcString", description = "Link source", - required = false, multiValued = false) - String srcString = null; - @Argument(index = 1, name = "dstString", description = "Link destination", - required = false, multiValued = false) - String dstString = null; - - @Override - protected void execute() { - LinkResourceService resourceService = get(LinkResourceService.class); - LinkService linkService = get(LinkService.class); - - if (srcString == null || dstString == null) { - print("----- Displaying all resource allocations -----"); - resourceService.getAllocations().forEach(alloc -> print("%s", alloc)); - return; - } - - ConnectPoint src = ConnectPoint.deviceConnectPoint(srcString); - ConnectPoint dst = ConnectPoint.deviceConnectPoint(dstString); - - Link link = linkService.getLink(src, dst); - if (link != null) { - resourceService.getAllocations(link).forEach(alloc -> print("%s", alloc)); - } else { - print("No path found for endpoints: %s, %s", src, dst); - } - } -} diff --git a/cli/src/main/java/org/onosproject/cli/net/ResourceAvailableCommand.java b/cli/src/main/java/org/onosproject/cli/net/ResourceAvailableCommand.java deleted file mode 100644 index 007eb12482..0000000000 --- a/cli/src/main/java/org/onosproject/cli/net/ResourceAvailableCommand.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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.cli.net; - -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.onosproject.cli.AbstractShellCommand; -import org.onosproject.net.ConnectPoint; -import org.onosproject.net.Link; -import org.onosproject.net.link.LinkService; -import org.onosproject.net.resource.link.LinkResourceService; -import org.onosproject.net.resource.ResourceRequest; - -/** - * Lists allocations by link. - * - * @deprecated in Emu release - */ -@Deprecated -@Command(scope = "onos", name = "resource-available", - description = "Lists available resources by link" - + "[Using deprecated LinkResourceService]") -public class ResourceAvailableCommand extends AbstractShellCommand { - - private static final String FMT = "src=%s/%s, dst=%s/%s, type=%s%s"; - private static final String COMPACT = "%s/%s-%s/%s"; - - @Argument(index = 0, name = "srcString", description = "Link source", - required = false, multiValued = false) - String srcString = null; - @Argument(index = 1, name = "dstString", description = "Link destination", - required = false, multiValued = false) - String dstString = null; - - @Override - protected void execute() { - LinkResourceService resourceService = get(LinkResourceService.class); - LinkService linkService = get(LinkService.class); - - Iterable itr = null; - try { - ConnectPoint src = ConnectPoint.deviceConnectPoint(srcString); - - ConnectPoint dst = ConnectPoint.deviceConnectPoint(dstString); - - Link link = linkService.getLink(src, dst); - - itr = resourceService.getAvailableResources(link); - - int lambdaCount = 0; - for (ResourceRequest req : itr) { - switch (req.type()) { - case LAMBDA: - lambdaCount++; - break; - case BANDWIDTH: - print("%s", req); - break; - default: - break; - } - } - if (lambdaCount > 0) { - print("Number of available lambdas: %d", lambdaCount); - } - - } catch (Exception e) { - print("Invalid link %s", e.getMessage()); - } - } -} diff --git a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml index 9aa0b890f2..f110960db7 100644 --- a/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml +++ b/cli/src/main/resources/OSGI-INF/blueprint/shell-config.xml @@ -368,29 +368,6 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceService.java b/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceService.java deleted file mode 100644 index 71ea7e1a03..0000000000 --- a/core/api/src/main/java/org/onosproject/net/resource/link/LinkResourceService.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * 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.net.resource.link; - -import org.onosproject.event.ListenerService; -import org.onosproject.net.Link; -import org.onosproject.net.intent.IntentId; -import org.onosproject.net.resource.ResourceRequest; - -/** - * Service for providing link resource allocation. - * - * @deprecated in Emu Release - */ -@Deprecated -public interface LinkResourceService - extends ListenerService { - - /** - * Requests resources. - * - * @param req resources to be allocated - * @return allocated resources - * @deprecated in Emu Release - */ - @Deprecated - LinkResourceAllocations requestResources(LinkResourceRequest req); - - /** - * Releases resources. - * - * @param allocations resources to be released - * @deprecated in Emu Release - */ - @Deprecated - void releaseResources(LinkResourceAllocations allocations); - - /** - * Updates previously made allocations with a new resource request. - * - * @param req updated resource request - * @param oldAllocations old resource allocations - * @return new resource allocations - * @deprecated in Emu Release - */ - @Deprecated - LinkResourceAllocations updateResources(LinkResourceRequest req, - LinkResourceAllocations oldAllocations); - - /** - * Returns all allocated resources. - * - * @return allocated resources - * @deprecated in Emu Release - */ - @Deprecated - Iterable getAllocations(); - - /** - * Returns all allocated resources to given link. - * - * @param link a target link - * @return allocated resources - * @deprecated in Emu Release - */ - @Deprecated - Iterable getAllocations(Link link); - - /** - * Returns the resources allocated for an Intent. - * - * @param intentId the target Intent's id - * @return allocated resources for Intent - * @deprecated in Emu Release - */ - @Deprecated - LinkResourceAllocations getAllocations(IntentId intentId); - - /** - * Returns available resources for given link. - * - * @param link a target link - * @return available resources for the target link - * @deprecated in Emu Release - */ - @Deprecated - Iterable getAvailableResources(Link link); - - /** - * Returns available resources for given link. - * - * @param link a target link - * @param allocations allocations to be included as available - * @return available resources for the target link - * @deprecated in Emu Release - */ - @Deprecated - Iterable getAvailableResources(Link link, - LinkResourceAllocations allocations); - -} diff --git a/core/net/src/main/java/org/onosproject/net/resource/impl/LinkResourceManager.java b/core/net/src/main/java/org/onosproject/net/resource/impl/LinkResourceManager.java deleted file mode 100644 index 7eb189e57b..0000000000 --- a/core/net/src/main/java/org/onosproject/net/resource/impl/LinkResourceManager.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * 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.net.resource.impl; - -import com.google.common.collect.Sets; -import org.apache.felix.scr.annotations.Activate; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.Deactivate; -import org.apache.felix.scr.annotations.Reference; -import org.apache.felix.scr.annotations.ReferenceCardinality; -import org.apache.felix.scr.annotations.Service; -import org.onosproject.event.AbstractListenerManager; -import org.onosproject.net.Link; -import org.onosproject.net.intent.IntentId; -import org.onosproject.net.resource.ResourceAllocation; -import org.onosproject.net.resource.ResourceRequest; -import org.onosproject.net.resource.ResourceType; -import org.onosproject.net.resource.link.BandwidthResourceAllocation; -import org.onosproject.net.resource.link.BandwidthResourceRequest; -import org.onosproject.net.resource.link.DefaultLinkResourceAllocations; -import org.onosproject.net.resource.link.LambdaResourceAllocation; -import org.onosproject.net.resource.link.LambdaResourceRequest; -import org.onosproject.net.resource.link.LinkResourceAllocations; -import org.onosproject.net.resource.link.LinkResourceEvent; -import org.onosproject.net.resource.link.LinkResourceListener; -import org.onosproject.net.resource.link.LinkResourceRequest; -import org.onosproject.net.resource.link.LinkResourceService; -import org.onosproject.net.resource.link.LinkResourceStore; -import org.onosproject.net.resource.link.LinkResourceStoreDelegate; -import org.onosproject.net.resource.link.MplsLabel; -import org.onosproject.net.resource.link.MplsLabelResourceAllocation; -import org.onosproject.net.resource.link.MplsLabelResourceRequest; -import org.slf4j.Logger; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - -import static org.onosproject.security.AppGuard.checkPermission; -import static org.slf4j.LoggerFactory.getLogger; -import static org.onosproject.security.AppPermission.Type.*; - - -/** - * Provides basic implementation of link resources allocation. - */ -@Component(immediate = true) -@Service -public class LinkResourceManager - extends AbstractListenerManager - implements LinkResourceService { - - private final Logger log = getLogger(getClass()); - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - private LinkResourceStore store; - - @Activate - public void activate() { - eventDispatcher.addSink(LinkResourceEvent.class, listenerRegistry); - log.info("Started"); - } - - @Deactivate - public void deactivate() { - eventDispatcher.removeSink(LinkResourceEvent.class); - log.info("Stopped"); - } - - - @Override - public LinkResourceAllocations requestResources(LinkResourceRequest req) { - checkPermission(LINK_WRITE); - - // TODO Concatenate multiple bandwidth requests. - // TODO Support multiple lambda resource requests. - // TODO Throw appropriate exception. - Set allocs = new HashSet<>(); - Map> allocsPerLink = new HashMap<>(); - for (ResourceRequest r : req.resources()) { - switch (r.type()) { - case BANDWIDTH: - BandwidthResourceRequest br = (BandwidthResourceRequest) r; - allocs.add(new BandwidthResourceAllocation(br.bandwidth())); - break; - case LAMBDA: - LambdaResourceRequest lr = (LambdaResourceRequest) r; - allocs.add(new LambdaResourceAllocation(lr.lambda())); - break; - case MPLS_LABEL: - for (Link link : req.links()) { - if (allocsPerLink.get(link) == null) { - allocsPerLink.put(link, new HashSet<>()); - } - - Optional label = req.resources(link).stream() - .filter(x -> x.type() == ResourceType.MPLS_LABEL) - .map(x -> (MplsLabelResourceRequest) x) - .map(MplsLabelResourceRequest::mplsLabel) - .findFirst(); - - if (label.isPresent()) { - allocsPerLink.get(link).add(new MplsLabelResourceAllocation(label.get())); - } else { - log.info("Failed to allocate MPLS resource."); - break; - } - } - break; - default: - break; - } - } - - Map> allocations = new HashMap<>(); - for (Link link : req.links()) { - allocations.put(link, new HashSet<>(allocs)); - Set linkAllocs = allocsPerLink.get(link); - if (linkAllocs != null) { - allocations.get(link).addAll(linkAllocs); - } - } - LinkResourceAllocations result = - new DefaultLinkResourceAllocations(req, allocations); - store.allocateResources(result); - return result; - - } - - @Override - public void releaseResources(LinkResourceAllocations allocations) { - checkPermission(LINK_WRITE); - final LinkResourceEvent event = store.releaseResources(allocations); - if (event != null) { - post(event); - } - } - - @Override - public LinkResourceAllocations updateResources(LinkResourceRequest req, - LinkResourceAllocations oldAllocations) { - checkPermission(LINK_WRITE); - releaseResources(oldAllocations); - return requestResources(req); - } - - @Override - public Iterable getAllocations() { - checkPermission(LINK_READ); - return store.getAllocations(); - } - - @Override - public Iterable getAllocations(Link link) { - checkPermission(LINK_READ); - return store.getAllocations(link); - } - - @Override - public LinkResourceAllocations getAllocations(IntentId intentId) { - checkPermission(LINK_READ); - return store.getAllocations(intentId); - } - - @Override - public Iterable getAvailableResources(Link link) { - checkPermission(LINK_READ); - - Set freeRes = store.getFreeResources(link); - Set result = new HashSet<>(); - for (ResourceAllocation alloc : freeRes) { - switch (alloc.type()) { - case BANDWIDTH: - result.add(new BandwidthResourceRequest( - ((BandwidthResourceAllocation) alloc).bandwidth())); - break; - case LAMBDA: - result.add(new LambdaResourceRequest( - ((LambdaResourceAllocation) alloc).lambda())); - break; - case MPLS_LABEL: - result.add(new MplsLabelResourceRequest( - ((MplsLabelResourceAllocation) alloc).mplsLabel())); - break; - default: - break; - } - } - return result; - } - - @Override - public Iterable getAvailableResources(Link link, - LinkResourceAllocations allocations) { - checkPermission(LINK_READ); - - Set allocatedRes = allocations.getResourceAllocation(link); - Set result = Sets.newHashSet(getAvailableResources(link)); - result.removeAll(allocatedRes); - return result; - } - - /** - * Store delegate to re-post events emitted from the store. - */ - private class InternalStoreDelegate implements LinkResourceStoreDelegate { - @Override - public void notify(LinkResourceEvent event) { - post(event); - } - } -} diff --git a/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java b/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java index 033952fa3b..e32cdec2f1 100644 --- a/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java +++ b/core/security/src/main/java/org/onosproject/security/impl/DefaultPolicyBuilder.java @@ -541,4 +541,4 @@ public final class DefaultPolicyBuilder { } return permissions; } -} \ No newline at end of file +}