staypuft 0.0.16 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3838e8c00d0d5bb0470cfb8ec3ead91142f0dec7
4
+ data.tar.gz: ea81452c4bd0eb33f7d3e80483130b203b865683
5
+ SHA512:
6
+ metadata.gz: 68f8d5ba659d5126bb79d7545b50a05c3f4e63403b3454524c03b0bd2bde8bcfa8d0477c791ffbdc1eba53472a33536cb5d051eee8013e9f42320236cf5347c9
7
+ data.tar.gz: 3735abe4f8ab42404e9e1e05fea550bc1f9b20687702c38024d5af5c6c77f3c0db95b7cf9611e7b3ffae7a92b65ce0cd651177bc643f8c18dc3c5e2efa0d039a
@@ -12,15 +12,19 @@
12
12
  //
13
13
  //= require_tree .
14
14
 
15
- $(function() {
15
+ $(function () {
16
16
  // Check all checkboxes in table
17
- $('#check_all').on('change', function(e) {
17
+ $('#check_all').on('change', function (e) {
18
18
  var table = $(e.target).closest('table');
19
19
  $('td input:checkbox', table).attr('checked', e.target.checked);
20
20
  $('td input:checkbox', table).closest("tr").toggleClass("info", this.checked);
21
21
  });
22
22
 
23
- $("tr.checkbox_highlight input:checkbox").on('change', function(e) {
24
- $(this).closest("tr").toggleClass("info", this.checked);
23
+ $("tr.checkbox_highlight input:checkbox").on('change', function (e) {
24
+ var tr = $(this).closest("tr");
25
+ tr.toggleClass("info", this.checked);
26
+ if (tr.hasClass("deployed")) {
27
+ tr.toggleClass("danger", !this.checked);
28
+ }
25
29
  });
26
30
  });
@@ -9,7 +9,8 @@ module Staypuft
9
9
  def new
10
10
  base_hostgroup = Hostgroup.get_base_hostgroup
11
11
 
12
- deployment = Deployment.new(:name => Deployment::NEW_NAME_PREFIX+SecureRandom.hex)
12
+ deployment = Deployment.new(:name => Deployment::NEW_NAME_PREFIX+SecureRandom.hex,
13
+ :amqp_provider => Deployment::AMQP_RABBITMQ)
13
14
  deployment.layout = Layout.where(:name => "Distributed",
14
15
  :networking => "neutron").first
15
16
  deployment_hostgroup = ::Hostgroup.new name: deployment.name, parent: base_hostgroup
@@ -53,8 +54,9 @@ module Staypuft
53
54
  end
54
55
 
55
56
  def associate_host
56
- deployment = Deployment.find(params[:id])
57
- hostgroup = ::Hostgroup.find params[:hostgroup_id]
57
+ deployment = Deployment.find(params[:id])
58
+ hostgroup = ::Hostgroup.find params[:hostgroup_id]
59
+ deployment_in_progress = ForemanTasks::Lock.locked?(deployment, nil)
58
60
 
59
61
  targeted_hosts = ::Host::Base.find Array(params[:host_ids])
60
62
  assigned_hosts = hostgroup.hosts
@@ -76,14 +78,40 @@ module Staypuft
76
78
  end
77
79
 
78
80
  hosts_to_remove.each do |host|
79
- host.hostgroup = nil
80
- host.save!
81
+ if host.open_stack_deployed? && deployment_in_progress
82
+ # do not remove
83
+ else
84
+ host.hostgroup = nil
85
+ host.environment = Environment.get_discovery
86
+ host.save!
87
+ host.setBuild
88
+ end
81
89
  end
82
90
 
83
91
  redirect_to show_with_hostgroup_selected_deployment_path(
84
92
  id: deployment, hostgroup_id: hostgroup)
85
93
  end
86
94
 
95
+ def export_config
96
+ @deployment = Deployment.find(params[:id])
97
+ send_data DeploymentParamExporter.new(@deployment).to_hash.to_yaml,
98
+ :type => "application/x-yaml", :disposition => 'attachment',
99
+ :filename => @deployment.name + '.yml'
100
+ end
101
+
102
+ def import_config
103
+ @deployment = Deployment.find(params[:id])
104
+ unless params[:deployment_config_file].nil?
105
+ new_config = YAML.load_file(params[:deployment_config_file].path)
106
+ DeploymentParamImporter.new(@deployment).import(new_config)
107
+
108
+ flash[:notice] = "Updated parameter values"
109
+ else
110
+ flash[:error] = "No import file specified"
111
+ end
112
+ redirect_to deployment_path(@deployment)
113
+ end
114
+
87
115
  private
88
116
 
89
117
  def assign_host_to_hostgroup(discovered_host, hostgroup)
@@ -25,7 +25,7 @@ module Staypuft
25
25
  @deployment.form_step = Deployment::STEP_SETTINGS unless @deployment.form_complete?
26
26
  @deployment.update_attributes(params[:staypuft_deployment])
27
27
  @deployment.update_hostgroup_list
28
- @deployment.set_networking_params
28
+ @deployment.set_custom_params
29
29
  end
30
30
  when :services_selection
31
31
  @deployment.form_step = Deployment::STEP_SELECTION unless @deployment.form_complete?
@@ -0,0 +1,37 @@
1
+ module Staypuft
2
+ class DeploymentParamExporter
3
+ def initialize(deployment)
4
+ @deployment = deployment
5
+ end
6
+
7
+ def to_hash
8
+ {"deployment" => {"name" => @deployment.name, "services" => services}}
9
+ end
10
+
11
+ def services
12
+ @deployment.services_hostgroup_map.map { |one_service, hostgroup| service(one_service, hostgroup) }
13
+ end
14
+
15
+ def service(one_service, hostgroup)
16
+ { 'name' => one_service.name, 'params' => params(one_service, hostgroup) }
17
+ end
18
+
19
+ def params(one_service, hostgroup)
20
+ one_service.ui_params_for_form(hostgroup).map do |param_hash|
21
+ param param_hash
22
+ end
23
+ end
24
+
25
+ def param(param_hash)
26
+ value = param_hash[:hostgroup].current_param_value_str(param_hash[:param_key])
27
+ # force encoding needed to prevent to_yaml from outputting some strings as binary
28
+ value.force_encoding("UTF-8") if value.is_a? String
29
+
30
+ { 'key' => param_hash[:param_key].key,
31
+ 'role' => param_hash[:role].name,
32
+ 'puppetclass' => param_hash[:puppetclass].name,
33
+ 'value' => value }
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,46 @@
1
+ module Staypuft
2
+ class DeploymentParamImporter
3
+ def initialize(deployment)
4
+ @deployment = deployment
5
+ end
6
+
7
+ def import(in_hash)
8
+ hostgroups = {}
9
+ puppetclasses = {}
10
+ deployment_node = in_hash['deployment']
11
+ unless deployment_node.nil? || (services = deployment_node['services']).nil?
12
+ services.each do |service_hash|
13
+ handle_service(service_hash, hostgroups, puppetclasses)
14
+ end
15
+ end
16
+ end
17
+
18
+ def handle_service(service_hash, hostgroups, puppetclasses)
19
+ unless (service_params = service_hash['params']).nil?
20
+ service_params.each do |param_hash|
21
+ handle_param(param_hash, hostgroups, puppetclasses)
22
+ end
23
+ end
24
+ end
25
+
26
+ def handle_param(param_hash, hostgroups, puppetclasses)
27
+ hostgroup = hostgroups[param_hash['role']]
28
+ if hostgroup.nil?
29
+ drh = DeploymentRoleHostgroup.includes(:hostgroup, :role).
30
+ where(:deployment_id => @deployment.id,
31
+ "staypuft_roles.name" => param_hash['role']).first
32
+ hostgroup = drh.hostgroup unless drh.nil?
33
+ end
34
+ puppetclass = (puppetclasses[param_hash['puppetclass']] ||=
35
+ Puppetclass.where(:name => param_hash['puppetclass']).first)
36
+ key = param_hash['key']
37
+ value = param_hash['value']
38
+ # skip if either hostgroup or puppetclass are nil
39
+ unless hostgroup.nil? || puppetclass.nil? || key.nil? || value.nil?
40
+ hostgroup.set_param_value_if_changed(puppetclass,
41
+ key,
42
+ value)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -3,7 +3,7 @@ module Staypuft::Concerns::HostgroupExtensions
3
3
 
4
4
  included do
5
5
  has_one :deployment_role_hostgroup, :dependent => :destroy, :class_name => 'Staypuft::DeploymentRoleHostgroup'
6
- has_one :parent_deployment, :through => :deployment_role_hostgroup, :class_name => 'Staypuft::Deployment'
6
+ has_one :parent_deployment, :through => :deployment_role_hostgroup, :class_name => 'Staypuft::Deployment', :source => :deployment
7
7
  has_one :role, :through => :deployment_role_hostgroup, :class_name => 'Staypuft::Role'
8
8
 
9
9
  has_one :deployment, :class_name => 'Staypuft::Deployment', through: :deployment_role_hostgroup
@@ -10,7 +10,14 @@ module Staypuft
10
10
 
11
11
  NEW_NAME_PREFIX="uninitialized_"
12
12
 
13
- attr_accessible :description, :name, :layout_id, :layout
13
+ # amqp providers
14
+ AMQP_RABBITMQ = "rabbitmq"
15
+ AMQP_QPID = "qpid"
16
+ AMQP_PROVIDERS = [AMQP_RABBITMQ, AMQP_QPID]
17
+ AMQP_PROVIDER_LABELS = {AMQP_RABBITMQ => "RabbitMQ",
18
+ AMQP_QPID => "Qpid" }
19
+
20
+ attr_accessible :description, :name, :layout_id, :layout, :amqp_provider
14
21
  after_save :update_hostgroup_name
15
22
  after_validation :check_form_complete
16
23
 
@@ -38,6 +45,8 @@ module Staypuft
38
45
  validates :layout, :presence => true
39
46
  validates :hostgroup, :presence => true
40
47
 
48
+ validates :amqp_provider, :presence => true, :inclusion => {:in => AMQP_PROVIDERS }
49
+
41
50
  # TODO(mtaylor)
42
51
  # Use conditional validations to validate the deployment multi-step form.
43
52
  # deployment.form_step should be used to check the form step the user is
@@ -89,9 +98,11 @@ module Staypuft
89
98
  # If layout networking is set to 'neutron', then set include_neutron and
90
99
  # neutron on the hostgroup if it includes the "quickstack::pacemaker::params"
91
100
  # puppetclass
92
- def set_networking_params
101
+ def set_custom_params
93
102
  child_hostgroups.each do |the_hostgroup|
94
103
  the_hostgroup.puppetclasses.each do |pclass|
104
+
105
+ # set params relating to neutron/nova networking choice
95
106
  if pclass.class_params.where(:key => "include_neutron").first
96
107
  the_hostgroup.set_param_value_if_changed(pclass, "include_neutron",
97
108
  layout.networking == 'neutron')
@@ -100,6 +111,12 @@ module Staypuft
100
111
  the_hostgroup.set_param_value_if_changed(pclass, "neutron",
101
112
  layout.networking == 'neutron')
102
113
  end
114
+
115
+ # set params relating to rabbitmq/qpid amqp choice
116
+ if pclass.class_params.where(:key => "amqp_server").first
117
+ the_hostgroup.set_param_value_if_changed(pclass, "amqp_server",
118
+ amqp_provider)
119
+ end
103
120
  end
104
121
  end
105
122
  end
@@ -4,13 +4,14 @@
4
4
  # just grab the first puppetclass from the matching hostgroup
5
5
 
6
6
  Staypuft::Service::UI_PARAMS = {
7
- 'qpid (non-HA)' => ['qpid_ca',
8
- 'qpid_cert',
9
- 'qpid_host',
10
- 'qpid_username',
11
- 'qpid_password',
12
- 'qpid_key',
13
- 'qpid_nssdb_password'],
7
+ 'AMQP (non-HA)' => ['amqp_server',
8
+ 'amqp_host',
9
+ 'amqp_username',
10
+ 'amqp_password',
11
+ 'amqp_ca',
12
+ 'amqp_cert',
13
+ 'amqp_key',
14
+ 'amqp_nssdb_password'],
14
15
  'MySQL' => ['mysql_ca',
15
16
  'mysql_cert',
16
17
  'mysql_host',
@@ -87,7 +88,7 @@ Staypuft::Service::UI_PARAMS = {
87
88
  'Cinder (controller)' => ['cinder_backend_gluster',
88
89
  'cinder_backend_iscsi',
89
90
  'cinder_db_password',
90
- 'cinder_gluster_servers',
91
+ 'cinder_gluster_peers',
91
92
  'cinder_gluster_volume',
92
93
  'cinder_user_password'],
93
94
  'Heat' => ['heat_cfn',
@@ -96,31 +97,5 @@ Staypuft::Service::UI_PARAMS = {
96
97
  'heat_user_password',
97
98
  'heat_auth_encrypt_key'],
98
99
  'Ceilometer' => ['ceilometer_metering_secret',
99
- 'ceilometer_user_password'
100
- ],
101
- 'Neutron - L3' => ['controller_priv_host',
102
- 'enable_tunneling',
103
- 'external_network_bridge',
104
- 'fixed_network_range',
105
- 'mysql_ca',
106
- 'mysql_host',
107
- 'neutron_db_password',
108
- 'neutron_metadata_proxy_secret',
109
- 'neutron_user_password',
110
- 'nova_db_password',
111
- 'nova_user_password',
112
- 'qpid_host',
113
- 'qpid_username',
114
- 'qpid_password',
115
- 'ssl',
116
- 'tenant_network_type',
117
- 'tunnel_id_ranges',
118
- 'verbose'],
119
- 'OVS' => ['ovs_bridge_mappings',
120
- 'ovs_bridge_uplinks',
121
- 'ovs_tunnel_iface',
122
- 'ovs_tunnel_network',
123
- 'ovs_tunnel_types',
124
- 'ovs_vlan_ranges',
125
- 'ovs_vxlan_udp_port'] }
100
+ 'ceilometer_user_password'] }
126
101
 
@@ -13,6 +13,7 @@ module Staypuft
13
13
 
14
14
  def ui_params_for_form(hostgroup)
15
15
  return [] if (hostgroup.nil?)
16
+ role = hostgroup.role
16
17
  if hostgroup.puppetclasses.blank?
17
18
  params_from_hash = []
18
19
  else
@@ -27,13 +28,17 @@ module Staypuft
27
28
  end
28
29
  param_lookup_key = param_puppetclass.class_params.where(:key => param_key).first
29
30
  param_lookup_key.nil? ? nil : { :hostgroup => hostgroup,
31
+ :role => role,
30
32
  :puppetclass => param_puppetclass,
31
33
  :param_key => param_lookup_key }
32
34
  end.compact
33
35
  end
34
36
  params_from_service = self.puppetclasses.collect do |pclass|
35
37
  pclass.class_params.collect do |class_param|
36
- { :hostgroup => hostgroup, :puppetclass => pclass, :param_key => class_param }
38
+ { :hostgroup => hostgroup,
39
+ :role => role,
40
+ :puppetclass => pclass,
41
+ :param_key => class_param }
37
42
  end
38
43
  end.flatten
39
44
  params_from_hash + params_from_service
@@ -0,0 +1,11 @@
1
+ <%= form_tag(import_config_deployment_path(@deployment.id),
2
+ multipart: true,
3
+ class: 'col-md-12',
4
+ id: 'import_config_form') do |f| %>
5
+ <%= file_field_tag :deployment_config_file,
6
+ class: 'btn btn-default deployment_config_file' %>
7
+ <br/>
8
+ <%= submit_tag _("Import Config"), :class => "btn btn-primary btn-sm pull-right" %>
9
+ <br/>
10
+ <br/>
11
+ <% end %>
@@ -7,7 +7,29 @@
7
7
  else
8
8
  deployment_steps_path(deployment_id: @deployment)
9
9
  end) %>
10
- <%= link_to(_("Configuration Summary"), summary_deployment_path(@deployment.id), :class => '') %>
10
+ <div class="btn-group dropdown keep-open">
11
+ <button type="button" class="btn btn-default dropdown-toggle" role="button" href="#"
12
+ data-toggle="dropdown" data-target="#">
13
+ <%= _('Configuration') %>
14
+ <span class="caret"></span>
15
+ </button>
16
+ <ul class="dropdown-menu dropdown keep-open" role="menu">
17
+ <li><%= link_to(_("Summary"), summary_deployment_path(@deployment.id), :class => '') %></li>
18
+ <li>
19
+ <%= link_to(icon_text("cloud-upload", _("Import")),
20
+ {},
21
+ { :remote => true,
22
+ :rel => 'popover',
23
+ :data => { 'content' => "#{render partial: 'import_form'}",
24
+ 'original-title' => _('Import Config'),
25
+ 'placement' => 'left', } }) %>
26
+ </li>
27
+ <li>
28
+ <%= link_to(icon_text("cloud-download", _("Export")),
29
+ export_config_deployment_path(@deployment.id)) %>
30
+ </li>
31
+ </ul>
32
+ </div>
11
33
 
12
34
  <% if Rails.env.development? %>
13
35
  <div class="btn-group">
@@ -41,6 +63,8 @@
41
63
  :'data-toggle' => "modal",
42
64
  :'data-target' => "#deploy_modal") %>
43
65
  <% end %>
66
+
67
+
44
68
  <%= help_path %>
45
69
  <% end %>
46
70
 
@@ -86,20 +110,25 @@
86
110
  <%= check_box_tag :check_all %>
87
111
  </th>
88
112
  <th><%= sort :name, :as => _('Name') %></th>
113
+ <th class="hidden-s hidden-xs"><%= _('Deployed?') %></th>
89
114
  <th class="hidden-s hidden-xs"><%= sort :mac, :as => _('MAC Address') %></th>
90
115
  <th class="hidden-s hidden-xs"><%= sort :type, :as => _('Type') %></th>
91
116
  </tr>
92
117
  </thead>
93
118
  <tbody>
94
119
  <% child_hostgroup.own_and_free_hosts.each do |host| %>
95
- <tr class="checkbox_highlight <%= "success" if child_hostgroup.host_ids.include?(host.id) %>">
120
+ <tr class="<%= ['checkbox_highlight',
121
+ ('success' if child_hostgroup.host_ids.include?(host.id)),
122
+ ('deployed' if host.open_stack_deployed?)
123
+ ].compact.join(' ') %>">
96
124
  <td class="ca">
125
+ <% disabled = ForemanTasks::Lock.locked?(@deployment, nil) && host.open_stack_deployed? %>
97
126
  <%= check_box_tag 'host_ids[]',
98
127
  host.id,
99
128
  child_hostgroup.host_ids.include?(host.id),
100
- :id => "host_ids_#{host.id}",
101
- :disabled => host.open_stack_deployed? %>
102
- <%= hidden_field_tag 'host_ids[]', host.id if host.open_stack_deployed? %>
129
+ id: "host_ids_#{host.id}",
130
+ disabled: disabled %>
131
+ <%= hidden_field_tag 'host_ids[]', host.id if disabled %>
103
132
  </td>
104
133
  <td class="ellipsis">
105
134
  <% case host %>
@@ -111,6 +140,13 @@
111
140
  <%= host.name %>
112
141
  <% end %>
113
142
  </td>
143
+ <td class="hidden-s hidden-xs">
144
+ <% if host.open_stack_deployed? %>
145
+ <span class="glyphicon glyphicon-cloud"></span>
146
+ <% else %>
147
+ <span class="glyphicon glyphicon-minus"></span>
148
+ <% end %>
149
+ </td>
114
150
  <td class="hidden-s hidden-xs"><%= host.mac %></td>
115
151
  <td class="hidden-s hidden-xs"><%= host.type %></td>
116
152
  </tr>
@@ -148,9 +184,9 @@
148
184
  <button type="button" class="btn btn-default" data-dismiss="modal"><%= _("Cancel") %></button>
149
185
  <%= display_link_if_authorized(_("Deploy"),
150
186
  hash_for_deploy_deployment_path,
151
- :class => 'btn btn-primary',
187
+ :class => 'btn btn-primary',
152
188
  :method => :post,
153
- :data => { :disable_with => _("Deploying...")}) %>
189
+ :data => { :disable_with => _("Deploying...") }) %>
154
190
  </div>
155
191
  </div>
156
192
  </div>
@@ -21,6 +21,14 @@
21
21
  <% end %>
22
22
  </div>
23
23
  </div>
24
+ <div class="form-group">
25
+ <label class="col-md-2 control-label" for="layout_id"><%= _("AMQP Provider") %></label>
26
+ <div class="col-md-6">
27
+ <% Staypuft::Deployment::AMQP_PROVIDER_LABELS.each do |provider_value, provider_label| %>
28
+ <%= radio_button_f_non_inline(f, :amqp_provider, :checked => provider_value == @deployment.amqp_provider,:value=>provider_value, :text=> provider_label) %>
29
+ <% end %>
30
+ </div>
31
+ </div>
24
32
  </div>
25
33
  </div>
26
34
 
data/config/routes.rb CHANGED
@@ -12,6 +12,8 @@ Rails.application.routes.draw do
12
12
  get 'populate'
13
13
  get 'summary'
14
14
  post 'associate_host'
15
+ get 'export_config'
16
+ post 'import_config'
15
17
  end
16
18
 
17
19
  resources :steps
@@ -0,0 +1,13 @@
1
+ class AddAmqpProviderToStaypuftDeployment < ActiveRecord::Migration
2
+ Deployment = Class.new(ActiveRecord::Base) do
3
+ self.table_name = 'staypuft_deployments'
4
+ end
5
+
6
+ def change
7
+ add_column :staypuft_deployments, :amqp_provider, :string
8
+
9
+ Deployment.update_all :amqp_provider => 'rabbitmq'
10
+
11
+ change_column :staypuft_deployments, :amqp_provider, :string, :null => false
12
+ end
13
+ end
data/db/seeds.rb CHANGED
@@ -67,9 +67,10 @@ params = {
67
67
  'mysql_shared_storage_type' => 'nfs',
68
68
  'mysql_resource_group_name' => 'mysqlgrp',
69
69
  'mysql_clu_member_addrs' => '192.168.203.11 192.168.203.12 192.168.203.13',
70
- 'qpid_host' => '172.16.0.1',
71
- 'qpid_username' => 'openstack',
72
- 'qpid_password' => SecureRandom.hex,
70
+ "amqp_server" => 'rabbitmq',
71
+ 'amqp_host' => '172.16.0.1',
72
+ 'amqp_username' => 'openstack',
73
+ 'amqp_password' => SecureRandom.hex,
73
74
  'admin_email' => "admin@#{Facter.value(:domain)}",
74
75
  'neutron_metadata_proxy_secret' => SecureRandom.hex,
75
76
  'enable_ovs_agent' => 'true',
@@ -100,15 +101,17 @@ params = {
100
101
  'mysql_ca' => '/etc/ipa/ca.crt',
101
102
  'mysql_cert' => '/etc/pki/tls/certs/PRIV_HOST-mysql.crt',
102
103
  'mysql_key' => '/etc/pki/tls/private/PRIV_HOST-mysql.key',
103
- 'qpid_ca' => '/etc/ipa/ca.crt',
104
- 'qpid_cert' => '/etc/pki/tls/certs/PRIV_HOST-qpid.crt',
105
- 'qpid_key' => '/etc/pki/tls/private/PRIV_HOST-qpid.key',
104
+ 'amqp_ca' => '/etc/ipa/ca.crt',
105
+ 'amqp_cert' => '/etc/pki/tls/certs/PRIV_HOST-amqp.crt',
106
+ 'amqp_key' => '/etc/pki/tls/private/PRIV_HOST-amqp.key',
106
107
  'horizon_ca' => '/etc/ipa/ca.crt',
107
108
  'horizon_cert' => '/etc/pki/tls/certs/PUB_HOST-horizon.crt',
108
109
  'horizon_key' => '/etc/pki/tls/private/PUB_HOST-horizon.key',
109
- 'qpid_nssdb_password' => SecureRandom.hex,
110
+ 'amqp_nssdb_password' => SecureRandom.hex,
110
111
  'fence_xvm_key_file_password' => SecureRandom.hex,
111
112
  'use_qemu_for_poc' => 'false',
113
+ 'secret_key' => SecureRandom.hex,
114
+ 'admin_token' => SecureRandom.hex,
112
115
  }
113
116
 
114
117
  get_key_type = lambda do |value|
@@ -137,7 +140,7 @@ layouts = {
137
140
 
138
141
  # services don't have puppetclasses yet, since they aren't broken out on the back end
139
142
  services = {
140
- :non_ha_qpid => { :name => 'qpid (non-HA)', :class => [] },
143
+ :non_ha_amqp => { :name => 'AMQP (non-HA)', :class => [] },
141
144
  :mysql => { :name => 'MySQL', :class => [] },
142
145
  :non_ha_keystone => { :name => 'Keystone (non-HA)', :class => [] },
143
146
  :nova_controller => { :name => 'Nova (Controller)', :class => [] },
@@ -147,8 +150,7 @@ services = {
147
150
  :cinder_node => { :name => 'Cinder (node)', :class => ['quickstack::storage_backend::lvm_cinder'] },
148
151
  :heat => { :name => 'Heat', :class => [] },
149
152
  :ceilometer => { :name => 'Ceilometer', :class => [] },
150
- :neutron_l3 => { :name => 'Neutron - L3', :class => [] },
151
- :ovs => { :name => 'OVS', :class => [] },
153
+ :neutron_networker => { :name => 'Neutron Networker', :class => ['quickstack::neutron::networker'] },
152
154
  :nova_compute => { :name => 'Nova-compute', :class => ['quickstack::nova_network::compute'] },
153
155
  :neutron_compute => { :name => 'Neutron-compute', :class => ['quickstack::neutron::compute'] },
154
156
  :swift => { :name => 'Swift (node)', :class => ['quickstack::swift::storage'] },
@@ -207,7 +209,7 @@ roles = [
207
209
  { :name => 'Controller (Nova)',
208
210
  :class => 'quickstack::nova_network::controller',
209
211
  :layouts => [[:non_ha_nova, 1]],
210
- :services => [:non_ha_qpid, :mysql, :non_ha_keystone, :nova_controller, :non_ha_glance,
212
+ :services => [:non_ha_amqp, :mysql, :non_ha_keystone, :nova_controller, :non_ha_glance,
211
213
  :cinder_controller, :heat, :ceilometer] },
212
214
  { :name => 'Compute (Nova)',
213
215
  :class => [],
@@ -216,17 +218,17 @@ roles = [
216
218
  { :name => 'Controller (Neutron)',
217
219
  :class => 'quickstack::neutron::controller',
218
220
  :layouts => [[:non_ha_neutron, 1]],
219
- :services => [:non_ha_qpid, :mysql, :non_ha_keystone, :neutron_controller, :non_ha_glance,
221
+ :services => [:non_ha_amqp, :mysql, :non_ha_keystone, :neutron_controller, :non_ha_glance,
220
222
  :cinder_controller, :heat, :ceilometer] },
221
223
  { :name => 'Compute (Neutron)',
222
224
  :class => [],
223
225
  :layouts => [[:ha_neutron, 10], [:non_ha_neutron, 10]],
224
226
  :services => [:neutron_compute] },
225
227
  { :name => 'Neutron Networker',
226
- :class => 'quickstack::neutron::networker',
228
+ :class => [],
227
229
  :layouts => [[:non_ha_neutron, 3]],
228
- :services => [:neutron_l3, :ovs] },
229
- { :name => 'LVM Block Storage',
230
+ :services => [:neutron_networker] },
231
+ { :name => 'Cinder Block Storage',
230
232
  :class => [],
231
233
  :layouts => [[:ha_nova, 2], [:ha_neutron, 2], [:non_ha_nova, 2], [:non_ha_neutron, 2]],
232
234
  :services => [:cinder_node] },
@@ -1,3 +1,3 @@
1
1
  module Staypuft
2
- VERSION = '0.0.16'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: staypuft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Staypuft team
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-05-22 00:00:00.000000000 Z
11
+ date: 2014-06-04 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: foreman-tasks
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: dynflow
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,23 +41,20 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: wicked
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: foreman_discovery
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -82,69 +73,73 @@ executables: []
82
73
  extensions: []
83
74
  extra_rdoc_files: []
84
75
  files:
85
- - app/assets/javascripts/staypuft/staypuft.js
86
- - app/assets/stylesheets/staypuft/bootstrap_and_overrides.css.scss
87
- - app/assets/stylesheets/staypuft/staypuft.css.scss
88
- - app/controllers/staypuft/application_controller.rb
89
- - app/controllers/staypuft/deployments_controller.rb
90
- - app/controllers/staypuft/steps_controller.rb
76
+ - app/overrides/hide_subscription_manager_passwords.rb
91
77
  - app/helpers/staypuft/application_helper.rb
92
78
  - app/helpers/staypuft/deployments_helper.rb
93
- - app/lib/actions/staypuft/deployment/deploy.rb
94
- - app/lib/actions/staypuft/deployment/populate.rb
95
- - app/lib/actions/staypuft/host/build.rb
96
- - app/lib/actions/staypuft/host/create.rb
97
- - app/lib/actions/staypuft/host/deploy.rb
98
- - app/lib/actions/staypuft/host/puppet_run.rb
99
- - app/lib/actions/staypuft/host/wait_until_host_ready.rb
100
- - app/lib/actions/staypuft/host/wait_until_installed.rb
101
- - app/lib/actions/staypuft/hostgroup/deploy.rb
102
- - app/lib/actions/staypuft/hostgroup/ordered_deploy.rb
103
- - app/lib/actions/staypuft/middleware/as_current_user.rb
104
- - app/lib/staypuft/exception.rb
105
- - app/models/setting/staypuft_provisioning.rb
106
- - app/models/staypuft/concerns/environment_extensions.rb
107
- - app/models/staypuft/concerns/host_open_stack_affiliation.rb
108
- - app/models/staypuft/concerns/host_orchestration_build_hook.rb
109
- - app/models/staypuft/concerns/hostgroup_extensions.rb
110
- - app/models/staypuft/concerns/puppetclass_extensions.rb
79
+ - app/assets/javascripts/staypuft/staypuft.js
80
+ - app/assets/stylesheets/staypuft/staypuft.css.scss
81
+ - app/assets/stylesheets/staypuft/bootstrap_and_overrides.css.scss
82
+ - app/models/staypuft/service.rb
83
+ - app/models/staypuft/role_class.rb
111
84
  - app/models/staypuft/deployment.rb
85
+ - app/models/staypuft/role_service.rb
112
86
  - app/models/staypuft/deployment_role_hostgroup.rb
113
87
  - app/models/staypuft/layout.rb
88
+ - app/models/staypuft/service_class.rb
89
+ - app/models/staypuft/concerns/host_orchestration_build_hook.rb
90
+ - app/models/staypuft/concerns/hostgroup_extensions.rb
91
+ - app/models/staypuft/concerns/host_open_stack_affiliation.rb
92
+ - app/models/staypuft/concerns/puppetclass_extensions.rb
93
+ - app/models/staypuft/concerns/environment_extensions.rb
114
94
  - app/models/staypuft/layout_role.rb
115
- - app/models/staypuft/role.rb
116
- - app/models/staypuft/role_class.rb
117
- - app/models/staypuft/role_service.rb
118
95
  - app/models/staypuft/service/ui_params.rb
119
- - app/models/staypuft/service.rb
120
- - app/models/staypuft/service_class.rb
121
- - app/overrides/hide_subscription_manager_passwords.rb
96
+ - app/models/staypuft/role.rb
97
+ - app/models/setting/staypuft_provisioning.rb
98
+ - app/lib/staypuft/deployment_param_importer.rb
99
+ - app/lib/staypuft/exception.rb
100
+ - app/lib/staypuft/deployment_param_exporter.rb
101
+ - app/lib/actions/staypuft/middleware/as_current_user.rb
102
+ - app/lib/actions/staypuft/hostgroup/deploy.rb
103
+ - app/lib/actions/staypuft/hostgroup/ordered_deploy.rb
104
+ - app/lib/actions/staypuft/host/deploy.rb
105
+ - app/lib/actions/staypuft/host/build.rb
106
+ - app/lib/actions/staypuft/host/wait_until_host_ready.rb
107
+ - app/lib/actions/staypuft/host/puppet_run.rb
108
+ - app/lib/actions/staypuft/host/create.rb
109
+ - app/lib/actions/staypuft/host/wait_until_installed.rb
110
+ - app/lib/actions/staypuft/deployment/deploy.rb
111
+ - app/lib/actions/staypuft/deployment/populate.rb
112
+ - app/controllers/staypuft/steps_controller.rb
113
+ - app/controllers/staypuft/deployments_controller.rb
114
+ - app/controllers/staypuft/application_controller.rb
122
115
  - app/views/staypuft/deployments/index.html.erb
123
116
  - app/views/staypuft/deployments/show.html.erb
117
+ - app/views/staypuft/deployments/_import_form.html.erb
124
118
  - app/views/staypuft/deployments/summary.html.erb
125
119
  - app/views/staypuft/layouts/staypuft.html.erb
126
- - app/views/staypuft/steps/_title.html.erb
127
120
  - app/views/staypuft/steps/deployment_settings.html.erb
128
- - app/views/staypuft/steps/services_configuration.html.erb
129
121
  - app/views/staypuft/steps/services_selection.html.erb
130
- - config/routes.rb
122
+ - app/views/staypuft/steps/_title.html.erb
123
+ - app/views/staypuft/steps/services_configuration.html.erb
131
124
  - config/staypuft.local.rb
125
+ - config/routes.rb
126
+ - db/migrate/20140312050615_create_staypuft_role_classes.rb
132
127
  - db/migrate/20140309021811_create_staypuft_layouts.rb
133
- - db/migrate/20140310004533_create_staypuft_deployments.rb
128
+ - db/migrate/20140310203855_create_staypuft_role_services.rb
134
129
  - db/migrate/20140310023613_create_staypuft_roles.rb
135
- - db/migrate/20140310174152_create_staypuft_layout_roles.rb
130
+ - db/migrate/20140325211410_add_role_to_staypuft_deployment_role_hostgroup.rb
131
+ - db/migrate/20140326032027_drop_staypuft_hostgroup_roles.rb
132
+ - db/migrate/20140602121501_add_amqp_provider_to_staypuft_deployment.rb
136
133
  - db/migrate/20140310194221_create_staypuft_services.rb
137
- - db/migrate/20140310203855_create_staypuft_role_services.rb
138
- - db/migrate/20140312044533_create_staypuft_deployment_role_hostgroups.rb
139
134
  - db/migrate/20140312050001_create_staypuft_hostgroup_roles.rb
140
- - db/migrate/20140312050615_create_staypuft_role_classes.rb
141
- - db/migrate/20140312051144_create_staypuft_service_classes.rb
142
- - db/migrate/20140315031754_add_networking_to_staypuft_layout.rb
135
+ - db/migrate/20140310174152_create_staypuft_layout_roles.rb
143
136
  - db/migrate/20140318163222_add_deploy_order_to_staypuft_layout_role.rb
144
- - db/migrate/20140325211410_add_role_to_staypuft_deployment_role_hostgroup.rb
145
- - db/migrate/20140326032027_drop_staypuft_hostgroup_roles.rb
146
137
  - db/migrate/20140507103716_add_form_step_to_staypuft_deployment.rb
147
138
  - db/migrate/20140513124807_change_column_default_form_step_on_staypuft_deployment.rb
139
+ - db/migrate/20140315031754_add_networking_to_staypuft_layout.rb
140
+ - db/migrate/20140312051144_create_staypuft_service_classes.rb
141
+ - db/migrate/20140312044533_create_staypuft_deployment_role_hostgroups.rb
142
+ - db/migrate/20140310004533_create_staypuft_deployments.rb
148
143
  - db/seeds.rb
149
144
  - lib/staypuft/engine.rb
150
145
  - lib/staypuft/version.rb
@@ -153,40 +148,39 @@ files:
153
148
  - LICENSE
154
149
  - Rakefile
155
150
  - README.md
156
- - test/factories/staypuft_factories.rb
157
- - test/integration/navigation_test.rb
158
- - test/staypuft_test.rb
159
151
  - test/test_helper.rb
160
- - test/test_plugin_helper.rb
152
+ - test/staypuft_test.rb
161
153
  - test/unit/staypuft_test.rb
154
+ - test/integration/navigation_test.rb
155
+ - test/factories/staypuft_factories.rb
156
+ - test/test_plugin_helper.rb
162
157
  homepage: https://github.com/theforeman/staypuft
163
158
  licenses: []
159
+ metadata: {}
164
160
  post_install_message:
165
161
  rdoc_options: []
166
162
  require_paths:
167
163
  - lib
168
164
  required_ruby_version: !ruby/object:Gem::Requirement
169
- none: false
170
165
  requirements:
171
- - - ! '>='
166
+ - - '>='
172
167
  - !ruby/object:Gem::Version
173
168
  version: '0'
174
169
  required_rubygems_version: !ruby/object:Gem::Requirement
175
- none: false
176
170
  requirements:
177
- - - ! '>='
171
+ - - '>='
178
172
  - !ruby/object:Gem::Version
179
173
  version: '0'
180
174
  requirements: []
181
175
  rubyforge_project:
182
- rubygems_version: 1.8.23
176
+ rubygems_version: 2.0.3
183
177
  signing_key:
184
- specification_version: 3
178
+ specification_version: 4
185
179
  summary: OpenStack Foreman Installer
186
180
  test_files:
187
- - test/factories/staypuft_factories.rb
188
- - test/integration/navigation_test.rb
189
- - test/staypuft_test.rb
190
181
  - test/test_helper.rb
191
- - test/test_plugin_helper.rb
182
+ - test/staypuft_test.rb
192
183
  - test/unit/staypuft_test.rb
184
+ - test/integration/navigation_test.rb
185
+ - test/factories/staypuft_factories.rb
186
+ - test/test_plugin_helper.rb