Merge "Maven cleanup and features-parent migration"
[netvirt.git] / README
diff --git a/README b/README
index b4120cde44c117a362bf9a06ff60f0370dceb5a8..a3a45ae871640ac0a3ec207b374edf3efdb146dd 100644 (file)
--- a/README
+++ b/README
@@ -3,7 +3,6 @@ DIRECTORY ORGANIZATION
 
 - commons
   +-- parent : Contains Parent pom.xml for all the ovsdb modules.
-  +-- integrationtest : Contains the parent pom.xml for all the integrationtest needs.
 
 - distribution : Builds a working controller distribution based on the controller + ovsdb modules and other
                  dependant modules such as openflowplugin
@@ -12,18 +11,10 @@ DIRECTORY ORGANIZATION
 
 - features : This folder contains all the Karaf related files.
 
-- integrationtest : Contains all the PAX-Exam based integrationTests that covers IT for all the modules.
-
 - library : Contains Schema-independent library that is a reference implementation for RFC 7047.
             This module doesn't depend on any of the Opendaylight components.
             This library module can also be used independently in a non-OSGi environment.
 
-- northbound : Provides AD-SAL style Northbound REST APIs.
-               Supports the legacy v2 APIs to provide backward compatibility for Hydrogen Release
-               Also supports the newer v3 APIs to provide schema-independent access to the OVSDB protocol.
-
-- of-extension : Adds OpenFlow Nicera extensions.
-
 - openstack
   +-- net-virt : Handles the Openstack Neutron ML2 and Network Service calls and performs all the logic required
                  for Network Virtualization.
@@ -56,20 +47,7 @@ HOW TO BUILD & RUN
 
 Pre-requisites : JDK 1.7+, Maven 3+
 
-1. Building an OVSDB based Opendaylight Virtualization edition :
-   1. This is the legacy way to build and distribute Opendaylight archives. And this method was
-      followed in Hydrogen and possibly in Helium release as well.
-
-   2. From the root folder(that hosts this README), execute "mvn clean install"
-      That should build a full distribution archive and distribution directory that will contain
-      Opendaylight Controller + OVSDB bundles + Openflow Plugins under
-      distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage
-
-   3. Upon successful completion of a build, the Controller with OVSDB can be executed by :
-      cd distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage/opendaylight/
-      ./run.sh -virt ovsdb
-
-2. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
+1. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
    1. This is a new method for Opendaylight distribution wherein there is no defined editions such
       as Base, Virtualization or SP editions. The end-customer can choose to deploy the required feature
       based on his/her deployment needs.
@@ -91,22 +69,55 @@ Pre-requisites : JDK 1.7+, Maven 3+
    odl-ovsdb-library                | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OVSDB :: Library
    odl-ovsdb-schema-openvswitch     | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OVSDB :: Schema :: Open_vSwitch
    odl-ovsdb-schema-hardwarevtep    | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OVSDB :: Schema :: hardware_vtep
-   odl-ovsdb-plugin                 | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: Plugin
-   odl-ovsdb-northbound             | 0.6.0-SNAPSHOT      |           | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: Northbound
    odl-ovsdb-openstack              | 1.0.0-SNAPSHOT      | x         | ovsdb-1.0.0-SNAPSHOT                  | OpenDaylight :: OVSDB :: OpenStack Network Virtual
    odl-ovsdb-ovssfc                 | 0.0.1-SNAPSHOT      |           | ovsdb-0.0.1-SNAPSHOT                  | OpenDaylight :: OVSDB :: OVS Service Function Chai
-   odl-openflow-nxm-extensions      | 0.0.3-SNAPSHOT      | x         | ovsdb-0.0.3-SNAPSHOT                  | OpenDaylight :: Openflow :: Nicira Extensions
 
 
-3. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
-*** This method is deprecated and an update will be added in the future.
+2. Building a bundle and deploying it in an Opendaylight Karaf distribution :
+   This method can be used to update and test new code in a bundle. If the bundle of interest is rebuilt as a
+   snapshot with the same version as what it already defined in a feature repo then that new bundle will be used
+   when the feature is loaded in karaf. If karaf is already running with the feature loaded then follow the steps
+   below to load the new bundle:
+
+   1. Find the bundle id of the bundle you are going to rebuild:
+      - bundle:list -s | grep <bundlename>, i.e. bundle:list -s | grep odl-ovsdb-plugin
+
+   2. Instruct karaf to watch the new bundle and reload it if it changes:
+      - bundle:watch <id>
+      - The id is the value returned in 1 above.
+      - You can also watch the bundle URL itself:
+        - bundle:watch mvn:org.opendaylight.ovsdb/plugin/1.0.2-SNAPSHOT
+
+   3. Rebuild bundle.
+      - cd bundle dir, i.e. cd ovsdb/plugin
+      - mvn clean install. This will install the new bundle into the local mvn repo.
+
+   4. karaf will see the changed bundle and reload it.
+
+
+3. Building an OVSDB based Opendaylight Virtualization edition:
+   1. This is the legacy way to build and distribute Opendaylight archives. This method was
+      followed in Hydrogen. It might still work in Helium but it is best effort for support.
+      The preferred method for Helium and later is to use karaf.
+
+   2. From the root folder(that hosts this README), execute "mvn clean install"
+      That should build a full distribution archive and distribution directory that will contain
+      Opendaylight Controller + OVSDB bundles + Openflow Plugins under
+      distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage
+
+   3. Upon successful completion of a build, the Controller with OVSDB can be executed by :
+      cd distribution/opendaylight/target/distribution.ovsdb-X.X.X-osgipackage/opendaylight/
+      ./run.sh -virt ovsdb
+
+4. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
+*** This method is deprecated.
    1. This is a new method for Opendaylight distribution wherein there is no defined editions such
       as Base, Virtualization or SP editions. Rather each of the projects will generate features in
       form of .kar files. The end-customer can choose to deploy the required feature based on his/her
       deployment needs.
 
    2. From the features/ directory, execute "mvn clean install"
-      This will generate a kar file such as "features/target/ovsdb-features-1.2.0-SNAPSHOT.kar"
+      This will generate a kar file such as "features/target/ovsdb-features-1.2.1-SNAPSHOT.kar"
 
    3. Download (or build from controller project) the Karaf distribution :
       http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/controller/distribution.opendaylight-karaf/
@@ -123,14 +134,14 @@ Pre-requisites : JDK 1.7+, Maven 3+
    opendaylight-user@root>kar:list
    KAR Name
    -----------------------------
-   ovsdb-features-1.2.0-SNAPSHOT
+   ovsdb-features-1.2.1-SNAPSHOT
 
    opendaylight-user@root>feature:list | grep ovsdb
-   odl-ovsdb-all | 1.2.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OpenDaylight :: OVSDB :: all
-   odl-ovsdb-library | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Library
-   odl-ovsdb-schema-openvswitch | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Schema :: Open_vSwitch
-   odl-ovsdb-schema-hardwarevtep | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OVSDB :: Schema :: hardware_vtep
-   odl-ovsdb-plugin | 1.0.0-SNAPSHOT | x | ovsdb-1.2.0-SNAPSHOT | OpenDaylight :: OVSDB :: Plugin
+   odl-ovsdb-all | 1.2.1-SNAPSHOT | x | ovsdb-1.2.1-SNAPSHOT | OpenDaylight :: OVSDB :: all
+   odl-ovsdb-library | 1.0.0-SNAPSHOT | x | ovsdb-1.2.1-SNAPSHOT | OVSDB :: Library
+   odl-ovsdb-schema-openvswitch | 1.0.0-SNAPSHOT | x | ovsdb-1.2.1-SNAPSHOT | OVSDB :: Schema :: Open_vSwitch
+   odl-ovsdb-schema-hardwarevtep | 1.0.0-SNAPSHOT | x | ovsdb-1.2.1-SNAPSHOT | OVSDB :: Schema :: hardware_vtep
+   odl-ovsdb-plugin | 1.0.0-SNAPSHOT | x | ovsdb-1.2.1-SNAPSHOT | OpenDaylight :: OVSDB :: Plugin
 
    opendaylight-user@root>bundle:list | grep OVSDB
    186 | Active | 80 | 1.0.0.SNAPSHOT | OVSDB Library
@@ -144,7 +155,7 @@ Running The Integration Tests
 To run the integration tests locally the following components are required:
 
  - Docker
- - Fig
+ - Fig or Docker Compose
 
 To install docker, follow the installation guide for your platform:
    http://docs.docker.com/installation/
@@ -152,9 +163,15 @@ To install docker, follow the installation guide for your platform:
 To install fig:
    http://www.fig.sh/install.html
 
+To install Docker Compose:
+   http://docs.docker.com/compose/install/
+
 To run the integration tests:
 
     mvn clean install
+    # The first time you need to set everything up
+    fig up -d
+    # Later runs only need the containers to be started
     fig start
     # OSX
     mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=$(boot2docker ip 2>/dev/null) -Dovsdbserver.port=6640
@@ -162,6 +179,10 @@ To run the integration tests:
     mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=127.0.0.1 -Dovsdbserver.port=6640
     fig stop
 
+On Linux you'll generally need to run fig as root (sudo fig ...).
+
+If you're using Docker Compose, replace "fig" above with "docker-compose" and ignore the warnings.
+
 Skipping unit tests and karaf tests
 ====================