mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 17:05:18 +00:00
5ec4fab440
#9132 The actual fix for the empty hosts is adding the `--database_path` argument in the initial `osqueryd -S` invocation when retrieving the UUID. Osquery attempts to retrieve the UUID from OS files/APIs, when not possible (which is what happens on some linux distributions), then it resorts to generating a new random UUID and storing it in the `osquery.db`. The issue was Orbit's first invocation of `osqueryd -S` was not using the same `osquery.db` as the main daemon invocation of `osqueryd`. I'm also adding a `hostname` + `platform` to the orbit enroll phase so that if there are any issues in the future we can avoid the "empty" host and have some information to help us troubleshoot. ## How to reproduce On Linux, osquery reads `/sys/class/dmi/id/product_uuid` to load the hardware UUID. Some Linux distributions running on specific hardware or container environments do not have such file available. The way to reproduce on a Linux VM is to do the following: ```sh $ sudo su # chmod -r /sys/class/dmi/id/product_uuid ``` which will turn the file inaccessible to root. ## Checklist - [X] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. See [Changes files](https://fleetdm.com/docs/contributing/committing-changes#changes-files) for more information. - ~[ ] Documented any API changes (docs/Using-Fleet/REST-API.md or docs/Contributing/API-for-contributors.md)~ - ~[ ] Documented any permissions changes~ - [X] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) - [X] Added support on fleet's osquery simulator `cmd/osquery-perf` for new osquery data ingestion features. - [X] Added/updated tests - [x] Manual QA for all new/changed functionality - For Orbit and Fleet Desktop changes: - [x] Manual QA must be performed in the three main OSs, macOS, Windows and Linux. - [x] Auto-update manual QA, from released version of component to new version (see [tools/tuf/test](../tools/tuf/test/README.md)).
36 lines
1.3 KiB
Go
36 lines
1.3 KiB
Go
package mock
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/fleetdm/fleet/v4/server/fleet"
|
|
)
|
|
|
|
//go:generate mockimpl -o datastore_mock.go "s *DataStore" "fleet.Datastore"
|
|
//go:generate mockimpl -o datastore_installers.go "s *InstallerStore" "fleet.InstallerStore"
|
|
//go:generate mockimpl -o nanomdm/storage.go "s *Storage" "github.com/micromdm/nanomdm/storage.AllStorage"
|
|
//go:generate mockimpl -o nanodep/storage.go "s *Storage" "github.com/micromdm/nanodep/storage.AllStorage"
|
|
//go:generate mockimpl -o scep/depot.go "d *Depot" "depot.Depot"
|
|
|
|
var _ fleet.Datastore = (*Store)(nil)
|
|
|
|
type Store struct {
|
|
DataStore
|
|
}
|
|
|
|
func (m *Store) EnrollOrbit(ctx context.Context, isMDMEnabled bool, orbitHostInfo fleet.OrbitHostInfo, orbitNodeKey string, teamID *uint) (*fleet.Host, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (m *Store) LoadHostByOrbitNodeKey(ctx context.Context, orbitNodeKey string) (*fleet.Host, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (m *Store) Drop() error { return nil }
|
|
func (m *Store) MigrateTables(ctx context.Context) error { return nil }
|
|
func (m *Store) MigrateData(ctx context.Context) error { return nil }
|
|
func (m *Store) MigrationStatus(ctx context.Context) (*fleet.MigrationStatus, error) {
|
|
return &fleet.MigrationStatus{}, nil
|
|
}
|
|
func (m *Store) Name() string { return "mock" }
|