func getCluster()

in dp_check/dp_check.go [772:788]


func getCluster(cdsReply *v3discoverypb.DiscoveryResponse, expectedClusterName string) (*v3clusterpb.Cluster, error) {
	if len(cdsReply.GetResources()) == 0 {
		return nil, fmt.Errorf("no cluster resource received in CDS response")
	}
	if len(cdsReply.GetResources()) != 1 {
		return nil, fmt.Errorf("expect to receive only 1 cluster resource in CDS response, but received %v", len(cdsReply.GetResources()))
	}
	resource := cdsReply.GetResources()[0]
	cluster := &v3clusterpb.Cluster{}
	if err := proto.Unmarshal(resource.GetValue(), cluster); err != nil {
		return nil, fmt.Errorf("failed to unmarshal cluster resource from CDS response: %v", err)
	}
	if cluster.GetName() != expectedClusterName {
		return nil, fmt.Errorf("cluster resource name |%v| does not match |%v|", cluster.GetName(), expectedClusterName)
	}
	return cluster, nil
}