Revision 084f7554
Added by Dominic Cleal about 10 years ago
app/controllers/hosts_controller.rb | ||
---|---|---|
'update_multiple_environment', 'multiple_disable', 'submit_multiple_disable',
|
||
'multiple_enable', 'submit_multiple_enable',
|
||
'update_multiple_organization', 'select_multiple_organization',
|
||
'update_multiple_location', 'select_multiple_location'
|
||
'update_multiple_location', 'select_multiple_location',
|
||
'disassociate', 'update_multiple_disassociate', 'multiple_disassociate'
|
||
:edit
|
||
when 'multiple_destroy', 'submit_multiple_destroy'
|
||
:destroy
|
test/factories/compute_resources.rb | ||
---|---|---|
FactoryGirl.define do
|
||
factory :compute_resource do
|
||
sequence(:name) { |n| "compute_resource#{n}" }
|
||
sequence(:url) { |n| "http://#{n}.example.com/" }
|
||
|
||
trait :ec2 do
|
||
provider 'EC2'
|
||
user 'ec2user'
|
||
password 'ec2password'
|
||
url 'eu-west-1'
|
||
end
|
||
|
||
trait :gce do
|
||
provider 'GCE'
|
||
key_path Rails.root
|
||
project 'gce_project'
|
||
sequence(:email) { |n| "user#{n}@example.com" }
|
||
end
|
||
|
||
trait :libvirt do
|
||
provider 'Libvirt'
|
||
end
|
||
|
||
trait :openstack do
|
||
provider 'Openstack'
|
||
user 'osuser'
|
||
password 'ospassword'
|
||
end
|
||
|
||
trait :ovirt do
|
||
provider 'Ovirt'
|
||
user 'ovirtuser'
|
||
password 'ovirtpassword'
|
||
end
|
||
|
||
trait :rackspace do
|
||
provider 'Rackspace'
|
||
user 'rsuser'
|
||
password 'rspassword'
|
||
region 'IAD'
|
||
end
|
||
|
||
trait :vmware do
|
||
provider 'Vmware'
|
||
user 'vuser'
|
||
password 'vpassword'
|
||
sequence(:server) { |n| "#{n}.example.com" }
|
||
datacenter 'vdatacenter'
|
||
end
|
||
|
||
factory :ec2_cr, :traits => [:ec2]
|
||
factory :gce_cr, :traits => [:gce]
|
||
factory :libvirt_cr, :traits => [:libvirt]
|
||
factory :openstack_cr, :traits => [:openstack]
|
||
factory :ovirt_cr, :traits => [:ovirt]
|
||
factory :rackspace_cr, :traits => [:rackspace]
|
||
factory :vmware_cr, :traits => [:vmware]
|
||
end
|
||
end
|
test/factories/host_related.rb | ||
---|---|---|
FactoryGirl.create(:host_parameter, :host => host)
|
||
end
|
||
end
|
||
|
||
trait :on_compute_resource do
|
||
uuid Foreman.uuid
|
||
association :compute_resource, :factory => :ec2_cr
|
||
after_build { |host| host.class.skip_callback(:validation, :after, :queue_compute) }
|
||
end
|
||
end
|
||
|
||
factory :hostgroup do
|
test/functional/hosts_controller_test.rb | ||
---|---|---|
assert_equal host.os.name, yaml[host.name]["osName"] # rundeck-specific field
|
||
end
|
||
|
||
test "#disassociate shows error when used on non-CR host" do
|
||
host = FactoryGirl.create(:host)
|
||
@request.env["HTTP_REFERER"] = hosts_path
|
||
put :disassociate, {:id => host.to_param}, set_session_user
|
||
assert_response :redirect, hosts_path
|
||
assert_not_nil flash[:error]
|
||
end
|
||
|
||
test "#disassociate removes UUID and CR association from host" do
|
||
host = FactoryGirl.create(:host, :on_compute_resource)
|
||
@request.env["HTTP_REFERER"] = hosts_path
|
||
put :disassociate, {:id => host.to_param}, set_session_user
|
||
assert_response :redirect, hosts_path
|
||
host.reload
|
||
refute host.uuid
|
||
refute host.compute_resource_id
|
||
end
|
||
|
||
test '#update_multiple_disassociate' do
|
||
host = FactoryGirl.create(:host, :on_compute_resource)
|
||
post :update_multiple_disassociate, {:host_ids => [host.id], :host_names => [host.name]}, set_session_user
|
||
assert_response :redirect, hosts_path
|
||
assert_not_nil flash[:notice]
|
||
host.reload
|
||
refute host.uuid
|
||
refute host.compute_resource_id
|
||
end
|
||
|
||
private
|
||
def initialize_host
|
||
User.current = users(:admin)
|
Also available in: Unified diff
fixes #4597 - map host disassociate actions to permission