Make sure create happens if a resource has been deleted
(recovery situation) Change-Id: Ife4492bb32c4b1bbcedeba6e6bdd89bd952effcd Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
This commit is contained in:
parent
986d203cca
commit
a8ae32ab5c
|
@ -63,7 +63,7 @@ class CloudWatchAlarm(Resource):
|
|||
return Resource.validate(self)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
|
@ -81,8 +81,7 @@ class CloudWatchAlarm(Resource):
|
|||
self.state_set(self.CREATE_COMPLETE)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
|
|
@ -43,7 +43,7 @@ class ElasticIp(Resource):
|
|||
|
||||
def create(self):
|
||||
"""Allocate a floating IP for the current tenant."""
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
super(ElasticIp, self).create()
|
||||
|
@ -62,8 +62,7 @@ class ElasticIp(Resource):
|
|||
|
||||
def delete(self):
|
||||
"""De-allocate a floating IP."""
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
@ -110,7 +109,7 @@ class ElasticIpAssociation(Resource):
|
|||
def create(self):
|
||||
"""Add a floating IP address to a server."""
|
||||
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
super(ElasticIpAssociation, self).create()
|
||||
|
@ -126,8 +125,7 @@ class ElasticIpAssociation(Resource):
|
|||
|
||||
def delete(self):
|
||||
"""Remove a floating IP address from a server."""
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
|
|
@ -41,15 +41,14 @@ class EscalationPolicy(Resource):
|
|||
return Resource.validate(self)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
self.state_set(self.CREATE_COMPLETE)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
|
|
@ -49,15 +49,14 @@ class Restarter(Resource):
|
|||
super(Restarter, self).__init__(name, json_snippet, stack)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
self.state_set(self.CREATE_COMPLETE)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
Resource.delete(self)
|
||||
|
@ -219,7 +218,7 @@ class Instance(Resource):
|
|||
"""
|
||||
pass
|
||||
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
|
@ -288,8 +287,7 @@ class Instance(Resource):
|
|||
return None
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
Resource.delete(self)
|
||||
|
|
|
@ -209,7 +209,7 @@ class GenericResource(Resource):
|
|||
super(GenericResource, self).__init__(name, json_snippet, stack)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
super(GenericResource, self).create()
|
||||
|
|
|
@ -35,7 +35,7 @@ class SecurityGroup(Resource):
|
|||
super(SecurityGroup, self).__init__(name, json_snippet, stack)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
|
@ -78,8 +78,7 @@ class SecurityGroup(Resource):
|
|||
return Resource.validate(self)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
|
|
@ -34,7 +34,7 @@ class Volume(Resource):
|
|||
super(Volume, self).__init__(name, json_snippet, stack)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
super(Volume, self).create()
|
||||
|
@ -59,8 +59,7 @@ class Volume(Resource):
|
|||
return Resource.validate(self)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
if self.instance_id is not None:
|
||||
|
@ -90,8 +89,7 @@ class VolumeAttachment(Resource):
|
|||
super(VolumeAttachment, self).__init__(name, json_snippet, stack)
|
||||
|
||||
def create(self):
|
||||
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
super(VolumeAttachment, self).create()
|
||||
|
@ -122,8 +120,7 @@ class VolumeAttachment(Resource):
|
|||
return Resource.validate(self)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
Resource.delete(self)
|
||||
|
|
|
@ -38,7 +38,7 @@ class WaitConditionHandle(Resource):
|
|||
super(WaitConditionHandle, self).__init__(name, json_snippet, stack)
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
|
@ -51,8 +51,7 @@ class WaitConditionHandle(Resource):
|
|||
self.state_set(self.CREATE_COMPLETE)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
@ -84,7 +83,7 @@ class WaitCondition(Resource):
|
|||
return self.resource_id
|
||||
|
||||
def create(self):
|
||||
if self.state is not None:
|
||||
if self.state in [self.CREATE_IN_PROGRESS, self.CREATE_COMPLETE]:
|
||||
return
|
||||
self.state_set(self.CREATE_IN_PROGRESS)
|
||||
Resource.create(self)
|
||||
|
@ -139,8 +138,7 @@ class WaitCondition(Resource):
|
|||
raise exception.Error(reason)
|
||||
|
||||
def delete(self):
|
||||
if self.state == self.DELETE_IN_PROGRESS or \
|
||||
self.state == self.DELETE_COMPLETE:
|
||||
if self.state in [self.DELETE_IN_PROGRESS, self.DELETE_COMPLETE]:
|
||||
return
|
||||
|
||||
self.state_set(self.DELETE_IN_PROGRESS)
|
||||
|
|
Loading…
Reference in New Issue