Fixed headline nesting in config and restconf. 82/20082/2
authorTony Tkacik <ttkacik@cisco.com>
Mon, 11 May 2015 12:53:17 +0000 (14:53 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Wed, 13 May 2015 13:26:59 +0000 (15:26 +0200)
Change-Id: If5328d0ff85919d6b301539a531e6036608dbe6c
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
manuals/developer-guide/src/main/asciidoc/controller/config.adoc
manuals/developer-guide/src/main/asciidoc/controller/restconf.adoc

index 3010ddf28eac91cd208e2890806f15753a886d53..c917b253d9b86f9535c3c50e5f3d11c0ca540c1a 100644 (file)
@@ -5,7 +5,7 @@
 The Java code for the configuration system is generated by the yang-maven-plugin and the yang-jmx-generator-plugin.
 The input Yang module files are converted to java files by the definition of the module and the specified templates. the generated java code can represent interfaces, classes, or abstract classes used for configuration.
 
-=== Service interfaces generating
+===== Service interfaces generating
 
 Service interfaces (SI) are generated from YANG "service-types". Each SI must be defined as "identity" with a "base" statement set to "config:service-type", or another SI. This is because a service must have a globally unique name.
  Each SI must be annotated with @ServiceInterfaceAnnotation, and must extend AbstractServiceInterface.
@@ -55,23 +55,23 @@ public interface AutoCloseableServiceInterface extends org.opendaylight.controll
 }
 ----
 
-==== Module stubs generating
+====== Module stubs generating
 
 Modules are constructed during configuration transaction. A module implements the ModuleMXBean interface. The ModuleMXBean interface represents getters and setters for attributes that will be exposed to the configuration registry by means of JMX. Attributes can either be simple types, or composite types.
 
 Each ModuleMXBean must be defined in yang as "identity" with the base statement set to "config:module-type". Not only are ModuleMXBeans generated, but also ModuleFactory and Module stubs. Both are first generated as abstract classes with almost full functionality. Then their implementations, which are allowed to be modified by users, are generated, but only once.
 
-=== Runtime beans generating
+===== Runtime beans generating
 
 Runtime JMX beans are purposed to be the auditors: they capture data about running module instances. A module can have zero or more runtime beans. Runtime beans are hierarchically ordered, and each must be uniquely identified.
  A runtime bean is defined as a configuration augment of a module, from which interface RuntimeMXBean, RuntimeRegistrator, and RuntimeRegistretion are generated. Augment definition contains arguments representing the data of a module that must be watched.
 
-==== RPCs
+===== RPCs
 
 Method calls in yang must be specified as top level elements. The context, where an RPC operation exits, must be defined in the RPC definition itself, and in the runtime bean that provides method implementation.
 
 
-=== OpenDaylight Controller: Configuration
+===== OpenDaylight Controller: Configuration
 The Controller configuration operation has three stages:
 
 * First, a Proposed configuration is created. Its target is to replace the old configuration.
@@ -97,11 +97,11 @@ The validation procedure results in a decision on whether the proposed configura
 Since there can be dependencies between modules, a change in a module configuration can affect the state of other modules. Therefore, we need to verify whether dependencies on other modules can be resolved.
 The Dependency Resolver acts in a manner similar to dependency injectors. Basically, a dependency tree is built.
 
-=== APIs and SPIs
+==== APIs and SPIs
 This section describes configuration system APIs and SPIs.
 
 
-==== SPIs
+===== SPIs
 *Module* org.opendaylight.controller.config.spi. Module is the common interface for all modules: every module must implement it. The module is designated to hold configuration attributes, validate them, and create instances of service based on the attributes.
 This instance must implement the AutoCloseable interface, owing to resources clean up. If the module was created from an already running instance, it contains an old instance of the module. A module can implement multiple services. If the module depends on other modules, setters need to be annotated with @RequireInterface.
 
@@ -119,7 +119,7 @@ A module factory can create a new module instance in two ways: +
 ModuleFactory can also return default modules, useful for populating registry with already existing configurations.
 A module factory implementation must have a globally unique name.
 
-==== APIs
+===== APIs
 
 |===
 | ConfigRegistry | Represents functionality provided by a configuration transaction (create, destroy module, validate, or abort transaction).
@@ -127,7 +127,7 @@ A module factory implementation must have a globally unique name.
 | RuntimeBeanRegistratorAwareConfiBean | The module implementing this interface will receive RuntimeBeanRegistrator before getInstance is invoked.
 |===
 
-==== Runtime APIs
+===== Runtime APIs
 
 |===
 | RuntimeBean | Common interface for all runtime beans
@@ -135,7 +135,7 @@ A module factory implementation must have a globally unique name.
 | HierarchicalRuntimeBeanRegistration | Represents functionality for runtime bean registration and unreregistration from hierarchy
 |===
 
-==== JMX APIs
+===== JMX APIs
 
 JMX API is purposed as a transition between the Client API and the JMX platform. +
 
@@ -145,7 +145,7 @@ JMX API is purposed as a transition between the Client API and the JMX platform.
 | Object names | Object Name is the pattern used in JMX to locate JMX beans. It consists of domain and key properties (at least one key-value pair). Domain is defined as "org.opendaylight.controller". The only mandatory property is "type".
 |===
 
-==== Use case scenarios
+===== Use case scenarios
 
 A few samples of successful and unsuccessful transaction scenarios follow: +
 
@@ -170,7 +170,7 @@ The transaction is the same as the previous case until the validation process. +
 . On aborted transactions, TransactionController and JMXRegistrator are properly closed.
 . Unregistration event is sent to ConfigRegistry.
 
-==== Default module instances
+===== Default module instances
 The configuration subsystem provides a way for modules to create default instances. A default instance is an instance of a module, that is created at the module bundle start-up (module becomes visible for
 configuration subsystem, for example, its bundle is activated in the OSGi environment). By default, no default instances are produced.
 
index c3c1273907deaecea892be34c57b56fe4c637001..1136822680d3c9d07a2b6628b6f05f219ab1ceb6 100644 (file)
@@ -22,7 +22,7 @@ Most of the paths of the pathsRestconf endpoints use https://wiki.opendaylight.o
 Module A has node A1. Module B augments node A1 by adding node X. Module C augments node A1 by adding node X. For clarity, it has to be known which node is X (for example: C:X).
 For more details about encoding, see: http://tools.ietf.org/html/draft-bierman-netconf-restconf-02#section-5.3.1[Restconf 02 - Encoding YANG Instance Identifiers in the Request URI.]
 
-=== Mount point
+==== Mount point
 A Node can be behind a mount point. In this case, the URI has to be in format <identifier>/*yang-ext:mount*/<identifier>. The first <identifier> is the path to a mount point and the second <identifier> is the path to a node behind the mount point. A URI can end in a mount point itself by using <identifier>/*yang-ext:mount*. +
 More information on how to actually use mountpoints is available at: https://wiki.opendaylight.org/view/OpenDaylight_Controller:Config:Examples:Netconf[ OpenDaylight Controller:Config:Examples:Netconf].
 
@@ -185,7 +185,9 @@ image::Put.png[width=500]
 . CompositeNode can be normalized by adding additional information from DataSchemaNode.
 . Restconf begins the transaction, and puts CompositeNode with InstanceIdentifier into it. The response on the request from the client is the status code which depends on the result from the transaction.
 
-=== Something practical
+
+// FIXME: Replace with coretutorials tutorial or point to openflow location
+==== Something practical
 
 . Create a new flow on the switch openflow:1 in table 2.