• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / mender-server / 1622978334

13 Jan 2025 03:51PM UTC coverage: 72.802% (-3.8%) from 76.608%
1622978334

Pull #300

gitlab-ci

alfrunes
fix: Deployment device count should not exceed max devices

Added a condition to skip deployments when the device count reaches max
devices.

Changelog: Title
Ticket: MEN-7847
Signed-off-by: Alf-Rune Siqveland <alf.rune@northern.tech>
Pull Request #300: fix: Deployment device count should not exceed max devices

4251 of 6164 branches covered (68.96%)

Branch coverage included in aggregate %.

0 of 18 new or added lines in 1 file covered. (0.0%)

2544 existing lines in 83 files now uncovered.

42741 of 58384 relevant lines covered (73.21%)

21.49 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/backend/services/deployments/model/update.go
1
// Copyright 2023 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14

15
package model
16

17
import (
18
        "errors"
19
        "time"
20
)
21

22
// Type info structure
23
type ArtifactUpdateTypeInfo struct {
24
        Type *string `json:"type" valid:"required"`
25
}
26

27
// Update file structure
28
type UpdateFile struct {
29
        // Image name
30
        Name string `json:"name" valid:"required"`
31

32
        // Image file checksum
33
        Checksum string `json:"checksum" valid:"optional"`
34

35
        // Image size
36
        Size int64 `json:"size" valid:"optional"`
37

38
        // Date build
39
        Date *time.Time `json:"date" valid:"optional"`
40
}
41

42
// Update structure
43
type Update struct {
44
        TypeInfo ArtifactUpdateTypeInfo `json:"type_info" valid:"required"`
45
        Files    []UpdateFile           `json:"files"`
46
        MetaData interface{}            `json:"meta_data,omitempty" valid:"optional"`
47
}
48

UNCOV
49
func (u Update) Match(update Update) bool {
×
UNCOV
50
        if len(u.Files) != len(update.Files) {
×
51
                return false
×
52
        }
×
53

UNCOV
54
        lFiles := make(map[string]UpdateFile, len(u.Files))
×
UNCOV
55
        for i, f := range u.Files {
×
UNCOV
56
                lFiles[f.Name] = u.Files[i]
×
UNCOV
57
        }
×
UNCOV
58
        for _, f := range update.Files {
×
UNCOV
59
                if _, ok := lFiles[f.Name]; !ok {
×
60
                        return false
×
61
                }
×
62
        }
UNCOV
63
        return true
×
64
}
65

66
const maxUpdateFiles = 1024
67

UNCOV
68
func (u Update) Validate() error {
×
UNCOV
69
        if len(u.Files) > maxUpdateFiles {
×
70
                return errors.New("too large update files array")
×
71
        }
×
72

UNCOV
73
        return nil
×
74
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc