Szilard Nemeth created SUBMARINE-60:
---------------------------------------
Summary: Remove stubServiceClient from YarnServiceUtils
Key: SUBMARINE-60
URL: https://issues.apache.org/jira/browse/SUBMARINE-60
Project: Hadoop Submarine
Issue Type: Improvement
Reporter: Szilard Nemeth
We have a field in YarnServiceUtils:
org.apache.hadoop.yarn.submarine.runtimes.yarnservice.YarnServiceUtils#stubServiceClient
There's a setter for this field, marked with VisibleForTesting and the test
code uses this setter to set the value of this field to a mock.
Then, when createServiceClient gets called from the production code, it first
checks if we have this field set. If so, we return it, otherwise we create a
normal app admin client.
This is an anti-pattern to just have test-related fields or methods in the
production code.
Currently, YarnServiceJobSubmitter and YarnServiceJobMonitor are the only users
of
org.apache.hadoop.yarn.submarine.runtimes.yarnservice.YarnServiceUtils#createServiceClient.
This static could be easily replaced with a factory that receives the current
Configuration object then returns the AppAdminClient. The test should inject
the mock factory either via the constructor or with a setter (constructor is
preferred).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)