public OpenApiObject getAllModulesDoc(final UriInfo uriInfo, final DefinitionNames definitionNames) {
final EffectiveModelContext schemaContext = schemaService.getGlobalContext();
Preconditions.checkState(schemaContext != null);
- return getAllModulesDoc(uriInfo, Optional.empty(), schemaContext, Optional.empty(), "", definitionNames)
- .build();
+ return getAllModulesDoc(uriInfo, schemaContext, Optional.empty(), "", definitionNames).build();
}
- public OpenApiObject.Builder getAllModulesDoc(final UriInfo uriInfo, final Optional<Range<Integer>> range,
+ public OpenApiObject.Builder getAllModulesDoc(final UriInfo uriInfo, final EffectiveModelContext schemaContext,
+ final Optional<String> deviceName, final String context, final DefinitionNames definitionNames) {
+ final String schema = createSchemaFromUriInfo(uriInfo);
+ final String host = createHostFromUriInfo(uriInfo);
+ String name = "Controller";
+ if (deviceName.isPresent()) {
+ name = deviceName.orElseThrow();
+ }
+
+ final String title = name + " modules of RESTCONF";
+ final OpenApiObject.Builder docBuilder = createOpenApiObjectBuilder(schema, host, BASE_PATH, title);
+ docBuilder.paths(new HashMap<>());
+
+ final SortedSet<Module> sortedModules = getSortedModules(schemaContext);
+ fillDoc(docBuilder, sortedModules, schemaContext, context, deviceName, definitionNames);
+
+ // FIXME rework callers logic to make possible to return OpenApiObject from here
+ return docBuilder;
+ }
+
+ public OpenApiObject.Builder getAllModulesDoc(final UriInfo uriInfo, final Range<Integer> range,
final EffectiveModelContext schemaContext, final Optional<String> deviceName, final String context,
final DefinitionNames definitionNames) {
final String schema = createSchemaFromUriInfo(uriInfo);
final OpenApiObject.Builder docBuilder = createOpenApiObjectBuilder(schema, host, BASE_PATH, title);
docBuilder.paths(new HashMap<>());
- fillDoc(docBuilder, range, schemaContext, context, deviceName, definitionNames);
+ final SortedSet<Module> sortedModules = getSortedModules(schemaContext);
+ final Set<Module> filteredModules = filterByRange(sortedModules, range);
+ fillDoc(docBuilder, filteredModules, schemaContext, context, deviceName, definitionNames);
// FIXME rework callers logic to make possible to return OpenApiObject from here
return docBuilder;
}
- public void fillDoc(final OpenApiObject.Builder docBuilder, final Optional<Range<Integer>> range,
+ public void fillDoc(final OpenApiObject.Builder docBuilder, final Set<Module> modules,
final EffectiveModelContext schemaContext, final String context, final Optional<String> deviceName,
final DefinitionNames definitionNames) {
- final SortedSet<Module> modules = getSortedModules(schemaContext);
- final Set<Module> filteredModules;
- if (range.isPresent()) {
- filteredModules = filterByRange(modules, range.orElseThrow());
- } else {
- filteredModules = modules;
- }
-
- for (final Module module : filteredModules) {
+ for (final Module module : modules) {
final String revisionString = module.getQNameModule().getRevision().map(Revision::toString).orElse(null);
LOG.debug("Working on [{},{}]...", module.getName(), revisionString);
import com.google.common.annotations.VisibleForTesting;
import java.util.List;
-import java.util.Optional;
import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.inject.Singleton;
@Override
public synchronized Response getMountDoc(final String instanceNum, final UriInfo uriInfo) {
final String stringPageNum = uriInfo.getQueryParameters().getFirst(PAGE_NUM);
- final Optional<Integer> pageNum = stringPageNum != null ? Optional.of(Integer.valueOf(stringPageNum))
- : Optional.empty();
final OpenApiObject api = mountPointOpenApiRFC8040.getMountPointApi(uriInfo,
- Long.parseLong(instanceNum), pageNum);
+ Long.parseLong(instanceNum), stringPageNum);
return Response.ok(api).build();
}
}
import javax.ws.rs.HttpMethod;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
+import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.dom.api.DOMMountPointListener;
import org.opendaylight.mdsal.dom.api.DOMMountPointService;
import org.opendaylight.mdsal.dom.api.DOMSchemaService;
return openApiGenerator.getApiDeclaration(module, revision, uriInfo, context, urlPrefix);
}
- public OpenApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final Optional<Integer> pageNum) {
+ public OpenApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final @Nullable String strPageNum) {
final YangInstanceIdentifier iid = getInstanceId(id);
final EffectiveModelContext context = getSchemaContext(iid);
final String urlPrefix = getYangMountUrl(iid);
- final String deviceName = extractDeviceName(iid);
+ final String deviceName = extractDeviceName(iid);
if (context == null) {
return null;
final DefinitionNames definitionNames = new DefinitionNames();
boolean includeDataStore = true;
- Optional<Range<Integer>> range = Optional.empty();
- if (pageNum.isPresent()) {
- final int pageNumValue = pageNum.orElseThrow();
- final int end = DEFAULT_PAGESIZE * pageNumValue - 1;
+ final OpenApiObject.Builder openApiObjectBuilder;
+ if (strPageNum != null) {
+ final int pageNum = Integer.parseInt(strPageNum);
+ final int end = DEFAULT_PAGESIZE * pageNum - 1;
int start = end - DEFAULT_PAGESIZE;
- if (pageNumValue == 1) {
+ if (pageNum == 1) {
start++;
} else {
includeDataStore = false;
}
- range = Optional.of(Range.closed(start, end));
+ openApiObjectBuilder = openApiGenerator.getAllModulesDoc(uriInfo, Range.closed(start, end), context,
+ Optional.of(deviceName), urlPrefix, definitionNames);
+ } else {
+ openApiObjectBuilder = openApiGenerator.getAllModulesDoc(uriInfo, context, Optional.of(deviceName),
+ urlPrefix, definitionNames);
}
- final OpenApiObject.Builder openApiObjectBuilder = openApiGenerator.getAllModulesDoc(uriInfo, range, context,
- Optional.of(deviceName), urlPrefix, definitionNames);
if (includeDataStore) {
final var paths = new HashMap<>(openApiObjectBuilder.getPaths());
paths.putAll(getDataStoreApiPaths(urlPrefix, deviceName));
final UriInfo mockInfo = DocGenTestHelper.createMockUriInfo(HTTP_URL);
openApi.onMountPointCreated(INSTANCE_ID);
- final OpenApiObject mountPointApi = openApi.getMountPointApi(mockInfo, 1L, Optional.empty());
+ final OpenApiObject mountPointApi = openApi.getMountPointApi(mockInfo, 1L, null);
assertNotNull("Failed to find Datastore API", mountPointApi);
final Map<String, Path> paths = mountPointApi.paths();
final UriInfo mockInfo = DocGenTestHelper.createMockUriInfo(HTTP_URL);
openApi.onMountPointCreated(INSTANCE_ID);
- final OpenApiObject mountPointApi = openApi.getMountPointApi(mockInfo, 1L, Optional.empty());
+ final OpenApiObject mountPointApi = openApi.getMountPointApi(mockInfo, 1L, null);
assertNotNull("Failed to find Datastore API", mountPointApi);
var pathToList1 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}";
final var mockInfo = DocGenTestHelper.createMockUriInfo(HTTP_URL);
openApi.onMountPointCreated(INSTANCE_ID);
- final var mountPointApi = openApi.getMountPointApi(mockInfo, 1L, Optional.empty());
+ final var mountPointApi = openApi.getMountPointApi(mockInfo, 1L, null);
assertNotNull("Failed to find Datastore API", mountPointApi);
final var pathWithParameters =