Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagejava
titleForwardingMapCommand.java
collapsetrue
/*
 * 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