Synchronizing BGP thrift service delete context.
[netvirt.git] / bgpmanager / impl / src / main / java / org / opendaylight / netvirt / bgpmanager / ConfigureBgpCli.java
index 225babc7dfdc1190b521602992940ffb5703b60c..bc5733125aa03a9c682c9278566b9fe976fafcd7 100644 (file)
@@ -19,7 +19,8 @@ import org.opendaylight.netvirt.bgpmanager.thrift.gen.af_safi;
 import org.opendaylight.netvirt.bgpmanager.thrift.gen.protocol_type;
 import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.Bgp;
 import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.TcpMd5SignaturePasswordType;
-import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.Neighbors;
+import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.neighborscontainer.Neighbors;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 @Command(scope = "odl", name = "configure-bgp", description = "")
 public class ConfigureBgpCli extends OsgiCommandSupport {
@@ -81,11 +82,11 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
 
     @Option(name = "--l2vni", description = "l2vni of the route",
             required = false, multiValued = false)
-    int l2vni = 0;
+    Uint32 l2vni = Uint32.ZERO;
 
     @Option(name = "--l3vni", description = "l3vni",
             required = false, multiValued = false)
-    int l3vni = 0;
+    Uint32 l3vni = Uint32.ZERO;
 
     @Option(name = "--stalepath-time", description = "the time delay after bgp restart stalepaths are cleaned",
             required = false, multiValued = false)
@@ -104,20 +105,23 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
         emergencies, alerts, critical, errors, warnings, notifications, informational, debugging
     }
 
+    private final BgpManager bgpManager;
     private final BgpConfigurationManager bgpConfigurationManager;
 
-    public ConfigureBgpCli(BgpConfigurationManager bgpConfigurationManager) {
+    public ConfigureBgpCli(BgpManager bgpManager, BgpConfigurationManager bgpConfigurationManager) {
+        this.bgpManager = bgpManager;
         this.bgpConfigurationManager = bgpConfigurationManager;
     }
 
     @Override
-    protected Object doExecute() {
+    protected Object doExecute() throws Exception {
         if (op == null) {
             session.getConsole().println("Please provide valid operation");
             usage();
             session.getConsole().println(
                     "exec configure-bgp -op [start-bgp-server | stop-bgp-server | add-neighbor | delete-neighbor|"
                             + " add-route | delete-route | graceful-restart| enable-log ]");
+            return null;
         }
         switch (op) {
             case "start-bgp-server":
@@ -158,12 +162,12 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
         try {
             int time = Integer.parseInt(stalePathTime);
             if (time < 30 || time > 3600) {
-                session.getConsole().println("invalid stale path time valid range [30-3600]");
+                session.getConsole().println("invalid stale path time valid range [30-3600]" + stalePathTime);
                 printGracefulRestartHelp();
                 return false;
             }
         } catch (NumberFormatException e) {
-            session.getConsole().println("invalid stale path time");
+            session.getConsole().println("invalid stale path time" + stalePathTime);
             printGracefulRestartHelp();
             return false;
         }
@@ -175,7 +179,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
         if (!validStalepathTime) {
             return;
         }
-        bgpConfigurationManager.addGracefulRestart(Integer.parseInt(stalePathTime));
+        bgpManager.configureGR(Integer.parseInt(stalePathTime));
     }
 
     private void deleteNeighbor() {
@@ -190,38 +194,38 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
             printDeleteNeighborHelp();
             return;
         }
-        bgpConfigurationManager.delNeighbor(ip);
+        bgpManager.deleteNeighbor(ip);
     }
 
     public long getAsNumber(String nbrIp) {
-        Bgp conf = bgpConfigurationManager.getConfig();
+        Bgp conf = bgpManager.getConfig();
         if (conf == null) {
             return -1;
         }
-        List<Neighbors> nbrs = conf.getNeighbors();
+        List<Neighbors> nbrs = conf.getNeighborsContainer().getNeighbors();
         if (nbrs == null) {
             return -1;
         }
         for (Neighbors nbr : nbrs) {
             if (nbrIp.equals(nbr.getAddress().getValue())) {
-                return nbr.getRemoteAs();
+                return nbr.getRemoteAs().toJava();
             }
         }
         return -1;
     }
 
     private void stopBgp() {
-        Bgp conf = bgpConfigurationManager.getConfig();
+        Bgp conf = bgpManager.getConfig();
         if (conf == null) {
             return;
         }
-        List<Neighbors> nbrs = conf.getNeighbors();
+        List<Neighbors> nbrs = conf.getNeighborsContainer().getNeighbors();
         if (nbrs != null && nbrs.size() > 0) {
             session.getConsole().println(
                     "error: all BGP congiguration must be deleted before stopping the router instance");
             return;
         }
-        bgpConfigurationManager.stopBgp();
+        bgpManager.stopBgp();
     }
 
     private void usage() {
@@ -263,7 +267,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
     private void startBgp() {
         boolean validRouterId = false;
 
-        if (bgpConfigurationManager.getConfig() != null && bgpConfigurationManager.getConfig().getAsId() != null) {
+        if (bgpManager.getConfig() != null && bgpManager.getConfig().getAsId() != null) {
             session.getConsole().println("bgp is already started please use stop-bgp-server and start again");
             return;
         }
@@ -284,7 +288,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
                 return;
             }
         }
-        bgpConfigurationManager.startBgp(Long.parseLong(asNumber), routerId,
+        bgpManager.startBgp(Long.parseLong(asNumber), routerId,
                 stalePathTime == null ? 0 : Integer.parseInt(stalePathTime), false);
     }
 
@@ -326,12 +330,14 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
             try {
                 long val = Long.parseLong(ebgpMultihops);
                 if (val < 1 || val > 255) {
-                    session.getConsole().println("invalid ebgpMultihops number , valid range [1,255] ");
+                    session.getConsole().println("invalid ebgpMultihops number , valid range [1,255] "
+                            + ebgpMultihops);
                     printAddNeighborHelp();
                     return;
                 }
             } catch (NumberFormatException e) {
-                session.getConsole().println("invalid ebgpMultihops number, valid range [1-255]");
+                session.getConsole().println("invalid ebgpMultihops number, valid range [1-255]"
+                        + ebgpMultihops);
                 printAddNeighborHelp();
                 return;
             }
@@ -360,12 +366,10 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
                 safi = 5;
             } else {
                 session.getConsole().println(
-                        "invalid addressFamily valid values SAFI_IPV4_LABELED_UNICAST | SAFI_MPLS_VPN");
+                        "invalid addressFamily valid values lu/evpn/vpnv4/vpnv6");
                 printAddNeighborHelp();
-                return;
+                return ;
             }
-            bgpConfigurationManager.addAddressFamily(ip, afi, safi);
-
         }
         if (getAsNumber(ip) != -1) {
             session.getConsole().println("neighbor with ip " + ip + " already exists");
@@ -385,12 +389,12 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
     }
 
     protected void addRoute() {
-        bgpConfigurationManager.onUpdatePushRoute(protocol_type.PROTOCOL_EVPN, rd, prefix,
+        bgpConfigurationManager.onUpdatePushRoute(protocol_type.PROTOCOL_L3VPN, rd, prefix,
                 0, nexthop, mac, l3vni, l2vni, null, null);
     }
 
     protected void deleteRoute() {
-        bgpConfigurationManager.onUpdateWithdrawRoute(protocol_type.PROTOCOL_EVPN, rd, prefix,
+        bgpConfigurationManager.onUpdateWithdrawRoute(protocol_type.PROTOCOL_L3VPN, rd, prefix,
                 0, nexthop, mac);
     }
 
@@ -448,7 +452,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
                     "exec configure-bgp -op enable-log --log-file-path <logfile> --log-level <level>");
             return;
         }
-        bgpConfigurationManager.addLogging(logFile, logLevel);
+        bgpManager.setQbgpLog(logFile, logLevel);
     }
 
     private boolean validateAsNumber(String strAsnum) {
@@ -464,7 +468,7 @@ public class ConfigureBgpCli extends OsgiCommandSupport {
                 return false;
             }
         } catch (NumberFormatException e) {
-            session.getConsole().println("invalid AS Number ");
+            session.getConsole().println("invalid AS Number " + asNumber);
             return false;
         }
         return true;