GithubHelp home page GithubHelp logo

jobs77 / ovsdb Goto Github PK

View Code? Open in Web Editor NEW

This project forked from opendaylight/ovsdb

0.0 0.0 0.0 13.81 MB

Mirror of the OpenDaylight ovsdb gerrit project

License: Eclipse Public License 1.0

Java 98.20% Python 1.28% Shell 0.22% Ruby 0.14% Puppet 0.16%

ovsdb's Introduction

DIRECTORY ORGANIZATION
======================

- commons
  +-- parent : Contains Parent pom.xml for all the ovsdb modules.

- hwvtepsouthbound : Contains the hw_vtep southbound plugin.

- 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.

- resources : Contains some useful resources such as scripts, testing utilities and tools used for deployment
              or testing the binaries generated from the OVSDB project.

- schemas :
  +-- openvswitch : Schema wrapper that represents http://openvswitch.org/ovs-vswitchd.conf.db.5.pdf
  +-- hardwarevtep: Schema wrapper that represents http://openvswitch.org/docs/vtep.5.pdf

- southbound : contains the plugin for converting from the OVSDB protocol to mdsal and vice-versa.

- utils : OVSDB common utilities.

HOW TO BUILD & RUN
==================

Pre-requisites : JDK 1.7+, Maven 3+

1. Building a Karaf Feature and deploying it in an Opendaylight Karaf distribution :
   1. From the root ovsdb/ directory, execute "mvn clean install"

   2. Unzip the karaf-<VERSION_NUMBER>-SNAPSHOT.zip file created from step 1 in the directory ovsdb/karaf/target/:
      "unzip karaf-<VERSION_NUMBER>-SNAPSHOT.zip"

   3. Once karaf has started and you see the Opendaylight ascii art in the console, the last step
      is to start the OVSDB plugin framework with the following command in the karaf console:
      "feature:install odl-ovsdb-openstack" (without quotation marks).

   Sample output from Karaf console :

  opendaylight-user@root>feature:list -i | grep ovsdb
   odl-ovsdb-southbound-api          | 1.2.1-SNAPSHOT   | x         | odl-ovsdb-southbound-1.2.1-SNAPSHOT     | OpenDaylight :: southbound :: api
   odl-ovsdb-southbound-impl         | 1.2.1-SNAPSHOT   | x         | odl-ovsdb-southbound-1.2.1-SNAPSHOT     | OpenDaylight :: southbound :: impl
   odl-ovsdb-southbound-impl-rest    | 1.2.1-SNAPSHOT   | x         | odl-ovsdb-southbound-1.2.1-SNAPSHOT     | OpenDaylight :: southbound :: impl :: REST
   odl-ovsdb-southbound-impl-ui      | 1.2.1-SNAPSHOT   | x         | odl-ovsdb-southbound-1.2.1-SNAPSHOT     | OpenDaylight :: southbound :: impl :: UI
   odl-ovsdb-library                 | 1.2.1-SNAPSHOT   | x         | odl-ovsdb-library-1.2.1-SNAPSHOT        | OpenDaylight :: library
   odl-ovsdb-openstack               | 1.2.1-SNAPSHOT   | x         | ovsdb-1.2.1-SNAPSHOT                    | OpenDaylight :: OVSDB :: OpenStack Network Virtual

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.

Running The Integration Tests
=============================

To run the integration tests locally the following components are required:

 - Docker
 - Docker Compose

To install docker, follow the installation guide for your platform:
   http://docs.docker.com/installation/

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
    docker-compose up -d
    # Later runs only need the containers to be started
    docker-compose start
    # OSX
    mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=$(boot2docker ip 2>/dev/null) -Dovsdbserver.port=6640
    # Linux
    mvn verify -Pintegrationtest -Dovsdbserver.ipaddress=127.0.0.1 -Dovsdbserver.port=6640 -Dovsdb.controller.address=<addr of docker interface> -Dovsdb.userspace.enabled=yes
    docker-compose stop

On Linux you'll generally need to run fig as root (sudo fig ...).

Running the docker image manually:
    sudo docker run -itd --cap-add NET_ADMIN -p 6640:6640 jhershbe/centos7-ovs:latest

Skipping unit tests and karaf tests
====================

mvn clean install -Dmaven.test.skip=true -Dskip.karaf=true

ovsdb's People

Contributors

shague avatar mavenugo avatar flavio-fernandes avatar skitt avatar vishnoianil avatar edwarnicke avatar nerdalert avatar zxiiro avatar ryandgoulding avatar snackewm avatar srini084 avatar rpujar avatar yamahata avatar vorburger avatar sharadmishra15 avatar rovarga avatar tpantelis avatar ctbrizhp avatar spark404 avatar dave-tucker avatar vpickard avatar anfredette avatar hsinyishen avatar evanzeller avatar mgkwill avatar vthapar avatar alagalah avatar ashw7n avatar giovannimeo avatar tbachman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.