Пример #1
0
 def setUp(self):
     super(MongoDbClusterTasksTest, self).setUp()
     self.cluster_id = "1232"
     self.cluster_name = "Cluster-1234"
     self.tenant_id = "6789"
     self.db_cluster = DBCluster(ClusterTaskStatus.NONE,
                                 id=self.cluster_id,
                                 created=str(datetime.date),
                                 updated=str(datetime.date),
                                 name=self.cluster_name,
                                 task_id=ClusterTaskStatus.NONE._code,
                                 tenant_id=self.tenant_id,
                                 datastore_version_id="1",
                                 deleted=False)
     self.dbinst1 = DBInstance(InstanceTasks.NONE,
                               id="1",
                               name="member1",
                               compute_instance_id="compute-1",
                               task_id=InstanceTasks.NONE._code,
                               task_description=InstanceTasks.NONE._db_text,
                               volume_id="volume-1",
                               datastore_version_id="1",
                               cluster_id=self.cluster_id,
                               shard_id="shard-1",
                               type="member")
     self.dbinst2 = DBInstance(InstanceTasks.NONE,
                               id="2",
                               name="member2",
                               compute_instance_id="compute-2",
                               task_id=InstanceTasks.NONE._code,
                               task_description=InstanceTasks.NONE._db_text,
                               volume_id="volume-2",
                               datastore_version_id="1",
                               cluster_id=self.cluster_id,
                               shard_id="shard-1",
                               type="member")
     self.dbinst3 = DBInstance(InstanceTasks.NONE,
                               id="3",
                               name="mongos",
                               compute_instance_id="compute-3",
                               task_id=InstanceTasks.NONE._code,
                               task_description=InstanceTasks.NONE._db_text,
                               volume_id="volume-3",
                               datastore_version_id="1",
                               cluster_id=self.cluster_id,
                               shard_id="shard-1",
                               type="query_router")
     self.dbinst4 = DBInstance(InstanceTasks.NONE,
                               id="4",
                               name="configserver",
                               compute_instance_id="compute-4",
                               task_id=InstanceTasks.NONE._code,
                               task_description=InstanceTasks.NONE._db_text,
                               volume_id="volume-4",
                               datastore_version_id="1",
                               cluster_id=self.cluster_id,
                               shard_id="shard-1",
                               type="config_server")
     mock_ds1 = Mock()
     mock_ds1.name = 'mongodb'
     mock_dv1 = Mock()
     mock_dv1.name = '2.0.4'
     self.clustertasks = ClusterTasks(Mock(),
                                      self.db_cluster,
                                      datastore=mock_ds1,
                                      datastore_version=mock_dv1)
Пример #2
0
 def setUp(self):
     super(MongoDbClusterTasksTest, self).setUp()
     self.cluster_id = "1232"
     self.cluster_name = "Cluster-1234"
     self.tenant_id = "6789"
     self.db_cluster = DBCluster(
         ClusterTaskStatus.NONE,
         id=self.cluster_id,
         created=str(datetime.date),
         updated=str(datetime.date),
         name=self.cluster_name,
         task_id=ClusterTaskStatus.NONE._code,
         tenant_id=self.tenant_id,
         datastore_version_id="1",
         deleted=False,
     )
     self.dbinst1 = DBInstance(
         InstanceTasks.NONE,
         id="1",
         name="member1",
         compute_instance_id="compute-1",
         task_id=InstanceTasks.NONE._code,
         task_description=InstanceTasks.NONE._db_text,
         volume_id="volume-1",
         datastore_version_id="1",
         cluster_id=self.cluster_id,
         shard_id="shard-1",
         type="member",
     )
     self.dbinst2 = DBInstance(
         InstanceTasks.NONE,
         id="2",
         name="member2",
         compute_instance_id="compute-2",
         task_id=InstanceTasks.NONE._code,
         task_description=InstanceTasks.NONE._db_text,
         volume_id="volume-2",
         datastore_version_id="1",
         cluster_id=self.cluster_id,
         shard_id="shard-1",
         type="member",
     )
     self.dbinst3 = DBInstance(
         InstanceTasks.NONE,
         id="3",
         name="mongos",
         compute_instance_id="compute-3",
         task_id=InstanceTasks.NONE._code,
         task_description=InstanceTasks.NONE._db_text,
         volume_id="volume-3",
         datastore_version_id="1",
         cluster_id=self.cluster_id,
         shard_id="shard-1",
         type="query_router",
     )
     self.dbinst4 = DBInstance(
         InstanceTasks.NONE,
         id="4",
         name="configserver",
         compute_instance_id="compute-4",
         task_id=InstanceTasks.NONE._code,
         task_description=InstanceTasks.NONE._db_text,
         volume_id="volume-4",
         datastore_version_id="1",
         cluster_id=self.cluster_id,
         shard_id="shard-1",
         type="config_server",
     )
     mock_ds1 = Mock()
     mock_ds1.name = "mongodb"
     mock_dv1 = Mock()
     mock_dv1.name = "2.0.4"
     self.clustertasks = ClusterTasks(Mock(), self.db_cluster, datastore=mock_ds1, datastore_version=mock_dv1)
Пример #3
0
class MongoDbClusterTasksTest(testtools.TestCase):
    def setUp(self):
        super(MongoDbClusterTasksTest, self).setUp()
        self.cluster_id = "1232"
        self.cluster_name = "Cluster-1234"
        self.tenant_id = "6789"
        self.db_cluster = DBCluster(ClusterTaskStatus.NONE,
                                    id=self.cluster_id,
                                    created=str(datetime.date),
                                    updated=str(datetime.date),
                                    name=self.cluster_name,
                                    task_id=ClusterTaskStatus.NONE._code,
                                    tenant_id=self.tenant_id,
                                    datastore_version_id="1",
                                    deleted=False)
        self.dbinst1 = DBInstance(InstanceTasks.NONE,
                                  id="1",
                                  name="member1",
                                  compute_instance_id="compute-1",
                                  task_id=InstanceTasks.NONE._code,
                                  task_description=InstanceTasks.NONE._db_text,
                                  volume_id="volume-1",
                                  datastore_version_id="1",
                                  cluster_id=self.cluster_id,
                                  shard_id="shard-1",
                                  type="member")
        self.dbinst2 = DBInstance(InstanceTasks.NONE,
                                  id="2",
                                  name="member2",
                                  compute_instance_id="compute-2",
                                  task_id=InstanceTasks.NONE._code,
                                  task_description=InstanceTasks.NONE._db_text,
                                  volume_id="volume-2",
                                  datastore_version_id="1",
                                  cluster_id=self.cluster_id,
                                  shard_id="shard-1",
                                  type="member")
        self.dbinst3 = DBInstance(InstanceTasks.NONE,
                                  id="3",
                                  name="mongos",
                                  compute_instance_id="compute-3",
                                  task_id=InstanceTasks.NONE._code,
                                  task_description=InstanceTasks.NONE._db_text,
                                  volume_id="volume-3",
                                  datastore_version_id="1",
                                  cluster_id=self.cluster_id,
                                  shard_id="shard-1",
                                  type="query_router")
        self.dbinst4 = DBInstance(InstanceTasks.NONE,
                                  id="4",
                                  name="configserver",
                                  compute_instance_id="compute-4",
                                  task_id=InstanceTasks.NONE._code,
                                  task_description=InstanceTasks.NONE._db_text,
                                  volume_id="volume-4",
                                  datastore_version_id="1",
                                  cluster_id=self.cluster_id,
                                  shard_id="shard-1",
                                  type="config_server")
        mock_ds1 = Mock()
        mock_ds1.name = 'mongodb'
        mock_dv1 = Mock()
        mock_dv1.name = '2.0.4'
        self.clustertasks = ClusterTasks(Mock(),
                                         self.db_cluster,
                                         datastore=mock_ds1,
                                         datastore_version=mock_dv1)

    @patch.object(ClusterTasks, 'update_statuses_on_failure')
    @patch.object(InstanceServiceStatus, 'find_by')
    def test_all_instances_ready_bad_status(self, mock_find, mock_update):
        (mock_find.return_value.get_status.return_value
         ) = ServiceStatuses.FAILED
        ret_val = self.clustertasks._all_instances_ready(["1", "2", "3", "4"],
                                                         self.cluster_id)
        mock_update.assert_called_with(self.cluster_id, None)
        self.assertEqual(False, ret_val)

    @patch.object(InstanceServiceStatus, 'find_by')
    def test_all_instances_ready(self, mock_find):
        (mock_find.return_value.get_status.return_value
         ) = ServiceStatuses.RUNNING
        ret_val = self.clustertasks._all_instances_ready(["1", "2", "3", "4"],
                                                         self.cluster_id)
        self.assertEqual(True, ret_val)

    @patch.object(ClusterTasks, 'update_statuses_on_failure')
    @patch.object(ClusterTasks, 'get_guest')
    @patch.object(ClusterTasks, 'get_ip')
    @patch.object(datastore_models.Datastore, 'load')
    @patch.object(datastore_models.DatastoreVersion, 'load_by_uuid')
    def test_create_replica_set_failure(self, mock_dv, mock_ds, mock_ip,
                                        mock_guest, mock_update):
        mock_ip.return_value = "10.0.0.2"
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]

        mock_guest.return_value.add_members = Mock(
            side_effect=Exception("Boom!"))
        ret_val = self.clustertasks._create_replica_set(members,
                                                        self.cluster_id,
                                                        shard_id="shard-1")
        mock_guest.return_value.add_members.assert_called_with(["10.0.0.2"])
        mock_update.assert_called_with(self.cluster_id, 'shard-1')
        self.assertEqual(False, ret_val)

    @patch.object(ClusterTasks, 'get_guest')
    @patch.object(ClusterTasks, 'get_ip')
    @patch.object(datastore_models.Datastore, 'load')
    @patch.object(datastore_models.DatastoreVersion, 'load_by_uuid')
    def test_create_replica_set(self, mock_dv, mock_ds, mock_ip, mock_guest):
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]
        mock_ip.return_value = "10.0.0.2"
        mock_guest.return_value.add_members.return_value = Mock()

        ret_val = self.clustertasks._create_replica_set(members,
                                                        self.cluster_id,
                                                        shard_id="shard-1")
        mock_guest.return_value.add_members.assert_called_with(["10.0.0.2"])
        self.assertEqual(True, ret_val)

    @patch.object(ClusterTasks, 'update_statuses_on_failure')
    @patch.object(ClusterTasks, 'get_guest')
    @patch.object(ClusterTasks, 'get_ip')
    @patch.object(datastore_models.Datastore, 'load')
    @patch.object(datastore_models.DatastoreVersion, 'load_by_uuid')
    def test_create_shard_failure(self, mock_dv, mock_ds, mock_ip, mock_guest,
                                  mock_update):
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]
        query_routers = [
            BaseInstance(Mock(), self.dbinst3, Mock(),
                         InstanceServiceStatus(ServiceStatuses.NEW))
        ]
        mock_ip.return_value = "10.0.0.2"
        mock_guest.return_value.add_shard = Mock(
            side_effect=Exception("Boom!"))
        ret_val = self.clustertasks._create_shard(query_routers,
                                                  "rs1",
                                                  members,
                                                  self.cluster_id,
                                                  shard_id="shard-1")
        mock_guest.return_value.add_shard.assert_called_with("rs1", "10.0.0.2")
        mock_update.assert_called_with(self.cluster_id, "shard-1")
        self.assertEqual(False, ret_val)

    @patch.object(ClusterTasks, 'get_guest')
    @patch.object(ClusterTasks, 'get_ip')
    @patch.object(datastore_models.Datastore, 'load')
    @patch.object(datastore_models.DatastoreVersion, 'load_by_uuid')
    def test_create_shard(self, mock_dv, mock_ds, mock_ip, mock_guest):
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(),
                               InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]
        query_routers = [
            BaseInstance(Mock(), self.dbinst3, Mock(),
                         InstanceServiceStatus(ServiceStatuses.NEW))
        ]
        mock_ip.return_value = "10.0.0.2"
        mock_guest.return_value.add_shard.return_value = Mock()
        ret_val = self.clustertasks._create_shard(query_routers,
                                                  "rs1",
                                                  members,
                                                  self.cluster_id,
                                                  shard_id="shard-1")
        mock_guest.return_value.add_shard.assert_called_with("rs1", "10.0.0.2")
        self.assertEqual(True, ret_val)

    @patch.object(ClusterTasks, 'reset_task')
    @patch.object(ClusterTasks, 'get_guest')
    @patch.object(ClusterTasks, '_create_shard')
    @patch.object(ClusterTasks, '_create_replica_set')
    @patch.object(datastore_models.Datastore, 'load')
    @patch.object(datastore_models.DatastoreVersion, 'load_by_uuid')
    @patch.object(Instance, 'load')
    @patch.object(ClusterTasks, '_all_instances_ready')
    @patch.object(DBInstance, 'find_all')
    def test_add_shard_cluster(self, mock_find_all, mock_all_instances_ready,
                               mock_load, mock_dv, mock_ds,
                               mock_create_replica_set, mock_create_shard,
                               mock_guest, mock_reset_task):
        mock_find_all.return_value.all.return_value = [
            self.dbinst1, self.dbinst2, self.dbinst3, self.dbinst4
        ]
        mock_load.return_value = BaseInstance(
            Mock(), self.dbinst1, Mock(),
            InstanceServiceStatus(ServiceStatuses.NEW))
        mock_all_instances_ready.return_value = True
        mock_create_replica_set.return_value = True
        mock_create_shard.return_value = True
        mock_guest.return_value.cluster_complete.return_value = Mock()
        self.clustertasks.add_shard_cluster(Mock(), self.cluster_id, "shard-1",
                                            "rs1")
        mock_guest.return_value.cluster_complete.assert_called_with()
        mock_reset_task.assert_called_with()

    @patch.object(DBCluster, 'save')
    @patch.object(DBCluster, 'find_by')
    @patch.object(DBInstance, 'find_all')
    def test_delete_cluster(self, mock_find_all, mock_find_by, mock_save):
        mock_find_all.return_value.all.return_value = []
        mock_find_by.return_value = self.db_cluster
        self.clustertasks.delete_cluster(Mock(), self.cluster_id)
        self.assertEqual(ClusterTaskStatus.NONE, self.db_cluster.task_status)
        mock_save.assert_called_with()
Пример #4
0
class MongoDbClusterTasksTest(testtools.TestCase):
    def setUp(self):
        super(MongoDbClusterTasksTest, self).setUp()
        self.cluster_id = "1232"
        self.cluster_name = "Cluster-1234"
        self.tenant_id = "6789"
        self.db_cluster = DBCluster(
            ClusterTaskStatus.NONE,
            id=self.cluster_id,
            created=str(datetime.date),
            updated=str(datetime.date),
            name=self.cluster_name,
            task_id=ClusterTaskStatus.NONE._code,
            tenant_id=self.tenant_id,
            datastore_version_id="1",
            deleted=False,
        )
        self.dbinst1 = DBInstance(
            InstanceTasks.NONE,
            id="1",
            name="member1",
            compute_instance_id="compute-1",
            task_id=InstanceTasks.NONE._code,
            task_description=InstanceTasks.NONE._db_text,
            volume_id="volume-1",
            datastore_version_id="1",
            cluster_id=self.cluster_id,
            shard_id="shard-1",
            type="member",
        )
        self.dbinst2 = DBInstance(
            InstanceTasks.NONE,
            id="2",
            name="member2",
            compute_instance_id="compute-2",
            task_id=InstanceTasks.NONE._code,
            task_description=InstanceTasks.NONE._db_text,
            volume_id="volume-2",
            datastore_version_id="1",
            cluster_id=self.cluster_id,
            shard_id="shard-1",
            type="member",
        )
        self.dbinst3 = DBInstance(
            InstanceTasks.NONE,
            id="3",
            name="mongos",
            compute_instance_id="compute-3",
            task_id=InstanceTasks.NONE._code,
            task_description=InstanceTasks.NONE._db_text,
            volume_id="volume-3",
            datastore_version_id="1",
            cluster_id=self.cluster_id,
            shard_id="shard-1",
            type="query_router",
        )
        self.dbinst4 = DBInstance(
            InstanceTasks.NONE,
            id="4",
            name="configserver",
            compute_instance_id="compute-4",
            task_id=InstanceTasks.NONE._code,
            task_description=InstanceTasks.NONE._db_text,
            volume_id="volume-4",
            datastore_version_id="1",
            cluster_id=self.cluster_id,
            shard_id="shard-1",
            type="config_server",
        )
        mock_ds1 = Mock()
        mock_ds1.name = "mongodb"
        mock_dv1 = Mock()
        mock_dv1.name = "2.0.4"
        self.clustertasks = ClusterTasks(Mock(), self.db_cluster, datastore=mock_ds1, datastore_version=mock_dv1)

    @patch.object(ClusterTasks, "update_statuses_on_failure")
    @patch.object(InstanceServiceStatus, "find_by")
    def test_all_instances_ready_bad_status(self, mock_find, mock_update):
        (mock_find.return_value.get_status.return_value) = ServiceStatuses.FAILED
        ret_val = self.clustertasks._all_instances_ready(["1", "2", "3", "4"], self.cluster_id)
        mock_update.assert_called_with(self.cluster_id, None)
        self.assertEqual(False, ret_val)

    @patch.object(InstanceServiceStatus, "find_by")
    def test_all_instances_ready(self, mock_find):
        (mock_find.return_value.get_status.return_value) = ServiceStatuses.RUNNING
        ret_val = self.clustertasks._all_instances_ready(["1", "2", "3", "4"], self.cluster_id)
        self.assertEqual(True, ret_val)

    @patch.object(ClusterTasks, "update_statuses_on_failure")
    @patch.object(ClusterTasks, "get_guest")
    @patch.object(ClusterTasks, "get_ip")
    @patch.object(datastore_models.Datastore, "load")
    @patch.object(datastore_models.DatastoreVersion, "load_by_uuid")
    def test_create_replica_set_failure(self, mock_dv, mock_ds, mock_ip, mock_guest, mock_update):
        mock_ip.return_value = "10.0.0.2"
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]

        mock_guest.return_value.add_members = Mock(side_effect=Exception("Boom!"))
        ret_val = self.clustertasks._create_replica_set(members, self.cluster_id, shard_id="shard-1")
        mock_guest.return_value.add_members.assert_called_with(["10.0.0.2"])
        mock_update.assert_called_with(self.cluster_id, "shard-1")
        self.assertEqual(False, ret_val)

    @patch.object(ClusterTasks, "get_guest")
    @patch.object(ClusterTasks, "get_ip")
    @patch.object(datastore_models.Datastore, "load")
    @patch.object(datastore_models.DatastoreVersion, "load_by_uuid")
    def test_create_replica_set(self, mock_dv, mock_ds, mock_ip, mock_guest):
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]
        mock_ip.return_value = "10.0.0.2"
        mock_guest.return_value.add_members.return_value = Mock()

        ret_val = self.clustertasks._create_replica_set(members, self.cluster_id, shard_id="shard-1")
        mock_guest.return_value.add_members.assert_called_with(["10.0.0.2"])
        self.assertEqual(True, ret_val)

    @patch.object(ClusterTasks, "update_statuses_on_failure")
    @patch.object(ClusterTasks, "get_guest")
    @patch.object(ClusterTasks, "get_ip")
    @patch.object(datastore_models.Datastore, "load")
    @patch.object(datastore_models.DatastoreVersion, "load_by_uuid")
    def test_create_shard_failure(self, mock_dv, mock_ds, mock_ip, mock_guest, mock_update):
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]
        query_routers = [BaseInstance(Mock(), self.dbinst3, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))]
        mock_ip.return_value = "10.0.0.2"
        mock_guest.return_value.add_shard = Mock(side_effect=Exception("Boom!"))
        ret_val = self.clustertasks._create_shard(query_routers, "rs1", members, self.cluster_id, shard_id="shard-1")
        mock_guest.return_value.add_shard.assert_called_with("rs1", "10.0.0.2")
        mock_update.assert_called_with(self.cluster_id, "shard-1")
        self.assertEqual(False, ret_val)

    @patch.object(ClusterTasks, "get_guest")
    @patch.object(ClusterTasks, "get_ip")
    @patch.object(datastore_models.Datastore, "load")
    @patch.object(datastore_models.DatastoreVersion, "load_by_uuid")
    def test_create_shard(self, mock_dv, mock_ds, mock_ip, mock_guest):
        member1 = BaseInstance(Mock(), self.dbinst1, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        member2 = BaseInstance(Mock(), self.dbinst2, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        members = [member1, member2]
        query_routers = [BaseInstance(Mock(), self.dbinst3, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))]
        mock_ip.return_value = "10.0.0.2"
        mock_guest.return_value.add_shard.return_value = Mock()
        ret_val = self.clustertasks._create_shard(query_routers, "rs1", members, self.cluster_id, shard_id="shard-1")
        mock_guest.return_value.add_shard.assert_called_with("rs1", "10.0.0.2")
        self.assertEqual(True, ret_val)

    @patch.object(ClusterTasks, "reset_task")
    @patch.object(ClusterTasks, "get_guest")
    @patch.object(ClusterTasks, "_create_shard")
    @patch.object(ClusterTasks, "_create_replica_set")
    @patch.object(datastore_models.Datastore, "load")
    @patch.object(datastore_models.DatastoreVersion, "load_by_uuid")
    @patch.object(Instance, "load")
    @patch.object(ClusterTasks, "_all_instances_ready")
    @patch.object(DBInstance, "find_all")
    def test_add_shard_cluster(
        self,
        mock_find_all,
        mock_all_instances_ready,
        mock_load,
        mock_dv,
        mock_ds,
        mock_create_replica_set,
        mock_create_shard,
        mock_guest,
        mock_reset_task,
    ):
        mock_find_all.return_value.all.return_value = [self.dbinst1, self.dbinst2, self.dbinst3, self.dbinst4]
        mock_load.return_value = BaseInstance(Mock(), self.dbinst1, Mock(), InstanceServiceStatus(ServiceStatuses.NEW))
        mock_all_instances_ready.return_value = True
        mock_create_replica_set.return_value = True
        mock_create_shard.return_value = True
        mock_guest.return_value.cluster_complete.return_value = Mock()
        self.clustertasks.add_shard_cluster(Mock(), self.cluster_id, "shard-1", "rs1")
        mock_guest.return_value.cluster_complete.assert_called_with()
        mock_reset_task.assert_called_with()

    @patch.object(DBCluster, "save")
    @patch.object(DBCluster, "find_by")
    @patch.object(DBInstance, "find_all")
    def test_delete_cluster(self, mock_find_all, mock_find_by, mock_save):
        mock_find_all.return_value.all.return_value = []
        mock_find_by.return_value = self.db_cluster
        self.clustertasks.delete_cluster(Mock(), self.cluster_id)
        self.assertEqual(ClusterTaskStatus.NONE, self.db_cluster.task_status)
        mock_save.assert_called_with()