
com.blazebit.query.connector.azure.resourcemanager.PostgreSqlFlexibleServerWithParametersDataFetcher Maven / Gradle / Ivy
The newest version!
/*
* SPDX-License-Identifier: Apache-2.0
* Copyright Blazebit
*/
package com.blazebit.query.connector.azure.resourcemanager;
import com.azure.resourcemanager.postgresqlflexibleserver.models.Server;
import com.blazebit.query.connector.base.DataFormats;
import com.blazebit.query.spi.DataFetchContext;
import com.blazebit.query.spi.DataFetcher;
import com.blazebit.query.spi.DataFetcherException;
import com.blazebit.query.spi.DataFormat;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Dimitar Prisadnikov
* @since 1.0.4
*/
public class PostgreSqlFlexibleServerWithParametersDataFetcher implements DataFetcher, Serializable {
public static final PostgreSqlFlexibleServerWithParametersDataFetcher INSTANCE = new PostgreSqlFlexibleServerWithParametersDataFetcher();
private PostgreSqlFlexibleServerWithParametersDataFetcher() {
}
@Override
public List fetch(DataFetchContext context) {
try {
List postgreSqlResourceManagers =
AzureResourceManagerPostgreSqlManagerConnectorConfig.POSTGRESQL_MANAGER.getAll(context);
List parametersToFetch = AzureResourceManagerPostgreSqlManagerConnectorConfig.PARAMETERS_TO_FETCH.getAll(context);
List serverParametersList = new ArrayList<>();
if (!parametersToFetch.isEmpty()) {
for (AzureResourceManagerPostgreSqlManager resourceManager : postgreSqlResourceManagers) {
for (Server postgreSqlFlexibleServer : resourceManager.getManager().servers().list()) {
Map serverParameters = new HashMap<>();
for (String parameterName : parametersToFetch) {
try {
Object parameterValue =
resourceManager
.getManager()
.configurations()
.get(
postgreSqlFlexibleServer.resourceGroupName(),
postgreSqlFlexibleServer.name(),
parameterName)
.value();
serverParameters.put(
parameterName, parameterValue != null ? parameterValue.toString() : null);
} catch (Exception e) {
serverParameters.put(parameterName, null);
}
}
serverParametersList.add(
new AzureResourcePostgreSqlFlexibleServerWithParameters(
resourceManager.getTenantId(),
postgreSqlFlexibleServer.id(),
postgreSqlFlexibleServer.innerModel(),
serverParameters));
}
}
}
return serverParametersList;
}
catch (RuntimeException e) {
throw new DataFetcherException("Could not fetch server parameters", e);
}
}
@Override
public DataFormat getDataFormat() {
return DataFormats.componentMethodConvention(
AzureResourcePostgreSqlFlexibleServerWithParameters.class,
AzureResourceManagerConventionContext.INSTANCE
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy