blob: 0ccfa28557d0d191776eb1eed0b9b5d2c4c70fa6 [file] [log] [blame]
Hyunsun Moon838b19b2015-10-18 18:23:15 -07001/*
Brian O'Connor80dff972017-08-03 22:46:30 -07002 * Copyright 2015-present Open Networking Foundation
Hyunsun Moon838b19b2015-10-18 18:23:15 -07003 *
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 */
16
alshabibb4d31712016-06-01 18:51:03 -070017package org.opencord.cordvtn.cli;
Hyunsun Moon838b19b2015-10-18 18:23:15 -070018
19import org.apache.karaf.shell.commands.Argument;
20import org.apache.karaf.shell.commands.Command;
21import org.onosproject.cli.AbstractShellCommand;
Hyunsun Moon2c3f0ee2017-04-06 16:47:21 +090022import org.opencord.cordvtn.api.node.CordVtnNodeAdminService;
Hyunsun Moonfd5a24e2016-10-19 19:15:48 -070023import org.opencord.cordvtn.api.node.CordVtnNode;
Hyunsun Moon2c3f0ee2017-04-06 16:47:21 +090024import org.opencord.cordvtn.api.node.CordVtnNodeService;
Hyunsun Moon838b19b2015-10-18 18:23:15 -070025
26/**
Hyunsun Moon4edb0172015-11-07 22:08:43 -080027 * Initializes nodes for CordVtn service.
Hyunsun Moon838b19b2015-10-18 18:23:15 -070028 */
Hyunsun Moon4edb0172015-11-07 22:08:43 -080029@Command(scope = "onos", name = "cordvtn-node-init",
30 description = "Initializes nodes for CORD VTN service")
31public class CordVtnNodeInitCommand extends AbstractShellCommand {
Hyunsun Moon838b19b2015-10-18 18:23:15 -070032
Hyunsun Moon4edb0172015-11-07 22:08:43 -080033 @Argument(index = 0, name = "hostnames", description = "Hostname(s)",
Hyunsun Moon838b19b2015-10-18 18:23:15 -070034 required = true, multiValued = true)
Hyunsun Moon4edb0172015-11-07 22:08:43 -080035 private String[] hostnames = null;
Hyunsun Moon838b19b2015-10-18 18:23:15 -070036
37 @Override
38 protected void execute() {
Hyunsun Moon2c3f0ee2017-04-06 16:47:21 +090039 CordVtnNodeService nodeService = AbstractShellCommand.get(CordVtnNodeService.class);
40 CordVtnNodeAdminService nodeAdminService =
41 AbstractShellCommand.get(CordVtnNodeAdminService.class);
Hyunsun Moon838b19b2015-10-18 18:23:15 -070042
Hyunsun Moon4edb0172015-11-07 22:08:43 -080043 for (String hostname : hostnames) {
Hyunsun Moon2c3f0ee2017-04-06 16:47:21 +090044 CordVtnNode node = nodeService.node(hostname);
45 if (node == null) {
Hyunsun Moon4edb0172015-11-07 22:08:43 -080046 print("Unable to find %s", hostname);
Hyunsun Moon2c3f0ee2017-04-06 16:47:21 +090047 } else {
48 nodeAdminService.updateNode(node);
Hyunsun Moon838b19b2015-10-18 18:23:15 -070049 }
Hyunsun Moon838b19b2015-10-18 18:23:15 -070050 }
51 }
52}