diff options
author | andreer <andreer@verizonmedia.com> | 2019-08-29 11:58:12 +0200 |
---|---|---|
committer | andreer <andreer@verizonmedia.com> | 2019-08-29 11:58:12 +0200 |
commit | dc4cb85f64d39f8ff2b09f2316b1ded5bd873ac7 (patch) | |
tree | fef1e1d40616227ff972228a014334dcb2111f25 /controller-server | |
parent | 2fbebc6f826294f3f48089b7cb75bb785ba25935 (diff) |
make hashed dns name from application id
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java index ef1ce19b167..e3a79693428 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/Endpoint.java @@ -1,12 +1,14 @@ // Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.application; +import com.google.common.hash.Hashing; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.zone.ZoneId; import java.net.URI; +import java.nio.charset.Charset; import java.util.Objects; /** @@ -212,6 +214,12 @@ public class Endpoint { } + /** Create a DNS name based on a hash of the ApplicationId. This should always be < 64 characters long. */ + public static String createHashedCn(ApplicationId application, SystemName system) { + var appIdHash = Hashing.farmHashFingerprint64().hashString(application.serializedForm(), Charset.defaultCharset()).toString(); + return appIdHash + dnsSuffix(system, false); + } + /** Build an endpoint for given application */ public static EndpointBuilder of(ApplicationId application) { return new EndpointBuilder(application); |