def testDeleteRoleFromPrimarySuccess(self): """Test manager can delete a role from a primary server successfully. Confirm that database call is made, and actions are taken, e.g., restart scheduler to delete an existing drone. """ server_manager_utils.use_server_db().MultipleTimes().AndReturn(True) server_models.validate(role=server_models.ServerRole.ROLE.DRONE) self.mox.StubOutWithMock(self.PRIMARY_DRONE, 'get_role_names') self.PRIMARY_DRONE.get_role_names().MultipleTimes().AndReturn( [server_models.ServerRole.ROLE.DRONE]) self.mox.StubOutWithMock(self.PRIMARY_DRONE.roles, 'get') self.PRIMARY_DRONE.roles.get( role=server_models.ServerRole.ROLE.DRONE).AndReturn( self.DRONE_ROLE) server_models.Server.objects.filter( roles__role=server_models.ServerRole.ROLE.SCHEDULER, status=server_models.Server.STATUS.PRIMARY).AndReturn( [self.PRIMARY_SCHEDULER]) server_manager.server_manager_utils.warn_missing_role( server_models.ServerRole.ROLE.DRONE, self.PRIMARY_DRONE) infra.execute_command(mox.IgnoreArg(), mox.IgnoreArg()) self.mox.ReplayAll() server_manager._delete_role(self.PRIMARY_DRONE, server_models.ServerRole.ROLE.DRONE, action=True)
def testDeleteRoleFromBackupSuccess(self): """Test manager can delete a role from a backup server successfully. Confirm that database call is made, and no action is taken, e.g., restart scheduler to delete an existing devserver. """ server_models.validate(role=server_models.ServerRole.ROLE.DRONE) server_manager_utils.use_server_db().MultipleTimes().AndReturn(True) self.mox.StubOutWithMock(self.BACKUP_DRONE, 'get_role_names') self.BACKUP_DRONE.get_role_names().MultipleTimes().AndReturn( [server_models.ServerRole.ROLE.DRONE]) self.mox.StubOutWithMock(self.BACKUP_DRONE.roles, 'get') self.BACKUP_DRONE.roles.get( role=server_models.ServerRole.ROLE.DRONE).AndReturn( self.DRONE_ROLE) self.mox.ReplayAll() server_manager._delete_role(server=self.BACKUP_DRONE, role=server_models.ServerRole.ROLE.DRONE, action=True)
def testDeleteRoleFromPrimarySuccess_NoAction(self): """Test manager can delete a role from a primary server successfully. Confirm that database call is made, and no action is taken as action is set to False. """ server_manager_utils.use_server_db().MultipleTimes().AndReturn(True) server_models.validate(role=server_models.ServerRole.ROLE.DRONE) self.mox.StubOutWithMock(self.PRIMARY_DRONE, 'get_role_names') self.PRIMARY_DRONE.get_role_names().MultipleTimes().AndReturn( [server_models.ServerRole.ROLE.DRONE]) self.mox.StubOutWithMock(self.PRIMARY_DRONE.roles, 'get') self.PRIMARY_DRONE.roles.get( role=server_models.ServerRole.ROLE.DRONE).AndReturn( self.DRONE_ROLE) server_manager.server_manager_utils.warn_missing_role( server_models.ServerRole.ROLE.DRONE, self.PRIMARY_DRONE) self.mox.ReplayAll() server_manager._delete_role(self.PRIMARY_DRONE, server_models.ServerRole.ROLE.DRONE, action=False)