use of io.openk9.model.Tenant in project so by onap.
the class VnfmAdapterCreateVnfTask method getTenant.
private Tenant getTenant(final CloudRegion cloudRegion) {
final Tenant tenant = new Tenant();
tenant.setCloudOwner(cloudRegion.getCloudOwner());
tenant.setRegionName(cloudRegion.getLcpCloudRegionId());
tenant.setTenantId(cloudRegion.getTenantId());
return tenant;
}
use of io.openk9.model.Tenant in project openk9 by smclab.
the class GetOrAddEntitiesConsumer method apply.
public Mono<ObjectNode> apply(ObjectNode objectNode) {
return Mono.defer(() -> {
ObjectNode datasourceContextJson = objectNode.get("datasourceContext").toObjectNode();
long datasourceId = datasourceContextJson.get("datasource").get("datasourceId").asLong();
long tenantId = datasourceContextJson.get("tenant").get("tenantId").asLong();
JsonNode entities = objectNode.remove("entities");
Mono<ArrayNode> entitiesField;
if (entities.size() == 0) {
entitiesField = Mono.just(_jsonFactory.createArrayNode());
} else {
ObjectNode responseJson = _jsonFactory.createObjectNode();
responseJson.put("entities", entities);
responseJson.put("tenantId", tenantId);
responseJson.put("datasourceId", datasourceId);
Request request = _jsonFactory.fromJson(responseJson.toString(), Request.class);
List<RequestContext> requestContextList = request.getEntities().stream().map(entityRequest -> RequestContext.builder().current(entityRequest).tenantId(request.getTenantId()).datasourceId(request.getDatasourceId()).rest(request.getEntities().stream().filter(er -> er != entityRequest).collect(Collectors.toList())).build()).collect(Collectors.toList());
Mono<List<EntityContext>> disambiguateListMono = GetOrAddEntities.stopWatch("disambiguate-all-entities", Flux.fromIterable(requestContextList).flatMap(requestContext -> GetOrAddEntities.stopWatch("disambiguate-" + requestContext.getCurrent().getName(), Mono.<EntityContext>create(fluxSink -> _startDisambiguation.disambiguate(requestContext, fluxSink)))).collectList());
Mono<ResponseList> writeRelations = disambiguateListMono.flatMap(entityContexts -> GetOrAddEntities.stopWatch("write-relations", writeRelations(entityContexts)));
Mono<ResponseList> responseListWrapper = _transactional ? _graphClient.makeTransactional(writeRelations) : writeRelations;
entitiesField = responseListWrapper.map(responseListDTO -> {
List<Response> responseList = responseListDTO.getResponse();
ArrayNode entitiesArrayNode = entities.toArrayNode();
ArrayNode arrayNode = _jsonFactory.createArrayNode();
for (JsonNode node : entitiesArrayNode) {
Optional<Response> responseOptional = responseList.stream().filter(response -> node.get("tmpId").asLong() == response.getTmpId()).findFirst();
if (responseOptional.isPresent()) {
Entity entity = responseOptional.get().getEntity();
ObjectNode result = _jsonFactory.createObjectNode();
result.put("entityType", entity.getType());
result.put("id", entity.getId());
result.put("context", node.get("context"));
arrayNode.add(result);
}
}
return arrayNode;
});
}
return entitiesField.map(entitiesArray -> {
ObjectNode payload = objectNode.get("payload").toObjectNode();
payload.set("entities", entitiesArray);
return objectNode;
}).timeout(Duration.ofSeconds(_timeout), Mono.error(new TimeoutException("timeout on entities count: " + entities.size() + " (Did not observe any item or terminal signal within " + Duration.ofSeconds(_timeout).toMillis() + "ms)")));
});
}
use of io.openk9.model.Tenant in project openk9 by smclab.
the class AuthResource method logout.
@PermitAll
@Path("/v1/auth/logout")
@POST
public Uni<byte[]> logout(@Context HttpServerRequest context, RefreshToken request) {
String host = context.host();
Tenant tenant = _findTenant(host);
String realmName = tenant.getRealmName();
String clientSecret = tenant.getClientSecret();
String clientId = tenant.getClientId();
String refreshToken = request.getRefreshToken();
if (refreshToken == null) {
return Uni.createFrom().failure(() -> new HttpException(400, "required refreshToken"));
}
if (clientSecret != null) {
return _authClient.logout(realmName, clientId, clientSecret, refreshToken);
} else {
return _authClient.logout(realmName, clientId, refreshToken);
}
}
use of io.openk9.model.Tenant in project openk9 by smclab.
the class AuthResource method refreshToken.
@PermitAll
@Path("/v1/auth/refresh")
@POST
public Uni<LoginResponseDTO> refreshToken(@Context HttpServerRequest context, RefreshToken request) {
String host = context.host();
Tenant tenant = _findTenant(host);
String realmName = tenant.getRealmName();
String clientSecret = tenant.getClientSecret();
String clientId = tenant.getClientId();
String refreshToken = request.getRefreshToken();
if (refreshToken == null) {
return Uni.createFrom().failure(() -> new HttpException(400, "required refreshToken"));
}
if (clientSecret != null) {
return _authClient.refresh(realmName, clientId, clientSecret, refreshToken, "refresh_token");
} else {
return _authClient.refresh(realmName, clientId, refreshToken, "refresh_token");
}
}
use of io.openk9.model.Tenant in project so by onap.
the class VnfmAdapterCreateVnfTaskTest method testBuildCreateVnfRequest_withValidValues_storesRequestInExecution.
@Test
public void testBuildCreateVnfRequest_withValidValues_storesRequestInExecution() throws Exception {
final VnfmAdapterCreateVnfTask objUnderTest = getEtsiVnfInstantiateTask();
stubbedxecution.setVariable(INPUT_PARAMETER, new InputParameter(Collections.emptyMap(), Collections.emptyList()));
when(extractPojosForBB.extractByKey(any(), eq(ResourceKey.GENERIC_VNF_ID))).thenReturn(getGenericVnf());
objUnderTest.buildCreateVnfRequest(stubbedxecution);
final CreateVnfRequest actual = stubbedxecution.getVariable(CREATE_VNF_REQUEST_PARAM_NAME);
assertNotNull(actual);
assertEquals(VNF_NAME + "." + MODEL_INSTANCE_NAME, actual.getName());
final Tenant actualTenant = actual.getTenant();
assertEquals(CLOUD_OWNER, actualTenant.getCloudOwner());
assertEquals(LCP_CLOUD_REGIONID, actualTenant.getRegionName());
assertEquals(StubbedBuildingBlockExecution.getTenantId(), actualTenant.getTenantId());
}
Aggregations