示例#1
0
文件: verify.go 项目: rupakg/zodiac
func verifyEndpoint(e endpoint.Endpoint) error {
	version, err := e.Version()
	if err != nil {
		return err
	}

	log.Infof("%s reported version %s", e.Name(), version)

	isSwarm := false
	if strings.HasPrefix(version, "swarm/") {
		isSwarm = true
		parts := strings.Split(version, "/")
		version = parts[1]
	}

	semver, err := semver.Make(version)
	if err != nil {
		return fmt.Errorf("can't understand version '%s'", version)
	}

	if isSwarm && semver.LT(RequiredSwarmAPIVersion) {
		return fmt.Errorf("Swarm API must be %s or above, but it is %s", RequiredSwarmAPIVersion, semver)
	}

	if !isSwarm && semver.LT(RequiredDockerAPIVersion) {
		return fmt.Errorf("Docker API must be %s or above, but it is %s", RequiredDockerAPIVersion, semver)
	}

	return nil
}