fleet/server/mock
Lucas Manuel Rodriguez 5ec4fab440
Orbit to set --database_path when invoking osquery to retrieve system info (#10308)
#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)).
2023-03-13 18:54:18 -03:00
..
mockresult update mockimpl version to allow concurrent mock calls (#9989) 2023-02-21 16:36:06 -03:00
nanodep update mockimpl version to allow concurrent mock calls (#9989) 2023-02-21 16:36:06 -03:00
nanomdm update mockimpl version to allow concurrent mock calls (#9989) 2023-02-21 16:36:06 -03:00
scep update mockimpl version to allow concurrent mock calls (#9989) 2023-02-21 16:36:06 -03:00
datastore_installers.go update mockimpl version to allow concurrent mock calls (#9989) 2023-02-21 16:36:06 -03:00
datastore_mock.go Orbit to set --database_path when invoking osquery to retrieve system info (#10308) 2023-03-13 18:54:18 -03:00
datastore_users_helpers.go Add support for context in datastore/mysql layer (#1962) 2021-09-14 08:11:07 -04:00
datastore.go Orbit to set --database_path when invoking osquery to retrieve system info (#10308) 2023-03-13 18:54:18 -03:00
errors.go Remove unneeded interfaces (#1779) 2021-08-24 18:49:56 -03:00