You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@storm.apache.org by "Robert Joseph Evans (JIRA)" <ji...@apache.org> on 2015/10/14 22:06:05 UTC
[jira] [Created] (STORM-1111) Fix Validation for lots of different
configs
Robert Joseph Evans created STORM-1111:
------------------------------------------
Summary: Fix Validation for lots of different configs
Key: STORM-1111
URL: https://issues.apache.org/jira/browse/STORM-1111
Project: Apache Storm
Issue Type: Bug
Reporter: Robert Joseph Evans
Once https://github.com/apache/storm/pull/785 goes in the validation logic is more obvious about what is happening, and we have a lot of configs that the validation is incomplete. We should look at all of the configs and update the validation logic + comments to show what can be stored in these configs, and that we validate them correctly. The following is an incomplete list of some of these changes that need to be made.
```
TOPOLOGY_ISOLATED_MACHINES needs @isPositiveNumber
All of the 'ZMQ_` configs should be deprecated.
TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber
It would be great if we could restrict TOPOLOGY_LOGGING_SENSITIVITY to one of the allowed values "S0", "S1", "S2", "S3"
TOPOLOGY_SHELLBOLT_MAX_PENDING needs @isPositiveNumber
TOPOLOGY_TRIDENT_BATCH_EMIT_INTERVAL_MILLIS needs @isPositiveNumber
TOPOLOGY_MAX_ERROR_REPORT_PER_INTERVAL and TOPOLOGY_ERROR_THROTTLE_INTERVAL_SECS both seem to need @isPositiveNumber
TOPOLOGY_TRANSFER_BUFFER_SIZE needs to be @isPowerOf2
TOPOLOGY_ENVIRONMENT should be @isMapEntryType(keyType = String.class, valueType = String.class).
TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS needs @isPositiveNumber(includeZero = true)
TOPOLOGY_MAX_SPOUT_PENDING needs @isPositiveNumber
TOPOLOGY_MAX_TASK_PARALLELISM needs @isPositiveNumber
WORKER_METRICS and TOPOLOGY_WORKER_METRICS should be @isMapEntryType(keyType = String.class, valueType = String.class).
TOPOLOGY_METRICS_CONSUMER_REGISTER should have a custom validator (you might not have time to do it, so we might need a follow on JIRA for this). Something like
@isListEntryCustom(entryValidatorClasses={MetricRegistryValidator.class})
MetricRegistryValidator.class needs to check that it is a map, with a "class" key that points to a string, a "parallelism.hint" key that points to a positive non-null integer.
TOPOLOGY_EVENTLOGGER_EXECUTORS needs @isPositiveNumber
TOPOLOGY_ACKER_EXECUTORS needs @isPositiveNumber
TOPOLOGY_TASKS and TOPOLOGY_WORKERS need @isPositiveNumber
TASK_CREDENTIALS_POLL_SECS needs @isPositiveNumber
TASK_REFRESH_POLL_SECS TASK_HEARTBEAT_FREQUENCY_SECS WORKER_HEARTBEAT_FREQUENCY_SECS and WORKER_RECEIVER_THREAD_COUNT need @isPositiveNumber
SUPERVISOR_MONITOR_FREQUENCY_SECS and SUPERVISOR_HEARTBEAT_FREQUENCY_SECS need @isPositiveNumber
SUPERVISOR_WORKER_SHUTDOWN_SLEEP_SECS needs @isPositiveNumber
DRPC_HTTP_FILTER_PARAMS should be @isMapEntryType(keyType = String.class, valueType = String.class).
DRPC_INVOCATIONS_THREADS and DRPC_INVOCATIONS_PORT need @isPositiveNumber
DRPC_QUEUE_SIZE DRPC_MAX_BUFFER_SIZE and DRPC_WORKER_THREADS need @isPositiveNumber
DRPC_AUTHORIZER_ACL needs to be a Map>>. This too probably needs a custom validator in a follow on JIRA.
DRPC_PORT needs @isPositiveNumber
DRPC_HTTPS_PORT and DRPC_HTTP_PORT need @isPositiveNumber
UI_HTTPS_PORT and UI_HEADER_BUFFER_BYTES need @isPositiveNumber
UI_FILTER_PARAMS should be @isMapEntryType(keyType = String.class, valueType = String.class).
LOGVIEWER_HTTPS_PORT needs @isPositiveNumber
LOGVIEWER_PORT and UI_PORT need @isPositiveNumber
NIMBUS_CREDENTIAL_RENEW_FREQ_SECS needs @isPositiveNumber
NIMBUS_IMPERSONATION_ACL needs to be updated, because I don't think Map of string to map. It is more complex then that.
NIMBUS_TASK_LAUNCH_SECS NIMBUS_SUPERVISOR_TIMEOUT_SECS NIMBUS_INBOX_JAR_EXPIRATION_SECS NIMBUS_CLEANUP_INBOX_FREQ_SECS NIMBUS_MONITOR_FREQ_SECS and NIMBUS_TASK_TIMEOUT_SECS need @isPositiveNumber
NIMBUS_THRIFT_MAX_BUFFER_SIZE needs @isPositiveNumber
NIMBUS_THRIFT_THREADS and NIMBUS_THRIFT_PORT need @isPositiveNumber
```
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)