Skip to content

Commit

Permalink
updated delete
Browse files Browse the repository at this point in the history
  • Loading branch information
TomerHeber committed Aug 5, 2024
1 parent 520bc76 commit 5e65979
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 21 deletions.
15 changes: 6 additions & 9 deletions env0/resource_agent_project_assignment.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ type AgentProjectAssignment struct {
ProjectId string
}

const ENV0_DEFAULT = "ENV0_DEFAULT"

func resourceAgentProjectAssignment() *schema.Resource {
return &schema.Resource{
CreateContext: resourceAgentProjectAssignmentCreateOrUpdate,
Expand Down Expand Up @@ -94,19 +96,14 @@ func resourceAgentProjectAssignmentRead(ctx context.Context, d *schema.ResourceD
func resourceAgentProjectAssignmentDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
apiClient := meta.(client.ApiClientInterface)

// When deleting an assignment, revert the project assignment to the default agent.

assignments, err := apiClient.ProjectsAgentsAssignments()
if err != nil {
return diag.Errorf("failed to get project agent assignments: %v", err)
}
// When deleting an assignment, revert the project assignment to the default.

payload := client.AssignProjectsAgentsAssignmentsPayload{
d.Id(): assignments.DefaultAgent,
d.Id(): "ENV0_DEFAULT",
}

if _, err := apiClient.AssignAgentsToProjects(payload); err != nil {
return diag.Errorf("failed to assign project '%s' to back to default agent '%s': %v", d.Id(), assignments.DefaultAgent, err)
return diag.Errorf("failed to assign project '%s' to back to default agent: %v", d.Id(), err)
}

return nil
Expand All @@ -125,7 +122,7 @@ func resourceAgentProjectAssignmentImport(ctx context.Context, d *schema.Resourc
return nil, fmt.Errorf("failed to get project agent assignments: %w", err)
}

// Import using the default agnet if there's no assignment for the project.
// Import using the default agent if there's no assignment for the project.

assignment := AgentProjectAssignment{
AgentId: assignments.DefaultAgent,
Expand Down
28 changes: 16 additions & 12 deletions env0/resource_agent_project_assignment_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,11 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
AgentId: "default_aid",
}

deleteAssignment := AgentProjectAssignment{
ProjectId: "pid",
AgentId: ENV0_DEFAULT,
}

getConfig := func(a *AgentProjectAssignment) string {
return resourceConfigCreate(resourceType, resourceName, map[string]interface{}{
"project_id": a.ProjectId,
Expand Down Expand Up @@ -91,8 +96,8 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&assignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(2).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, assignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&updatedAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(2).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, updatedAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, updatedAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&deleteAssignment)).Times(1).Return(nil, nil),
)
})
})
Expand All @@ -110,8 +115,8 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
runUnitTest(t, testCase, func(mock *client.MockApiClientInterface) {
gomock.InOrder(
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(2).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&deleteAssignment)).Times(1).Return(nil, nil),
)
})
})
Expand All @@ -135,8 +140,8 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
gomock.InOrder(
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&assignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{assignment}), nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(3).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(2).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&deleteAssignment)).Times(1).Return(nil, nil),
)
})
})
Expand All @@ -161,8 +166,8 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&assignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, assignment}), nil),
mock.EXPECT().Project(assignment.ProjectId).Times(1).Return(client.Project{}, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(3).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, assignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(2).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, assignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&deleteAssignment)).Times(1).Return(nil, nil),
)
})
})
Expand All @@ -187,8 +192,8 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, defaultAssignment}), nil),
mock.EXPECT().Project(assignment.ProjectId).Times(1).Return(client.Project{}, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(3).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(2).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&deleteAssignment)).Times(1).Return(nil, nil),
)
})
})
Expand All @@ -214,8 +219,7 @@ func TestUnitAgentProjectAssignmentResource(t *testing.T) {
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&assignment)).Times(1).Return(nil, nil),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, assignment}), nil),
mock.EXPECT().Project(assignment.ProjectId).Times(1).Return(client.Project{}, errors.New("error")),
mock.EXPECT().ProjectsAgentsAssignments().Times(1).Return(getAssignmentsResponse([]AgentProjectAssignment{otherAssignment, assignment}), nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&defaultAssignment)).Times(1).Return(nil, nil),
mock.EXPECT().AssignAgentsToProjects(getAssignmentPayload(&deleteAssignment)).Times(1).Return(nil, nil),
)
})
})
Expand Down

0 comments on commit 5e65979

Please sign in to comment.