fun readScheduledEventsMetadata()

in plugin-azure-common/src/main/kotlin/jetbrains/buildServer/clouds/azure/AzureMetadata.kt [54:84]


    fun readScheduledEventsMetadata(): ScheduledEventsMetadata? {
        val requestConfig = RequestConfig.custom()
                .setConnectTimeout(CONNECTION_TIMEOUT_MS)
                .build()

        HttpClients.custom()
                .useSystemProperties()
                .setDefaultRequestConfig(requestConfig)
                .build().use {
                    val response = try {
                        it.execute(HttpGet(SCHEDULED_EVENTS_METADATA_URL).apply {
                            addHeader("Metadata", "true")
                        })
                    } catch (e: Exception) {
                        throw IOException("Failed to connect to $SCHEDULED_EVENTS_METADATA_URL: ${e.message}")
                    }

                    val statusCode = response.statusLine.statusCode
                    if (statusCode == 200) {
                        val entity : String? = EntityUtils.toString(response.entity)
                        return try {
                            deserializeScheduledEventsMetadata(entity)
                        } catch (e : Throwable) {
                            LOG.warnAndDebugDetails("Failed to deserialize scheduled events metadata: $entity", e)
                            throw e
                        }
                    } else {
                        throw IOException("Failed to connect to $SCHEDULED_EVENTS_METADATA_URL: HTTP $statusCode")
                    }
                }
    }