[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14972251#comment-14972251 ] ASF GitHub Bot commented on STORM-: --- Github user asfgit closed the pull request at: https://github.com/apache/storm/pull/807 > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14971923#comment-14971923 ] ASF GitHub Bot commented on STORM-: --- Github user HeartSaVioR commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42917683 --- Diff: storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java --- @@ -425,6 +451,26 @@ public static void validateField(String name, boolean includeZero, Object o) { } } +public static class MetricRegistryValidator extends Validator { + +@Override +public void validateField(String name, Object o) throws IllegalAccessException { +if(o == null) { +return; +} +SimpleTypeValidator.validateField(name, Map.class, o); +if(!((Map) o).containsKey("class") ) { +throw new IllegalAccessException("Field " + name + " must have map entry with key: class"); +} +if(!((Map) o).containsKey("parallelism.hint") ) { +throw new IllegalAccessException("Field " + name + " must have map entry with key: class"); --- End diff -- @jerrypeng It should be "key: parallelism.hint". > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14972107#comment-14972107 ] ASF GitHub Bot commented on STORM-: --- Github user HeartSaVioR commented on the pull request: https://github.com/apache/storm/pull/807#issuecomment-150716153 @jerrypeng Nice, +1. > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14971927#comment-14971927 ] ASF GitHub Bot commented on STORM-: --- Github user HeartSaVioR commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42917728 --- Diff: storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java --- @@ -375,7 +401,7 @@ public static void validateField(String name, Class[] keyValidators, Class[] val } } for (Class vv : valueValidators) { -Object valueValidator = vv.newInstance(); +Object valueValidator = vv.getConstructor().newInstance();; --- End diff -- nits: ';' appears twice. > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14971975#comment-14971975 ] ASF GitHub Bot commented on STORM-: --- Github user jerrypeng commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42919770 --- Diff: storm-core/src/jvm/backtype/storm/validation/ConfigValidation.java --- @@ -375,7 +401,7 @@ public static void validateField(String name, Class[] keyValidators, Class[] val } } for (Class vv : valueValidators) { -Object valueValidator = vv.newInstance(); +Object valueValidator = vv.getConstructor().newInstance();; --- End diff -- will fix > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14971978#comment-14971978 ] ASF GitHub Bot commented on STORM-: --- Github user jerrypeng commented on the pull request: https://github.com/apache/storm/pull/807#issuecomment-150704659 @HeartSaVioR thanks for your review. I just modified the PR to address your comments > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14969392#comment-14969392 ] ASF GitHub Bot commented on STORM-: --- Github user jerrypeng commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42770893 --- Diff: storm-core/src/jvm/backtype/storm/Config.java --- @@ -1215,6 +1254,7 @@ * to be equal to the number of workers configured for this topology. If this variable is set to 0, * event logging will be disabled. */ +@isPositiveNumber --- End diff -- will fix > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14969391#comment-14969391 ] ASF GitHub Bot commented on STORM-: --- Github user jerrypeng commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42770783 --- Diff: storm-core/src/jvm/backtype/storm/Config.java --- @@ -247,6 +253,7 @@ * * Defaults to false. */ +@Deprecated --- End diff -- will remove deprecated annotation > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14969402#comment-14969402 ] ASF GitHub Bot commented on STORM-: --- Github user jerrypeng commented on the pull request: https://github.com/apache/storm/pull/807#issuecomment-150280561 @revans2 thanks for your review! I have modified the PR to address your comments > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14967714#comment-14967714 ] ASF GitHub Bot commented on STORM-: --- Github user revans2 commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42669817 --- Diff: storm-core/src/jvm/backtype/storm/Config.java --- @@ -1215,6 +1254,7 @@ * to be equal to the number of workers configured for this topology. If this variable is set to 0, * event logging will be disabled. */ +@isPositiveNumber --- End diff -- This is a really minor nit, but everywhere else `@isInteger` is above `@isPositiveNumber` it would be nice to be consistent. > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14967711#comment-14967711 ] ASF GitHub Bot commented on STORM-: --- Github user revans2 commented on a diff in the pull request: https://github.com/apache/storm/pull/807#discussion_r42669491 --- Diff: storm-core/src/jvm/backtype/storm/Config.java --- @@ -247,6 +253,7 @@ * * Defaults to false. */ +@Deprecated --- End diff -- This should actually not be deprecated. It says zmq, but it is not ZMQ. It should probably be renamed, but that is a follow on JIRA. > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14967715#comment-14967715 ] ASF GitHub Bot commented on STORM-: --- Github user revans2 commented on the pull request: https://github.com/apache/storm/pull/807#issuecomment-150001051 Just two minor nits and then I am +1 on this. > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14963820#comment-14963820 ] ASF GitHub Bot commented on STORM-: --- Github user jerrypeng commented on the pull request: https://github.com/apache/storm/pull/807#issuecomment-149309782 unrelated kafka messaging test failed in travis > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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)
[jira] [Commented] (STORM-1111) Fix Validation for lots of different configs
[ https://issues.apache.org/jira/browse/STORM-?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=14963579#comment-14963579 ] ASF GitHub Bot commented on STORM-: --- GitHub user jerrypeng opened a pull request: https://github.com/apache/storm/pull/807 [STORM-] - Fix Validation for lots of different configs You can merge this pull request into a Git repository by running: $ git pull https://github.com/jerrypeng/storm STORM- Alternatively you can review and apply these changes as the patch at: https://github.com/apache/storm/pull/807.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #807 commit 80df44ba5fcfa63dc52bb919c8b0366350e35e58 Author: Boyang Jerry PengDate: 2015-10-19T16:31:59Z [STORM-] - Fix Validation for lots of different configs > Fix Validation for lots of different configs > > > Key: STORM- > URL: https://issues.apache.org/jira/browse/STORM- > Project: Apache Storm > Issue Type: Bug >Reporter: Robert Joseph Evans >Assignee: Boyang Jerry Peng > > 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 and @isInteger > All of the 'ZMQ_` configs should be deprecated. > TRANSACTIONAL_ZOOKEEPER_PORTneeds @isPositiveNumber and @isInteger > 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