Actions
Bug #12746
closedCompute resources can disappear in a development instance
Description
Compute resource store plugin registered resources like this: https://github.com/theforeman/foreman/blob/develop/app/models/compute_resource.rb#L13
If you notice, assignment is being done every time the class is loaded. So, let's take foreman_docker and how the 'Docker' compute resource can completely disappear in a dev environment:
(1) foreman_docker engine.r calls ComputeResource.register_provider
(2) register_provider adds Docker to supported_providers class attributes
(3) something causes the ComputeResource class to be reloaded
(4) Line #13 is re-evaluated, and the supported_providers is reset to the default (without docker)
You can try this out:
2.1.5 :008 > ComputeResource.providers => ["Libvirt", "Ovirt", "EC2", "Vmware", "Openstack", "Rackspace", "GCE", "Docker"] 2.1.5 :009 > require 'compute_resource' # simulate reload Creating scope :live_descendants. Overwriting existing method ComputeResource.live_descendants. => true 2.1.5 :010 > ComputeResource.providers => ["Libvirt", "Ovirt", "EC2", "Vmware", "Openstack", "Rackspace", "GCE"]
Updated by Stephen Benjamin about 9 years ago
- Related to Refactor #12747: Provide some kind of central store or consistent way to manage dynamically registered objects from plugins added
Updated by Dominic Cleal almost 9 years ago
- Has duplicate Bug #13694: compute resource provider from plugin missing sometimes added
Updated by Dominic Cleal over 8 years ago
- Status changed from New to Assigned
- Assignee set to Dominic Cleal
Updated by The Foreman Bot over 8 years ago
- Status changed from Assigned to Ready For Testing
- Pull request https://github.com/theforeman/foreman/pull/3377 added
Updated by Dominic Cleal over 8 years ago
- Status changed from Ready For Testing to Closed
- % Done changed from 0 to 100
Applied in changeset 355c3a3180fcb55eead2c93d20004593d59dec7d.
Updated by Dominic Cleal over 8 years ago
- Translation missing: en.field_release set to 136
Actions