-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add the volume to the root disk (vda) if the selected flavor has a ro… #894
Conversation
We should have spec tests covering this new case, I'll write some up and push to your branch if that is okay with you @Dhamo1107 |
Specs look like they fail to start due to ManageIQ/manageiq-schema#757 this should be resolved shortly |
if instance_type.root_disk_size == 0 # Handle root disk logic only when root_disk_size is 0 | ||
if index == 0 # The first volume should be the root disk, typically assigned to vda |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might be better done up above like
# Handle root disk logic only when root_disk_size is 0
if instance_type.root_disk_size > 0
volumes_attrs_list = [default_volume_attributes]
else
volumes_attrs_list = []
# The first volume should be the root disk, typically assigned to vda
requested_volumes.first&.merge!(:imageRef => source.ems_ref, :bootable => true, :boot_index => 0)
end
NOTE do the other requested volumes have to have boot_index = -1
? It doesn't appear that they did before.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really like the -1, but if that we there previously, then it's fine. I would think null
would be a better choice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't really like the -1, but if that we there previously, then it's fine. I would think null would be a better choice.
I don't think that is a choice since these volume_attrs are for fog-openstack volume create. From https://docs.openstack.org/nova/rocky/user/launch-instance-from-volume.html I don't see any mention of -1 so I'm going to drop this part so we can try to get this in.
835a879
to
8eb0bdc
Compare
allow(service).to receive_message_chain('volumes.create').and_return @volume | ||
allow(@task.source.ext_management_system).to receive(:with_provider_connection)\ | ||
before do | ||
allow(service).to receive_message_chain('volumes.create').and_return(volume) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see this was here already, but I generally prefer
allow(service).to receive_message_chain('volumes.create').and_return(volume) | |
allow(service).to receive_message_chain(:volumes, :create).and_return(volume) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah it was here previously, I do have a "cleanup specs" commit in here already though so I'd rather change all of them to be consistent
Overall LGTM- have one question about -1 vs null |
8eb0bdc
to
687edb5
Compare
…ot disk size of 0 during instance provisioning
This spec made heavy use of instance vars rather than `let()` which makes it more difficult to override these in sub-contexts.
If a flavor has no root disk we have to set up the bootable volume manually based on the first requested volume.
687edb5
to
1c76db5
Compare
@Fryguy I forgot this was still open, if I drop the -1 are you good with this? |
1c76db5
to
b5f9b0f
Compare
Thanks @Dhamo1107 for starting this, if you get a chance can you confirm that my changes still work for you? |
Sure @agrare I'll confirm it by tomorrow |
Hi @agrare, I’ve tested the changes, and they’re working correctly on my end! |
Awesome great news thanks @Dhamo1107 ! |
This Pull Request addresses the handling of root disk provisioning when using flavors with a root disk size of 0. Specifically, if a flavor has a root disk size of 0, the volume provided during provisioning will be designated as the root disk (vda). Conversely, if the flavor has a non-zero root disk size (e.g., 100GB), the specified volume will be treated as an additional volume (vdb).
Before the change:
After the change:
Volume specified during provisioning is correctly assigned as the root disk (vda) if the flavor's root disk size is 0 (25GB volume specified on the add volume page is assigned under vda).
Additional volumes specified will automatically come under vdb when the flavor has a root disk size greater than 0 (With a 100GB root disk size flavor, the root disk is assigned under vda, while the 50GB volume specified on the add volume page is assigned under vdb).
Fixes #892