Inject service FQDN into kubevirt node, let onos resolve service IP

Change-Id: I6f3f66ad97f8be461c464dad5d133f3477c40f5a
diff --git a/apps/kubevirt-node/api/src/main/java/org/onosproject/kubevirtnode/api/DefaultKubevirtApiConfig.java b/apps/kubevirt-node/api/src/main/java/org/onosproject/kubevirtnode/api/DefaultKubevirtApiConfig.java
index 1fa1fd9..c4e2bb8 100644
--- a/apps/kubevirt-node/api/src/main/java/org/onosproject/kubevirtnode/api/DefaultKubevirtApiConfig.java
+++ b/apps/kubevirt-node/api/src/main/java/org/onosproject/kubevirtnode/api/DefaultKubevirtApiConfig.java
@@ -38,6 +38,7 @@
     private final String caCertData;
     private final String clientCertData;
     private final String clientKeyData;
+    private final String serviceFqdn;
 
     /**
      * Default constructor for Kubevirt API config.
@@ -50,11 +51,13 @@
      * @param caCertData        CA certificate data
      * @param clientCertData    client certificate data
      * @param clientKeyData     client key data
+     * @param serviceFqdn       service FQDN
      */
     private DefaultKubevirtApiConfig(Scheme scheme, IpAddress ipAddress,
                                     int port, State state,
                                     String token, String caCertData,
-                                    String clientCertData, String clientKeyData) {
+                                    String clientCertData, String clientKeyData,
+                                     String serviceFqdn) {
         this.scheme = scheme;
         this.ipAddress = ipAddress;
         this.port = port;
@@ -63,6 +66,7 @@
         this.caCertData = caCertData;
         this.clientCertData = clientCertData;
         this.clientKeyData = clientKeyData;
+        this.serviceFqdn = serviceFqdn;
     }
 
     @Override
@@ -96,6 +100,7 @@
                 .caCertData(caCertData)
                 .clientCertData(clientCertData)
                 .clientKeyData(clientKeyData)
+                .serviceFqdn(serviceFqdn)
                 .build();
     }
 
@@ -120,6 +125,11 @@
     }
 
     @Override
+    public String serviceFqdn() {
+        return serviceFqdn;
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
@@ -132,13 +142,14 @@
                 ipAddress.equals(that.ipAddress) && state == that.state &&
                 token.equals(that.token) && caCertData.equals(that.caCertData) &&
                 clientCertData.equals(that.clientCertData) &&
-                clientKeyData.equals(that.clientKeyData);
+                clientKeyData.equals(that.clientKeyData) &&
+                Objects.equals(serviceFqdn, that.serviceFqdn);
     }
 
     @Override
     public int hashCode() {
         return Objects.hash(scheme, ipAddress, port, state, token,
-                caCertData, clientCertData, clientKeyData);
+                caCertData, clientCertData, clientKeyData, serviceFqdn);
     }
 
     @Override
@@ -152,6 +163,7 @@
                 .add("caCertData", caCertData)
                 .add("clientCertData", clientCertData)
                 .add("clientKeyData", clientKeyData)
+                .add("serviceFqdn", serviceFqdn)
                 .toString();
     }
 
@@ -174,6 +186,7 @@
         private String caCertData;
         private String clientCertData;
         private String clientKeyData;
+        private String serviceFqdn;
 
         @Override
         public KubevirtApiConfig build() {
@@ -188,55 +201,61 @@
             }
 
             return new DefaultKubevirtApiConfig(scheme, ipAddress, port, state,
-                    token, caCertData, clientCertData, clientKeyData);
+                    token, caCertData, clientCertData, clientKeyData, serviceFqdn);
         }
 
         @Override
-        public KubevirtApiConfig.Builder scheme(Scheme scheme) {
+        public Builder scheme(Scheme scheme) {
             this.scheme = scheme;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder ipAddress(IpAddress ipAddress) {
+        public Builder ipAddress(IpAddress ipAddress) {
             this.ipAddress = ipAddress;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder port(int port) {
+        public Builder port(int port) {
             this.port = port;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder state(State state) {
+        public Builder state(State state) {
             this.state = state;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder token(String token) {
+        public Builder token(String token) {
             this.token = token;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder caCertData(String caCertData) {
+        public Builder caCertData(String caCertData) {
             this.caCertData = caCertData;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder clientCertData(String clientCertData) {
+        public Builder clientCertData(String clientCertData) {
             this.clientCertData = clientCertData;
             return this;
         }
 
         @Override
-        public KubevirtApiConfig.Builder clientKeyData(String clientKeyData) {
+        public Builder clientKeyData(String clientKeyData) {
             this.clientKeyData = clientKeyData;
             return this;
         }
+
+        @Override
+        public Builder serviceFqdn(String serviceFqdn) {
+            this.serviceFqdn = serviceFqdn;
+            return this;
+        }
     }
 }