userns: make sure host id is not always 0

when it finds multiple available ranges, make sure the host id is
correctly initialized.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
This commit is contained in:
Giuseppe Scrivano 2020-08-03 15:23:51 +02:00
parent a4debab7d1
commit 4caae16a28
No known key found for this signature in database
GPG Key ID: E4730F97F60286ED
2 changed files with 14 additions and 0 deletions

View File

@ -356,6 +356,7 @@ func findAvailableIDRange(size uint32, availableIDs, usedIDs []idtools.IDMap) ([
return avail[:i+1], nil
}
remaining -= uint32(avail[i].Size)
currentID += avail[i].Size
}
return nil, errors.New("could not find enough available IDs")

View File

@ -256,4 +256,17 @@ func TestFindAvailableIDRange(t *testing.T) {
assert.Equal(t, len(ret), 1)
assert.Equal(t, ret[0].HostID, 100000+32768)
assert.Equal(t, ret[0].Size, 4096)
used = []idtools.IDMap{
{
ContainerID: 0,
HostID: 100010,
Size: 10,
},
}
ret, err = findAvailableIDRange(4096, avail, used)
assert.Nil(t, err)
assert.Equal(t, len(ret), 2)
assert.Equal(t, ret[0].HostID, 100000)
assert.Equal(t, ret[1].HostID, 100010)
}