Class: Staypuft::Service
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Staypuft::Service
- Defined in:
- app/models/staypuft/service.rb
Constant Summary collapse
- UI_PARAMS =
for each service, a list of param names. Optionally, instead of a string for a param name, an array of [param_name, puppetclass] in the case where there are possibly multiple puppetclass matches. without this, we’ll just grab the first puppetclass from the matching hostgroup
{ 'AMQP (non-HA)' => ['amqp_server', 'amqp_host', 'amqp_username', 'amqp_password', 'amqp_ca', 'amqp_cert', 'amqp_key', 'amqp_nssdb_password'], 'MySQL' => ['mysql_ca', 'mysql_cert', 'mysql_host', 'mysql_key', 'mysql_root_password'], 'Keystone (non-HA)' => ['keystone_admin_token', 'keystone_db_password', 'keystonerc'], 'Nova (Controller)' => ['admin_email', 'admin_password', 'auto_assign_floating_ip', 'controller_admin_host', 'controller_priv_host', 'controller_pub_host', 'freeipa', 'horizon_ca', 'horizon_cert', 'horizon_key', 'horizon_secret_key', 'nova_db_password', 'nova_user_password', 'nova_default_floating_pool', 'ssl', 'verbose', 'swift_admin_password', 'swift_ringserver_ip', 'swift_shared_secret', 'swift_storage_device', 'swift_storage_ips'], 'Neutron (Controller)' => ['admin_email', 'admin_password', 'controller_admin_host', 'controller_priv_host', 'controller_pub_host', 'enable_tunneling', 'freeipa', 'horizon_ca', 'horizon_cert', 'horizon_key', 'horizon_secret_key', 'ml2_firewall_driver', 'ml2_flat_networks', 'ml2_install_deps', 'ml2_mechanism_drivers', 'ml2_network_vlan_ranges', 'ml2_security_group', 'ml2_tenant_network_types', 'ml2_tunnel_id_ranges', 'ml2_type_drivers', 'ml2_vni_ranges', 'ml2_vxlan_group', 'neutron_core_plugin', 'neutron_db_password', 'neutron_metadata_proxy_secret', 'neutron_user_password', 'nova_db_password', 'nova_user_password', 'nova_default_floating_pool', 'ovs_vlan_ranges', 'provider_vlan_auto_create', 'provider_vlan_auto_trunk', 'ssl', 'tenant_network_type', 'tunnel_id_ranges', 'verbose', 'swift_admin_password', 'swift_ringserver_ip', 'swift_shared_secret', 'swift_storage_device', 'swift_storage_ips'], 'Glance (non-HA)' => ['glance_db_password', 'glance_user_password', 'glance_backend', 'glance_rbd_store_user', 'glance_rbd_store_pool'], 'Cinder (controller)' => ['cinder_backend_eqlx', 'cinder_backend_eqlx_name', 'cinder_backend_gluster', 'cinder_backend_gluster_name', 'cinder_backend_iscsi', 'cinder_backend_iscsi_name', 'cinder_backend_nfs', 'cinder_backend_nfs_name', 'cinder_backend_rbd', 'cinder_backend_rbd_name', 'cinder_db_password', 'cinder_multiple_backends', 'cinder_gluster_shares', 'cinder_nfs_shares', 'cinder_nfs_mount_options', 'cinder_san_ip', 'cinder_san_login', 'cinder_san_password', 'cinder_san_thin_provision', 'cinder_eqlx_group_name', 'cinder_eqlx_pool', 'cinder_eqlx_use_chap', 'cinder_eqlx_chap_login', 'cinder_eqlx_chap_password', 'cinder_rbd_pool', 'cinder_rbd_ceph_conf', 'cinder_rbd_flatten_volume_from_snapshot', 'cinder_rbd_max_clone_depth', 'cinder_rbd_user', 'cinder_rbd_secret_uuid', 'cinder_user_password'], 'Heat' => ['heat_cfn', 'heat_cloudwatch', 'heat_db_password', 'heat_user_password', 'heat_auth_encrypt_key'], 'Ceilometer' => ['ceilometer_metering_secret', 'ceilometer_user_password'] }
Instance Method Summary collapse
Instance Method Details
#ui_params_for_form(hostgroup) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/staypuft/service.rb', line 14 def ui_params_for_form(hostgroup) return [] if (hostgroup.nil?) role = hostgroup.role if hostgroup.puppetclasses.blank? params_from_hash = [] else puppetclass = hostgroup.puppetclasses.first params_from_hash = UI_PARAMS.fetch(self.name, []).collect do |param_key| if param_key.is_a?(Array) param_name = param_key[0] param_puppetclass = Puppetclass.find_by_name(param_key[1]) else param_name = param_key param_puppetclass = puppetclass end param_lookup_key = param_puppetclass.class_params.where(:key => param_key).first param_lookup_key.nil? ? nil : { :hostgroup => hostgroup, :role => role, :puppetclass => param_puppetclass, :param_key => param_lookup_key } end.compact end params_from_service = self.puppetclasses.collect do |pclass| pclass.class_params.collect do |class_param| { :hostgroup => hostgroup, :role => role, :puppetclass => pclass, :param_key => class_param } end end.flatten params_from_hash + params_from_service end |