**Apache Airflow version**: latest

**What happened**:

There are more terminus task states than the ones we currently check in Docker Swarm Operator. This makes the operator run infinitely when the service goes into these states.
 
**What you expected to happen**:

The operator should terminate.

**How to reproduce it**:

Run a Airflow task via the Docker Swarm operator and return failed status code from it.


**Anything else we need to know**:

So as a fix I have added the complete list of tasks from the Docker reference (https://docs.docker.com/engine/swarm/how-swarm-mode-works/swarm-task-states/)
We would like to send this patch back upstream to Apache Airflow.

tests/providers/docker/operators/test_docker_swarm.py
mock_obj = mock.Mock()
        client_mock = mock.Mock(spec=APIClient)
        client_mock.create_service.return_value = {'ID': 'some_id'}
        client_mock.images.return_value = []
        client_mock.pull.return_value = [b'{"status":"pull log"}']
        client_mock.tasks.return_value = [{'Status': {'State': 'complete'}}]
        types_mock.TaskTemplate.return_value = mock_obj
        types_mock.ContainerSpec.return_value = mock_obj
        types_mock.RestartPolicy.return_value = mock_obj
        types_mock.Resources.return_value = mock_obj
        client_class_mock.return_value = client_mock
        operator = DockerSwarmOperator(image='', auto_remove=False, task_id='unittest', enable_logging=False)
        operator.execute(None)
        assert (
            client_mock.remove_service.call_count == 0
        ), 'Docker service being removed even when `auto_remove` set to `False`'
    @mock.patch('airflow.providers.docker.operators.docker.APIClient')
    @mock.patch('airflow.providers.docker.operators.docker_swarm.types')
    def test_failed_service_raises_error(self, types_mock, client_class_mock):