Merge "Prepare SignalResponder class for more signal types"
This commit is contained in:
commit
2842a454fe
|
@ -97,7 +97,7 @@ class AWSScalingPolicy(heat_sp.AutoScalingPolicy):
|
|||
|
||||
def FnGetRefId(self):
|
||||
if self.resource_id is not None:
|
||||
return six.text_type(self._get_signed_url())
|
||||
return six.text_type(self._get_ec2_signed_url())
|
||||
else:
|
||||
return six.text_type(self.name)
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ class WaitConditionHandle(wc_base.BaseWaitConditionHandle):
|
|||
'''
|
||||
if self.resource_id:
|
||||
wc = signal_responder.WAITCONDITION
|
||||
return six.text_type(self._get_signed_url(signal_type=wc))
|
||||
return six.text_type(self._get_ec2_signed_url(signal_type=wc))
|
||||
else:
|
||||
return six.text_type(self.name)
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@ class Restarter(signal_responder.SignalResponder):
|
|||
when there is an alarm.
|
||||
'''
|
||||
if name == self.ALARM_URL and self.resource_id is not None:
|
||||
return six.text_type(self._get_signed_url())
|
||||
return six.text_type(self._get_ec2_signed_url())
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -190,9 +190,9 @@ class AutoScalingPolicy(signal_responder.SignalResponder,
|
|||
|
||||
def _resolve_attribute(self, name):
|
||||
if name == self.ALARM_URL:
|
||||
return six.text_type(self._get_signed_url())
|
||||
return six.text_type(self._get_ec2_signed_url())
|
||||
elif name == self.SIGNAL_URL:
|
||||
return six.text_type(self._get_signal_url())
|
||||
return six.text_type(self._get_heat_signal_url())
|
||||
|
||||
def FnGetRefId(self):
|
||||
return resource.Resource.FnGetRefId(self)
|
||||
|
|
|
@ -425,7 +425,7 @@ class SoftwareDeployment(signal_responder.SignalResponder):
|
|||
scl.DESCRIPTION: _('ID of signal to use for signaling '
|
||||
'output values'),
|
||||
scl.TYPE: 'String',
|
||||
'value': self._get_signed_url()
|
||||
'value': self._get_ec2_signed_url()
|
||||
})
|
||||
inputs.append({
|
||||
scl.NAME: self.DEPLOY_SIGNAL_VERB,
|
||||
|
@ -537,7 +537,7 @@ class SoftwareDeployment(signal_responder.SignalResponder):
|
|||
|
||||
def _delete_resource(self):
|
||||
if self._signal_transport_cfn():
|
||||
self._delete_signed_url()
|
||||
self._delete_ec2_signed_url()
|
||||
self._delete_user()
|
||||
elif self._signal_transport_heat():
|
||||
self._delete_user()
|
||||
|
|
|
@ -408,7 +408,7 @@ class Workflow(signal_responder.SignalResponder,
|
|||
self.INPUT: self.properties.get(self.INPUT)}
|
||||
|
||||
elif name == self.ALARM_URL:
|
||||
return six.text_type(self._get_signed_url())
|
||||
return six.text_type(self._get_ec2_signed_url())
|
||||
|
||||
|
||||
def resource_mapping():
|
||||
|
|
|
@ -42,12 +42,13 @@ class SignalResponder(stack_user.StackUser):
|
|||
|
||||
def handle_delete(self):
|
||||
super(SignalResponder, self).handle_delete()
|
||||
self._delete_signed_url()
|
||||
self._delete_ec2_signed_url()
|
||||
self._delete_heat_signal_url()
|
||||
|
||||
def _delete_signed_url(self):
|
||||
def _delete_ec2_signed_url(self):
|
||||
self.data_delete('ec2_signed_url')
|
||||
|
||||
def _get_signed_url(self, signal_type=SIGNAL):
|
||||
def _get_ec2_signed_url(self, signal_type=SIGNAL):
|
||||
"""Create properly formatted and pre-signed URL.
|
||||
|
||||
This uses the created user for the credentials.
|
||||
|
@ -105,8 +106,11 @@ class SignalResponder(stack_user.StackUser):
|
|||
self.data_set('ec2_signed_url', url)
|
||||
return url
|
||||
|
||||
def _get_signal_url(self):
|
||||
stored = self.data().get('signal_url')
|
||||
def _delete_heat_signal_url(self):
|
||||
self.data_delete('heat_signal_url')
|
||||
|
||||
def _get_heat_signal_url(self):
|
||||
stored = self.data().get('heat_signal_url')
|
||||
if stored is not None:
|
||||
return stored
|
||||
|
||||
|
@ -117,5 +121,5 @@ class SignalResponder(stack_user.StackUser):
|
|||
url = urlparse.urlunsplit(
|
||||
(host_url.scheme, host_url.netloc, 'v1/%s/signal' % path, '', ''))
|
||||
|
||||
self.data_set('signal_url', url)
|
||||
self.data_set('heat_signal_url', url)
|
||||
return url
|
||||
|
|
|
@ -145,7 +145,7 @@ class SignalResource(signal_responder.SignalResponder):
|
|||
|
||||
def _resolve_attribute(self, name):
|
||||
if name == 'AlarmUrl' and self.resource_id is not None:
|
||||
return six.text_type(self._get_signed_url())
|
||||
return six.text_type(self._get_ec2_signed_url())
|
||||
|
||||
|
||||
class StackUserResource(stack_user.StackUser):
|
||||
|
|
|
@ -163,10 +163,10 @@ class SoftwareDeploymentTest(common.HeatTestCase):
|
|||
self.patchobject(sd.SoftwareDeployment, '_create_user')
|
||||
self.patchobject(sd.SoftwareDeployment, '_create_keypair')
|
||||
self.patchobject(sd.SoftwareDeployment, '_delete_user')
|
||||
self.patchobject(sd.SoftwareDeployment, '_delete_signed_url')
|
||||
get_signed_url = self.patchobject(
|
||||
sd.SoftwareDeployment, '_get_signed_url')
|
||||
get_signed_url.return_value = 'http://192.0.2.2/signed_url'
|
||||
self.patchobject(sd.SoftwareDeployment, '_delete_ec2_signed_url')
|
||||
get_ec2_signed_url = self.patchobject(
|
||||
sd.SoftwareDeployment, '_get_ec2_signed_url')
|
||||
get_ec2_signed_url.return_value = 'http://192.0.2.2/signed_url'
|
||||
|
||||
self.deployment = self.stack['deployment_mysql']
|
||||
|
||||
|
|
Loading…
Reference in New Issue