Merge "Prepare SignalResponder class for more signal types"

This commit is contained in:
Jenkins 2015-07-02 06:52:10 +00:00 committed by Gerrit Code Review
commit 2842a454fe
9 changed files with 23 additions and 19 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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():

View File

@ -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)

View File

@ -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()

View File

@ -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():

View File

@ -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

View File

@ -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):

View File

@ -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']