Make sure we handle unenrolling properly (#4158)

* Make sure we handle unenrolling properly

* Update failing test

* Fix test
This commit is contained in:
Tomas Touceda 2022-02-11 08:27:15 -03:00 committed by GitHub
parent 9af92b23aa
commit d167556514
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 11 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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)
}