Migrating DLUX, Clustering, Version and XSQL to reST 45/40645/3
authorColin Dixon <colin@colindixon.com>
Wed, 22 Jun 2016 04:42:47 +0000 (21:42 -0700)
committerColin Dixon <colin@colindixon.com>
Wed, 22 Jun 2016 05:42:21 +0000 (22:42 -0700)
Also moving the AsciiDoc sections on clustering, XSQL and DLUX to the
user guide since it imports them.

Change-Id: Ib161cf4eb962c90be2275a7fad8ab614de8f49e6
Signed-off-by: Colin Dixon <colin@colindixon.com>
27 files changed:
docs/getting-started-guide/common-features/clustering.rst [new file with mode: 0755]
docs/getting-started-guide/common-features/dlux.rst [new file with mode: 0644]
docs/getting-started-guide/common-features/images/dlux/dlux-login.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-login.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-topology.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-topology.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-api-specification.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-api-specification.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-list-button1.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-list-button1.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-list-elements.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-list-elements.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-list-warning.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-list-warning.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-sub-api-screen.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-sub-api-screen.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-topology.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-topology.png with 100% similarity]
docs/getting-started-guide/common-features/images/dlux/dlux-yang-ui-screen.png [moved from manuals/getting-started-guide/src/main/resources/images/dlux-yang-ui-screen.png with 100% similarity]
docs/getting-started-guide/common-features/index.rst [new file with mode: 0644]
docs/getting-started-guide/common-features/version.rst [new file with mode: 0644]
docs/getting-started-guide/common-features/xsql.rst [new file with mode: 0755]
docs/getting-started-guide/index.rst
docs/getting-started-guide/installing_opendaylight.rst
manuals/getting-started-guide/src/main/asciidoc/bk-getting-started-guide.adoc
manuals/getting-started-guide/src/main/asciidoc/ch-controller-version.adoc [deleted file]
manuals/getting-started-guide/src/main/asciidoc/ch-introduction.adoc [deleted file]
manuals/getting-started-guide/src/main/asciidoc/ch-samplech.adoc [deleted file]
manuals/getting-started-guide/src/main/resources/images/smallnew.png [deleted file]
manuals/getting-started-guide/src/main/resources/images/snmp4sdn_in_odl_architecture.jpg [deleted file]
manuals/getting-started-guide/src/main/resources/images/tiger.png [deleted file]
manuals/user-guide/src/main/asciidoc/bk-user-guide.adoc
manuals/user-guide/src/main/asciidoc/ch-clustering.adoc [moved from manuals/getting-started-guide/src/main/asciidoc/ch-clustering.adoc with 100% similarity]
manuals/user-guide/src/main/asciidoc/ch-dlux.adoc [moved from manuals/getting-started-guide/src/main/asciidoc/ch-dlux.adoc with 100% similarity]
manuals/user-guide/src/main/asciidoc/ch-xsql-commands.adoc [moved from manuals/getting-started-guide/src/main/asciidoc/ch-xsql-commands.adoc with 100% similarity]

diff --git a/docs/getting-started-guide/common-features/clustering.rst b/docs/getting-started-guide/common-features/clustering.rst
new file mode 100755 (executable)
index 0000000..be74764
--- /dev/null
@@ -0,0 +1,297 @@
+Setting Up Clustering
+=====================
+
+Clustering Overview
+-------------------
+
+Clustering is a mechanism that enables multiple processes and programs to work
+together as one entity.  For example, when you search for something on
+google.com, it may seem like your search request is processed by only one web
+server. In reality, your search request is processed by may web servers
+connected in a cluster. Similarly, you can have multiple instances of
+OpenDaylight working together as one entity.
+
+Advantages of clustering are:
+
+* Scaling: If you have multiple instances of OpenDaylight running, you can
+  potentially do more work and store more data than you could with only one
+  instance. You can also break up your data into smaller chunks (shards) and
+  either distribute that data across the cluster or perform certain operations
+  on certain members of the cluster.
+* High Availability: If you have multiple instances of OpenDaylight running and
+  one of them crashes, you will still have the other instances working and
+  available.
+* Data Persistence: You will not lose any data stored in OpenDaylight after a
+  manual restart or a crash.
+
+The following sections describe how to set up clustering on both individual and
+multiple OpenDaylight instances.
+
+Multiple Node Clustering
+------------------------
+
+The following sections describe how to set up multiple node clusters in OpenDaylight.
+
+Deployment Considerations
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To implement clustering, the deployment considerations are as follows:
+
+* To set up a cluster with multiple nodes, we recommend that you use a minimum
+  of three machines. You can set up a cluster with just two nodes. However, if
+  one of the two nodes fail, the cluster will not be operational.
+
+  .. note:: This is because clustering in OpenDaylight requires a majority of the
+             nodes to be up and one node cannot be a majority of two nodes.
+
+* Every device that belongs to a cluster needs to have an identifier.
+  OpenDaylight uses the node's ``role`` for this purpose. After you define the
+  first node's role as *member-1* in the ``akka.conf`` file, OpenDaylight uses
+  *member-1* to identify that node.
+
+* Data shards are used to contain all or a certain segment of a OpenDaylight's
+  MD-SAL datastore. For example, one shard can contain all the inventory data
+  while another shard contains all of the topology data.
+
+  If you do not specify a module in the ``modules.conf`` file and do not specify
+  a shard in ``module-shards.conf``, then (by default) all the data is placed in
+  the default shard (which must also be defined in ``module-shards.conf`` file).
+  Each shard has replicas configured. You can specify the details of where the
+  replicas reside in ``module-shards.conf`` file.
+
+* If you have a three node cluster and would like to be able to tolerate any
+  single node crashing, a replica of every defined data shard must be running
+  on all three cluster nodes. 
+
+  .. note:: This is because OpenDaylight's clustering implementation requires a
+            majority of the defined shard replicas to be running in order to
+            function. If you define data shard replicas on two of the cluster nodes
+            and one of those nodes goes down, the corresponding data shards will not
+            function.
+
+* If you have a three node cluster and have defined replicas for a data shard
+  on each of those nodes, that shard will still function even if only two of
+  the cluster nodes are running. Note that if one of those remaining two nodes
+  goes down, the shard will not be operational.
+
+* It is  recommended that you have multiple seed nodes configured. After a
+  cluster member is started, it sends a message to all of its seed nodes.
+  The cluster member then sends a join command to the first seed node that
+  responds. If none of its seed nodes reply, the cluster member repeats this
+  process until it successfully establishes a connection or it is shut down.
+
+* After a node is unreachable, it remains down for configurable period of time
+  (10 seconds, by default). Once a node goes down, you need to restart it so
+  that it can rejoin the cluster. Once a restarted node joins a cluster, it
+  will synchronize with the lead node automatically.
+
+Setting Up a Multiple Node Cluster
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To run OpenDaylight in a three node cluster, perform the following:
+
+First, determine the three machines that will make up the cluster. After that,
+do the following on each machine:
+
+#. Copy the OpenDaylight distribution zip file to the machine.
+#. Unzip the distribution.
+#. Open the following .conf files:
+
+   * configuration/initial/akka.conf
+   * configuration/initial/module-shards.conf
+
+#. In each configuration file, make the following changes:
+
+   Find every instance of the following lines and replace _127.0.0.1_ with the
+   hostname or IP address of the machine on which this file resides and
+   OpenDaylight will run::
+   
+      netty.tcp {
+        hostname = "127.0.0.1"
+   
+   .. note:: The value you need to specify will be different for each node in the
+             cluster.
+
+#. Find the following lines and replace _127.0.0.1_ with the hostname or IP
+   address of any of the machines that will be part of the cluster::
+
+      cluster {
+        seed-nodes = ["akka.tcp://opendaylight-cluster-data@127.0.0.1:2550"]
+
+#. Find the following section and specify the role for each member node. Here
+   we assign the first node with the *member-1* role, the second node with the
+   *member-2* role, and the third node with the *member-3* role::
+
+     roles = [
+       "member-1"
+     ]
+
+   .. note:: This step should use a different role on each node.
+
+#. Open the configuration/initial/module-shards.conf file and update the
+   replicas so that each shard is replicated to all three nodes::
+
+      replicas = [
+          "member-1",
+          "member-2",
+          "member-3"
+      ]
+
+   For reference, view a sample config files <<_sample_config_files,below>>.
+
+#. Move into the +<karaf-distribution-directory>/bin+ directory.
+#. Run the following command::
+
+      JAVA_MAX_MEM=4G JAVA_MAX_PERM_MEM=512m ./karaf
+
+#. Enable clustering by running the following command at the Karaf command line::
+
+      feature:install odl-mdsal-clustering
+
+OpenDaylight should now be running in a three node cluster. You can use any of
+the three member nodes to access the data residing in the datastore.
+
+Sample Config Files
+"""""""""""""""""""
+
+Sample ``akka.conf`` file::
+
+   odl-cluster-data {
+     bounded-mailbox {
+       mailbox-type = "org.opendaylight.controller.cluster.common.actor.MeteredBoundedMailbox"
+       mailbox-capacity = 1000
+       mailbox-push-timeout-time = 100ms
+     } 
+    
+     metric-capture-enabled = true
+    
+     akka {
+       loglevel = "DEBUG"
+       loggers = ["akka.event.slf4j.Slf4jLogger"]
+    
+       actor {
+    
+         provider = "akka.cluster.ClusterActorRefProvider"
+         serializers {
+                   java = "akka.serialization.JavaSerializer"
+                   proto = "akka.remote.serialization.ProtobufSerializer"
+                 }
+    
+                 serialization-bindings {
+                     "com.google.protobuf.Message" = proto
+    
+                 }
+       }
+       remote {
+         log-remote-lifecycle-events = off
+         netty.tcp {
+           hostname = "10.194.189.96"
+           port = 2550
+           maximum-frame-size = 419430400
+           send-buffer-size = 52428800
+           receive-buffer-size = 52428800
+         }
+       }
+    
+       cluster {
+         seed-nodes = ["akka.tcp://opendaylight-cluster-data@10.194.189.96:2550"]
+    
+         auto-down-unreachable-after = 10s
+    
+         roles = [
+           "member-1"
+         ]
+    
+       }
+     }
+   }
+    
+   odl-cluster-rpc {
+     bounded-mailbox {
+       mailbox-type = "org.opendaylight.controller.cluster.common.actor.MeteredBoundedMailbox"
+       mailbox-capacity = 1000
+       mailbox-push-timeout-time = 100ms
+     }
+    
+     metric-capture-enabled = true
+    
+     akka {
+       loglevel = "INFO"
+       loggers = ["akka.event.slf4j.Slf4jLogger"]
+    
+       actor {
+         provider = "akka.cluster.ClusterActorRefProvider"
+    
+       }
+       remote {
+         log-remote-lifecycle-events = off
+         netty.tcp {
+           hostname = "10.194.189.96"
+           port = 2551
+         }
+       }
+    
+       cluster {
+         seed-nodes = ["akka.tcp://opendaylight-cluster-rpc@10.194.189.96:2551"]
+    
+         auto-down-unreachable-after = 10s
+       }
+     }
+   }
+
+Sample ``module-shards.conf`` file::
+
+   module-shards = [
+       {
+           name = "default"
+           shards = [
+               {
+                   name="default"
+                   replicas = [
+                       "member-1",
+                       "member-2",
+                       "member-3"
+                   ]
+               }
+           ]
+       },
+       {
+           name = "topology"
+           shards = [
+               {
+                   name="topology"
+                   replicas = [
+                       "member-1",
+                       "member-2",
+                       "member-3"
+                   ]
+               }
+           ]
+       },
+       {
+           name = "inventory"
+           shards = [
+               {
+                   name="inventory"
+                   replicas = [
+                       "member-1",
+                       "member-2",
+                       "member-3"
+                   ]
+               }
+           ]
+       },
+       {
+            name = "toaster"
+            shards = [
+                {
+                    name="toaster"
+                    replicas = [
+                       "member-1",
+                       "member-2",
+                       "member-3"
+                    ]
+                }
+            ]
+       }
+   ]
diff --git a/docs/getting-started-guide/common-features/dlux.rst b/docs/getting-started-guide/common-features/dlux.rst
new file mode 100644 (file)
index 0000000..d08c414
--- /dev/null
@@ -0,0 +1,157 @@
+OpenDaylight User Interface (DLUX)
+==================================
+
+This section introduces you to the OpenDaylight User Experience (DLUX) application.
+
+Getting Started with DLUX
+-------------------------
+
+DLUX provides a number of different Karaf features, which you can enable and disable separately. In Boron they are:
+
+#. odl-dlux-core
+#. odl-dlux-node
+#. odl-dlux-yangui
+#. odl-dlux-yangvisualizer
+
+Logging In
+----------
+
+To log in to DLUX, after installing the application:
+
+#. Open a browser and enter the login URL http://<your-karaf-ip>:8181/index.html in your browser (Chrome is recommended).
+#. Login to the application with your username and password credentials.
+
+.. note:: OpenDaylight's default credentials are *admin* for both the username and password.
+
+Working with DLUX
+-----------------
+
+After you login to DLUX, if you enable only odl-dlux-core feature, you will see only topology application available in the left pane.
+
+.. note:: To make sure topology displays all the details, enable the odl-l2switch-switch feature in Karaf.
+
+DLUX has other applications such as node, yang UI and those apps won't show up, until you enable their features odl-dlux-node and odl-dlux-yangui respectively in the Karaf distribution.
+
+.. figure:: images/dlux/dlux-login.png
+   :width: 500
+
+   DLUX Modules
+
+.. note:: If you install your application in dlux, they will also show up on the left hand navigation after browser page refresh.
+
+Viewing Network Statistics
+--------------------------
+
+The *Nodes* module on the left pane enables you to view the network statistics and port information for the switches in the network.
+
+To use the *Nodes* module:
+
+#. Select *Nodes* on the left pane. The right pane displays atable that lists all the nodes, node connectors and the statistics.
+#. Enter a node ID in the *Search Nodes* tab to search by node connectors.
+#. Click on the *Node Connector* number to view details such as port ID, port name, number of ports per switch, MAC Address, and so on.
+#. Click *Flows* in the Statistics column to view Flow Table Statistics for the particular node like table ID, packet match, active flows and so on.
+#. Click *Node Connectors* to view Node Connector Statistics for the particular node ID.
+
+Viewing Network Topology
+------------------------
+
+The Topology tab displays a graphical representation of network topology created.
+
+.. note:: DLUX does not allow for editing or adding topology information. The topology is generated and edited in other modules, e.g., the OpenFlow plugin. OpenDaylight stores this information in the MD-SAL datastore where DLUX can read and display it.
+
+To view network topology:
+
+#. Select *Topology* on the left pane. You will view the graphical representation on the right pane. In the diagram blue boxes represent the switches, the black represents the hosts available, and lines represents how the switches and hosts are connected.
+#. Hover your mouse on hosts, links, or switches to view source and destination ports.
+#. Zoom in and zoom out using mouse scroll to verify topology for larger topologies.
+
+.. figure:: images/dlux/dlux-topology.png
+   :width: 500
+
+   Topology Module
+
+Interacting with the YANG-based MD-SAL datastore
+------------------------------------------------
+
+The *Yang UI* module enables you to interact with the YANG-based MD-SAL datastore. For more information about YANG and how it interacts with the MD-SAL datastore, see the *Controller* and *YANG Tools* section of the *OpenDaylight Developer Guide*.
+
+.. figure:: images/dlux/dlux-yang-ui-screen.png
+   :width: 500
+
+   Yang UI
+
+To use Yang UI:
+
+#. Select *Yang UI* on the left pane. The right pane is divided in two parts.
+#. The top part displays a tree of APIs, subAPIs, and buttons to call possible functions (GET, POST, PUT, and DELETE).
+
+   .. note:: Not every subAPI can call every function. For example, subAPIs in the *operational* store have GET functionality only.
+
+   Inputs can be filled from OpenDaylight when existing data from OpenDaylight is displayed or can be filled by user on the page and sent to OpenDaylight.
+
+   Buttons under the API tree are variable. It depends on subAPI specifications. Common buttons are:
+
+   * GET to get data from OpenDaylight,
+   * PUT and POST for sending data to OpenDaylight for saving
+   * DELETE for sending data to OpenDaylight for deleting.
+
+   You must specify the xpath for all these operations. This path is displayed in the same row before buttons and it may include text inputs for specific path element identifiers.
+
+   .. figure:: images/dlux/dlux-yang-api-specification.png
+      :width: 500
+
+      Yang API Specification
+
+#. The bottom part of the right pane displays inputs according to the chosen subAPI.
+
+   * Lists are handled as a special case. For example, a device can store multiple flows. In this case "flow" is name of the list and every list element is identified by a unique key value. Elements of a list can, in turn, contain other lists.
+   * In Yang UI, each list element is rendered with the name of the list it belongs to, its key, its value, and a button for removing it from the list.
+
+     .. figure:: images/dlux/dlux-yang-sub-api-screen.png
+        :width: 500
+
+        Yang UI API Specification
+
+#. After filling in the relevant inputs, click the *Show Preview* button under the API tree to display request that will be sent to OpenDaylight.
+   A pane is displayed on the right side with text of request when some input is filled.
+
+Displaying Topology on the Yang UI
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+To display topology:
+
+#. Select subAPI network-topology <topology revision number> == > operational == > network-topology.
+#. Get data from OpenDaylight by clicking on the "GET" button.
+#. Click *Display Topology*.
+
+.. figure:: images/dlux/dlux-yang-topology.png
+   :width: 500
+
+   DLUX Yang Topology
+
+Configuring List Elements on the Yang UI
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Lists in Yang UI are displayed as trees. To expand or collapse a list, click the arrow before name of the list. To configure list elements in Yang UI:
+
+#. To add a new list element with empty inputs use the plus icon-button **+** that is provided after list name.
+#. To remove several list elements, use the *X* button that is provided after every list element.
+
+   .. figure:: images/dlux/dlux-yang-list-elements.png
+      :width: 500
+
+      DLUX List Elements
+
+#. In the YANG-based data store all elements of a list must have a unique key. If you try to assign two or more elements the same key, a warning icon *!* is displayed near their name buttons.
+
+   .. figure:: images/dlux/dlux-yang-list-warning.png
+      :width: 500
+
+      DLUX List Warnings
+
+#. When the list contains at least one list element, after the *+* icon, there are buttons to select each individual list element. You can choose one of them by clicking on it. In addition, to the right of the list name, there is a button which will display a vertically scrollable pane with all the list elements.
+
+   .. figure:: images/dlux/dlux-yang-list-button1.png
+      :width: 500
+
+      DLUX List Button
diff --git a/docs/getting-started-guide/common-features/index.rst b/docs/getting-started-guide/common-features/index.rst
new file mode 100644 (file)
index 0000000..17ec3d7
--- /dev/null
@@ -0,0 +1,10 @@
+Common OpenDaylight Features
+============================
+
+.. toctree::
+   :maxdepth: 1
+
+   dlux
+   clustering
+   xsql
+   version
diff --git a/docs/getting-started-guide/common-features/version.rst b/docs/getting-started-guide/common-features/version.rst
new file mode 100644 (file)
index 0000000..4b32d7b
--- /dev/null
@@ -0,0 +1,44 @@
+OpenDaylight Version
+====================
+
+Overview
+--------
+
+This feature allows NETCONF/RESTCONF users to determine the version of
+OpenDaylight they are communicating with.
+
+Install the Version Feature
+---------------------------
+
+Follow these steps to install the version feature:
+
+#. Navigate to the directory in which you installed OpenDaylight
+#. Start Karaf::
+
+      ./bin/karaf
+
+#. Install Version feature::
+
+      feature:install odl-distribution-version
+
+.. note:: For RESTCONF access, it is recommended to install odl-restconf
+          and odl-netconf-connector-ssh.
+
+Version Feature Usage
+---------------------
+
+Example of RESTCONF request using curl from bash::
+
+    $ curl -u 'admin:admin' localhost:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules/module/odl-distribution-version:odl-version/odl-distribution-version
+
+Example response (formatted)::
+
+   {
+    "module": [
+     {
+      "type": "odl-distribution-version:odl-version",
+      "name": "odl-distribution-version",
+      "odl-distribution-version:version": "0.5.0-SNAPSHOT"
+     }
+    ]
+   }
diff --git a/docs/getting-started-guide/common-features/xsql.rst b/docs/getting-started-guide/common-features/xsql.rst
new file mode 100755 (executable)
index 0000000..d693b97
--- /dev/null
@@ -0,0 +1,150 @@
+Running XSQL Console Commands and Queries
+=========================================
+
+XSQL Overview
+-------------
+
+XSQL is an XML-based query language that describes simple stored procedures
+which parse XML data, query or update database tables, and compose XML output.
+XSQL allows you to query tree models like a sequential database. For example,
+you could run a query that lists all of the ports configured on a particular
+module and their attributes.
+
+The following sections cover the XSQL installation process, supported XSQL
+commands, and the way to structure queries.
+
+Installing XSQL
+---------------
+
+To run commands from the XSQL console, you must first install XSQL on your
+system:
+
+#. Navigate to the directory in which you unzipped OpenDaylight
+#. Start Karaf::
+
+      ./bin/karaf
+
+#. Install XSQL::
+
+      feature:install odl-mdsal-xsql
+
+XSQL Console Commands
+---------------------
+
+To enter a command in the XSQL console, structure the command as follows::
+
+   odl:xsql _<XSQL command>_
+
+The following table describes the commands supported in this OpenDaylight
+release.
+
+Supported XSQL Console Commands
+
++-----------------+-------------------------------------------------------------------------------+
+| *Command*       | *Description*                                                                 |
++=================+===============================================================================+
+| r               | Repeats the last command you executed.                                        |
++-----------------+-------------------------------------------------------------------------------+
+| list vtables    | Lists the schema node containers that are currently installed. Whenever an    |
+|                 | OpenDaylight module is installed, its YANG model is placed in the schema      |
+|                 | context. At that point, the  XSQL receives a notification, confirms that the  |
+|                 | module's YANG model resides in the schema context and then maps the model to  |
+|                 | XSQL by setting up the necessary vtables and vfields. This command is useful  |
+|                 | when you need to determine vtable information for a query.                    |
++-----------------+-------------------------------------------------------------------------------+
+| list vfields    | Lists the vfields present in a specific vtable. This command is useful when   |
+| *<vtable name>* | you need to determine vfields information for a query.                        |
++-----------------+-------------------------------------------------------------------------------+
+| jdbc            | When the ODL server is behind a firewall, and the JDBC client cannot connect  |
+| *<ip address>*  | to the JDBC server, run this command to start the client as a server and      |
+|                 | establish a connection.                                                       |
++-----------------+-------------------------------------------------------------------------------+
+| exit            | Closes the console.                                                           |
++-----------------+-------------------------------------------------------------------------------+
+| tocsv           | Enables or disables the forwarding of query output as a .csv file.            |
++-----------------+-------------------------------------------------------------------------------+
+| filename        | Specifies the .tocsv file to which the query data is exported. If you do not  |
+| *<filename>*    | specify a value for this option when the toccsv option is enabled, the        |
+|                 | filename for the query data file is generated automatically.                  |
++-----------------+-------------------------------------------------------------------------------+
+
+XSQL Queries
+------------
+
+You can run a query to extract information that meets the criteria you specify
+using the information provided by the *list vtables* and *list vfields* 
+_<vtable name>_ commands.  Any query you run should be structured as follows:
+
+*select* _<vfields you want to search for, separated by a comma and a space>_
+*from* _<vtables you want to search in, separated by a comma and a space>_
+*where* _<criteria>_ *'*_<criteria operator>_*';*
+
+For example, if you want to search the nodes/node ID field in the
+nodes/node-connector table and find every instance of the Hardware-Address
+object that contains _BA_ in its text string, enter the following query::
+
+   select nodes/node.ID from nodes/node-connector where Hardware-Address like '%BA%';
+
+The following criteria operators are supported:
+
+Supported XSQL Query Criteria Operators
+
++--------------------+----------------------------------------------------------------------+
+| Criteria Operators | Description                                                          |
++====================+======================================================================+
+| *=*                | Lists results that equal the value you specify.                      |
++--------------------+----------------------------------------------------------------------+
+| *!=*               | Lists results that do not equal the value you specify.               |
++--------------------+----------------------------------------------------------------------+
+| *like*             | Lists results that contain the substring you specify. For            |
+|                    | example, if you specify *like %BC%*, every string that contains      |
+|                    | that particular substring is displayed.                              |
++--------------------+----------------------------------------------------------------------+
+| *<*                | Lists results that are less than the value you specify.              |
++--------------------+----------------------------------------------------------------------+
+| *>*                | Lists results that are more than the value you specify.              |
++--------------------+----------------------------------------------------------------------+
+| *and*              | Lists results that match both values you specify.                    |
++--------------------+----------------------------------------------------------------------+
+| *or*               | Lists results that match either of the two values you specify.       |
++--------------------+----------------------------------------------------------------------+
+| *>=*               | Lists results that are more than or equal to the value you specify.  |
++--------------------+----------------------------------------------------------------------+
+| *<=*               | Lists results that are less than or equal to the value you specify.  |
++--------------------+----------------------------------------------------------------------+
+| *is null*          | Lists results for which no value is assigned.                        |
++--------------------+----------------------------------------------------------------------+
+| *not null*         | Lists results for which any value is assigned.                       |
++--------------------+----------------------------------------------------------------------+
+| *skip*             | Use this operator to list matching results from a child node,        |
+|                    | even if its parent node does not meet the specified criteria.        |
+|                    | See the following example for more information.                      |
++--------------------+----------------------------------------------------------------------+
+
+Example: Skip Criteria Operator
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you are looking at the following structure and want to determine all of the
+ports that belong to a YY type module:
+
+* Network Element 1
+
+  * Module 1, Type XX
+
+    * Module 1.1, Type YY
+
+      * Port 1
+      * Port 2
+
+  * Module 2, Type YY
+
+    * Port 1
+    * Port 2
+
+If you specify *Module.Type='YY'* in your query criteria, the ports associated
+with module 1.1 will not be returned since its parent module is type XX.
+Instead, enter *Module.Type='YY' or skip Module!='YY'*. This tells XSQL to
+disregard any parent module data that does not meet the type YY criteria and
+collect results for any matching child modules. In this example, you are
+instructing the query to skip module 1 and collect the relevant data from
+module 1.1.
index f44b2bd3f1491ed2271ce218faf06ec9bfdd2ff9..249ab99c9c8c4ee596fce86302878eb4c473b8fa 100644 (file)
@@ -15,3 +15,4 @@ Getting Started Guide
    installing_opendaylight
    release_notes
    project-specific-guides/index
+   common-features/index
index 193b1ddc01618fd09fcc0ed60c6fc96cf556d187..dbf99c64a93a0ff739964797bdb6821d1fad4f1d 100644 (file)
@@ -522,23 +522,3 @@ Install support for REST APIs
 Most components that offer REST APIs will automatically load the RESTCONF API
 Support component, but if for whatever reason they seem to be missing, install
 the “odl-restconf” feature to activate this support.
-
-
-Install the DLUX interface
---------------------------
-OpenDaylight’s DLUX web interface draws information from topology and host
-databases to display information about the topology of the network, flow
-statistics, and host locations.
-
-To integrate with OpenDaylight you must enable the DLUX Karaf feature. Each
-feature can be enabled or disabled separately. Ensure that you have created a
-topology and enabled the MD-SAL feature in the Karaf distribution before you
-use DLUX for network management. For more information about enabling the Karaf
-features for DLUX, refer to Enable_DLUX_Feature_.
-
-MD-SAL clustering
------------------
-In the Beryllium release and newer, the odl-mdsal-broker installs MD-SAL
-clustering automatically.
-
-.. _Enable_DLUX_Feature: https://wiki.opendaylight.org/view/DLUX:Beryllium_System_Test_Plan#Enabling_The_Feature
index 377365aa49cffe61d540ad51a2437816c28da2c9..e3a981da2244089a60b0b622791065d7f3593e25 100644 (file)
@@ -59,16 +59,6 @@ the end of their file.
 
 = Getting to know OpenDaylight
 
-include::ch-introduction.adoc[]
-
-include::ch-dlux.adoc[]
-
-include::ch-xsql-commands.adoc[]
-
-include::ch-clustering.adoc[]
-
-include::ch-controller-version.adoc[]
-
 include::chapter_security_considerations.adoc[]
 
 :numbered!:
diff --git a/manuals/getting-started-guide/src/main/asciidoc/ch-controller-version.adoc b/manuals/getting-started-guide/src/main/asciidoc/ch-controller-version.adoc
deleted file mode 100644 (file)
index 46729ec..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-== Controller Version
-
-=== Overview
-
-This feature allows NETCONF/RESTCONF users to determine the version of
-OpenDaylight they are communicating with.
-
-=== Install the Version Feature
-
-Follow these steps to install the version feature:
-
-. Navigate to the directory in which you installed OpenDaylight
-. Start Karaf:
-+
- ./bin/karaf
-+
-. Install Version feature:
-+
- feature:install odl-distribution-version
-
-NOTE: For RESTCONF access, it is recommended to install odl-restconf
-and odl-netconf-connector-ssh.
-
-=== Version Feature Usage
-
-Example of RESTCONF request using curl from bash:
-```
-$ curl -u 'admin:admin' localhost:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/controller-config/yang-ext:mount/config:modules/module/odl-distribution-version:odl-version/odl-distribution-version
-```
-Example response (formatted):
-```
-{
- "module": [
-  {
-   "type": "odl-distribution-version:odl-version",
-   "name": "odl-distribution-version",
-   "odl-distribution-version:version": "0.5.0-SNAPSHOT"
-  }
- ]
-}
-```
diff --git a/manuals/getting-started-guide/src/main/asciidoc/ch-introduction.adoc b/manuals/getting-started-guide/src/main/asciidoc/ch-introduction.adoc
deleted file mode 100755 (executable)
index 26d81f0..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-[preface]
-== OpenDaylight Overview
-The OpenDaylight project is a collaborative open source project that
-aims to accelerate adoption of Software-Defined Networking (SDN) and
-Network Functions Virtualization (NFV) with a transparent approach that
-fosters new innovation.
-
-OpenDaylight mainly consists of software designed to be run on top of a
-Java Virtual Machine (JVM) and can be run on any operating system and
-hardware as there is a Java Runtime Environment (JRE) available for it.
-
-// TODO: uncomment the following lines when we have them to the point we think they're useful.
-// OpenDaylight makes use of the following third-party tools:
-//
-// * *Maven*: OpenDaylight uses Maven for easier build automation. Maven uses pom.xml
-// (Project Object Model) to script the dependencies between bundles.
-//
-// * *OSGi*: OSGi framework is the back-end of OpenDaylight as it allows dynamically
-// loading bundles and packages JAR files, and binding bundles together for exchanging
-// information.
-//
-// * *JAVA interfaces*: Java interfaces are usually generated by compiling the YANG project. Java interfaces are used for event listening, specifications, and forming
-// patterns. This is the main way in which specific bundles implement call-back functions for events and also to indicate awareness of specific state.
-//
-// * *REST APIs*: Most of the REST APIs in OpenDaylight are defined using YANG tools and are RESTCONF APIs.
-//
-// * *Karaf*: TBD
-
-For a more detailed information about OpenDaylight, see the and _OpenDaylight User Guie_, _OpenDaylight
-Developer Guide_.
-
diff --git a/manuals/getting-started-guide/src/main/asciidoc/ch-samplech.adoc b/manuals/getting-started-guide/src/main/asciidoc/ch-samplech.adoc
deleted file mode 100644 (file)
index 52f9402..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-== The First Chapter
-
-Chapters can contain sub-sections nested up to three deep.
-footnote:[An example footnote.]
-indexterm:[Example index entry]
-
-Chapters can have their own bibliography, glossary and index.
-
-And now for something completely different: ((monkeys)), lions and
-tigers (Bengal and Siberian) using the alternative syntax index
-entries.
-(((Big cats,Lions)))
-(((Big cats,Tigers,Bengal Tiger)))
-(((Big cats,Tigers,Siberian Tiger)))
-Note that multi-entry terms generate separate index entries.
-
-Here are a couple of image examples: an image:smallnew.png[]
-example inline image followed by an example block image:
-
-.Tiger block image
-image::tiger.png[Tiger image]
-
-Followed by an example table:
-
-.An example table
-[width="60%",options="header"]
-|==============================================
-| Option          | Description
-| -a 'USER GROUP' | Add 'USER' to 'GROUP'.
-| -R 'GROUP'      | Disables access to 'GROUP'.
-|==============================================
-
-.An example example
-===============================================
-Lorum ipum...
-===============================================
-
-[[X1]]
-=== Sub-section with Anchor
-
-Sub-section at level 2.
-
-==== Chapter Sub-section
-
-Sub-section at level 3.
-
-===== Chapter Sub-section
-
-Sub-section at level 4.
-
-This is the maximum sub-section depth supported by the distributed
-AsciiDoc configuration.
-footnote:[A second example footnote.]
-
-
-== The Second Chapter
-
-An example link to anchor at start of the <<X1,first sub-section>>.
-indexterm:[Second example index entry]
-
-
-
-== The Third Chapter
-
-Book chapters are at level 1 and can contain sub-sections.
-
diff --git a/manuals/getting-started-guide/src/main/resources/images/smallnew.png b/manuals/getting-started-guide/src/main/resources/images/smallnew.png
deleted file mode 100644 (file)
index 411c2e1..0000000
Binary files a/manuals/getting-started-guide/src/main/resources/images/smallnew.png and /dev/null differ
diff --git a/manuals/getting-started-guide/src/main/resources/images/snmp4sdn_in_odl_architecture.jpg b/manuals/getting-started-guide/src/main/resources/images/snmp4sdn_in_odl_architecture.jpg
deleted file mode 100644 (file)
index c5195d7..0000000
Binary files a/manuals/getting-started-guide/src/main/resources/images/snmp4sdn_in_odl_architecture.jpg and /dev/null differ
diff --git a/manuals/getting-started-guide/src/main/resources/images/tiger.png b/manuals/getting-started-guide/src/main/resources/images/tiger.png
deleted file mode 100644 (file)
index 332b11f..0000000
Binary files a/manuals/getting-started-guide/src/main/resources/images/tiger.png and /dev/null differ
index 0502413a624412f1892a17219f4b0dcb27dea8f6..15a48df1c675a6fb972475c6db6f8666ec9b6865 100644 (file)
@@ -15,12 +15,11 @@ This first part of the user guide covers the basic user operations of the OpenDa
 
 include::ch-introduction.adoc[OpenDaylight Controller Overview]
 
-//TODO: these three includes are a hugely ugly hack that needs to go
-include::../../../../getting-started-guide/src/main/asciidoc/ch-dlux.adoc[]
+include::ch-dlux.adoc[]
 
-include::../../../../getting-started-guide/src/main/asciidoc/ch-xsql-commands.adoc[]
+include::ch-xsql-commands.adoc[]
 
-include::../../../../getting-started-guide/src/main/asciidoc/ch-clustering.adoc[]
+include::ch-clustering.adoc[]
 
 = Applications and Plugins