mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 09:28:54 +00:00
Make sure we handle unenrolling properly (#4158)
* Make sure we handle unenrolling properly * Update failing test * Fix test
This commit is contained in:
parent
9af92b23aa
commit
d167556514
3 changed files with 27 additions and 11 deletions
|
|
@ -3320,10 +3320,17 @@ func testHostMDMAndMunki(t *testing.T, ds *Datastore) {
|
|||
require.True(t, fleet.IsNotFound(err), err)
|
||||
|
||||
require.NoError(t, ds.SetOrUpdateMDMData(context.Background(), 432, true, "url", false))
|
||||
|
||||
enrolled, serverURL, installedFromDep, err := ds.GetMDM(context.Background(), 432)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, enrolled)
|
||||
assert.Equal(t, "url", serverURL)
|
||||
assert.False(t, installedFromDep)
|
||||
|
||||
require.NoError(t, ds.SetOrUpdateMDMData(context.Background(), 455, true, "url2", true))
|
||||
require.NoError(t, ds.SetOrUpdateMDMData(context.Background(), 432, false, "url3", true))
|
||||
|
||||
enrolled, serverURL, installedFromDep, err := ds.GetMDM(context.Background(), 432)
|
||||
enrolled, serverURL, installedFromDep, err = ds.GetMDM(context.Background(), 432)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, enrolled)
|
||||
assert.Equal(t, "url3", serverURL)
|
||||
|
|
|
|||
|
|
@ -713,14 +713,13 @@ func directIngestMDM(ctx context.Context, logger log.Logger, host *fleet.Host, d
|
|||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "parsing enrolled")
|
||||
}
|
||||
if !enrolled {
|
||||
// A row with enrolled=false and all other columns empty is a host with the osquery
|
||||
// MDM table extensions installed (e.g. Orbit) but MDM unconfigured/disabled.
|
||||
return nil
|
||||
}
|
||||
installedFromDep, err := strconv.ParseBool(rows[0]["installed_from_dep"])
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "parsing installed_from_dep")
|
||||
installedFromDepVal := rows[0]["installed_from_dep"]
|
||||
installedFromDep := false
|
||||
if installedFromDepVal != "" {
|
||||
installedFromDep, err = strconv.ParseBool(installedFromDepVal)
|
||||
if err != nil {
|
||||
return ctxerr.Wrap(ctx, err, "parsing installed_from_dep")
|
||||
}
|
||||
}
|
||||
|
||||
return ds.SetOrUpdateMDMData(ctx, host.ID, enrolled, rows[0]["server_url"], installedFromDep)
|
||||
|
|
|
|||
|
|
@ -317,12 +317,21 @@ func TestGetDetailQueries(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestDirectIngestMDM(t *testing.T) {
|
||||
ds := new(mock.Store)
|
||||
ds.SetOrUpdateMDMDataFunc = func(ctx context.Context, hostID uint, enrolled bool, serverURL string, installedFromDep bool) error {
|
||||
require.False(t, enrolled)
|
||||
require.False(t, installedFromDep)
|
||||
require.Empty(t, serverURL)
|
||||
return nil
|
||||
}
|
||||
|
||||
var host fleet.Host
|
||||
|
||||
err := directIngestMDM(context.Background(), log.NewNopLogger(), &host, nil, []map[string]string{}, true)
|
||||
err := directIngestMDM(context.Background(), log.NewNopLogger(), &host, ds, []map[string]string{}, true)
|
||||
require.NoError(t, err)
|
||||
require.False(t, ds.SetOrUpdateMDMDataFuncInvoked)
|
||||
|
||||
err = directIngestMDM(context.Background(), log.NewNopLogger(), &host, nil, []map[string]string{
|
||||
err = directIngestMDM(context.Background(), log.NewNopLogger(), &host, ds, []map[string]string{
|
||||
{
|
||||
"enrolled": "false",
|
||||
"installed_from_dep": "",
|
||||
|
|
@ -330,4 +339,5 @@ func TestDirectIngestMDM(t *testing.T) {
|
|||
},
|
||||
}, false)
|
||||
require.NoError(t, err)
|
||||
require.True(t, ds.SetOrUpdateMDMDataFuncInvoked)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue