83 lines
2.2 KiB
Go
83 lines
2.2 KiB
Go
package edge
|
|
|
|
import (
|
|
"testing"
|
|
|
|
portainer "github.com/portainer/portainer/api"
|
|
"github.com/portainer/portainer/api/datastore"
|
|
"github.com/portainer/portainer/api/roar"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestEndpointInEdgeGroup(t *testing.T) {
|
|
_, store := datastore.MustNewTestStore(t, true, false)
|
|
|
|
endpointGroups := []portainer.EndpointGroup{{ID: 1, Name: "test-group"}}
|
|
|
|
endpoint := &portainer.Endpoint{
|
|
ID: 1,
|
|
Name: "test-endpoint",
|
|
Type: portainer.EdgeAgentOnDockerEnvironment,
|
|
UserTrusted: true,
|
|
GroupID: endpointGroups[0].ID,
|
|
}
|
|
edgeGroupID := portainer.EdgeGroupID(1)
|
|
|
|
untrustedEndpoint := &portainer.Endpoint{
|
|
ID: 2,
|
|
Name: "untrusted-endpoint",
|
|
Type: portainer.EdgeAgentOnDockerEnvironment,
|
|
UserTrusted: false,
|
|
GroupID: endpointGroups[0].ID,
|
|
}
|
|
|
|
nonEdgeEndpoint := &portainer.Endpoint{
|
|
ID: 2,
|
|
Name: "untrusted-endpoint",
|
|
Type: portainer.AgentOnDockerEnvironment,
|
|
UserTrusted: true,
|
|
GroupID: endpointGroups[0].ID,
|
|
}
|
|
|
|
err := store.EdgeGroup().Create(&portainer.EdgeGroup{
|
|
ID: edgeGroupID,
|
|
Name: "test-edge-group",
|
|
Dynamic: false,
|
|
EndpointIDs: roar.FromSlice([]portainer.EndpointID{endpoint.ID, untrustedEndpoint.ID}),
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
// Related endpoint in a static edge group
|
|
|
|
inEdgeGroup, _, err := EndpointInEdgeGroup(store, endpoint, edgeGroupID, endpointGroups)
|
|
require.NoError(t, err)
|
|
require.True(t, inEdgeGroup)
|
|
|
|
// Unrelated endpoint in a static edge group
|
|
|
|
unrelatedEndpoint := &portainer.Endpoint{
|
|
ID: 3,
|
|
Name: "unrelated-endpoint",
|
|
Type: portainer.EdgeAgentOnDockerEnvironment,
|
|
UserTrusted: true,
|
|
GroupID: 0,
|
|
}
|
|
|
|
inEdgeGroup, _, err = EndpointInEdgeGroup(store, unrelatedEndpoint, edgeGroupID, endpointGroups)
|
|
require.NoError(t, err)
|
|
require.False(t, inEdgeGroup)
|
|
|
|
// Untrusted endpoint
|
|
|
|
inEdgeGroup, _, err = EndpointInEdgeGroup(store, untrustedEndpoint, edgeGroupID, endpointGroups)
|
|
require.NoError(t, err)
|
|
require.False(t, inEdgeGroup)
|
|
|
|
// Non-edge endpoint
|
|
|
|
inEdgeGroup, _, err = EndpointInEdgeGroup(store, nonEdgeEndpoint, edgeGroupID, endpointGroups)
|
|
require.NoError(t, err)
|
|
require.False(t, inEdgeGroup)
|
|
}
|