override fun parseImageData()

in plugin-azure-server/src/main/kotlin/jetbrains/buildServer/clouds/azure/arm/AzureCloudClientFactory.kt [61:106]


    override fun parseImageData(params: CloudClientParameters): Collection<AzureCloudImageDetails> {
        if (!params.getParameter(CloudImageParameters.SOURCE_IMAGES_JSON).isNullOrEmpty()) {
            return AzureUtils.parseImageData(AzureCloudImageDetails::class.java, params)
        }

        return params.cloudImages.map { param ->
            AzureCloudImageDetails(
                    param.id,
                    param.getParameter(AzureConstants.DEPLOY_TARGET)?.let(AzureCloudDeployTarget::valueOf),
                    param.getParameter(AzureConstants.REGION),
                    param.getParameter(AzureConstants.GROUP_ID),
                    param.getParameter(AzureConstants.IMAGE_TYPE)?.let(AzureCloudImageType::valueOf),
                    param.getParameter(AzureConstants.IMAGE_URL),
                    param.getParameter(AzureConstants.IMAGE_ID),
                    param.getParameter(AzureConstants.INSTANCE_ID),
                    param.getParameter(AzureConstants.OS_TYPE),
                    param.getParameter(AzureConstants.NETWORK_ID),
                    param.getParameter(AzureConstants.SUBNET_ID),
                    param.getParameter(AzureConstants.VM_NAME_PREFIX),
                    param.getParameter(AzureConstants.VM_SIZE),
                    (param.getParameter(AzureConstants.VM_PUBLIC_IP) ?: "").toBoolean(),
                    (param.getParameter(AzureConstants.MAX_INSTANCES_COUNT) ?: "1").toInt(),
                    param.getParameter(AzureConstants.VM_USERNAME),
                    param.getParameter(AzureConstants.STORAGE_ACCOUNT_TYPE),
                    param.getParameter(AzureConstants.TEMPLATE),
                    param.getParameter(AzureConstants.NUMBER_CORES),
                    param.getParameter(AzureConstants.MEMORY),
                    param.getParameter(AzureConstants.STORAGE_ACCOUNT),
                    param.getParameter(AzureConstants.REGISTRY_USERNAME),
                    param.agentPoolId,
                    param.getParameter(AzureConstants.PROFILE_ID),
                    (param.getParameter(AzureConstants.REUSE_VM) ?: "").toBoolean(),
                    param.getParameter(AzureConstants.CUSTOM_ENVIRONMENT_VARIABLES),
                    param.getParameter(AzureConstants.CUSTOM_TAGS),
                    param.getParameter(AzureConstants.SPOT_VM)?.toBoolean(),
                    param.getParameter(AzureConstants.ENABLE_SPOT_PRICE)?.toBoolean(),
                    param.getParameter(AzureConstants.SPOT_PRICE)?.toInt(),
                    param.getParameter(AzureConstants.ENABLE_ACCELERATED_NETWORKING)?.toBoolean(),
                    param.getParameter(AzureConstants.DISABLE_TEMPLATE_MODIFICATION)?.toBoolean(),
                    param.getParameter(AzureConstants.USER_ASSIGNED_IDENTITY) ?: "",
                    param.getParameter(AzureConstants.ENABLE_SYSTEM_ASSIGNED_IDENTITY)?.toBoolean()
            )
        }.apply {
            AzureUtils.setPasswords(AzureCloudImageDetails::class.java, params, this)
        }
    }