staypuft 0.0.7 → 0.0.8
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.
@@ -51,17 +51,19 @@ module Actions
|
|
51
51
|
::Host::Managed.new(
|
52
52
|
name: input[:name],
|
53
53
|
hostgroup_id: input[:hostgroup_id],
|
54
|
-
build:
|
54
|
+
build: true,
|
55
55
|
managed: true,
|
56
56
|
enabled: true,
|
57
|
+
environment: Environment.get_discovery,
|
57
58
|
mac: '0a:' + Array.new(5).map { format '%0.2X', rand(256) }.join(':'))
|
58
59
|
else
|
59
60
|
::Host::Managed.new(
|
60
61
|
name: input[:name],
|
61
62
|
hostgroup_id: input[:hostgroup_id],
|
62
|
-
build:
|
63
|
+
build: true,
|
63
64
|
managed: true,
|
64
65
|
enabled: true,
|
66
|
+
environment: Environment.get_discovery,
|
65
67
|
compute_resource_id: input.fetch(:compute_resource_id),
|
66
68
|
compute_attributes: input[:compute_attributes])
|
67
69
|
end
|
@@ -49,15 +49,28 @@ module Actions
|
|
49
49
|
5
|
50
50
|
end
|
51
51
|
|
52
|
+
# TODO The puppet modules sometimes fail then become ready
|
53
|
+
# after subsequent hosts have started. For this reason
|
54
|
+
# we can not check to see if the host is ready using the
|
55
|
+
# stats on the host only. This needs fixing in the puppet
|
56
|
+
# modules then reflecting here.
|
52
57
|
def host_ready?(host_id)
|
53
58
|
host = ::Host.find(host_id)
|
54
|
-
|
55
|
-
|
59
|
+
host.reports.order('reported_at DESC').any? do |report|
|
60
|
+
#check_for_failures(report, host.id)
|
61
|
+
report_change?(report)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def report_change?(report)
|
66
|
+
report.status['applied'] > 0
|
56
67
|
end
|
57
68
|
|
58
|
-
|
59
|
-
|
60
|
-
|
69
|
+
# TODO To aid logging add the report ID to the exception or
|
70
|
+
# the output object.
|
71
|
+
def check_for_failures(report, id)
|
72
|
+
if report.status['failed'] > 0
|
73
|
+
fail(::Staypuft::Exception, "Latest Puppet Run Contains Failures for Host: #{id}")
|
61
74
|
end
|
62
75
|
end
|
63
76
|
end
|
@@ -8,7 +8,7 @@ module Staypuft
|
|
8
8
|
validates :layout, :presence => true
|
9
9
|
validates :role, :presence => true
|
10
10
|
validates :role_id, :uniqueness => {:scope => :layout_id}
|
11
|
-
validates :deploy_order, :presence => true
|
11
|
+
validates :deploy_order, :presence => true
|
12
12
|
|
13
13
|
end
|
14
14
|
end
|
data/db/seeds.rb
CHANGED
@@ -158,7 +158,8 @@ services = {
|
|
158
158
|
:qpid_ha => {:name => "qpid (HA)", :class => ["quickstack::pacemaker::qpid",
|
159
159
|
"qpid::server"]},
|
160
160
|
:glance_ha => {:name => "Glance (HA)", :class => ["quickstack::pacemaker::glance"]},
|
161
|
-
:nova_ha => {:name => "Nova (HA)", :class => ["quickstack::pacemaker::nova"]}
|
161
|
+
:nova_ha => {:name => "Nova (HA)", :class => ["quickstack::pacemaker::nova"]},
|
162
|
+
:ha_db_temp => {:name => "Database (HA -- temp)", :class => ["quickstack::hamysql::singlenodetest"]}
|
162
163
|
}
|
163
164
|
services.each do |skey, svalue|
|
164
165
|
service = Staypuft::Service.where(:name=>svalue[:name]).first_or_create!
|
@@ -194,7 +195,7 @@ end
|
|
194
195
|
roles = [
|
195
196
|
{:name=>"Controller (Nova)",
|
196
197
|
:class=>"quickstack::nova_network::controller",
|
197
|
-
:layouts=>[[:non_ha_nova,
|
198
|
+
:layouts=>[[:non_ha_nova, 2]],
|
198
199
|
:services=>[:non_ha_qpid, :mysql, :non_ha_keystone, :nova_controller, :non_ha_glance, :cinder, :heat, :ceilometer]},
|
199
200
|
{:name=>"Compute (Nova)",
|
200
201
|
:class=>"quickstack::nova_network::compute",
|
@@ -202,7 +203,7 @@ roles = [
|
|
202
203
|
:services=>[:nova_compute]},
|
203
204
|
{:name=>"Controller (Neutron)",
|
204
205
|
:class=>"quickstack::neutron::controller",
|
205
|
-
:layouts=>[[:non_ha_neutron,
|
206
|
+
:layouts=>[[:non_ha_neutron, 2]],
|
206
207
|
:services=>[:non_ha_qpid, :mysql, :non_ha_keystone, :neutron_controller, :non_ha_glance, :cinder, :heat, :ceilometer]},
|
207
208
|
{:name=>"Compute (Neutron)",
|
208
209
|
:class=>"quickstack::neutron::compute",
|
@@ -210,11 +211,11 @@ roles = [
|
|
210
211
|
:services=>[:neutron_compute, :neutron_ovs_agent]},
|
211
212
|
{:name=>"Neutron Networker",
|
212
213
|
:class=>"quickstack::neutron::networker",
|
213
|
-
:layouts=>[[:non_ha_neutron,
|
214
|
+
:layouts=>[[:non_ha_neutron, 3]],
|
214
215
|
:services=>[:neutron_l3, :dhcp, :ovs]},
|
215
216
|
{:name=>"LVM Block Storage",
|
216
217
|
:class=>"quickstack::storage_backend::lvm_cinder",
|
217
|
-
:layouts=>[[:ha_nova,
|
218
|
+
:layouts=>[[:ha_nova, 1], [:ha_neutron, 1], [:non_ha_nova, 1], [:non_ha_neutron, 1]],
|
218
219
|
:services=>[:cinder]},
|
219
220
|
{:name=>"Swift Storage Node",
|
220
221
|
:class=>"quickstack::swift::storage",
|
@@ -222,12 +223,17 @@ roles = [
|
|
222
223
|
:services=>[:swift]},
|
223
224
|
{:name=>"HA Controller (Nova)",
|
224
225
|
:class=>[],
|
225
|
-
:layouts=>[[:ha_nova,
|
226
|
+
:layouts=>[[:ha_nova, 3]],
|
226
227
|
:services=>[:ha_controller, :keystone_ha, :load_balancer_ha, :memcached_ha, :qpid_ha, :glance_ha, :nova_ha]},
|
227
228
|
{:name=>"HA Controller (Neutron)",
|
228
229
|
:class=>[],
|
229
|
-
:layouts=>[[:ha_neutron,
|
230
|
-
:services=>[]}
|
230
|
+
:layouts=>[[:ha_neutron, 2]],
|
231
|
+
:services=>[]},
|
232
|
+
# this one is temporary -- goes away once db is added back to HA COntroller
|
233
|
+
{:name=>"HA Database (temporary)",
|
234
|
+
:class=>[],
|
235
|
+
:layouts=>[[:ha_nova, 2]],
|
236
|
+
:services=>[:ha_db_temp]}
|
231
237
|
]
|
232
238
|
|
233
239
|
roles.each do |r|
|
data/lib/staypuft/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: staypuft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: foreman-tasks
|