This is an automated email from the ASF dual-hosted git repository. altay pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push: new d8c67a6 Fix a bug in use of no_use_multiple_sdk_containers experiment flag. Setting this flag should prevent the addition of use_multiple_sdk_containers experiment. new d85452e Merge pull request #7741 from aaltay/expb d8c67a6 is described below commit d8c67a6386605ef4c41d7153c2ea127084eda919 Author: Ahmet Altay <al...@google.com> AuthorDate: Tue Feb 5 16:04:06 2019 -0800 Fix a bug in use of no_use_multiple_sdk_containers experiment flag. Setting this flag should prevent the addition of use_multiple_sdk_containers experiment. --- .../runners/dataflow/internal/apiclient.py | 5 ++-- .../runners/dataflow/internal/apiclient_test.py | 28 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py b/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py index bad5222..8bcfbe1 100644 --- a/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py +++ b/sdks/python/apache_beam/runners/dataflow/internal/apiclient.py @@ -184,8 +184,9 @@ class Environment(object): # add the flag if 'no_use_multiple_sdk_containers' is present. # TODO: Cleanup use_multiple_sdk_containers once we deprecate Python SDK # till version 2.4. - if ('use_multiple_sdk_containers' not in self.proto.experiments and - 'no_use_multiple_sdk_containers' not in self.proto.experiments): + debug_options_experiments = self.debug_options.experiments + if ('use_multiple_sdk_containers' not in debug_options_experiments and + 'no_use_multiple_sdk_containers' not in debug_options_experiments): self.debug_options.experiments.append('use_multiple_sdk_containers') # Experiments if self.debug_options.experiments: diff --git a/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py b/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py index d5d15f6..6614ab1 100644 --- a/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py +++ b/sdks/python/apache_beam/runners/dataflow/internal/apiclient_test.py @@ -356,6 +356,34 @@ class UtilTest(unittest.TestCase): self.assertEqual('key5', job.proto.labels.additionalProperties[4].key) self.assertEqual('', job.proto.labels.additionalProperties[4].value) + def test_experiment_use_multiple_sdk_containers(self): + pipeline_options = PipelineOptions( + ['--project', 'test_project', '--job_name', 'test_job_name', + '--temp_location', 'gs://test-location/temp', + '--experiments', 'beam_fn_api']) + environment = apiclient.Environment( + [], pipeline_options, 1, FAKE_PIPELINE_URL) + self.assertIn("use_multiple_sdk_containers", environment.proto.experiments) + + pipeline_options = PipelineOptions( + ['--project', 'test_project', '--job_name', 'test_job_name', + '--temp_location', 'gs://test-location/temp', + '--experiments', 'beam_fn_api', + '--experiments', 'use_multiple_sdk_containers']) + environment = apiclient.Environment( + [], pipeline_options, 1, FAKE_PIPELINE_URL) + self.assertIn("use_multiple_sdk_containers", environment.proto.experiments) + + pipeline_options = PipelineOptions( + ['--project', 'test_project', '--job_name', 'test_job_name', + '--temp_location', 'gs://test-location/temp', + '--experiments', 'beam_fn_api', + '--experiments', 'no_use_multiple_sdk_containers']) + environment = apiclient.Environment( + [], pipeline_options, 1, FAKE_PIPELINE_URL) + self.assertNotIn( + "use_multiple_sdk_containers", environment.proto.experiments) + if __name__ == '__main__': unittest.main()