in workgroup/src/main/java/software/amazon/athena/workgroup/ReadHandler.java [44:83]
private ResourceModel getWorkGroup(final ResourceModel model) {
final GetWorkGroupRequest getWorkGroupRequest = GetWorkGroupRequest.builder()
.workGroup(model.getName())
.build();
final String workGroupARN = getWorkGroupArn(request, model.getName());
try {
// Get WorkGroup
final WorkGroup workGroup = clientProxy.injectCredentialsAndInvokeV2(getWorkGroupRequest, athenaClient::getWorkGroup).workGroup();
// List all tags for this WorkGroup
ListTagsForResourceRequest listTagsRequest = ListTagsForResourceRequest.builder()
.resourceARN(workGroupARN)
.maxResults(100)
.build();
String nextToken;
List<Tag> tags = Lists.newArrayList();
do {
ListTagsForResourceResponse listTagsResponse = clientProxy.injectCredentialsAndInvokeV2(
listTagsRequest, athenaClient::listTagsForResource);
tags.addAll(listTagsResponse.tags());
nextToken = listTagsResponse.nextToken();
if (nextToken != null) {
listTagsRequest = listTagsRequest.toBuilder().nextToken(nextToken).build();
}
} while (nextToken != null);
return ResourceModel.builder()
.name(workGroup.name())
.state(workGroup.stateAsString())
.description(workGroup.description())
.recursiveDeleteOption(model.getRecursiveDeleteOption())
.creationTime(Long.toString(workGroup.creationTime().getEpochSecond()))
.workGroupConfiguration(workGroup.configuration() != null ? translator.createCfnWorkgroupConfigurationFromSdkConfiguration(workGroup.configuration()) : null)
.workGroupConfigurationUpdates(model.getWorkGroupConfigurationUpdates())
.tags(translator.createCfnTagsFromSdkTags(tags))
.build();
} catch (AthenaException e) {
throw translateAthenaException(e, model.getName());
}
}