130
130
self.assertEqual((rsrc.CREATE, rsrc.COMPLETE), rsrc.state)
133
def test_is_in_progress(self):
133
def test_cooldown_is_in_progress_toosoon(self):
134
134
t = template_format.parse(as_template)
135
135
stack = utils.parse_stack(t, params=as_params)
136
136
pol = self.create_scaling_policy(t, stack, 'my-policy')
138
138
now = timeutils.utcnow()
139
previous_meta = {now.isoformat(): 'ChangeInCapacity : 1'}
140
self.patchobject(pol, 'metadata_get', return_value=previous_meta)
141
self.assertTrue(pol._cooldown_inprogress())
143
def test_not_in_progress(self):
139
previous_meta = {'cooldown': {
140
now.isoformat(): 'ChangeInCapacity : 1'}}
141
self.patchobject(pol, 'metadata_get', return_value=previous_meta)
142
self.assertTrue(pol._cooldown_inprogress())
144
def test_cooldown_is_in_progress_scaling_unfinished(self):
145
t = template_format.parse(as_template)
146
stack = utils.parse_stack(t, params=as_params)
147
pol = self.create_scaling_policy(t, stack, 'my-policy')
149
previous_meta = {'scaling_in_progress': True}
150
self.patchobject(pol, 'metadata_get', return_value=previous_meta)
151
self.assertTrue(pol._cooldown_inprogress())
153
def test_cooldown_not_in_progress(self):
144
154
t = template_format.parse(as_template)
145
155
stack = utils.parse_stack(t, params=as_params)
146
156
pol = self.create_scaling_policy(t, stack, 'my-policy')
148
158
awhile_ago = timeutils.utcnow() - datetime.timedelta(seconds=100)
149
previous_meta = {awhile_ago.isoformat(): 'ChangeInCapacity : 1'}
161
awhile_ago.isoformat(): 'ChangeInCapacity : 1'
163
'scaling_in_progress': False
150
165
self.patchobject(pol, 'metadata_get', return_value=previous_meta)
151
166
self.assertFalse(pol._cooldown_inprogress())
161
176
pol = self.create_scaling_policy(t, stack, 'my-policy')
163
178
now = timeutils.utcnow()
164
previous_meta = {now.isoformat(): 'ChangeInCapacity : 1'}
179
previous_meta = {'cooldown': {
180
now.isoformat(): 'ChangeInCapacity : 1'}}
165
181
self.patchobject(pol, 'metadata_get', return_value=previous_meta)
166
182
self.assertFalse(pol._cooldown_inprogress())
177
193
pol = self.create_scaling_policy(t, stack, 'my-policy')
179
195
now = timeutils.utcnow()
180
previous_meta = {now.isoformat(): 'ChangeInCapacity : 1'}
196
previous_meta = {'cooldown': {
197
now.isoformat(): 'ChangeInCapacity : 1'}}
181
198
self.patchobject(pol, 'metadata_get', return_value=previous_meta)
182
199
self.assertFalse(pol._cooldown_inprogress())
191
208
meta_set = self.patchobject(pol, 'metadata_set')
192
209
self.patchobject(timeutils, 'utcnow', return_value=nowish)
193
210
pol._cooldown_timestamp(reason)
194
meta_set.assert_called_once_with({nowish.isoformat(): reason})
211
meta_set.assert_called_once_with(
212
{'cooldown': {nowish.isoformat(): reason},
213
'scaling_in_progress': False})
197
216
class ScalingPolicyAttrTest(common.HeatTestCase):