summaryrefslogtreecommitdiff
path: root/trove/taskmanager/manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'trove/taskmanager/manager.py')
-rw-r--r--trove/taskmanager/manager.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/trove/taskmanager/manager.py b/trove/taskmanager/manager.py
index e8827d37..4e299ee7 100644
--- a/trove/taskmanager/manager.py
+++ b/trove/taskmanager/manager.py
@@ -14,10 +14,11 @@
# under the License.
from trove.common.context import TroveContext
-import trove.extensions.mgmt.instances.models as mgmtmodels
+from trove.backup.models import Backup
import trove.common.cfg as cfg
from trove.common import exception
from trove.common import strategy
+import trove.extensions.mgmt.instances.models as mgmtmodels
from trove.openstack.common import log as logging
from trove.openstack.common import importutils
from trove.openstack.common import periodic_task
@@ -93,12 +94,15 @@ class Manager(periodic_task.PeriodicTasks):
snapshot = instance_tasks.get_replication_master_snapshot(context,
slave_of_id)
- instance_tasks.create_instance(flavor, image_id, databases, users,
- datastore_manager, packages,
- volume_size,
- snapshot['dataset']['snapshot_id'],
- availability_zone, root_password,
- nics, overrides, None)
+ try:
+ instance_tasks.create_instance(flavor, image_id, databases, users,
+ datastore_manager, packages,
+ volume_size,
+ snapshot['dataset']['snapshot_id'],
+ availability_zone, root_password,
+ nics, overrides, None)
+ finally:
+ Backup.delete(context, snapshot['dataset']['snapshot_id'])
instance_tasks.attach_replication_slave(snapshot)