mirror of https://github.com/hashicorp/consul
393 lines
10 KiB
Go
393 lines
10 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package raft
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/hashicorp/consul/internal/resource"
|
|
"github.com/hashicorp/consul/proto-public/pbresource"
|
|
)
|
|
|
|
func TestIsRetiredType(t *testing.T) {
|
|
var retired []*pbresource.Type
|
|
{
|
|
const (
|
|
GroupName = "hcp"
|
|
Version = "v2"
|
|
|
|
LinkKind = "Link"
|
|
TelemetryStateKind = "TelemetryState"
|
|
)
|
|
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: LinkKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: TelemetryStateKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "tenancy"
|
|
Version = "v2beta1"
|
|
|
|
NamespaceKind = "Namespace"
|
|
PartitionKind = "Partition"
|
|
)
|
|
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: NamespaceKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: PartitionKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "multicluster"
|
|
Version = "v2beta1"
|
|
|
|
SamenessGroupKind = "SamenessGroup"
|
|
)
|
|
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: SamenessGroupKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "mesh"
|
|
Version = "v2beta1"
|
|
|
|
APIGatewayKind = "APIGateway"
|
|
ComputedExplicitDestinationsKind = "ComputedExplicitDestinations"
|
|
ComputedGatewayRoutesKind = "ComputedGatewayRoutes"
|
|
ComputedImplicitDestinationsKind = "ComputedImplicitDestinations"
|
|
ComputedProxyConfigurationKind = "ComputedProxyConfiguration"
|
|
ComputedRoutesKind = "ComputedRoutes"
|
|
DestinationPolicyKind = "DestinationPolicy"
|
|
DestinationsKind = "Destinations"
|
|
DestinationsConfigurationKind = "DestinationsConfiguration"
|
|
GRPCRouteKind = "GRPCRoute"
|
|
HTTPRouteKind = "HTTPRoute"
|
|
MeshConfigurationKind = "MeshConfiguration"
|
|
MeshGatewayKind = "MeshGateway"
|
|
ProxyConfigurationKind = "ProxyConfiguration"
|
|
ProxyStateTemplateKind = "ProxyStateTemplate"
|
|
TCPRouteKind = "TCPRoute"
|
|
)
|
|
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: APIGatewayKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedExplicitDestinationsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedGatewayRoutesKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedImplicitDestinationsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedProxyConfigurationKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedRoutesKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: DestinationPolicyKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: DestinationsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: DestinationsConfigurationKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: GRPCRouteKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: HTTPRouteKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: MeshConfigurationKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: MeshGatewayKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ProxyConfigurationKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ProxyStateTemplateKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: TCPRouteKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "auth"
|
|
Version = "v2beta1"
|
|
|
|
ComputedTrafficPermissionsKind = "ComputedTrafficPermissions"
|
|
NamespaceTrafficPermissionsKind = "NamespaceTrafficPermissions"
|
|
PartitionTrafficPermissionsKind = "PartitionTrafficPermissions"
|
|
TrafficPermissionsKind = "TrafficPermissions"
|
|
WorkloadIdentityKind = "WorkloadIdentity"
|
|
)
|
|
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedTrafficPermissionsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: NamespaceTrafficPermissionsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: PartitionTrafficPermissionsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: TrafficPermissionsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: WorkloadIdentityKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "catalog"
|
|
Version = "v2beta1"
|
|
|
|
ComputedFailoverPolicyKind = "ComputedFailoverPolicy"
|
|
FailoverPolicyKind = "FailoverPolicy"
|
|
HealthChecksKind = "HealthChecks"
|
|
HealthStatusKind = "HealthStatus"
|
|
NodeKind = "Node"
|
|
NodeHealthStatusKind = "NodeHealthStatus"
|
|
ServiceKind = "Service"
|
|
ServiceEndpointsKind = "ServiceEndpoints"
|
|
VirtualIPsKind = "VirtualIPs"
|
|
WorkloadKind = "Workload"
|
|
)
|
|
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedFailoverPolicyKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: FailoverPolicyKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: HealthChecksKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: HealthStatusKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: NodeKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: NodeHealthStatusKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ServiceKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ServiceEndpointsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: VirtualIPsKind,
|
|
})
|
|
retired = append(retired, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: WorkloadKind,
|
|
})
|
|
}
|
|
/*
|
|
*/
|
|
|
|
var retained []*pbresource.Type
|
|
{
|
|
const (
|
|
GroupName = "demo"
|
|
Version = "v2"
|
|
|
|
AlbumKind = "Album"
|
|
ArtistKind = "Artist"
|
|
FestivalKind = "Festival"
|
|
)
|
|
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: AlbumKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ArtistKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: FestivalKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "demo"
|
|
Version = "v1"
|
|
|
|
AlbumKind = "Album"
|
|
ArtistKind = "Artist"
|
|
ConceptKind = "Concept"
|
|
ExecutiveKind = "Executive"
|
|
RecordLabelKind = "RecordLabel"
|
|
)
|
|
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: AlbumKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ArtistKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ConceptKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ExecutiveKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: RecordLabelKind,
|
|
})
|
|
}
|
|
{
|
|
const (
|
|
GroupName = "multicluster"
|
|
Version = "v2"
|
|
|
|
ComputedExportedServicesKind = "ComputedExportedServices"
|
|
ExportedServicesKind = "ExportedServices"
|
|
NamespaceExportedServicesKind = "NamespaceExportedServices"
|
|
PartitionExportedServicesKind = "PartitionExportedServices"
|
|
)
|
|
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ComputedExportedServicesKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: ExportedServicesKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: NamespaceExportedServicesKind,
|
|
})
|
|
retained = append(retained, &pbresource.Type{
|
|
Group: GroupName,
|
|
GroupVersion: Version,
|
|
Kind: PartitionExportedServicesKind,
|
|
})
|
|
}
|
|
|
|
for _, typ := range retired {
|
|
t.Run("gone - "+resource.ToGVK(typ), func(t *testing.T) {
|
|
require.True(t, isRetiredType(typ))
|
|
})
|
|
}
|
|
for _, typ := range retained {
|
|
t.Run("allowed - "+resource.ToGVK(typ), func(t *testing.T) {
|
|
require.False(t, isRetiredType(typ))
|
|
})
|
|
}
|
|
}
|