diff --git a/core/store/primitives/src/main/java/org/onosproject/store/atomix/impl/AtomixManager.java b/core/store/primitives/src/main/java/org/onosproject/store/atomix/impl/AtomixManager.java
index ba66372..8df1a40 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/atomix/impl/AtomixManager.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/atomix/impl/AtomixManager.java
@@ -78,13 +78,13 @@
             return Atomix.builder(getClass().getClassLoader())
                 .withClusterId(metadata.getName())
                 .withMemberId(metadataService.getLocalNode().id().id())
-                .withAddress(metadataService.getLocalNode().ip().toString(), metadataService.getLocalNode().tcpPort())
+                .withAddress(metadataService.getLocalNode().host(), metadataService.getLocalNode().tcpPort())
                 .withProperty("type", "onos")
                 .withMembershipProvider(BootstrapDiscoveryProvider.builder()
                     .withNodes(metadata.getStorageNodes().stream()
                         .map(node -> io.atomix.cluster.Node.builder()
                             .withId(node.id().id())
-                            .withAddress(node.ip().toString(), node.tcpPort())
+                            .withAddress(node.host(), node.tcpPort())
                             .build())
                         .collect(Collectors.toList()))
                     .build())
@@ -103,13 +103,13 @@
             return Atomix.builder(getClass().getClassLoader())
                 .withClusterId(metadata.getName())
                 .withMemberId(metadataService.getLocalNode().id().id())
-                .withAddress(metadataService.getLocalNode().ip().toString(), metadataService.getLocalNode().tcpPort())
+                .withAddress(metadataService.getLocalNode().host(), metadataService.getLocalNode().tcpPort())
                 .withProperty("type", "onos")
                 .withMembershipProvider(BootstrapDiscoveryProvider.builder()
                     .withNodes(metadata.getControllerNodes().stream()
                         .map(node -> io.atomix.cluster.Node.builder()
                             .withId(node.id().id())
-                            .withAddress(node.ip().toString(), node.tcpPort())
+                            .withAddress(node.host(), node.tcpPort())
                             .build())
                         .collect(Collectors.toList()))
                     .build())
