@Override
    public void updateNode(KubevirtNode node) {
        checkNotNull(node, ERR_NULL_NODE);

        KubevirtNode intNode;
        KubevirtNode tunNode;

        KubevirtNode existingNode = nodeStore.node(node.hostname());
        checkNotNull(existingNode, ERR_NULL_NODE);

        DeviceId existIntgBridge = nodeStore.node(node.hostname()).intgBridge();

        if (node.intgBridge() == null) {
            intNode = node.updateIntgBridge(existIntgBridge);
            checkArgument(!hasIntgBridge(intNode.intgBridge(), intNode.hostname()),
                    NOT_DUPLICATED_MSG, intNode.intgBridge());
        } else {
            intNode = node;
            checkArgument(!hasIntgBridge(intNode.intgBridge(), intNode.hostname()),
                    NOT_DUPLICATED_MSG, intNode.intgBridge());
        }

        DeviceId existTunBridge = nodeStore.node(node.hostname()).tunBridge();
        if (intNode.tunBridge() == null) {
            tunNode = intNode.updateTunBridge(existTunBridge);
            checkArgument(!hasTunBridge(tunNode.tunBridge(), tunNode.hostname()),
                    NOT_DUPLICATED_MSG, tunNode.tunBridge());
        } else {
            tunNode = intNode;
            checkArgument(!hasTunBridge(tunNode.tunBridge(), tunNode.hostname()),
                    NOT_DUPLICATED_MSG, tunNode.tunBridge());
        }
        nodeStore.updateNode(tunNode);

        log.info(String.format(MSG_NODE, tunNode.hostname(), MSG_UPDATED));
    }
@Test
    public void testUpdateNode() {
        KubevirtNode updated = DefaultKubevirtNode.from(WORKER_2)
                .dataIp(IpAddress.valueOf("10.200.0.100"))
                .build();
        target.updateNode(updated);
        assertEquals(ERR_NOT_MATCH, updated, target.node(WORKER_2_INTG_DEVICE.id()));
        validateEvents(KUBEVIRT_NODE_UPDATED);
    }