in plugin-azure-server/src/main/kotlin/jetbrains/buildServer/clouds/azure/arm/connector/tasks/FetchServicesTaskImpl.kt [11:37]
override fun createQuery(api: AzureApi, taskContext: AzureTaskContext, parameter: String): Single<List<FetchServicesTaskServiceDescriptor>> {
return api
.providers()
.listAsync()
.filter { it.registrationState() == REGISTERED }
.withLatestFrom(
api
.subscriptions()
.getByIdAsync(api.subscriptionId())
.map { it.getLocationByRegion(Region.fromName(parameter)).displayName() }
) {
provider, locationName ->
val resourceTypes =
provider
.resourceTypes()
.filter { it.locations().contains(locationName) }
.map { it.resourceType() }
FetchServicesTaskServiceDescriptor(
provider.namespace(),
resourceTypes
)
}
.filter { it.resourceTypes.isNotEmpty() }
.toList()
.last()
.toSingle()
}