...
Next, we will create a CLI command to use this new service.
Creating a command
The CLI commands are defined in the project directory onos_next/cli/. There are two types of commands, with their source files located in the following locations:
- ONOS_ROOT/cli/src/main/java/org/onlab/onos/cli - Commands related to system configuration and monitoring
- ONOS_ROOT/cli/src/main/java/org/onlab/onos/cli/net - Commands related to network configuration and monitoring
Since our command will display network-related information, we will add our command to the second directory.
1. Create command class
We create the following class skeleton for our new command, tentatively named ForwardingMapCommand
. The class is a child of AbstractShellCommand
, and the @Command
annotation is used to set its name, scope, and description.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/*
* 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.onlab.onos.cli.net;
import org.apache.karaf.shell.commands.Command;
import org.onlab.onos.cli.AbstractShellCommand;
/**
* Lists the endpoints for which intents are installed
*/
@Command(scope = "onos", name = "fwdmap",
description = "Lists the endpoints for which intents are installed")
public class ForwardingMapCommand extends AbstractShellCommand {
@Override
protected void execute() {
}
} |
The annotation enables this particular command to be invoked as fwdmap
or onos:fwdmap
at the CLI.
2. Register command with Karaf CLI