diff --git a/clickhouse/assets/configuration/spec.yaml b/clickhouse/assets/configuration/spec.yaml index de5c8f12a931f..f28944752a453 100644 --- a/clickhouse/assets/configuration/spec.yaml +++ b/clickhouse/assets/configuration/spec.yaml @@ -24,7 +24,7 @@ files: value: type: integer example: 9000 - - name: user + - name: username description: The database user to authenticate as. value: type: string diff --git a/clickhouse/datadog_checks/clickhouse/clickhouse.py b/clickhouse/datadog_checks/clickhouse/clickhouse.py index 077f7c4d1d25c..dcde7c1b1873a 100644 --- a/clickhouse/datadog_checks/clickhouse/clickhouse.py +++ b/clickhouse/datadog_checks/clickhouse/clickhouse.py @@ -21,7 +21,7 @@ def __init__(self, name, init_config, instances): self._server = self.instance.get('server', '') self._port = self.instance.get('port') self._db = self.instance.get('db', 'default') - self._user = self.instance.get('user', 'default') + self._user = self.instance.get('username', self.instance.get('user', 'default')) self._password = self.instance.get('password', '') self._connect_timeout = float(self.instance.get('connect_timeout', 10)) self._read_timeout = float(self.instance.get('read_timeout', 10)) @@ -80,6 +80,8 @@ def ping_clickhouse(self): return self._client.connection.ping() def connect(self): + if self.instance.get('user'): + self._log_deprecation('_config_renamed', 'user', 'username') if self._client is not None: self.log.debug('Clickhouse client already exists. Pinging Clickhouse Server.') try: diff --git a/clickhouse/datadog_checks/clickhouse/data/conf.yaml.example b/clickhouse/datadog_checks/clickhouse/data/conf.yaml.example index 7ffb99d7726a2..632da1f3efe97 100644 --- a/clickhouse/datadog_checks/clickhouse/data/conf.yaml.example +++ b/clickhouse/datadog_checks/clickhouse/data/conf.yaml.example @@ -35,10 +35,10 @@ instances: # # port: 9000 - ## @param user - string - optional - default: default + ## @param username - string - optional - default: default ## The database user to authenticate as. # - # user: default + # username: default ## @param password - string - optional ## The password of `username`. diff --git a/datadog_checks_base/datadog_checks/base/checks/base.py b/datadog_checks_base/datadog_checks/base/checks/base.py index 481bfa019c611..b1e7a0217f638 100644 --- a/datadog_checks_base/datadog_checks/base/checks/base.py +++ b/datadog_checks_base/datadog_checks/base/checks/base.py @@ -240,6 +240,13 @@ def __init__(self, *args, **kwargs): 'The default will become `true` and cannot be changed in Agent version 8.' ), ), + '_config_renamed': ( + False, + ( + 'DEPRECATION NOTICE: The `%s` config option has been renamed ' + 'to `%s` and will be removed in a future release.' + ), + ), } # type: Dict[str, Tuple[bool, str]] # Setup metric limits diff --git a/mysql/assets/configuration/spec.yaml b/mysql/assets/configuration/spec.yaml index 2ca926e8a4690..5ff8d31815e1c 100644 --- a/mysql/assets/configuration/spec.yaml +++ b/mysql/assets/configuration/spec.yaml @@ -26,7 +26,7 @@ files: example: localhost display_default: null - - name: user + - name: username description: | Username used to connect to MySQL. enabled: true @@ -35,7 +35,7 @@ files: example: datadog display_default: null - - name: pass + - name: password description: | Password associated to the MySQL user. enabled: true diff --git a/mysql/datadog_checks/mysql/config.py b/mysql/datadog_checks/mysql/config.py index 9c7a61584f186..2e0cdd0c1068b 100644 --- a/mysql/datadog_checks/mysql/config.py +++ b/mysql/datadog_checks/mysql/config.py @@ -16,8 +16,8 @@ def __init__(self, instance): self.tags = list(instance.get('tags', [])) self.mysql_sock = instance.get('sock', '') self.defaults_file = instance.get('defaults_file', '') - self.user = instance.get('user', '') - self.password = str(instance.get('pass', '')) + self.user = instance.get('username', instance.get('user', '')) + self.password = str(instance.get('password', instance.get('pass', ''))) self.tags = self._build_tags(instance.get('tags', [])) self.options = instance.get('options', {}) or {} # options could be None if empty in the YAML replication_channel = self.options.get('replication_channel') diff --git a/mysql/datadog_checks/mysql/config_models/defaults.py b/mysql/datadog_checks/mysql/config_models/defaults.py index 434408ab67c6a..9f9c6a5174687 100644 --- a/mysql/datadog_checks/mysql/config_models/defaults.py +++ b/mysql/datadog_checks/mysql/config_models/defaults.py @@ -52,7 +52,7 @@ def instance_options(field, value): return get_default_field_value(field, value) -def instance_pass_(field, value): +def instance_password(field, value): return get_default_field_value(field, value) @@ -88,5 +88,5 @@ def instance_use_global_custom_queries(field, value): return 'true' -def instance_user(field, value): +def instance_username(field, value): return 'datadog' diff --git a/mysql/datadog_checks/mysql/config_models/instance.py b/mysql/datadog_checks/mysql/config_models/instance.py index a5e5ecc9a9fff..799637e1d9725 100644 --- a/mysql/datadog_checks/mysql/config_models/instance.py +++ b/mysql/datadog_checks/mysql/config_models/instance.py @@ -5,7 +5,7 @@ from typing import Any, Mapping, Optional, Sequence -from pydantic import BaseModel, Field, root_validator, validator +from pydantic import BaseModel, root_validator, validator from datadog_checks.base.utils.functions import identity from datadog_checks.base.utils.models import validation @@ -80,7 +80,7 @@ class Config: max_custom_queries: Optional[int] min_collection_interval: Optional[float] options: Optional[Options] - pass_: Optional[str] = Field(None, alias='pass') + password: Optional[str] port: Optional[float] queries: Optional[Sequence[Mapping[str, Any]]] service: Optional[str] @@ -89,7 +89,7 @@ class Config: statement_samples: Optional[StatementSamples] tags: Optional[Sequence[str]] use_global_custom_queries: Optional[str] - user: Optional[str] + username: Optional[str] @root_validator(pre=True) def _initial_validation(cls, values): diff --git a/mysql/datadog_checks/mysql/data/conf.yaml.example b/mysql/datadog_checks/mysql/data/conf.yaml.example index 0cdc6b6ba3b48..189bc46b00b7a 100644 --- a/mysql/datadog_checks/mysql/data/conf.yaml.example +++ b/mysql/datadog_checks/mysql/data/conf.yaml.example @@ -32,15 +32,15 @@ instances: # - host: localhost - ## @param user - string - optional + ## @param username - string - optional ## Username used to connect to MySQL. # - user: datadog + username: datadog - ## @param pass - string - optional + ## @param password - string - optional ## Password associated to the MySQL user. # - pass: + password: ## @param port - number - optional - default: 3306 ## Port to use when connecting to MySQL. diff --git a/mysql/datadog_checks/mysql/mysql.py b/mysql/datadog_checks/mysql/mysql.py index a9143b8f13569..8dcc1ac4c783e 100644 --- a/mysql/datadog_checks/mysql/mysql.py +++ b/mysql/datadog_checks/mysql/mysql.py @@ -102,6 +102,12 @@ def get_library_versions(cls): return {'pymysql': pymysql.__version__} def check(self, _): + if self.instance.get('user'): + self._log_deprecation('_config_renamed', 'user', 'username') + + if self.instance.get('pass'): + self._log_deprecation('_config_renamed', 'pass', 'password') + tags = list(self._config.tags) self._set_qcache_stats() with self._connect() as db: diff --git a/oracle/assets/configuration/spec.yaml b/oracle/assets/configuration/spec.yaml index 2362a408ce299..dc930dbf8a88c 100644 --- a/oracle/assets/configuration/spec.yaml +++ b/oracle/assets/configuration/spec.yaml @@ -21,7 +21,7 @@ files: required: true value: type: string - - name: user + - name: username description: The username for the Datadog user account. required: true value: diff --git a/oracle/datadog_checks/oracle/config_models/instance.py b/oracle/datadog_checks/oracle/config_models/instance.py index 6b2db4bc0bf40..b71637d16ef7e 100644 --- a/oracle/datadog_checks/oracle/config_models/instance.py +++ b/oracle/datadog_checks/oracle/config_models/instance.py @@ -37,7 +37,7 @@ class Config: service_name: str tags: Optional[Sequence[str]] use_global_custom_queries: Optional[str] - user: str + username: str @root_validator(pre=True) def _initial_validation(cls, values): diff --git a/oracle/datadog_checks/oracle/data/conf.yaml.example b/oracle/datadog_checks/oracle/data/conf.yaml.example index 1c19f090c5879..11612089dcce7 100644 --- a/oracle/datadog_checks/oracle/data/conf.yaml.example +++ b/oracle/datadog_checks/oracle/data/conf.yaml.example @@ -35,10 +35,10 @@ instances: # service_name: - ## @param user - string - required + ## @param username - string - required ## The username for the Datadog user account. # - user: + username: ## @param password - string - required ## The password for the Datadog user account. diff --git a/oracle/datadog_checks/oracle/oracle.py b/oracle/datadog_checks/oracle/oracle.py index b339bc4ce0392..6a394ab892435 100644 --- a/oracle/datadog_checks/oracle/oracle.py +++ b/oracle/datadog_checks/oracle/oracle.py @@ -37,7 +37,7 @@ class Oracle(AgentCheck): def __init__(self, name, init_config, instances): super(Oracle, self).__init__(name, init_config, instances) self._server = self.instance.get('server') - self._user = self.instance.get('user') + self._user = self.instance.get('username') or self.instance.get('user') self._password = self.instance.get('password') self._service = self.instance.get('service_name') self._jdbc_driver = self.instance.get('jdbc_driver_path') @@ -99,6 +99,9 @@ def handle_query_error(self, error): return error def check(self, _): + if self.instance.get('user'): + self._log_deprecation('_config_renamed', 'user', 'username') + self._current_errors = 0 self._query_manager.execute() diff --git a/oracle/tests/conftest.py b/oracle/tests/conftest.py index 4e26bf8615176..fb4e6232fa816 100644 --- a/oracle/tests/conftest.py +++ b/oracle/tests/conftest.py @@ -51,7 +51,7 @@ def check(instance): def instance(): return { 'server': 'localhost:1521', - 'user': 'system', + 'username': 'system', 'password': 'oracle', 'service_name': 'xe', 'tags': ['optional:tag1'], @@ -62,7 +62,7 @@ def instance(): def dd_environment(): instance = { 'server': '{}:{}'.format(HOST, PORT), - 'user': USER, + 'username': USER, 'password': PASSWORD, 'service_name': 'InfraDB.us.oracle.com', } diff --git a/snowflake/assets/configuration/spec.yaml b/snowflake/assets/configuration/spec.yaml index 311e9d6eaacfb..2e439e828b18e 100644 --- a/snowflake/assets/configuration/spec.yaml +++ b/snowflake/assets/configuration/spec.yaml @@ -37,7 +37,7 @@ files: value: type: string example: - - name: user + - name: username required: true description: Login name for the user. value: diff --git a/snowflake/datadog_checks/snowflake/check.py b/snowflake/datadog_checks/snowflake/check.py index fa0e466122f02..b5e548b95ccdd 100644 --- a/snowflake/datadog_checks/snowflake/check.py +++ b/snowflake/datadog_checks/snowflake/check.py @@ -73,6 +73,9 @@ def __init__(self, *args, **kwargs): self.check_initializations.append(self._query_manager.compile_queries) def check(self, _): + if self.instance.get('user'): + self._log_deprecation('_config_renamed', 'user', 'username') + self.connect() if self._conn is not None: diff --git a/snowflake/datadog_checks/snowflake/config.py b/snowflake/datadog_checks/snowflake/config.py index 576875b2f7edc..87b940ec8c62b 100644 --- a/snowflake/datadog_checks/snowflake/config.py +++ b/snowflake/datadog_checks/snowflake/config.py @@ -26,7 +26,7 @@ def __init__(self, instance=None): instance = {} account = instance.get('account') - user = instance.get('user') + user = instance.get('user') or instance.get('username') password = instance.get('password') role = instance.get('role') database = instance.get('database', 'SNOWFLAKE') diff --git a/snowflake/datadog_checks/snowflake/data/conf.yaml.example b/snowflake/datadog_checks/snowflake/data/conf.yaml.example index 684fe5a75acc0..3c9a5921550d0 100644 --- a/snowflake/datadog_checks/snowflake/data/conf.yaml.example +++ b/snowflake/datadog_checks/snowflake/data/conf.yaml.example @@ -51,10 +51,10 @@ instances: # - account: - ## @param user - string - required + ## @param username - string - required ## Login name for the user. # - user: + username: ## @param password - string - required ## Password for the user diff --git a/supervisord/assets/configuration/spec.yaml b/supervisord/assets/configuration/spec.yaml index de99138e0d764..6e1543ea867ba 100644 --- a/supervisord/assets/configuration/spec.yaml +++ b/supervisord/assets/configuration/spec.yaml @@ -34,12 +34,12 @@ files: value: type: string example: - - name: user + - name: username description: Required only if a username is configured. value: type: string example: - - name: pass + - name: password description: Required only if a password is configured. value: type: string diff --git a/supervisord/datadog_checks/supervisord/config_models/defaults.py b/supervisord/datadog_checks/supervisord/config_models/defaults.py index 7bc0e73421281..2b4a75bf8f6d6 100644 --- a/supervisord/datadog_checks/supervisord/config_models/defaults.py +++ b/supervisord/datadog_checks/supervisord/config_models/defaults.py @@ -20,7 +20,7 @@ def instance_min_collection_interval(field, value): return 15 -def instance_pass_(field, value): +def instance_password(field, value): return get_default_field_value(field, value) @@ -48,5 +48,5 @@ def instance_tags(field, value): return get_default_field_value(field, value) -def instance_user(field, value): +def instance_username(field, value): return get_default_field_value(field, value) diff --git a/supervisord/datadog_checks/supervisord/config_models/instance.py b/supervisord/datadog_checks/supervisord/config_models/instance.py index 9e831f2e71ca9..71b579bda040f 100644 --- a/supervisord/datadog_checks/supervisord/config_models/instance.py +++ b/supervisord/datadog_checks/supervisord/config_models/instance.py @@ -5,7 +5,7 @@ from typing import Optional, Sequence -from pydantic import BaseModel, Field, root_validator, validator +from pydantic import BaseModel, root_validator, validator from datadog_checks.base.utils.functions import identity from datadog_checks.base.utils.models import validation @@ -21,14 +21,14 @@ class Config: host: Optional[str] min_collection_interval: Optional[float] name: str - pass_: Optional[str] = Field(None, alias='pass') + password: Optional[str] port: Optional[int] proc_names: Optional[Sequence[str]] proc_regex: Optional[Sequence[str]] service: Optional[str] socket: Optional[str] tags: Optional[Sequence[str]] - user: Optional[str] + username: Optional[str] @root_validator(pre=True) def _initial_validation(cls, values): diff --git a/supervisord/datadog_checks/supervisord/data/conf.yaml.example b/supervisord/datadog_checks/supervisord/data/conf.yaml.example index fae491fa99c3c..4b45b3f94856d 100644 --- a/supervisord/datadog_checks/supervisord/data/conf.yaml.example +++ b/supervisord/datadog_checks/supervisord/data/conf.yaml.example @@ -37,15 +37,15 @@ instances: # # socket: - ## @param user - string - optional + ## @param username - string - optional ## Required only if a username is configured. # - # user: + # username: - ## @param pass - string - optional + ## @param password - string - optional ## Required only if a password is configured. # - # pass: + # password: ## @param proc_regex - list of strings - optional ## Regex pattern[s] matching the names of processes to monitor. diff --git a/supervisord/datadog_checks/supervisord/supervisord.py b/supervisord/datadog_checks/supervisord/supervisord.py index b759c8515ed55..4392d9e9065a1 100644 --- a/supervisord/datadog_checks/supervisord/supervisord.py +++ b/supervisord/datadog_checks/supervisord/supervisord.py @@ -62,6 +62,11 @@ class SupervisordCheck(AgentCheck): def check(self, instance): + if instance.get('user'): + self._log_deprecation('_config_renamed', 'user', 'username') + if instance.get('pass'): + self._log_deprecation('_config_renamed', 'pass', 'password') + server_name = instance.get('name') if not server_name or not server_name.strip(): @@ -163,8 +168,8 @@ def check(self, instance): @staticmethod def _connect(instance): sock = instance.get('socket') - user = instance.get('user') - password = instance.get('pass') + user = instance.get('user') or instance.get('username') + password = instance.get('pass') or instance.get('password') if sock is not None: host = instance.get('host', DEFAULT_SOCKET_IP) transport = supervisor.xmlrpc.SupervisorTransport(user, password, sock)