func getNodeInfo(hosts []entity.Host) (consul string, dns []dcosentity.Server, swarm string) {
	if hosts == nil || len(hosts) <= 0 {
		logrus.Warnf("no node for current cluster!")
		return
	}

	dns = []dcosentity.Server{}
	for i := 0; i < len(hosts); i++ {
		host := hosts[i]
		if host.IsConsul {
			consul = host.HostName
		}
		if host.IsSwarmMaster {
			swarm = host.HostName
		}
		if host.IsDnsServer {
			server := dcosentity.Server{}

			server.Hostname = host.HostName
			server.IpAddress = host.IP
			server.PrivateIpAddress = host.PrivateIp
			server.IsMaster = host.IsMasterNode
			server.IsSlave = host.IsSlaveNode
			server.IsSwarmMaster = host.IsSwarmMaster
			server.IsConsul = host.IsConsul
			server.IsFullfilled = host.IsFullfilled
			server.IsDnsServer = host.IsDnsServer
			server.StoragePath = host.StoragePath

			dns = append(dns, server)
		}

	}

	return
}