Want more features on Pastebin? Sign Up, it's FREE!
Guest

ConfigurationService

By: networkstatic on Jul 22nd, 2013  |  syntax: Java  |  size: 27.33 KB  |  views: 189  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2.  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
  3.  *
  4.  * This program and the accompanying materials are made available under the
  5.  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  6.  * and is available at http://www.eclipse.org/legal/epl-v10.html
  7.  */
  8.  
  9. package org.opendaylight.controller.protocol_plugin.ovsdb.internal;
  10.  
  11. import java.util.ArrayList;
  12. import java.util.LinkedHashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15.  
  16. import org.opendaylight.controller.sal.configuration.IPluginInNetworkConfigurationService;
  17. import org.opendaylight.controller.sal.core.Node;
  18. import org.slf4j.Logger;
  19. import org.slf4j.LoggerFactory;
  20.  
  21. public class ConfigurationService implements IPluginInNetworkConfigurationService
  22. {
  23.     private static final Logger logger = LoggerFactory
  24.             .getLogger(ConfigurationService.class);
  25.  
  26.     IConnectionServiceInternal connectionService;
  27.  
  28.     void init() {
  29.     }
  30.  
  31.     /**
  32.      * Function called by the dependency manager when at least one dependency
  33.      * become unsatisfied or when the component is shutting down because for
  34.      * example bundle is being stopped.
  35.      *
  36.      */
  37.     void destroy() {
  38.     }
  39.  
  40.     /**
  41.      * Function called by dependency manager after "init ()" is called and after
  42.      * the services provided by the class are registered in the service registry
  43.      *
  44.      */
  45.     void start() {
  46.     }
  47.  
  48.     /**
  49.      * Function called by the dependency manager before the services exported by
  50.      * the component are unregistered, this will be followed by a "destroy ()"
  51.      * calls
  52.      *
  53.      */
  54.     void stop() {
  55.     }
  56.  
  57.     public void setConnectionServiceInternal(IConnectionServiceInternal connectionService) {
  58.         this.connectionService = connectionService;
  59.     }
  60.  
  61.     public void unsetConnectionServiceInternal(IConnectionServiceInternal connectionService) {
  62.         if (this.connectionService == connectionService) {
  63.             this.connectionService = null;
  64.         }
  65.     }
  66.  
  67.     @Override
  68.     public boolean createBridgeDomain(Node node, String bridgeIdentifier) {
  69.         if (connectionService == null) {
  70.             logger.error("Couldnt refer to the ConnectionService");
  71.             return false;
  72.         }
  73.         Connection connection = connectionService.getConnection(node);
  74.  
  75.         /*
  76.         ArrayList nulist = new ArrayList();
  77.         ArrayList nulist5 = new ArrayList();
  78.         ArrayList nulist6 = new ArrayList();
  79.         ArrayList nulist4 = new ArrayList();
  80.  
  81.         Map brmap1 = new LinkedHashMap();
  82.         Map opinsert = new LinkedHashMap();
  83.         Map opcomment = new LinkedHashMap();
  84.         Map opmutate = new LinkedHashMap();
  85.  
  86.         ArrayList comarr = new ArrayList();
  87.         ArrayList comarr2 = new ArrayList();
  88.         ArrayList comarr3 = new ArrayList();
  89.         ArrayList comarr4 = new ArrayList();
  90.  
  91.         ArrayList mutwhere = new ArrayList();
  92.         ArrayList mutwhere2 = new ArrayList();
  93.         ArrayList mutwhere3 = new ArrayList();
  94.         ArrayList mutwhere4 = new ArrayList();
  95.         ArrayList mutwhere5 = new ArrayList();
  96.         ArrayList mutwhere6 = new ArrayList();
  97.  
  98.         brmap1.put("op", "insert");
  99.         brmap1.put("table", "Bridge");
  100.         brmap1.put("row", opinsert);
  101.         opinsert.put("external_ids", nulist);
  102.         nulist.add("map");
  103.         nulist.add(nulist4);
  104.         nulist4.add(nulist5);
  105.         nulist4.add(nulist6);
  106.         nulist5.add("brId");
  107.         nulist5.add("11111111-1111-1111-1111-111111111111");
  108.         nulist6.add("engine_test");
  109.         nulist6.add("eTest");
  110.         brmap1.put("uuid-name", "new_bridge");
  111.         opinsert.put("name", bridgeIdentifier);
  112.  
  113.         // Mutate operation
  114.         opmutate.put("op", "mutate");
  115.         opmutate.put("table", "Open_vSwitch");
  116.         opmutate.put("where", mutwhere);
  117.         opmutate.put("mutations", mutwhere2);
  118.         mutwhere2.add(mutwhere3);
  119.         mutwhere3.add("bridges");
  120.         mutwhere3.add("insert");
  121.         mutwhere3.add(mutwhere4);
  122.         mutwhere4.add("set");
  123.         mutwhere4.add(mutwhere5);
  124.         mutwhere5.add(mutwhere6);
  125.         mutwhere6.add("named-uuid");
  126.         mutwhere6.add("new_bridge");
  127.  
  128.         // Comment operation
  129.         opcomment.put("op", "comment");
  130.         opcomment.put("comment", "ovs-vsctl add-br x");
  131. */
  132.         /*
  133.          * Add the 3 operations into the object
  134.          * params along with the db_name OVS
  135.          */
  136.  
  137.  
  138.         // Arrays for JSON Interfaces
  139.         ArrayList intarr1 = new ArrayList();
  140.         ArrayList intarr2 = new ArrayList();
  141.         ArrayList intarr3 = new ArrayList();
  142.         ArrayList intarr4 = new ArrayList();
  143.         ArrayList intarr5 = new ArrayList();
  144.         ArrayList intarr6 = new ArrayList();
  145.         ArrayList intarr7 = new ArrayList();
  146.  
  147.         // Arrays for Port
  148.         ArrayList portarr1 = new ArrayList();
  149.         ArrayList portarr2 = new ArrayList();
  150.         ArrayList portarr3 = new ArrayList();
  151.         ArrayList portarr4 = new ArrayList();
  152.         ArrayList portarr5 = new ArrayList();
  153.         ArrayList portarr6 = new ArrayList();
  154.  
  155.         // Arrays for Bridge
  156.         ArrayList brarr1 = new ArrayList();
  157.         ArrayList brarr2 = new ArrayList();
  158.         ArrayList brarr3 = new ArrayList();
  159.         ArrayList brarr4 = new ArrayList();
  160.         ArrayList brarr5 = new ArrayList();
  161.         ArrayList brarr6 = new ArrayList();
  162.  
  163.         // Maps for JSON Bridge
  164.         Map brmap1 = new LinkedHashMap();
  165.         Map brmap2 = new LinkedHashMap();
  166.  
  167.         // Maps for JSON Port
  168.         Map portmap1 = new LinkedHashMap();
  169.         Map portmap2 = new LinkedHashMap();
  170.  
  171.         // Maps for Update
  172.         Map updtmap1 = new LinkedHashMap();
  173.         Map updtmap2 = new LinkedHashMap();
  174.  
  175.         // Arrays for Update
  176.         ArrayList updtarr1 = new ArrayList();
  177.         ArrayList updtarr2 = new ArrayList();
  178.         ArrayList updtarr3 = new ArrayList();
  179.         ArrayList updtarr4 = new ArrayList();
  180.         ArrayList updtarr5 = new ArrayList();
  181.         ArrayList updtarr6 = new ArrayList();
  182.         ArrayList updtarr7 = new ArrayList();
  183.        
  184.        
  185.         //Maps for Interface Insert
  186.                 Map insintmap1 = new LinkedHashMap();
  187.                 Map insintmap2 = new LinkedHashMap();
  188.                 Map insintmap3 = new LinkedHashMap();
  189.                 Map insintmap4 = new LinkedHashMap();
  190.  
  191.                 //Arrays for Interface Insert
  192.         ArrayList insintarr1 = new ArrayList();
  193.                 ArrayList insintarr2 = new ArrayList();
  194.                 ArrayList insintarr3 = new ArrayList();
  195.         ArrayList insintarr4 = new ArrayList();
  196.         ArrayList insintarr5 = new ArrayList();
  197.         ArrayList insintarr6 = new ArrayList();
  198.  
  199.         // Maps for Port Update
  200.         Map insportmap1 = new LinkedHashMap();
  201.         Map insportmap2 = new LinkedHashMap();
  202.  
  203.         // Arrays for Port Update
  204.         ArrayList insportarr1 = new ArrayList();
  205.  
  206.  
  207.         // Arrays for Mutation Op
  208.         ArrayList mutearr1 = new ArrayList();
  209.         ArrayList mutearr2 = new ArrayList();
  210.         ArrayList mutearr3 = new ArrayList();
  211.         ArrayList mutearr4 = new ArrayList();
  212.         ArrayList mutearr5 = new ArrayList();
  213.  
  214.         // Maps for Mutate Op
  215.         Map mutemap1 = new LinkedHashMap();
  216.  
  217.         // Arrays for Op Select OVS
  218.         ArrayList opselarr1 = new ArrayList();
  219.         ArrayList opselarr2 = new ArrayList();
  220.         ArrayList opselarr3 = new ArrayList();
  221.         ArrayList opselarr4 = new ArrayList();
  222.        
  223.         // Maps for Op Select OVS
  224.         Map opselmap1 = new LinkedHashMap();
  225.        
  226.         // HMaps for JSON Interface
  227.         Map intmap1 = new LinkedHashMap();
  228.         Map intmap2 = new LinkedHashMap();
  229.         Map intmap3 = new LinkedHashMap();
  230.         Map intmap4 = new LinkedHashMap();
  231.        
  232.         // Arrays for  JSON Open_vSwitch Table
  233.         ArrayList ovsarr1 = new ArrayList();
  234.         ArrayList ovsarr2 = new ArrayList();
  235.         ArrayList ovsarr3 = new ArrayList();
  236.         ArrayList ovsarr4 = new ArrayList();
  237.        
  238.         // HMaps for JSON Open_vSwitch Table
  239.         Map ovsmap1 = new LinkedHashMap();
  240.         Map ovsmap2 = new LinkedHashMap();
  241.         Map ovsmap3 = new LinkedHashMap();
  242.         Map ovsmap4 = new LinkedHashMap();
  243.  
  244.         // Array for Comment
  245.         ArrayList commarr5 = new ArrayList();
  246.  
  247.         // Maps for Comment
  248.         Map commmap1 = new LinkedHashMap();
  249.                
  250.        //OVSDB Server Defined UUIDs
  251.        String intuuid = "e7c6fc73-a4a1-4d7d-b6b7-eb2e0d2fa900";
  252.        String bridgetabluuid = "435de935-54e2-474d-aba6-cb85468fcc65";
  253.        String portabluuid = "5aa60514-8a65-4739-8ea9-46fb1906a7ed";
  254.        String ovstbluuid = "2cfdf9dd-e2a3-46b9-b09d-fbc68f23bc5d";
  255.      
  256.         //OVS User Defined Port Name
  257.         String ovsbridgename = "br1";
  258.  
  259.         //Array for printing only
  260.         ArrayList print = new ArrayList();
  261.        
  262.         //Rows Bridge Set
  263.         intmap1.put("rows", intarr1);
  264.         intarr1.add(intmap2);
  265.         intmap2.put("bridges", intarr2);
  266.         intarr2.add("set");
  267.         intarr2.add(intarr3);
  268.         intmap1.put("until", "==");
  269.         intmap1.put("table", "Open_vSwitch");
  270.         intmap1.put("op", "wait");
  271.         intmap1.put("timeout", 0);
  272.         intmap1.put("where", intarr4);
  273.         intarr4.add(intarr5);
  274.         intarr5.add("_uuid");
  275.         intarr5.add("==");
  276.         intarr5.add(intarr6);
  277.         intarr6.add("uuid");
  278.         intarr6.add(ovstbluuid);
  279.         intmap1.put("columns", intarr7);
  280.         intarr7.add("bridges");
  281.        
  282.         //Table OVS update
  283.         ovsmap1.put("table", "Open_vSwitch");
  284.         ovsmap1.put("where", ovsarr1);
  285.         ovsarr1.add(ovsarr2);
  286.         ovsarr2.add("_uuid");
  287.         ovsarr2.add("==");
  288.         ovsarr2.add(ovsarr3);
  289.         ovsarr3.add("uuid");
  290.         ovsarr3.add(ovstbluuid);
  291.         ovsmap1.put("op", "update");
  292.         ovsmap1.put("row", ovsmap3);
  293.         ovsmap3.put("bridges", ovsarr4);
  294.         ovsarr4.add("named-uuid");
  295.         ovsarr4.add("row64781566_ce8a_447a_a762_8835ebd42a9b");
  296.        
  297.         //Table Interface Insert
  298.         insintmap1.put("table","Interface");
  299.         insintmap1.put("uuid-name","rowe943d8f1_411c_4c3f_bad4_131ed80e4dfc");
  300.         insintmap1.put("op", "insert");
  301.         insintmap1.put("row", insintmap2);
  302.         insintmap2.put("name", ovsbridgename);
  303.         insintmap2.put("type", "internal");
  304.        
  305.         //Bridge Table Inser
  306.         brmap1.put("table","Bridge");
  307.         brmap1.put("uuid-name","row64781566_ce8a_447a_a762_8835ebd42a9b");
  308.         brmap1.put("op", "insert");
  309.         brmap1.put("row", brmap2);
  310.         brmap2.put("name", ovsbridgename);
  311.         brmap2.put("ports", brarr1);
  312.         brarr1.add("named-uuid");
  313.         brarr1.add("row54bfd27e_8744_4f6a_a9e4_f982404de816");
  314.        
  315.         //Port Table Inser
  316.         portmap1.put("table","Port");
  317.         portmap1.put("uuid-name","row54bfd27e_8744_4f6a_a9e4_f982404de816");
  318.         portmap1.put("op", "insert");
  319.         portmap1.put("row", portmap2);
  320.         portmap2.put("interfaces", portarr1);
  321.         portarr1.add("named-uuid");
  322.         portarr1.add("rowe943d8f1_411c_4c3f_bad4_131ed80e4dfc");
  323.         portmap2.put("name", ovsbridgename);
  324.  
  325.         //Op Mutate Open_vSwtich table
  326.         mutemap1.put("mutations", mutearr1);
  327.         mutearr1.add(mutearr2);
  328.         mutearr2.add("next_cfg");
  329.         mutearr2.add("+=");
  330.         mutearr2.add(1);
  331.         mutemap1.put("table", "Open_vSwitch");
  332.         mutemap1.put("op", "mutate");
  333.         mutemap1.put("where", mutearr3);
  334.         mutearr3.add(mutearr4);
  335.         mutearr4.add("_uuid");
  336.         mutearr4.add("==");
  337.         mutearr4.add(mutearr5);
  338.         mutearr5.add("uuid");
  339.         mutearr5.add("2cfdf9dd-e2a3-46b9-b09d-fbc68f23bc5d");
  340.  
  341.         //Op Select OVS
  342.         opselmap1.put("table", "Open_vSwitch");
  343.         opselmap1.put("where", opselarr1);
  344.         opselarr1.add(opselarr2);
  345.         opselarr2.add("_uuid");
  346.         opselarr2.add("==");
  347.         opselarr2.add(opselarr3);
  348.         opselarr3.add("uuid");                
  349.         opselarr3.add("2cfdf9dd-e2a3-46b9-b09d-fbc68f23bc5d");  
  350.         opselmap1.put("op", "select");
  351.         opselmap1.put("columns", opselarr4);
  352.         opselarr4.add("next_cfg");
  353.        
  354.                 //Comment
  355.                 commmap1.put("comment", "ovs-vsctl: ovs-vsctl --db=tcp:172.16.58.170:6634 add-br " + ovsbridgename);
  356.                 commmap1.put("op", "comment");
  357.                
  358.         Object[] params = { "Open_vSwitch", intmap1, ovsmap1, insintmap1, brmap1, portmap1, mutemap1, opselmap1, commmap1};
  359.  
  360.        
  361.         OvsdbMessage message = new OvsdbMessage("transact", params, "efg");
  362.         try {
  363.             connection.sendMessage(message);
  364.             connection.readResponse(String[].class);
  365.         } catch (Exception e) {
  366.             // TODO Auto-generated catch block
  367.             e.printStackTrace();
  368.             return false;
  369.         } catch (Throwable e) {
  370.             // TODO Auto-generated catch block
  371.             e.printStackTrace();
  372.             return false;
  373.         }
  374.         return true;
  375.     }
  376.  
  377.     @Override
  378.     public boolean deleteBridgeDomain(Node node, String bridgeIdentifier) {
  379.         // TODO Auto-generated method stub
  380.         return false;
  381.     }
  382.  
  383.     @Override
  384.     public List<String> getBridgeDomains(Node node) {
  385.         // TODO Auto-generated method stub
  386.         return null;
  387.     }
  388.  
  389.     @Override
  390.     public boolean addBridgeDomainConfig(Node node, String bridgeIdentifier, Map<String, String> config) {
  391.         // TODO Auto-generated method stub
  392.         return false;
  393.     }
  394.  
  395.     @Override
  396.     public boolean removeBridgeDomainConfig(Node node, String bridgeIdentifier, Map<String, String> config) {
  397.         // TODO Auto-generated method stub
  398.         return false;
  399.     }
  400.  
  401.     @Override
  402.     public Map<String, String> getBridgeDomainConfigs(Node node, String bridgeIdentifier) {
  403.         // TODO Auto-generated method stub
  404.         return null;
  405.     }
  406.  
  407.     @Override
  408.     public boolean createBridgeConnector(Node node, String bridgeConnectorIdentifier) {
  409.         // TODO Auto-generated method stub
  410.         return false;
  411.     }
  412.  
  413.     @Override
  414.     public boolean deleteBridgeConnector(Node node, String bridgeConnectorIdentifier) {
  415.         // TODO Auto-generated method stub
  416.         return false;
  417.     }
  418.  
  419.     @Override
  420.     public boolean associateBridgeConnector(Node node, String bridgeIdentifier, String bridgeConnectorIdentifier) {
  421.        
  422.         if (connectionService == null) {
  423.             logger.error("Couldnt refer to the ConnectionService");
  424.             return false;
  425.         }
  426.         Connection connection = connectionService.getConnection(node);
  427.  
  428.         //OVSDB Server Defined UUIDs
  429.         String intuuid = "e8f6eeaa-c5f9-47dd-90ff-e729077bccef";
  430.         String bridgetabluuid = "d80726a3-3a66-45dc-9f80-05a54499ced8";
  431.         String portabluuid = "e4eeec4e-a087-4fba-b780-6bc10d187140";
  432.         String ovstbluuid = "2cfdf9dd-e2a3-46b9-b09d-fbc68f23bc5d";
  433.        
  434.        
  435.         //OVS User Defined Port Name
  436.         String ovsportname = "vnic0";
  437.  
  438.         //Array for printing only
  439.         ArrayList printout = new ArrayList();
  440.        
  441.         //Arrays for JSON obj
  442.         ArrayList intarr0 = new ArrayList();
  443.                 ArrayList intarr1 = new ArrayList();
  444.                 ArrayList intarr2 = new ArrayList();
  445.                 ArrayList intarr3 = new ArrayList();
  446.         ArrayList intarr4 = new ArrayList();
  447.                 ArrayList intarr5 = new ArrayList();
  448.                 ArrayList intarr6 = new ArrayList();
  449.                 ArrayList intarr7 = new ArrayList();
  450.                 ArrayList intarr8 = new ArrayList();
  451.                 ArrayList intarr9 = new ArrayList();
  452.                 ArrayList intarr10 = new ArrayList();  
  453.                 ArrayList intarr11 = new ArrayList();  
  454.                 ArrayList intarr12 = new ArrayList();  
  455.                 ArrayList intarr13 = new ArrayList();  
  456.                 ArrayList intarr14 = new ArrayList();  
  457.                
  458.                 //Arrays for Port
  459.         ArrayList portarr6 = new ArrayList();
  460.                 ArrayList portarr7 = new ArrayList();
  461.                 ArrayList portarr8 = new ArrayList();
  462.                 ArrayList portarr9 = new ArrayList();
  463.         ArrayList portarr10 = new ArrayList();
  464.                 ArrayList portarr11 = new ArrayList();
  465.                
  466.                 //Arrays for Bridge
  467.         ArrayList brarr6 = new ArrayList();
  468.                 ArrayList brarr7 = new ArrayList();
  469.                 ArrayList brarr8 = new ArrayList();
  470.                 ArrayList brarr9 = new ArrayList();
  471.         ArrayList brarr10 = new ArrayList();
  472.                 ArrayList brarr11 = new ArrayList();
  473.                
  474.                 //Maps for JSON Port
  475.                 Map intmap0 = new LinkedHashMap();
  476.                 Map intmap1 = new LinkedHashMap();
  477.                 Map intmap2 = new LinkedHashMap();
  478.                 Map intmap3 = new LinkedHashMap();
  479.                 Map intmap4 = new LinkedHashMap();
  480.                 Map intmap5 = new LinkedHashMap();
  481.                 Map intmap6 = new LinkedHashMap();
  482.                 Map intmap7 = new LinkedHashMap();
  483.                 Map intmap8 = new LinkedHashMap();
  484.                
  485.                 //Maps for JSON Bridge
  486.                 Map brmap2 = new LinkedHashMap();
  487.                 Map brmap3 = new LinkedHashMap();
  488.                
  489.                 //Maps for JSON Port
  490.                 Map portmap2 = new LinkedHashMap();
  491.                 Map portmap3 = new LinkedHashMap();
  492.                
  493.                 //Maps for Update
  494.                 Map updtmap1 = new LinkedHashMap();
  495.                 Map updtmap2 = new LinkedHashMap();
  496.  
  497.                
  498.                 //Arrays for Update
  499.         ArrayList updtarr1 = new ArrayList();
  500.                 ArrayList updtarr2 = new ArrayList();
  501.                 ArrayList updtarr3 = new ArrayList();
  502.         ArrayList updtarr4 = new ArrayList();
  503.         ArrayList updtarr5 = new ArrayList();
  504.         ArrayList updtarr6 = new ArrayList();
  505.         ArrayList updtarr7 = new ArrayList();
  506.          
  507.                 //Maps for Port Update
  508.                 Map insportmap1 = new LinkedHashMap();
  509.                 Map insportmap2 = new LinkedHashMap();
  510.                 Map insportmap3 = new LinkedHashMap();
  511.                 Map insportmap4 = new LinkedHashMap();
  512.  
  513.                 //Arrays for Port Update
  514.         ArrayList insportarr1 = new ArrayList();
  515.                 ArrayList insportarr2 = new ArrayList();
  516.                 ArrayList insportarr3 = new ArrayList();
  517.         ArrayList insportarr4 = new ArrayList();
  518.         ArrayList insportarr5 = new ArrayList();
  519.         ArrayList insportarr6 = new ArrayList();
  520.        
  521.                 //Maps for Interface Update
  522.                 Map insintmap1 = new LinkedHashMap();
  523.                 Map insintmap2 = new LinkedHashMap();
  524.                 Map insintmap3 = new LinkedHashMap();
  525.                 Map insintmap4 = new LinkedHashMap();
  526.  
  527.                 //Arrays for Interface Update
  528.         ArrayList insintarr1 = new ArrayList();
  529.                 ArrayList insintarr2 = new ArrayList();
  530.                 ArrayList insintarr3 = new ArrayList();
  531.         ArrayList insintarr4 = new ArrayList();
  532.         ArrayList insintarr5 = new ArrayList();
  533.         ArrayList insintarr6 = new ArrayList();
  534.        
  535.        
  536.         //Arrays for Mutation Op
  537.         ArrayList mutearr1 = new ArrayList();
  538.                 ArrayList mutearr2 = new ArrayList();
  539.                 ArrayList mutearr3 = new ArrayList();
  540.         ArrayList mutearr4 = new ArrayList();
  541.         ArrayList mutearr5 = new ArrayList();
  542.         ArrayList mutearr6 = new ArrayList();
  543.        
  544.                 //Maps for Mutate Op
  545.                 Map mutemap1 = new LinkedHashMap();
  546.                 Map mutemap2 = new LinkedHashMap();
  547.                 Map mutemap3 = new LinkedHashMap();
  548.                 Map mutemap4 = new LinkedHashMap();
  549.                
  550.         //Arrays for Op Select OVS
  551.         ArrayList opselarr1 = new ArrayList();
  552.                 ArrayList opselarr2 = new ArrayList();
  553.                 ArrayList opselarr3 = new ArrayList();
  554.         ArrayList opselarr4 = new ArrayList();
  555.         ArrayList opselarr5 = new ArrayList();
  556.                
  557.                 //Maps for Op Select OVS
  558.                 Map opselmap1 = new LinkedHashMap();
  559.                
  560.                 //Array for Comment
  561.         ArrayList commarr5 = new ArrayList();
  562.                
  563.                 //Maps for Comment
  564.                 Map commmap1 = new LinkedHashMap();
  565.        
  566.        //Interface
  567.                 intmap0.put("rows", intarr0);
  568.                 intarr0.add(intmap1);
  569.                 intmap1.put("interfaces", intarr1);
  570.                 intarr1.add("uuid");
  571.                 intarr1.add(intuuid);
  572.                 intmap0.put("until", "==");
  573.                 intmap0.put("table", "Port");
  574.                 intmap0.put("op", "wait");
  575.                 intmap0.put("timeout", 0);
  576.                 intmap0.put("where", intarr2);
  577.                 intarr2.add(intarr3);
  578.                 intarr3.add("_uuid");
  579.                 intarr3.add("==");             
  580.                 intarr3.add(intarr4);
  581.                 intarr4.add("uuid");           
  582.                 intarr4.add(portabluuid);
  583.                 intmap0.put("columns", intarr5);
  584.                 intarr5.add("interfaces");
  585.                
  586.                 //Bridge
  587.                 brmap2.put("rows", brarr6);
  588.                 brarr6.add(brmap3);
  589.                 brarr7.add("uuid");
  590.                 brarr7.add(bridgetabluuid);
  591.                 brmap3.put("bridges", brarr7);
  592.                 brmap2.put("until", "==");
  593.                 brmap2.put("table", "Open_vSwitch");
  594.                 brmap2.put("op", "wait");
  595.                 brmap2.put("timeout", 0);
  596.                 brmap2.put("where", brarr8);
  597.                 brarr8.add(brarr9);
  598.                 brarr9.add("_uuid");
  599.                 brarr9.add("==");
  600.                 brarr9.add(brarr10);
  601.                 brarr10.add("uuid");
  602.                 brarr10.add(ovstbluuid);
  603.                 brmap2.put("columns", brarr11);
  604.                 brarr11.add("bridges");
  605.                
  606.                 //Ports
  607.                 portmap2.put("rows", portarr6);
  608.                 portarr6.add(portmap3);
  609.                 portarr7.add("uuid");
  610.                 portarr7.add(portabluuid);
  611.                 portmap3.put("ports", portarr7);
  612.                 portmap2.put("until", "==");
  613.                 portmap2.put("table", "Bridge");
  614.                 portmap2.put("op", "wait");
  615.                 portmap2.put("timeout", 0);
  616.                 portmap2.put("where", portarr8);
  617.                 portarr8.add(portarr9);
  618.                 portarr9.add("_uuid");
  619.                 portarr9.add("==");
  620.                 portarr9.add(portarr10);
  621.                 portarr10.add("uuid");
  622.                 portarr10.add(bridgetabluuid);
  623.                 portmap2.put("columns", portarr11);
  624.                 portarr11.add("ports");
  625.                
  626.                 //Update
  627.                 updtmap1.put("where", updtarr1);
  628.                 updtarr1.add(updtarr2);
  629.                 updtarr2.add("_uuid");
  630.                 updtarr2.add("==");
  631.                 updtarr2.add(updtarr3);
  632.                 updtarr3.add("uuid");
  633.                 updtarr3.add(bridgetabluuid);
  634.                 updtmap1.put("op", "update");
  635.                 updtmap1.put("table", "Bridge");
  636.                 updtmap1.put("row", updtmap2);
  637.                 updtmap2.put("ports", updtarr4);
  638.                 updtarr4.add("set");
  639.                 updtarr4.add(updtarr5);
  640.                 updtarr5.add(updtarr6);
  641.                 updtarr6.add("uuid");
  642.                 updtarr6.add(portabluuid);
  643.                 updtarr5.add(updtarr7);
  644.                 updtarr7.add("named-uuid");
  645.                 updtarr7.add("rowc1ee45e7_e736_4cd2_8e30_55a460d0f11a");
  646.                
  647.                
  648.                
  649.                 //Insert Port
  650.                 insportmap1.put("uuid-name", "rowc1ee45e7_e736_4cd2_8e30_55a460d0f11a");
  651.                 insportmap1.put("op", "insert");
  652.                 insportmap1.put("table", "Port");
  653.                 insportmap1.put("row", insportmap2);
  654.                 insportmap2.put("interfaces", insportarr1);
  655.                 insportarr1.add("named-uuid");
  656.                 insportarr1.add("row50c0ab47_0077_4ac3_8d84_8b1906a39947");
  657.                 insportmap2.put("name", ovsportname);
  658.                
  659.  
  660.                 //Insert Interface
  661.                 insintmap1.put("uuid-name", "row50c0ab47_0077_4ac3_8d84_8b1906a39947");
  662.                 insintmap1.put("op", "insert");
  663.                 insintmap1.put("table", "Interface");
  664.                 insintmap1.put("row", insintmap2);
  665.                 insintmap2.put("name", ovsportname);
  666.                
  667.                 //Mutation Op
  668.                 mutemap1.put("mutations", mutearr1);
  669.                 mutearr1.add(mutearr2);
  670.                 mutearr2.add("next_cfg");
  671.                 mutearr2.add("+=");
  672.                 mutearr2.add(1);
  673.                 mutemap1.put("table", "Open_vSwitch");
  674.                 mutemap1.put("op", "mutate");
  675.                 mutemap1.put("where", mutearr3);
  676.                 mutearr3.add(mutearr4);
  677.                 mutearr4.add("_uuid");
  678.                 mutearr4.add("==");
  679.                 mutearr4.add(mutearr5);
  680.                 mutearr5.add("uuid");
  681.                 mutearr5.add(ovstbluuid);
  682.                 opselmap1.put("where", opselarr1);
  683.                 opselarr1.add(opselarr2);
  684.                 opselarr2.add("_uuid");
  685.                 opselarr2.add("==");
  686.                 opselarr2.add(opselarr3);
  687.                 opselarr3.add("uuid");
  688.                 opselarr3.add(ovstbluuid);
  689.                 opselmap1.put("op", "select");
  690.                 opselmap1.put("table", "Open_vSwitch");
  691.                 opselmap1.put("columns", opselarr4);
  692.                 opselarr4.add("next_cfg");
  693.                
  694.                 //Comment
  695.                 commmap1.put("comment", "ovs-vsctl: ovs-vsctl -vjsonrpc --db=tcp:172.16.58.170:6634 add-port br0 vnic0");
  696.                 commmap1.put("op", "comment");
  697.  
  698.                  Object[] params = { "Open_vSwitch", intmap0, brmap2, portmap2, updtmap1, insportmap1, insintmap1, mutemap1, opselmap1, commmap1};
  699.  
  700.                
  701.                 OvsdbMessage message = new OvsdbMessage("transact", params, "efg");
  702.                 try {
  703.                     connection.sendMessage(message);
  704.                     connection.readResponse(String[].class);
  705.                 } catch (Exception e) {
  706.                     // TODO Auto-generated catch block
  707.                     e.printStackTrace();
  708.                     return false;
  709.                 } catch (Throwable e) {
  710.                     // TODO Auto-generated catch block
  711.                     e.printStackTrace();
  712.                     return false;
  713.                 }
  714.                 return true;
  715.     }
  716.  
  717.     @Override
  718.     public boolean disassociateBridgeConnector(Node node, String bridgeIdentifier, String bridgeConnectorIdentifier) {
  719.         // TODO Auto-generated method stub
  720.         return false;
  721.     }
  722.  
  723.     @Override
  724.     public boolean addBridgeConnectorConfig(Node node, String bridgeConnectorIdentifier, Map<String, String> config) {
  725.         // TODO Auto-generated method stub
  726.         return false;
  727.     }
  728.  
  729.     @Override
  730.     public boolean removeBridgeConnectorConfig(Node node, String bridgeConnectorIdentifier, Map<String, String> config) {
  731.         // TODO Auto-generated method stub
  732.         return false;
  733.     }
  734.  
  735.     @Override
  736.     public Map<String, String> getBridgeConnectorConfigs(Node node, String bridgeConnectorIdentifier) {
  737.         // TODO Auto-generated method stub
  738.         return null;
  739.     }
  740.  
  741.     @Override
  742.     public Object genericConfigurationEvent(Node node, Map<String, String> config) {
  743.         // TODO Auto-generated method stub
  744.         return null;
  745.     }
  746.  
  747.   }
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754. ==============================OvsdbTestAddBridge Junit=========================================
  755.  
  756.  
  757. package org.opendaylight.controller.protocol_plugin.ovsdb;
  758.  
  759. import java.io.IOException;
  760. import java.util.HashMap;
  761. import java.util.Map;
  762. import org.junit.Test;
  763. import org.opendaylight.controller.protocol_plugin.ovsdb.internal.ConfigurationService;
  764. import org.opendaylight.controller.protocol_plugin.ovsdb.internal.ConnectionService;
  765. import org.opendaylight.controller.sal.connection.ConnectionConstants;
  766. import org.opendaylight.controller.sal.core.Node;
  767. import org.opendaylight.controller.sal.core.NodeConnector;
  768. import org.slf4j.Logger;
  769. import org.slf4j.LoggerFactory;
  770.  
  771.  
  772.  
  773. public class OvsdbTestAddBridge {
  774.     private static final Logger logger = LoggerFactory
  775.             .getLogger(OvsdbTestAddBridge.class);
  776.  
  777.     //@Test
  778.     public void addBridgeDomain() throws IOException, Throwable {
  779.         Node.NodeIDType.registerIDType("OVS", String.class);
  780.         NodeConnector.NodeConnectorIDType.registerIDType("OVS", String.class, "OVS");
  781.  
  782.         ConnectionService connectionService = new ConnectionService();
  783.         connectionService.init();
  784.         String identifier = "TEST";
  785.         Map<ConnectionConstants, String> params = new HashMap<ConnectionConstants, String>();
  786.         params.put(ConnectionConstants.ADDRESS, "172.16.58.170");
  787.  
  788.         Node node = connectionService.connect(identifier, params);
  789.         if (node == null) {
  790.             logger.error("Could not connect to ovsdb server");
  791.             return;
  792.         }
  793.  
  794.         ConfigurationService configurationService = new ConfigurationService();
  795.         configurationService.setConnectionServiceInternal(connectionService);
  796.         configurationService.createBridgeDomain(node, "JUNIT_BRIDGE_TEST");
  797.     }
  798.    
  799.     @Test
  800.     public void addPort() throws IOException, Throwable {
  801.         Node.NodeIDType.registerIDType("OVS", String.class);
  802.         NodeConnector.NodeConnectorIDType.registerIDType("OVS", String.class, "OVS");
  803.  
  804.         ConnectionService connectionService = new ConnectionService();
  805.         connectionService.init();
  806.         String identifier = "TEST";
  807.         Map<ConnectionConstants, String> params = new HashMap<ConnectionConstants, String>();
  808.         params.put(ConnectionConstants.ADDRESS, "172.16.58.170");
  809.  
  810.         Node node = connectionService.connect(identifier, params);
  811.         if (node == null) {
  812.             logger.error("Could not connect to ovsdb server");
  813.             return;
  814.         }
  815.  
  816.         ConfigurationService configurationService = new ConfigurationService();
  817.         configurationService.setConnectionServiceInternal(connectionService);
  818.         configurationService.associateBridgeConnector(node, "JUNIT_BRIDGE_TEST", "vnic0");
  819.     }
  820. }
clone this paste RAW Paste Data