@Override public List<CloudResourceStatus> check( AuthenticatedContext authenticatedContext, List<CloudResource> resources) { List<CloudResourceStatus> result = new ArrayList<>(); AzureRMClient access = armClient.createAccess(authenticatedContext.getCloudCredential()); String stackName = armUtils.getStackName(authenticatedContext.getCloudContext()); for (CloudResource resource : resources) { switch (resource.getType()) { case ARM_TEMPLATE: LOGGER.info("Checking Arm group stack status of: {}", stackName); try { Map<String, Object> resourceGroup = access.getTemplateDeployment(stackName, stackName); CloudResourceStatus templateResourceStatus = armUtils.templateStatus(resource, resourceGroup, access, stackName); result.add(templateResourceStatus); } catch (HttpResponseException e) { if (e.getStatusCode() == NOT_FOUND) { result.add(new CloudResourceStatus(resource, ResourceStatus.DELETED)); } else { throw new CloudConnectorException(e.getResponse().getData().toString(), e); } } catch (Exception e) { throw new CloudConnectorException( String.format("Invalid resource exception: %s", e.getMessage()), e); } break; default: throw new CloudConnectorException( String.format("Invalid resource type: %s", resource.getType())); } } return result; }