use of com.microsoft.azure.management.resources.Provider in project azure-sdk-for-java by Azure.
the class GenericResourcesImpl method getById.
@Override
public GenericResource getById(String id) {
Provider provider = this.manager().providers().getByName(ResourceUtils.resourceProviderFromResourceId(id));
String apiVersion = ResourceUtils.defaultApiVersion(id, provider);
return wrapModel(this.inner().getById(id, apiVersion)).withApiVersion(apiVersion);
}
use of com.microsoft.azure.management.resources.Provider in project azure-sdk-for-java by Azure.
the class ProviderRegistrationInterceptor method intercept.
@Override
public Response intercept(Chain chain) throws IOException {
Response response = chain.proceed(chain.request());
if (!response.isSuccessful()) {
String content = errorBody(response.body());
AzureJacksonAdapter jacksonAdapter = new AzureJacksonAdapter();
CloudError cloudError = jacksonAdapter.deserialize(content, CloudError.class);
if (cloudError != null && "MissingSubscriptionRegistration".equals(cloudError.code())) {
Pattern pattern = Pattern.compile("/subscriptions/([\\w-]+)/", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(chain.request().url().toString());
matcher.find();
RestClient restClient = new RestClient.Builder().withBaseUrl("https://" + chain.request().url().host()).withCredentials(credentials).withSerializerAdapter(jacksonAdapter).withResponseBuilderFactory(new AzureResponseBuilder.Factory()).build();
ResourceManager resourceManager = ResourceManager.authenticate(restClient).withSubscription(matcher.group(1));
pattern = Pattern.compile(".*'(.*)'");
matcher = pattern.matcher(cloudError.message());
matcher.find();
Provider provider = registerProvider(matcher.group(1), resourceManager);
while (provider.registrationState().equalsIgnoreCase("Unregistered") || provider.registrationState().equalsIgnoreCase("Registering")) {
SdkContext.sleep(5 * 1000);
provider = resourceManager.providers().getByName(provider.namespace());
}
// Retry
response = chain.proceed(chain.request());
}
}
return response;
}
Aggregations