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

mendersoftware / mender-server / 1978029483

11 Aug 2025 02:15PM UTC coverage: 65.755% (+0.3%) from 65.495%
1978029483

Pull #860

gitlab-ci

kjaskiewiczz
docs(useradm): move API specification to single file

Changelog: Title
Ticket: QA-1094
Signed-off-by: Krzysztof Jaskiewicz <krzysztof.jaskiewicz@northern.tech>
Pull Request #860: docs(useradm): move API specification to single file

29261 of 44500 relevant lines covered (65.76%)

1.44 hits per line

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

0.0
/backend/pkg/mongo/migrate/migrator_dummy.go
1
// Copyright 2024 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
package migrate
15

16
import (
17
        "context"
18
        "errors"
19
        "fmt"
20

21
        "go.mongodb.org/mongo-driver/mongo"
22

23
        "github.com/mendersoftware/mender-server/pkg/log"
24
)
25

26
// MigratorDummy does not actually apply migrations, just inserts the
27
// target version into the db to mark the initial/current state.
28
type DummyMigrator struct {
29
        Client      *mongo.Client
30
        Db          string
31
        Automigrate bool
32
}
33

34
// Apply makes MigratorDummy implement the Migrator interface.
35
func (m *DummyMigrator) Apply(ctx context.Context, target Version, migrations []Migration) error {
×
36
        l := log.FromContext(ctx).F(log.Ctx{"db": m.Db})
×
37

×
38
        applied, err := GetMigrationInfo(ctx, m.Client, m.Db)
×
39
        if err != nil {
×
40
                return err
×
41
        }
×
42

43
        if len(applied) > 1 {
×
44
                return errors.New("dummy migrator cannot apply migrations, more than 1 already applied")
×
45
        }
×
46

47
        last := Version{}
×
48
        if len(applied) == 1 {
×
49
                last = applied[0].Version
×
50
        }
×
51

52
        if !m.Automigrate {
×
53
                if VersionIsLess(last, target) {
×
54
                        return fmt.Errorf(
×
55
                                "%s: %s has version %s, needs version %s",
×
56
                                ErrNeedsMigration, m.Db, last.String(), target.String())
×
57
                } else {
×
58
                        return nil
×
59
                }
×
60
        }
61

62
        if VersionIsLess(last, target) {
×
63
                l.Infof("applying migration from version %s to %s", last, target)
×
64
                return UpdateMigrationInfo(ctx, target, m.Client, m.Db)
×
65
        } else {
×
66
                l.Infof("migration to version %s skipped", target)
×
67
        }
×
68

69
        return nil
×
70
}
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