maas deletes products/images locally that do not exist remotely
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
Fix Released
|
Wishlist
|
Blake Rouse |
Bug Description
Maas imports images to deploy and use for boot resources from streams. It imports a number of products from each stream, such as:
com.ubuntu.
com.ubuntu.
com.ubuntu.
com.ubuntu.
If the product is removed from the remote stream, and maas does 'boot resources import', it will be *deleted* locally. This is a bug for a few reasons:
* accidental deletion of products on the server side will break customers.
* Canonical cannot remove products *ever* from the server side
if these products (such as 14.10) go unsupported, we'd like to no
longer make them available or at very least move them to 'old-releases' like
location. However, if we do that, then we'd be breaking existing
users as they'd have workflow that worked before and not after.
I found this with the following.
Installed maas from maas-maintainer
$ dpkg-query --show maas
maas 1.8.2+bzr4041-
created a local mirror of stream data like:
$ sstream-mirror --max=1 --progress http://
I then pointed maas at that mirror rather than the daily mirror.
I did the import, and dump-image-status (https:/
$ ./dump-image-status admin
ubuntu/trusty amd64/hwe-t 20151020 daily True
ubuntu/trusty amd64/hwe-u 20151020 daily True
ubuntu/trusty amd64/hwe-v 20151020 daily True
Then, I manually edited the stream data as seen: http://
to remove the 'com.ubuntu.
And I re-imported:
$ maas admin boot-resources import
waited a bit, and saw:
$ ./dump-image-status admin
ubuntu/trusty amd64/hwe-u 20151020 daily True
ubuntu/trusty amd64/hwe-v 20151020 daily True
Related branches
- Andres Rodriguez (community): Approve
-
Diff: 1092 lines (+658/-38)10 files modifiedsrc/maasserver/bootresources.py (+64/-4)
src/maasserver/static/js/angular/directives/boot_images.js (+57/-3)
src/maasserver/static/js/angular/directives/tests/test_boot_images.js (+213/-13)
src/maasserver/static/js/angular/factories/bootresources.js (+12/-0)
src/maasserver/static/js/angular/factories/tests/test_bootresources.js (+27/-0)
src/maasserver/static/partials/boot-images.html (+23/-3)
src/maasserver/testing/factory.py (+1/-1)
src/maasserver/tests/test_bootresources.py (+78/-1)
src/maasserver/websockets/handlers/bootresource.py (+65/-8)
src/maasserver/websockets/handlers/tests/test_bootresource.py (+118/-5)
summary: |
- maas deletes products locally that do not exist remotely + maas deletes products/images locally that do not exist remotely |
Changed in maas: | |
milestone: | none → 1.9.0 |
importance: | Undecided → High |
Changed in maas: | |
importance: | High → Wishlist |
Changed in maas: | |
status: | New → Triaged |
Changed in maas: | |
milestone: | 1.9.0 → next |
Changed in maas: | |
milestone: | next → 2.1.0 |
Changed in maas: | |
status: | Triaged → In Progress |
assignee: | nobody → Blake Rouse (blake-rouse) |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in maas: | |
status: | Fix Committed → Fix Released |