Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/cmd/app/main.go",
"program": "${workspaceFolder}/cmd/app/",
"envFile": "${workspaceFolder}/.env",
"cwd": "${workspaceFolder}"
}
Expand Down
7 changes: 7 additions & 0 deletions internal/controller/httpapi/v1/error.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
func ErrorResponse(c *gin.Context, err error) {
var (
validatorErr validator.ValidationErrors
cancelledError dto.CanceledError
nfErr sqldb.NotFoundError
notValidErr dto.NotValidError
dbErr sqldb.DatabaseError
Expand All @@ -38,6 +39,8 @@
switch {
case errors.As(err, &netErr):
netErrorHandle(c, netErr)
case errors.As(err, &cancelledError):
cancelledErrorHandle(c, cancelledError)
case errors.As(err, &notValidErr):
notValidErrorHandle(c, notValidErr)
case errors.As(err, &validatorErr):
Expand Down Expand Up @@ -70,7 +73,11 @@
func netErrorHandle(c *gin.Context, netErr net.Error) {
msg := netErr.Error()
c.AbortWithStatusJSON(http.StatusGatewayTimeout, response{Error: msg, Message: msg})
}

Check failure on line 76 in internal/controller/httpapi/v1/error.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[golangci] reported by reviewdog 🐶 File is not properly formatted (gofumpt) Raw Output: internal/controller/httpapi/v1/error.go:76:1: File is not properly formatted (gofumpt) } ^
func cancelledErrorHandle(c *gin.Context, cancelError dto.CanceledError) {
msg := cancelError.Error()
c.AbortWithStatusJSON(http.StatusBadRequest, response{Error: msg, Message: msg})
}

func notValidErrorHandle(c *gin.Context, err dto.NotValidError) {
msg := err.Console.FriendlyMessage()
Expand Down
20 changes: 20 additions & 0 deletions internal/entity/dto/v1/canceled.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package dto

import (
"github.com/device-management-toolkit/console/pkg/consoleerrors"
)

type CanceledError struct {
Console consoleerrors.InternalError
}

func (e CanceledError) Error() string {
return e.Console.Error()
}

func (e CanceledError) Wrap(function, call string, err error) error {
_ = e.Console.Wrap(function, call, err)
e.Console.Message = "Canceled: " + err.Error()

return e
}
8 changes: 4 additions & 4 deletions internal/mocks/devicemanagement_mocks.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions internal/usecase/devices/alarms.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,11 @@
if err != nil {
return nil, err
}

if item == nil || item.GUID == "" {

Check failure on line 25 in internal/usecase/devices/alarms.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[golangci] reported by reviewdog 🐶 missing whitespace above this line (invalid statement above if) (wsl_v5) Raw Output: internal/usecase/devices/alarms.go:25:2: missing whitespace above this line (invalid statement above if) (wsl_v5) if item == nil || item.GUID == "" { ^ 4 issues: * gci: 2 * gofumpt: 1 * wsl_v5: 1
return nil, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -64,7 +63,7 @@

alarm.InstanceID = alarm.ElementName

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return dto.AddAlarmOutput{}, err
}
Expand All @@ -89,7 +88,7 @@
return ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return err
}
Expand Down
14 changes: 7 additions & 7 deletions internal/usecase/devices/alarms_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func TestGetAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, hmm *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(*device, false, true).
SetupWsmanClient(gomock.Any(), *device, false, true).
Return(hmm, nil)
hmm.EXPECT().
GetAlarmOccurrences().
Expand Down Expand Up @@ -84,7 +84,7 @@ func TestGetAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, hmm *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(hmm, nil)
hmm.EXPECT().
GetAlarmOccurrences().
Expand All @@ -103,7 +103,7 @@ func TestGetAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, hmm *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(*device, false, true).
SetupWsmanClient(gomock.Any(), *device, false, true).
Return(hmm, nil)
hmm.EXPECT().
GetAlarmOccurrences().
Expand Down Expand Up @@ -176,7 +176,7 @@ func TestCreateAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(*device, false, true).
SetupWsmanClient(gomock.Any(), *device, false, true).
Return(man2, nil)
man2.EXPECT().
CreateAlarmOccurrences(occ.InstanceID, occ.StartTime, 1, occ.DeleteOnCompletion).
Expand Down Expand Up @@ -206,7 +206,7 @@ func TestCreateAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(*device, false, true).
SetupWsmanClient(gomock.Any(), *device, false, true).
Return(man2, nil)
man2.EXPECT().
CreateAlarmOccurrences(occ.InstanceID, occ.StartTime, 1, occ.DeleteOnCompletion).
Expand Down Expand Up @@ -267,7 +267,7 @@ func TestDeleteAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(*device, false, true).
SetupWsmanClient(gomock.Any(), *device, false, true).
Return(man2, nil)
man2.EXPECT().
DeleteAlarmOccurrences("").
Expand Down Expand Up @@ -295,7 +295,7 @@ func TestDeleteAlarmOccurrences(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(*device, false, true).
SetupWsmanClient(gomock.Any(), *device, false, true).
Return(man2, nil)
man2.EXPECT().
DeleteAlarmOccurrences("").
Expand Down
8 changes: 4 additions & 4 deletions internal/usecase/devices/certificates.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ func (uc *UseCase) GetCertificates(c context.Context, guid string) (dto.Security
return dto.SecuritySettings{}, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return dto.SecuritySettings{}, err
}
Expand Down Expand Up @@ -266,7 +266,7 @@ func (uc *UseCase) GetDeviceCertificate(c context.Context, guid string) (dto.Cer
return dto.Certificate{}, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return dto.Certificate{}, err
}
Expand Down Expand Up @@ -376,7 +376,7 @@ func (uc *UseCase) AddCertificate(c context.Context, guid string, certInfo dto.C

cleanedCert := strings.ReplaceAll(base64.StdEncoding.EncodeToString(block.Bytes), "\r\n", "")

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return "", err
}
Expand Down Expand Up @@ -442,7 +442,7 @@ func (uc *UseCase) DeleteCertificate(c context.Context, guid, instanceID string)
}

// If the certificate is not associated with any profiles and is not read-only, proceed with deletion
device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return err
}
Expand Down
22 changes: 11 additions & 11 deletions internal/usecase/devices/certificates_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(man2, nil)
man2.EXPECT().
GetCertificates().
Expand Down Expand Up @@ -82,7 +82,7 @@
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(man2, nil)
man2.EXPECT().
GetCertificates().
Expand Down Expand Up @@ -198,7 +198,7 @@
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(man2, nil)
man2.EXPECT().
GetCertificates().
Expand Down Expand Up @@ -293,7 +293,7 @@
},
mock: func(m *mocks.MockWSMAN, man *mocks.MockManagement) {
m.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(man, nil)
man.EXPECT().
AddTrustedRootCert(gomock.Any()).
Expand Down Expand Up @@ -388,7 +388,7 @@
repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates
},
mockWsman: func(wsmanMock *mocks.MockWSMAN, management *mocks.MockManagement) {
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil)
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil)
management.EXPECT().GetCertificates().Return(wsman.Certificates{}, errors.New("wsman error"))
},
err: errors.New("wsman error"),
Expand All @@ -400,7 +400,7 @@
repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates
},
mockWsman: func(wsmanMock *mocks.MockWSMAN, management *mocks.MockManagement) {
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil)
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil)
// Return empty certificates response
management.EXPECT().GetCertificates().Return(wsman.Certificates{}, nil)
},
Expand All @@ -413,7 +413,7 @@
repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates
},
mockWsman: func(wsmanMock *mocks.MockWSMAN, management *mocks.MockManagement) {
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil)
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil)
// Return certificate with associated profiles
certificates := wsman.Certificates{
PublicKeyCertificateResponse: publickey.RefinedPullResponse{
Expand All @@ -440,7 +440,7 @@
repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates
},
mockWsman: func(wsmanMock *mocks.MockWSMAN, management *mocks.MockManagement) {
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil)
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil)
// Return read-only certificate
certificates := wsman.Certificates{
PublicKeyCertificateResponse: publickey.RefinedPullResponse{
Expand All @@ -467,7 +467,7 @@
repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates
},
mockWsman: func(wsmanMock *mocks.MockWSMAN, management *mocks.MockManagement) {
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil).Times(2) // Called twice: once for GetCertificates, once for DeleteCertificate
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil).Times(2) // Called twice: once for GetCertificates, once for DeleteCertificate
// Return valid certificate that can be deleted
certificates := wsman.Certificates{
PublicKeyCertificateResponse: publickey.RefinedPullResponse{
Expand Down Expand Up @@ -495,7 +495,7 @@
repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates
},
mockWsman: func(wsmanMock *mocks.MockWSMAN, management *mocks.MockManagement) {
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil).Times(2) // Called twice: once for GetCertificates, once for DeleteCertificate
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil).Times(2) // Called twice: once for GetCertificates, once for DeleteCertificate
// Return valid certificate that can be deleted
certificates := wsman.Certificates{
PublicKeyCertificateResponse: publickey.RefinedPullResponse{
Expand Down Expand Up @@ -566,8 +566,8 @@

useCase, wsmanMock, management, repo := initCertificateTest(t)

repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates

Check failure on line 569 in internal/usecase/devices/certificates_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[golangci] reported by reviewdog 🐶 File is not properly formatted (gci) Raw Output: internal/usecase/devices/certificates_test.go:569:1: File is not properly formatted (gci) repo.EXPECT().GetByID(context.Background(), device.GUID, "").Return(device, nil).Times(2) // Called twice: once by DeleteCertificate, once by GetCertificates ^
wsmanMock.EXPECT().SetupWsmanClient(*device, false, true).Return(management, nil).Times(2) // Called twice: once for GetCertificates, once for DeleteCertificate setup
wsmanMock.EXPECT().SetupWsmanClient(gomock.Any(), *device, false, true).Return(management, nil).Times(2) // Called twice: once for GetCertificates, once for DeleteCertificate setup

// Mock GetCertificates to return a certificate that can be deleted
certificates := wsman.Certificates{
Expand Down
2 changes: 1 addition & 1 deletion internal/usecase/devices/connections.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func (uc *UseCase) GetTLSSettingData(c context.Context, guid string) ([]dto.Sett
return nil, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return nil, err
}
Expand Down
4 changes: 2 additions & 2 deletions internal/usecase/devices/connections_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ func TestGetTLSSettings(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(man2, nil)
man2.EXPECT().
GetTLSSettingData().
Expand Down Expand Up @@ -98,7 +98,7 @@ func TestGetTLSSettings(t *testing.T) {
action: 0,
manMock: func(man *mocks.MockWSMAN, man2 *mocks.MockManagement) {
man.EXPECT().
SetupWsmanClient(gomock.Any(), false, true).
SetupWsmanClient(gomock.Any(), gomock.Any(), false, true).
Return(man2, nil)
man2.EXPECT().
GetTLSSettingData().
Expand Down
6 changes: 3 additions & 3 deletions internal/usecase/devices/consent.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func (uc *UseCase) CancelUserConsent(c context.Context, guid string) (dto.UserCo
return dto.UserConsentMessage{}, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return dto.UserConsentMessage{}, err
}
Expand Down Expand Up @@ -57,7 +57,7 @@ func (uc *UseCase) GetUserConsentCode(c context.Context, guid string) (dto.UserC
return dto.UserConsentMessage{}, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return dto.UserConsentMessage{}, err
}
Expand Down Expand Up @@ -97,7 +97,7 @@ func (uc *UseCase) SendConsentCode(c context.Context, userConsent dto.UserConsen
return dto.UserConsentMessage{}, ErrNotFound
}

device, err := uc.device.SetupWsmanClient(*item, false, true)
device, err := uc.device.SetupWsmanClient(c, *item, false, true)
if err != nil {
return dto.UserConsentMessage{}, err
}
Expand Down
Loading
Loading