diff --git a/manifests/compute.pp b/manifests/compute.pp index f1d92a8..f2f8f36 100644 --- a/manifests/compute.pp +++ b/manifests/compute.pp @@ -31,12 +31,15 @@ class openstack::compute ( $network_manager = 'nova.network.manager.FlatDHCPManager', $network_config = {}, $multi_host = false, + $enabled_apis = 'ec2,osapi_compute,metadata', # Quantum $quantum = false, $quantum_host = false, $quantum_user_password = false, $keystone_host = false, # Nova + $nova_admin_tenant_name = 'services', + $nova_admin_user = 'nova', $purge_nova_config = true, # Rabbit $rabbit_host = '127.0.0.1', @@ -127,10 +130,10 @@ class openstack::compute ( $enable_network_service = true class { 'nova::api': enabled => true, - admin_tenant_name => 'services', - admin_user => 'nova', + admin_tenant_name => $nova_admin_tenant_name, + admin_user => $nova_admin_user, admin_password => $nova_user_password, - # TODO override enabled_apis + enabled_apis => $enabled_apis, } } else { $enable_network_service = false diff --git a/manifests/controller.pp b/manifests/controller.pp index 9eabc8a..cae23d1 100644 --- a/manifests/controller.pp +++ b/manifests/controller.pp @@ -102,9 +102,12 @@ class openstack::controller ( $glance_db_dbname = 'glance', $glance_api_servers = undef, # Nova + $nova_admin_tenant_name = 'services', + $nova_admin_user = 'nova', $nova_db_user = 'nova', $nova_db_dbname = 'nova', $purge_nova_config = true, + $enabled_apis = 'ec2,osapi_compute,metadata', # Network $internal_address = false, $admin_address = false, @@ -270,10 +273,13 @@ class openstack::controller ( quantum_db_user => $quantum_db_user, quantum_db_dbname => $quantum_db_dbname, # Nova + nova_admin_tenant_name => $nova_admin_tenant_name, + nova_admin_user => $nova_admin_user, nova_user_password => $nova_user_password, nova_db_password => $nova_db_password, nova_db_user => $nova_db_user, nova_db_dbname => $nova_db_dbname, + enabled_apis => $enabled_apis, # Rabbit rabbit_user => $rabbit_user, rabbit_password => $rabbit_password, diff --git a/manifests/nova/controller.pp b/manifests/nova/controller.pp index 13efe82..1894b35 100644 --- a/manifests/nova/controller.pp +++ b/manifests/nova/controller.pp @@ -49,8 +49,11 @@ class openstack::nova::controller ( $quantum_db_password = 'quantum_pass', $quantum_user_password = 'quantum_pass', # Nova + $nova_admin_tenant_name = 'services', + $nova_admin_user = 'nova', $nova_db_user = 'nova', $nova_db_dbname = 'nova', + $enabled_apis = 'ec2,osapi_compute,metadata', # Rabbit $rabbit_user = 'nova', $rabbit_virtual_host = '/', @@ -112,7 +115,10 @@ class openstack::nova::controller ( # Configure nova-api class { 'nova::api': enabled => $enabled, + admin_tenant_name => $nova_admin_tenant_name, + admin_user => $nova_admin_user, admin_password => $nova_user_password, + enabled_apis => $enabled_apis, auth_host => $keystone_host, } diff --git a/spec/classes/openstack_compute_spec.rb b/spec/classes/openstack_compute_spec.rb index b105ce4..74bfc69 100644 --- a/spec/classes/openstack_compute_spec.rb +++ b/spec/classes/openstack_compute_spec.rb @@ -4,16 +4,19 @@ describe 'openstack::compute' do let :default_params do { - :private_interface => 'eth0', - :internal_address => '0.0.0.0', - :nova_user_password => 'nova_pass', - :rabbit_password => 'rabbit_pw', - :rabbit_host => '127.0.0.1', - :rabbit_virtual_host => '/', - :sql_connection => 'mysql://user:pass@host/dbname/', - :cinder_sql_connection => 'mysql://user:pass@host/dbname/', - :quantum => false, - :fixed_range => '10.0.0.0/16', + :private_interface => 'eth0', + :internal_address => '0.0.0.0', + :nova_user_password => 'nova_pass', + :rabbit_password => 'rabbit_pw', + :rabbit_host => '127.0.0.1', + :rabbit_virtual_host => '/', + :nova_admin_tenant_name => 'services', + :nova_admin_user => 'nova', + :enabled_apis => 'ec2,osapi_compute,metadata', + :sql_connection => 'mysql://user:pass@host/dbname/', + :cinder_sql_connection => 'mysql://user:pass@host/dbname/', + :quantum => false, + :fixed_range => '10.0.0.0/16', } end @@ -167,7 +170,8 @@ describe 'openstack::compute' do :enabled => true, :admin_tenant_name => 'services', :admin_user => 'nova', - :admin_password => 'nova_pass' + :admin_password => 'nova_pass', + :enabled_apis => 'ec2,osapi_compute,metadata' )} end end diff --git a/spec/classes/openstack_controller_spec.rb b/spec/classes/openstack_controller_spec.rb index 4a1d287..1736fc4 100644 --- a/spec/classes/openstack_controller_spec.rb +++ b/spec/classes/openstack_controller_spec.rb @@ -5,23 +5,26 @@ describe 'openstack::controller' do # minimum set of default parameters let :default_params do { - :private_interface => 'eth0', - :public_interface => 'eth1', - :internal_address => '127.0.0.1', - :public_address => '10.0.0.1', - :admin_email => 'some_user@some_fake_email_address.foo', - :admin_password => 'ChangeMe', - :rabbit_password => 'rabbit_pw', - :rabbit_virtual_host => '/', - :keystone_db_password => 'keystone_pass', - :keystone_admin_token => 'keystone_admin_token', - :glance_db_password => 'glance_pass', - :glance_user_password => 'glance_pass', - :nova_db_password => 'nova_pass', - :nova_user_password => 'nova_pass', - :secret_key => 'secret_key', - :quantum => false, - :vncproxy_host => '10.0.0.1' + :private_interface => 'eth0', + :public_interface => 'eth1', + :internal_address => '127.0.0.1', + :public_address => '10.0.0.1', + :admin_email => 'some_user@some_fake_email_address.foo', + :admin_password => 'ChangeMe', + :rabbit_password => 'rabbit_pw', + :rabbit_virtual_host => '/', + :keystone_db_password => 'keystone_pass', + :keystone_admin_token => 'keystone_admin_token', + :glance_db_password => 'glance_pass', + :glance_user_password => 'glance_pass', + :nova_db_password => 'nova_pass', + :nova_user_password => 'nova_pass', + :secret_key => 'secret_key', + :quantum => false, + :vncproxy_host => '10.0.0.1', + :nova_admin_tenant_name => 'services', + :nova_admin_user => 'nova', + :enabled_apis => 'ec2,osapi_compute,metadata', } end @@ -352,7 +355,8 @@ describe 'openstack::controller' do :enabled => true, :admin_tenant_name => 'services', :admin_user => 'nova', - :admin_password => 'nova_pass' + :admin_password => 'nova_pass', + :enabled_apis => 'ec2,osapi_compute,metadata' ) should contain_class('nova::cert').with(:enabled => true) should contain_class('nova::consoleauth').with(:enabled => true)