use of org.onosproject.yang.model.ResourceData in project onos by opennetworkinglab.
the class DcsBasedTapiDataProducer method getResourceId.
private ResourceId getResourceId(ModelObjectId modelId) {
ModelObjectData data = DefaultModelObjectData.builder().identifier(modelId).build();
ResourceData rnode = modelConverter.createDataNode(data);
return rnode.resourceId();
}
use of org.onosproject.yang.model.ResourceData in project onos by opennetworkinglab.
the class DcsBasedTapiDataProducer method readContextModelObject.
/**
* Get Tapi context modelObject from Dcs.
*
* @return Tapi context modelObject in Dcs store
*/
// FIXME update this method using TapiContextHandler
private DefaultContext readContextModelObject() {
// read DataNode from DCS
ModelObjectId mid = ModelObjectId.builder().addChild(DefaultContext.class).build();
DataNode node = dcs.readNode(getResourceId(mid), Filter.builder().build());
// convert to ModelObject
ResourceData data = DefaultResourceData.builder().addDataNode(node).resourceId(ResourceId.builder().build()).build();
ModelObjectData modelData = modelConverter.createModel(data);
DefaultContext context = (DefaultContext) modelData.modelObjects().get(0);
return context;
}
use of org.onosproject.yang.model.ResourceData in project onos by opennetworkinglab.
the class TapiObjectHandler method toModelObject.
@SuppressWarnings("unchecked")
protected T toModelObject(DataNode rNode, ResourceId rId) {
dcsSetup();
ResourceData rData = toResourceData(rNode, rId);
ModelObjectData modelObjectData = modelConverter.createModel(rData);
if (modelObjectData.modelObjects().size() > 1) {
throw new IllegalStateException("Multiple modelObject found.");
}
if (modelObjectData.modelObjects().isEmpty()) {
throw new IllegalStateException("ModelObject must not be empty.");
}
return (T) modelObjectData.modelObjects().get(0);
}
use of org.onosproject.yang.model.ResourceData in project onos by opennetworkinglab.
the class TapiObjectHandler method createOnDcs.
private void createOnDcs() {
dcsSetup();
ResourceData rData = toResourceData(getModelObjectData());
addResourceDataToDcs(rData, rData.resourceId());
}
use of org.onosproject.yang.model.ResourceData in project onos by opennetworkinglab.
the class RestconfUtils method convertJsonToDataNode.
/**
* Convert URI and ObjectNode to ResourceData.
*
* @param uri URI of the data resource
* @param rootNode JSON representation of the data resource
* @return represents type of node in data store
*/
public static ResourceData convertJsonToDataNode(URI uri, ObjectNode rootNode) {
RuntimeContext.Builder runtimeContextBuilder = new DefaultRuntimeContext.Builder();
runtimeContextBuilder.setDataFormat(JSON_FORMAT);
RuntimeContext context = runtimeContextBuilder.build();
ResourceData resourceData = null;
InputStream jsonData = null;
try {
if (rootNode != null) {
jsonData = convertObjectNodeToInputStream(rootNode);
}
String uriString = getRawUriPath(uri);
CompositeStream compositeStream = new DefaultCompositeStream(uriString, jsonData);
// CompositeStream --- YangRuntimeService ---> CompositeData.
CompositeData compositeData = YANG_RUNTIME.decode(compositeStream, context);
resourceData = compositeData.resourceData();
} catch (RestconfException ex) {
throw ex;
} catch (Exception ex) {
log.error("convertJsonToDataNode failure: {}", ex.getMessage(), ex);
log.info("Failed JSON: \n{}", rootNode);
log.debug("convertJsonToDataNode failure", ex);
throw new RestconfException("ERROR: JSON cannot be converted to DataNode", ex, RestconfError.ErrorTag.OPERATION_FAILED, INTERNAL_SERVER_ERROR, Optional.of(uri.getPath()));
}
if (resourceData == null) {
throw new RestconfException("ERROR: JSON cannot be converted to DataNode", RestconfError.ErrorTag.DATA_MISSING, CONFLICT, Optional.of(uri.getPath()), Optional.empty());
}
return resourceData;
}
Aggregations