blob: 7521eff865e9b05f6e76dc90d6ac973fc563d3fc [file] [log] [blame]
jiangrui7d2d7fb2015-08-11 18:43:57 +08001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2015-present Open Networking Foundation
jiangrui7d2d7fb2015-08-11 18:43:57 +08003 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.vtnrsc.cli.network;
17
Ray Milkey86ad7bb2018-09-27 12:32:28 -070018import org.apache.karaf.shell.api.action.Command;
19import org.apache.karaf.shell.api.action.Option;
Ray Milkey7a2dee52018-09-28 10:58:28 -070020import org.apache.karaf.shell.api.action.lifecycle.Service;
jiangrui7d2d7fb2015-08-11 18:43:57 +080021import org.onosproject.cli.AbstractShellCommand;
22import org.onosproject.vtnrsc.TenantNetwork;
23import org.onosproject.vtnrsc.TenantNetworkId;
24import org.onosproject.vtnrsc.tenantnetwork.TenantNetworkService;
25
26/**
27 * Supports for querying TenantNetworks by network id.
28 */
Ray Milkey7a2dee52018-09-28 10:58:28 -070029@Service
jiangrui7d2d7fb2015-08-11 18:43:57 +080030@Command(scope = "onos", name = "tenantnetworks", description = "Supports for querying"
31 + "tenantNetworks by networkid")
32public class TenantNetworkQueryCommand extends AbstractShellCommand {
33
34 @Option(name = "-i", aliases = "--id", description = "TenantNetwork id", required = false,
35 multiValued = false)
36 String id = null;
37
38 private static final String FMT = "networkId=%s, networkName=%s, segmentationId=%s,"
39 + "tenantId=%s, type=%s, adminStateUp=%s";
40
41 @Override
Ray Milkey86ad7bb2018-09-27 12:32:28 -070042 protected void doExecute() {
jiangrui7d2d7fb2015-08-11 18:43:57 +080043 TenantNetworkService service = get(TenantNetworkService.class);
44 if (id != null) {
45 TenantNetwork network = service.getNetwork(TenantNetworkId.networkId(id));
46 printNetwork(network);
47 } else {
48 Iterable<TenantNetwork> networks = service.getNetworks();
49 for (TenantNetwork network : networks) {
50 printNetwork(network);
51 }
52 }
53 }
54
55 private void printNetwork(TenantNetwork network) {
56 if (network == null) {
57 return;
58 }
59 print(FMT, network.id(), network.name(), network.segmentationId(),
60 network.tenantId(), network.type(), network.adminStateUp());
61 }
62}