...
Implementation Issues in a Context of CPS
The abilities of CPS regarding YANG model and associated data parsing is heavily dependent on
features provided by ODL YangTools library.
In current implementation following yangtools components are involved:
- YANG Parser (Reactor) - builds a SchemaContext object, which holds a static model definitions
- Data Parser (JSON) - converts incoming data into structured tree object using SchemaContext instance as a dictionary
Yang Parser
YANG parser already supports the mount-point definition. Minimal changes are required on CPS side in order to support
mount-point to accept it as a valid statement:
Code Block | ||||
---|---|---|---|---|
| ||||
import org.opendaylight.yangtools.rfc8528.parser.MountPointStatementSupport;// ...
private static SchemaContext generateSchemaContext(final Map<String, String> yangResourceNameToContent) {
final CrossSourceStatementReactor.BuildAction reactor = RFC7950Reactors.vanillaReactorBuilder()
.addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, MountPointStatementSupport.getInstance())
.build().newBuild();
//...
return reactor.buildEffective();
//...
} |
Taken from MountPointTest @ git.opendaylight.org
- Separating model configuration update data from actual data