private static final String DATASTORES_REVISION = "-";
private static final String DATASTORES_LABEL = "Datastores";
+ private static final String RESTCONF_DRAFT = "17";
private DOMMountPointService mountService;
private final Map<YangInstanceIdentifier, Long> instanceIdToLongId = new TreeMap<>(
private static final AtomicReference<MountPointSwagger> selfRef = new AtomicReference<>();
private SchemaService globalSchema;
-
+ private static boolean newDraft;
public Map<String, Long> getInstanceIdentifiers() {
final Map<String, Long> urlToId = new HashMap<>();
synchronized (lock) {
private String generateUrlPrefixFromInstanceID(final YangInstanceIdentifier key, final String moduleName) {
final StringBuilder builder = new StringBuilder();
+ builder.append("/");
if (moduleName != null) {
- builder.append(moduleName);
- builder.append(':');
+ builder.append(moduleName)
+ .append(':');
}
for (final PathArgument arg : key.getPathArguments()) {
final String name = arg.getNodeType().getLocalName();
if (arg instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates) {
final NodeIdentifierWithPredicates nodeId = (NodeIdentifierWithPredicates) arg;
for (final Entry<QName, Object> entry : nodeId.getKeyValues().entrySet()) {
- builder.append(entry.getValue()).append('/');
+ if (newDraft) {
+ builder.deleteCharAt(builder.length() - 1)
+ .append("=")
+ .append(entry.getValue())
+ .append('/');
+ } else {
+ builder.append(entry.getValue())
+ .append('/');
+ }
}
} else {
- builder.append(name);
- builder.append('/');
+ builder.append(name)
+ .append('/');
}
}
return builder.toString();
private String getYangMountUrl(final YangInstanceIdentifier key) {
final String modName = findModuleName(key, globalSchema.getGlobalContext());
- return generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount/";
+ return generateUrlPrefixFromInstanceID(key, modName) + "yang-ext:mount";
}
public ResourceList getResourceList(final UriInfo uriInfo, final Long id) {
getConfig.setNotes(note);
final Api api = new Api();
- api.setPath(getDataStorePath("/" + datastore + "/", context));
+ api.setPath(getDataStorePath(datastore, context).concat(getContent(datastore)));
api.setOperations(Collections.singletonList(getConfig));
return api;
selfRef.compareAndSet(null, new MountPointSwagger());
swagger = selfRef.get();
}
+ newDraft = false;
return swagger;
}
+ public static MountPointSwagger getInstanceDraft17() {
+ MountPointSwagger swagger = selfRef.get();
+ if (swagger == null) {
+ selfRef.compareAndSet(null, new MountPointSwagger());
+ swagger = selfRef.get();
+ }
+ newDraft = true;
+ return swagger;
+ }
}