Skip to content

Removing compute offering with related domain. #11502

@SviridoffA

Description

@SviridoffA

problem

I have a zone in my infrastructure with several clusters. For each cluster, I have dedicated service offerings, which I assign via host tags. A task came up to dedicate a specific cluster to a single client, so that only this client could create resources there. I assigned these offerings to clients domain, removing them from public access. As a result, only users in that domain could see these offerings.

The client then underwent a reorganization, and two other separate domains were created, with resources distributed between them. After the reorganization was complete, the decision was made to delete the old domain. After deleting the domain, DRS stopped working. I decided to try manually migrating a VM in this cluster and discovered that all the offerings for that cluster had disappeared. I remembered that I hadn't transferred them to the new domains.

The virtual machines launched from these offerings still showed them in their properties, but when I tried to navigate from a VM to its offering, I got a 404 error. Looking at the database, I found that these offerings had a date in the "removed" field. This date matched the "removed" field of the deleted domain. I had to restore the offerings in the UI by deleting the date in the "removed" field, after which the offerings returned and DRS started working again. Afterward, I manually went through the offerings and set the permissions for the necessary domains; this field was empty everywhere.

versions

ACS 4.19.3
Ubuntu 24.04

The steps to reproduce the bug

  1. Create service offering and use it to create virtual machines.

  2. Restrict the offering's permissions to a specific domain.

  3. Delete the domain.

  4. The offering will be deleted along with the domain, even though resources associated with it still exist in the system.

What to do about it?

I believe that in such a situation, the offering shouldn't be deleted from the system. The most logical approach would be to leave it with an empty domain field, or at least mark it as inactive.

Metadata

Metadata

Assignees

Projects

Status

ready for Testing

Relationships

None yet

Development

No branches or pull requests

Issue actions