Fix completers for CFM app CLI

Change-Id: Ib558d5fa26b8b99f0529cabac1848f74ca99004f
This commit is contained in:
Ray Milkey 2018-10-02 15:00:02 -07:00
parent 2a22ac62d7
commit c2b7b9646e
16 changed files with 53 additions and 1 deletions

View File

@ -13,6 +13,10 @@ osgi_jar_with_tests(
api_title = "L2 Monitoring CFM",
api_version = "1.0",
exclude_tests = ["org/onosproject/cfm/impl/CfmResourceTest"],
karaf_command_packages = [
"org.onosproject.cfm.cli",
"org.onosproject.cfm.cli.completer",
],
test_deps = TEST_DEPS,
web_context = "/onos/cfm",
deps = COMPILE_DEPS,

View File

@ -17,9 +17,14 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onlab.packet.VlanId;
import org.onosproject.cfm.cli.completer.CfmMaCcmIntervalCompleter;
import org.onosproject.cfm.cli.completer.CfmMaNameTypeCompleter;
import org.onosproject.cfm.cli.completer.CfmMdNameCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.cli.PlaceholderCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.Component;
import org.onosproject.incubator.net.l2monitoring.cfm.DefaultComponent;
import org.onosproject.incubator.net.l2monitoring.cfm.DefaultMaintenanceAssociation;
@ -40,22 +45,26 @@ public class CfmMaAddCommand extends AbstractShellCommand {
@Argument(name = "name",
description = "Maintenance Domain name and type (in brackets)",
required = true)
@Completion(CfmMdNameCompleter.class)
private String mdName = null;
@Argument(index = 1, name = "name-type",
description = "Maintenance Assocation name type",
description = "Maintenance Association name type",
required = true)
@Completion(CfmMaNameTypeCompleter.class)
private String nameType = null;
@Argument(index = 2, name = "name",
description = "Maintenance Assocation name. Restrictions apply depending " +
"on name-type",
required = true)
@Completion(PlaceholderCompleter.class)
private String name = null;
@Argument(index = 3, name = "ccm-interval",
description = "CCM Interval values from list",
required = true)
@Completion(CfmMaCcmIntervalCompleter.class)
private String ccmInterval = null;
@Argument(index = 4, name = "numeric-id",

View File

@ -17,7 +17,9 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cfm.cli.completer.CfmMaNameCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdShort;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdId;
@ -37,6 +39,7 @@ public class CfmMaDeleteCommand extends AbstractShellCommand {
description = "Maintenance Domain name and type (in brackets) " +
"and the Maintenance Association name and type (in brackets)",
required = true)
@Completion(CfmMaNameCompleter.class)
private String name = null;
@Override

View File

@ -17,8 +17,12 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cfm.cli.completer.CfmMdLevelCompleter;
import org.onosproject.cfm.cli.completer.CfmMdNameTypeCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.cli.PlaceholderCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.DefaultMaintenanceDomain;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceDomain;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdId;
@ -36,21 +40,25 @@ public class CfmMdAddCommand extends AbstractShellCommand {
@Argument(name = "name-type",
description = "Maintenance Domain name type",
required = true)
@Completion(CfmMdNameTypeCompleter.class)
private String nameType = null;
@Argument(index = 1, name = "name",
description = "Maintenance Domain name. Restrictions apply depending " +
"on name-type. Leave empty if name type is none",
required = true)
@Completion(PlaceholderCompleter.class)
private String name = null;
@Argument(index = 2, name = "level",
description = "Maintenance Domain level LEVEL0-LEVEL7",
required = true)
@Completion(CfmMdLevelCompleter.class)
private String level = null;
@Argument(index = 3, name = "numeric-id",
description = "An optional numeric id for Maintenance Domain [1-65535]")
@Completion(PlaceholderCompleter.class)
private Short numericId = null;
@Override

View File

@ -17,7 +17,9 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cfm.cli.completer.CfmMdNameCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MdId;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmConfigException;
@ -34,6 +36,7 @@ public class CfmMdDeleteCommand extends AbstractShellCommand {
@Argument(name = "name",
description = "Maintenance Domain name and type (in brackets)",
required = true)
@Completion(CfmMdNameCompleter.class)
private String name = null;
@Override

View File

@ -17,7 +17,9 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cfm.cli.completer.CfmMdNameCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceAssociation;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceDomain;
@ -35,6 +37,7 @@ import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmMdService;
public class CfmMdListMdCommand extends AbstractShellCommand {
@Argument(name = "name",
description = "Maintenance Domain name and type (in brackets)")
@Completion(CfmMdNameCompleter.class)
private String name = null;
@Override

View File

@ -17,7 +17,9 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cfm.cli.completer.CfmMepIdCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.incubator.net.l2monitoring.cfm.MepEntry;
import org.onosproject.incubator.net.l2monitoring.cfm.identifier.MaIdShort;
@ -43,6 +45,7 @@ public class CfmMepListCommand extends AbstractShellCommand {
private final Logger log = getLogger(getClass());
@Argument(name = "md",
description = "Maintenance Domain name and type (in brackets) - will use all MDs if not specified")
@Completion(CfmMepIdCompleter.class)
private String mdStr = null;
@Argument(index = 1, name = "ma",
description = "Maintenance Association name and type (in brackets) - requires MD")

View File

@ -17,7 +17,9 @@ package org.onosproject.cfm.cli;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cfm.cli.completer.CfmDeviceIdCompleter;
import org.onosproject.cli.AbstractShellCommand;
import org.onosproject.incubator.net.l2monitoring.cfm.Mep;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmConfigException;
@ -34,6 +36,7 @@ public class CfmMepListDeviceCommand extends AbstractShellCommand {
@Argument(name = "device",
description = "Device Id",
required = true)
@Completion(CfmDeviceIdCompleter.class)
private String deviceStr = null;
@Override

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.Component;
@ -24,6 +25,7 @@ import java.util.List;
/**
* CLI completer for Component MEP Half Function creation.
*/
@Service
public class CfmCompMhfCompleter extends AbstractChoicesCompleter {
@Override
public List<String> choices() {

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.Component;
@ -24,6 +25,7 @@ import java.util.List;
/**
* CLI completer for Component TagType creation.
*/
@Service
public class CfmCompTagTypeCompleter extends AbstractChoicesCompleter {
@Override
public List<String> choices() {

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceAssociation;
@ -24,6 +25,7 @@ import java.util.List;
/**
* CLI completer for Ccm Interval creation.
*/
@Service
public class CfmMaCcmIntervalCompleter extends AbstractChoicesCompleter {
@Override
public List<String> choices() {

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmMdService;
@ -26,6 +27,7 @@ import static org.onosproject.cli.AbstractShellCommand.get;
/**
* CLI completer for MA Name creation.
*/
@Service
public class CfmMaNameCompleter extends AbstractChoicesCompleter {
@Override
public List<String> choices() {

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceDomain;
@ -24,6 +25,7 @@ import java.util.List;
/**
* CLI completer for MD Level creation.
*/
@Service
public class CfmMdLevelCompleter extends AbstractChoicesCompleter {
@Override
public List<String> choices() {

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import static org.onosproject.cli.AbstractShellCommand.get;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmMdService;
@ -25,6 +26,7 @@ import java.util.List;
/**
* CLI completer for MD Name creation.
*/
@Service
public class CfmMdNameCompleter extends AbstractChoicesCompleter {
@Override
public List<String> choices() {

View File

@ -15,6 +15,7 @@
*/
package org.onosproject.cfm.cli.completer;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.onosproject.cli.AbstractChoicesCompleter;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmConfigException;
import org.onosproject.incubator.net.l2monitoring.cfm.service.CfmMdService;
@ -30,6 +31,7 @@ import static org.slf4j.LoggerFactory.getLogger;
/**
* CLI completer for Mep Id creation.
*/
@Service
public class CfmMepIdCompleter extends AbstractChoicesCompleter {
private final Logger log = getLogger(getClass());

View File

@ -16,6 +16,7 @@
package org.onosproject.cli;
import org.apache.karaf.shell.api.action.lifecycle.Service;
import org.apache.karaf.shell.api.console.CommandLine;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.support.completers.StringsCompleter;
@ -27,6 +28,7 @@ import java.util.SortedSet;
* A completer that can be used as a placeholder for arguments that don't
* need/want completers.
*/
@Service
public class PlaceholderCompleter extends AbstractCompleter {
@Override