http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/checkpoint/s3.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/checkpoint/s3.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/checkpoint/s3.pug index 8e284fc..1f6eef2 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/checkpoint/s3.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/checkpoint/s3.pug @@ -28,177 +28,416 @@ include /app/helpers/jade/mixins -var checkpointS3CustomRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "Custom"' .pc-form-grid-col-60(ng-if-start='$checkpointSPI.kind === "S3"') - +dropdown-required('AWS credentials:', '$checkpointSPI.S3.awsCredentials.kind', '"checkpointS3AwsCredentials"', 'true', checkpointS3, 'Custom', '[\ - {value: "Basic", label: "Basic"},\ - {value: "Properties", label: "Properties"},\ - {value: "Anonymous", label: "Anonymous"},\ - {value: "BasicSession", label: "Basic with session"},\ - {value: "Custom", label: "Custom"}\ - ]', - 'AWS credentials\ - <ul>\ - <li>Basic - Allows callers to pass in the AWS access key and secret access in the constructor</li>\ - <li>Properties - Reads in AWS access keys from a properties file</li>\ - <li>Anonymous - Allows use of "anonymous" credentials</li>\ - <li>Database - Session credentials with keys and session token</li>\ - <li>Custom - Custom AWS credentials provider</li>\ - </ul>') + +form-field__dropdown({ + label: 'AWS credentials:', + model: '$checkpointSPI.S3.awsCredentials.kind', + name: '"checkpointS3AwsCredentials"', + required: checkpointS3, + placeholder: 'Custom', + options: '[\ + {value: "Basic", label: "Basic"},\ + {value: "Properties", label: "Properties"},\ + {value: "Anonymous", label: "Anonymous"},\ + {value: "BasicSession", label: "Basic with session"},\ + {value: "Custom", label: "Custom"}\ + ]', + tip: 'AWS credentials\ + <ul>\ + <li>Basic - Allows callers to pass in the AWS access key and secret access in the constructor</li>\ + <li>Properties - Reads in AWS access keys from a properties file</li>\ + <li>Anonymous - Allows use of "anonymous" credentials</li>\ + <li>Database - Session credentials with keys and session token</li>\ + <li>Custom - Custom AWS credentials provider</li>\ + </ul>' + }) + .pc-form-group.pc-form-grid-row(ng-if=checkpointS3Path) .pc-form-grid-col-60 - +text('Path:', credentialsModel + '.Properties.path', '"checkpointS3PropertiesPath"', checkpointS3Path, 'Input properties file path', - 'The file from which to read the AWS credentials properties') + +form-field__text({ + label: 'Path:', + model: `${credentialsModel}.Properties.path`, + name: '"checkpointS3PropertiesPath"', + required: checkpointS3Path, + placeholder: 'Input properties file path', + tip: 'The file from which to read the AWS credentials properties' + }) .pc-form-group.pc-form-grid-row(ng-if=checkpointS3Custom) .pc-form-grid-col-60 - +java-class('Class name:', credentialsModel + '.Custom.className', '"checkpointS3CustomClassName"', 'true', checkpointS3Custom, - 'Custom AWS credentials provider implementation class', checkpointS3Custom) + +form-field__java-class({ + label: 'Class name:', + model: credentialsModel + '.Custom.className', + name: '"checkpointS3CustomClassName"', + required: checkpointS3Custom, + tip: 'Custom AWS credentials provider implementation class', + validationActive:checkpointS3Custom + }) .pc-form-grid-col-60 label Note, AWS credentials will be generated as stub .pc-form-grid-col-60 - +text('Bucket name suffix:', '$checkpointSPI.S3.bucketNameSuffix', '"checkpointS3BucketNameSuffix"', 'false', 'default-bucket') + +form-field__text({ + label: 'Bucket name suffix:', + model: '$checkpointSPI.S3.bucketNameSuffix', + name: '"checkpointS3BucketNameSuffix"', + placeholder: 'default-bucket' + }) .pc-form-grid-col-60(ng-if-start=`$ctrl.available("2.4.0")`) - +text('Bucket endpoint:', `$checkpointSPI.S3.bucketEndpoint`, '"checkpointS3BucketEndpoint"', false, 'Input bucket endpoint', - 'Bucket endpoint for IP finder<br/> \ - For information about possible endpoint names visit <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">docs.aws.amazon.com</a>') + +form-field__text({ + label: 'Bucket endpoint:', + model: `$checkpointSPI.S3.bucketEndpoint`, + name: '"checkpointS3BucketEndpoint"', + placeholder: 'Input bucket endpoint', + tip: 'Bucket endpoint for IP finder<br/> \ + For information about possible endpoint names visit <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">docs.aws.amazon.com</a>' + }) .pc-form-grid-col-60(ng-if-end) - +text('SSE algorithm:', `$checkpointSPI.S3.SSEAlgorithm`, '"checkpointS3SseAlgorithm"', false, 'Input SSE algorithm', - 'Server-side encryption algorithm for Amazon S3-managed encryption keys<br/> \ - For information about possible S3-managed encryption keys visit <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">docs.aws.amazon.com</a>') + +form-field__text({ + label: 'SSE algorithm:', + model: `$checkpointSPI.S3.SSEAlgorithm`, + name: '"checkpointS3SseAlgorithm"', + placeholder: 'Input SSE algorithm', + tip: 'Server-side encryption algorithm for Amazon S3-managed encryption keys<br/> \ + For information about possible S3-managed encryption keys visit <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">docs.aws.amazon.com</a>' + }) .pc-form-grid-col-60 - +java-class('Listener:', '$checkpointSPI.S3.checkpointListener', '"checkpointS3Listener"', 'true', 'false', - 'Checkpoint listener implementation class name', checkpointS3) + +form-field__java-class({ + label: 'Listener:', + model: '$checkpointSPI.S3.checkpointListener', + name: '"checkpointS3Listener"', + tip: 'Checkpoint listener implementation class name', + validationActive: checkpointS3 + }) .pc-form-grid-col-60.pc-form-group__text-title span Client configuration .pc-form-group.pc-form-grid-row(ng-if-end) .pc-form-grid-col-30 - +dropdown('Protocol:', clientCfgModel + '.protocol', '"checkpointS3Protocol"', 'true', 'HTTPS', '[\ - {value: "HTTP", label: "HTTP"},\ - {value: "HTTPS", label: "HTTPS"}\ - ]', - 'Provides an ability to save an intermediate job state\ - <ul>\ - <li>HTTP - Using the HTTP protocol is less secure than HTTPS, but can slightly reduce\ - the system resources used when communicating with AWS</li>\ - <li>HTTPS - Using the HTTPS protocol is more secure than using the HTTP protocol, but\ - may use slightly more system resources. AWS recommends using HTTPS for maximize security</li>\ - </ul>') + +form-field__dropdown({ + label: 'Protocol:', + model: clientCfgModel + '.protocol', + name: '"checkpointS3Protocol"', + placeholder: 'HTTPS', + options: '[\ + {value: "HTTP", label: "HTTP"},\ + {value: "HTTPS", label: "HTTPS"}\ + ]', + tip: 'Provides an ability to save an intermediate job state\ + <ul>\ + <li>HTTP - Using the HTTP protocol is less secure than HTTPS, but can slightly reduce\ + the system resources used when communicating with AWS</li>\ + <li>HTTPS - Using the HTTPS protocol is more secure than using the HTTP protocol, but\ + may use slightly more system resources. AWS recommends using HTTPS for maximize security</li>\ + </ul>' + }) .pc-form-grid-col-30 - +number('Maximum connections:', clientCfgModel + '.maxConnections', '"checkpointS3MaxConnections"', - 'true', '50', '1', 'Maximum number of allowed open HTTP connections') + +form-field__number({ + label:'Maximum connections:', + model:clientCfgModel + '.maxConnections', + name: '"checkpointS3MaxConnections"', + placeholder: '50', + min: '1', + tip: 'Maximum number of allowed open HTTP connections' + }) .pc-form-grid-col-60 - +text('User agent prefix:', clientCfgModel + '.userAgentPrefix', '"checkpointS3UserAgentPrefix"', 'false', 'System specific header', - 'HTTP user agent prefix to send with all requests') + +form-field__text({ + label: 'User agent prefix:', + model: `${clientCfgModel}.userAgentPrefix`, + name: '"checkpointS3UserAgentPrefix"', + placeholder: 'System specific header', + tip: 'HTTP user agent prefix to send with all requests' + }) .pc-form-grid-col-60 - +text('User agent suffix:', clientCfgModel + '.userAgentSuffix', '"checkpointS3UserAgentSuffix"', 'false', 'System specific header', - 'HTTP user agent suffix to send with all requests') + +form-field__text({ + label: 'User agent suffix:', + model: `${clientCfgModel}.userAgentSuffix`, + name: '"checkpointS3UserAgentSuffix"', + placeholder: 'System specific header', + tip: 'HTTP user agent suffix to send with all requests' + }) .pc-form-grid-col-60 - +text-ip-address('Local address:', clientCfgModel + '.localAddress', '"checkpointS3LocalAddress"', 'true', 'Not specified', - 'Optionally specifies the local address to bind to') + +form-field__ip-address({ + label: 'Local address:', + model: clientCfgModel + '.localAddress', + name: '"checkpointS3LocalAddress"', + enabled: 'true', + placeholder: 'Not specified', + tip: 'Optionally specifies the local address to bind to' + }) .pc-form-grid-col-40 - +text('Proxy host:', clientCfgModel + '.proxyHost', '"checkpointS3ProxyHost"', 'false', 'Not specified', - 'Optional proxy host the client will connect through') + +form-field__text({ + label: 'Proxy host:', + model: `${clientCfgModel}.proxyHost`, + name: '"checkpointS3ProxyHost"', + placeholder: 'Not specified', + tip: 'Optional proxy host the client will connect through' + }) .pc-form-grid-col-20 - +number('Proxy port:', clientCfgModel + '.proxyPort', '"checkpointS3ProxyPort"', 'true', 'Not specified', '0', - 'Optional proxy port the client will connect through') + +form-field__number({ + label: 'Proxy port:', + model: clientCfgModel + '.proxyPort', + name: '"checkpointS3ProxyPort"', + placeholder: 'Not specified', + min: '0', + tip: 'Optional proxy port the client will connect through' + }) .pc-form-grid-col-30 - +text('Proxy user:', clientCfgModel + '.proxyUsername', '"checkpointS3ProxyUsername"', 'false', 'Not specified', - 'Optional proxy user name to use if connecting through a proxy') + +form-field__text({ + label: 'Proxy user:', + model: clientCfgModel + '.proxyUsername', + name: '"checkpointS3ProxyUsername"', + placeholder: 'Not specified', + tip: 'Optional proxy user name to use if connecting through a proxy' + }) .pc-form-grid-col-30 - +text('Proxy domain:', clientCfgModel + '.proxyDomain', '"checkpointS3ProxyDomain"', 'false', 'Not specified', - 'Optional Windows domain name for configuring an NTLM proxy') - .pc-form-grid-col-60 - +text('Proxy workstation:', clientCfgModel + '.proxyWorkstation', '"checkpointS3ProxyWorkstation"', 'false', 'Not specified', - 'Optional Windows workstation name for configuring NTLM proxy support') - .pc-form-grid-col-60 - +text('Non proxy hosts:', clientCfgModel + '.nonProxyHosts', '"checkpointS3NonProxyHosts"', 'false', 'Not specified', - 'Optional hosts the client will access without going through the proxy') - .pc-form-grid-col-60 - +dropdown('Retry policy:', clientRetryModel + '.kind', '"checkpointS3RetryPolicy"', 'true', 'Default', '[\ - {value: "Default", label: "Default SDK retry policy"},\ - {value: "DefaultMaxRetries", label: "Default with the specified max retry count"},\ - {value: "DynamoDB", label: "Default for DynamoDB client"},\ - {value: "DynamoDBMaxRetries", label: "DynamoDB with the specified max retry count"},\ - {value: "Custom", label: "Custom configured"}\ - ]', - 'Provides an ability to save an intermediate job state\ - <ul>\ - <li>SDK default retry policy - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\ - <li>Default with the specified max retry count - Default SDK retry policy with the specified max retry count</li>\ - <li>Default for DynamoDB client - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\ - <li>DynamoDB with the specified max retry count - This policy will honor the maxErrorRetry set in ClientConfiguration with the specified max retry count</li>\ - <li>Custom configured - Custom configured SDK retry policy</li>\ - </ul>') + +form-field__text({ + label: 'Proxy domain:', + model: `${clientCfgModel}.proxyDomain`, + name: '"checkpointS3ProxyDomain"', + placeholder: 'Not specified', + tip: 'Optional Windows domain name for configuring an NTLM proxy' + }) + .pc-form-grid-col-60 + +form-field__text({ + label: 'Proxy workstation:', + model: `${clientCfgModel}.proxyWorkstation`, + name: '"checkpointS3ProxyWorkstation"', + placeholder: 'Not specified', + tip: 'Optional Windows workstation name for configuring NTLM proxy support' + }) + .pc-form-grid-col-60 + +form-field__text({ + label: 'Non proxy hosts:', + model: `${clientCfgModel}.nonProxyHosts`, + name: '"checkpointS3NonProxyHosts"', + placeholder: 'Not specified', + tip: 'Optional hosts the client will access without going through the proxy' + }) + .pc-form-grid-col-60 + +form-field__dropdown({ + label: 'Retry policy:', + model: `${clientRetryModel}.kind`, + name: '"checkpointS3RetryPolicy"', + placeholder: 'Default', + options: '[\ + {value: "Default", label: "Default SDK retry policy"},\ + {value: "DefaultMaxRetries", label: "Default with the specified max retry count"},\ + {value: "DynamoDB", label: "Default for DynamoDB client"},\ + {value: "DynamoDBMaxRetries", label: "DynamoDB with the specified max retry count"},\ + {value: "Custom", label: "Custom configured"}\ + ]', + tip: 'Provides an ability to save an intermediate job state\ + <ul>\ + <li>SDK default retry policy - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\ + <li>Default with the specified max retry count - Default SDK retry policy with the specified max retry count</li>\ + <li>Default for DynamoDB client - This policy will honor the maxErrorRetry set in ClientConfiguration</li>\ + <li>DynamoDB with the specified max retry count - This policy will honor the maxErrorRetry set in ClientConfiguration with the specified max retry count</li>\ + <li>Custom configured - Custom configured SDK retry policy</li>\ + </ul>' + }) .pc-form-group.pc-form-grid-row(ng-if=checkpointS3DefaultMaxRetry) .pc-form-grid-col-60 - +number-required('Maximum retry attempts:', clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', '"checkpointS3DefaultMaxErrorRetry"', 'true', checkpointS3DefaultMaxRetry, '-1', '1', - 'Maximum number of retry attempts for failed requests') + +form-field__number({ + label: 'Maximum retry attempts:', + model: clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', + name: '"checkpointS3DefaultMaxErrorRetry"', + required: checkpointS3DefaultMaxRetry, + placeholder: '-1', + min: '1', + tip: 'Maximum number of retry attempts for failed requests' + }) .pc-form-group.pc-form-grid-row(ng-if=checkpointS3DynamoDbMaxRetry) .pc-form-grid-col-60 - +number-required('Maximum retry attempts:', clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', '"checkpointS3DynamoDBMaxErrorRetry"', 'true', checkpointS3DynamoDbMaxRetry, '-1', '1', - 'Maximum number of retry attempts for failed requests') + +form-field__number({ + label: 'Maximum retry attempts:', + model: clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', + name: '"checkpointS3DynamoDBMaxErrorRetry"', + required: checkpointS3DynamoDbMaxRetry, + placeholder: '-1', + min: '1', + tip: 'Maximum number of retry attempts for failed requests' + }) .pc-form-group.pc-form-grid-row(ng-if=checkpointS3CustomRetry) .pc-form-grid-col-60 - +java-class('Retry condition:', clientRetryModel + '.Custom.retryCondition', '"checkpointS3CustomRetryPolicy"', 'true', checkpointS3CustomRetry, - 'Retry condition on whether a specific request and exception should be retried', checkpointS3CustomRetry) + +form-field__java-class({ + label: 'Retry condition:', + model: clientRetryModel + '.Custom.retryCondition', + name: '"checkpointS3CustomRetryPolicy"', + required: checkpointS3CustomRetry, + tip: 'Retry condition on whether a specific request and exception should be retried', + validationActive: checkpointS3CustomRetry + }) .pc-form-grid-col-60 - +java-class('Backoff strategy:', clientRetryModel + '.Custom.backoffStrategy', '"checkpointS3CustomBackoffStrategy"', 'true', checkpointS3CustomRetry, - 'Back-off strategy for controlling how long the next retry should wait', checkpointS3CustomRetry) + +form-field__java-class({ + label: 'Backoff strategy:', + model: clientRetryModel + '.Custom.backoffStrategy', + name: '"checkpointS3CustomBackoffStrategy"', + required: checkpointS3CustomRetry, + tip: 'Back-off strategy for controlling how long the next retry should wait', + validationActive: checkpointS3CustomRetry + }) .pc-form-grid-col-60 - +number-required('Maximum retry attempts:', clientRetryModel + '.Custom.maxErrorRetry', '"checkpointS3CustomMaxErrorRetry"', 'true', checkpointS3CustomRetry, '-1', '1', - 'Maximum number of retry attempts for failed requests') + +form-field__number({ + label: 'Maximum retry attempts:', + model: clientRetryModel + '.Custom.maxErrorRetry', + name: '"checkpointS3CustomMaxErrorRetry"', + required: checkpointS3CustomRetry, + placeholder: '-1', + min: '1', + tip: 'Maximum number of retry attempts for failed requests' + }) .pc-form-grid-col-60 - +checkbox('Honor the max error retry set', clientRetryModel + '.Custom.honorMaxErrorRetryInClientConfig', '"checkpointS3CustomHonorMaxErrorRetryInClientConfig"', - 'Whether this retry policy should honor the max error retry set by ClientConfiguration#setMaxErrorRetry(int)') + +form-field__checkbox({ + label: 'Honor the max error retry set', + model: clientRetryModel + '.Custom.honorMaxErrorRetryInClientConfig', + name: '"checkpointS3CustomHonorMaxErrorRetryInClientConfig"', + tip: 'Whether this retry policy should honor the max error retry set by ClientConfiguration#setMaxErrorRetry(int)' + }) .pc-form-grid-col-60 - +number('Maximum retry attempts:', clientCfgModel + '.maxErrorRetry', '"checkpointS3MaxErrorRetry"', 'true', '-1', '0', - 'Maximum number of retry attempts for failed retryable requests<br/>\ - If -1 the configured RetryPolicy will be used to control the retry count') + +form-field__number({ + label: 'Maximum retry attempts:', + model: `${clientCfgModel}.maxErrorRetry`, + name: '"checkpointS3MaxErrorRetry"', + placeholder: '-1', + min: '0', + tip: 'Maximum number of retry attempts for failed retryable requests<br/>\ + If -1 the configured RetryPolicy will be used to control the retry count' + }) .pc-form-grid-col-30 - +number('Socket timeout:', clientCfgModel + '.socketTimeout', '"checkpointS3SocketTimeout"', 'true', '50000', '0', - 'Amount of time in milliseconds to wait for data to be transfered over an established, open connection before the connection times out and is closed<br/>\ - A value of <b>0</b> means infinity') + +form-field__number({ + label: 'Socket timeout:', + model: `${clientCfgModel}.socketTimeout`, + name: '"checkpointS3SocketTimeout"', + placeholder: '50000', + min: '0', + tip: 'Amount of time in milliseconds to wait for data to be transfered over an established, open connection before the connection times out and is closed<br/>\ + A value of <b>0</b> means infinity' + }) .pc-form-grid-col-30 - +number('Connection timeout:', clientCfgModel + '.connectionTimeout', '"checkpointS3ConnectionTimeout"', 'true', '50000', '0', - 'Amount of time in milliseconds to wait when initially establishing a connection before giving up and timing out<br/>\ - A value of <b>0</b> means infinity') + +form-field__number({ + label: 'Connection timeout:', + model: `${clientCfgModel}.connectionTimeout`, + name: '"checkpointS3ConnectionTimeout"', + placeholder: '50000', + min: '0', + tip: 'Amount of time in milliseconds to wait when initially establishing a connection before giving up and timing out<br/>\ + A value of <b>0</b> means infinity' + }) .pc-form-grid-col-30 - +number('Request timeout:', clientCfgModel + '.requestTimeout', '"checkpointS3RequestTimeout"', 'true', '0', '-1', - 'Amount of time in milliseconds to wait for the request to complete before giving up and timing out<br/>\ - A non - positive value means infinity') + +form-field__number({ + label: 'Request timeout:', + model: `${clientCfgModel}.requestTimeout`, + name: '"checkpointS3RequestTimeout"', + placeholder: '0', + min: '-1', + tip: 'Amount of time in milliseconds to wait for the request to complete before giving up and timing out<br/>\ + A non - positive value means infinity' + }) .pc-form-grid-col-30 - +number('Idle timeout:', clientCfgModel + '.connectionMaxIdleMillis', '"checkpointS3ConnectionMaxIdleMillis"', 'true', '60000', '0', - 'Maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse') + +form-field__number({ + label: 'Idle timeout:', + model: `${clientCfgModel}.connectionMaxIdleMillis`, + name: '"checkpointS3ConnectionMaxIdleMillis"', + placeholder: '60000', + min: '0', + tip: 'Maximum amount of time that an idle connection may sit in the connection pool and still be eligible for reuse' + }) .pc-form-grid-col-30 - +text('Signature algorithm:', clientCfgModel + '.signerOverride', '"checkpointS3SignerOverride"', 'false', 'Not specified', - 'Name of the signature algorithm to use for signing requests made by this client') + +form-field__text({ + label: 'Signature algorithm:', + model: `${clientCfgModel}.signerOverride`, + name: '"checkpointS3SignerOverride"', + placeholder: 'Not specified', + tip: 'Name of the signature algorithm to use for signing requests made by this client' + }) .pc-form-grid-col-30 - +number('Connection TTL:', clientCfgModel + '.connectionTTL', '"checkpointS3ConnectionTTL"', 'true', '-1', '-1', - 'Expiration time in milliseconds for a connection in the connection pool<br/>\ - By default, it is set to <b>-1</b>, i.e. connections do not expire') + +form-field__number({ + label: 'Connection TTL:', + model: `${clientCfgModel}.connectionTTL`, + name: '"checkpointS3ConnectionTTL"', + placeholder: '-1', + min: '-1', + tip: 'Expiration time in milliseconds for a connection in the connection pool<br/>\ + By default, it is set to <b>-1</b>, i.e. connections do not expire' + }) .pc-form-grid-col-60 - +java-class('DNS resolver:', clientCfgModel + '.dnsResolver', '"checkpointS3DnsResolver"', 'true', 'false', - 'DNS Resolver that should be used to for resolving AWS IP addresses', checkpointS3) + +form-field__java-class({ + label: 'DNS resolver:', + model: clientCfgModel + '.dnsResolver', + name: '"checkpointS3DnsResolver"', + tip: 'DNS Resolver that should be used to for resolving AWS IP addresses', + validationActive: checkpointS3 + }) .pc-form-grid-col-60 - +number('Response metadata cache size:', clientCfgModel + '.responseMetadataCacheSize', '"checkpointS3ResponseMetadataCacheSize"', 'true', '50', '0', - 'Response metadata cache size') + +form-field__number({ + label: 'Response metadata cache size:', + model: `${clientCfgModel}.responseMetadataCacheSize`, + name: '"checkpointS3ResponseMetadataCacheSize"', + placeholder: '50', + min: '0', + tip: 'Response metadata cache size' + }) .pc-form-grid-col-60 - +java-class('SecureRandom class name:', clientCfgModel + '.secureRandom', '"checkpointS3SecureRandom"', 'true', 'false', - 'SecureRandom to be used by the SDK class name', checkpointS3) + +form-field__java-class({ + label: 'SecureRandom class name:', + model: clientCfgModel + '.secureRandom', + name: '"checkpointS3SecureRandom"', + tip: 'SecureRandom to be used by the SDK class name', + validationActive: checkpointS3 + }) .pc-form-grid-col-60 - +number('Client execution timeout:', clientCfgModel + '.clientExecutionTimeout', '"checkpointS3ClientExecutionTimeout"', 'true', '0', '0', - 'Amount of time in milliseconds to allow the client to complete the execution of an API call<br/>\ - <b>0</b> value disables that feature') + +form-field__number({ + label: 'Client execution timeout:', + model: `${clientCfgModel}.clientExecutionTimeout`, + name: '"checkpointS3ClientExecutionTimeout"', + placeholder: '0', + min: '0', + tip: 'Amount of time in milliseconds to allow the client to complete the execution of an API call<br/>\ + <b>0</b> value disables that feature' + }) .pc-form-grid-col-60 - +checkbox('Cache response metadata', clientCfgModel + '.cacheResponseMetadata', '"checkpointS3CacheResponseMetadata"', 'Cache response metadata') + +form-field__checkbox({ + label: 'Cache response metadata', + model: clientCfgModel + '.cacheResponseMetadata', + name: '"checkpointS3CacheResponseMetadata"', + tip: 'Cache response metadata' + }) .pc-form-grid-col-60 - +checkbox('Use expect continue', clientCfgModel + '.useExpectContinue', '"checkpointS3UseExpectContinue"', 'Optional override to enable/disable support for HTTP/1.1 handshake utilizing EXPECT: 100-Continue') + +form-field__checkbox({ + label: 'Use expect continue', + model: clientCfgModel + '.useExpectContinue', + name: '"checkpointS3UseExpectContinue"', + tip: 'Optional override to enable/disable support for HTTP/1.1 handshake utilizing EXPECT: 100-Continue' + }) .pc-form-grid-col-60 - +checkbox('Use throttle retries', clientCfgModel + '.useThrottleRetries', '"checkpointS3UseThrottleRetries"', 'Retry throttling will be used') + +form-field__checkbox({ + label: 'Use throttle retries', + model: clientCfgModel + '.useThrottleRetries', + name: '"checkpointS3UseThrottleRetries"', + tip: 'Retry throttling will be used' + }) .pc-form-grid-col-60 - +checkbox('Use reaper', clientCfgModel + '.useReaper', '"checkpointS3UseReaper"', 'Checks if the IdleConnectionReaper is to be started') + +form-field__checkbox({ + label: 'Use reaper', + model: clientCfgModel + '.useReaper', + name: '"checkpointS3UseReaper"', + tip: 'Checks if the IdleConnectionReaper is to be started' + }) .pc-form-grid-col-60 - +checkbox('Use GZIP', clientCfgModel + '.useGzip', '"checkpointS3UseGzip"', 'Checks if gzip compression is used') + +form-field__checkbox({ + label: 'Use GZIP', + model: clientCfgModel + '.useGzip', + name: '"checkpointS3UseGzip"', + tip: 'Checks if gzip compression is used' + }) .pc-form-grid-col-60 - +checkbox('Preemptively basic authentication', clientCfgModel + '.preemptiveBasicProxyAuth', '"checkpointS3PreemptiveBasicProxyAuth"', - 'Attempt to authenticate preemptively against proxy servers using basic authentication') + +form-field__checkbox({ + label: 'Preemptively basic authentication', + model: clientCfgModel + '.preemptiveBasicProxyAuth', + name: '"checkpointS3PreemptiveBasicProxyAuth"', + tip: 'Attempt to authenticate preemptively against proxy servers using basic authentication' + }) .pc-form-grid-col-60 - +checkbox('TCP KeepAlive', clientCfgModel + '.useTcpKeepAlive', '"checkpointS3UseTcpKeepAlive"', 'TCP KeepAlive support is enabled') + +form-field__checkbox({ + label: 'TCP KeepAlive', + model: clientCfgModel + '.useTcpKeepAlive', + name: '"checkpointS3UseTcpKeepAlive"', + tip: 'TCP KeepAlive support is enabled' + })
http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/client-connector.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/client-connector.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/client-connector.pug index 620137b..00c3563 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/client-connector.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/client-connector.pug @@ -28,49 +28,156 @@ panel-collapsible(ng-show='$ctrl.available("2.3.0")' ng-form=form on-open=`ui.lo panel-content.pca-form-row(ng-if=`$ctrl.available("2.3.0") && ui.isPanelLoaded('${form}')`) .pca-form-column-6.pc-form-grid-row .pc-form-grid-col-60 - +checkbox('Enabled', connectionEnabled, '"ClientConnectorEnabled"', 'Flag indicating whether to configure client connector configuration') + +form-field__checkbox({ + label: 'Enabled', + model: connectionEnabled, + name: '"ClientConnectorEnabled"', + tip: 'Flag indicating whether to configure client connector configuration' + }) .pc-form-grid-col-60 - +text-enabled('Host:', `${connectionModel}.host`, '"ClientConnectorHost"', connectionEnabled, 'false', 'localhost') + +form-field__text({ + label: 'Host:', + model: `${connectionModel}.host`, + name: '"ClientConnectorHost"', + disabled: `!(${connectionEnabled})`, + placeholder: 'localhost' + }) .pc-form-grid-col-30 - +number('Port:', `${connectionModel}.port`, '"ClientConnectorPort"', connectionEnabled, '10800', '1025') + +form-field__number({ + label: 'Port:', + model: `${connectionModel}.port`, + name: '"ClientConnectorPort"', + disabled: `!(${connectionEnabled})`, + placeholder: '10800', + min: '1025' + }) .pc-form-grid-col-30 - +number('Port range:', `${connectionModel}.portRange`, '"ClientConnectorPortRange"', connectionEnabled, '100', '0') + +form-field__number({ + label: 'Port range:', + model: `${connectionModel}.portRange`, + name: '"ClientConnectorPortRange"', + disabled: `!(${connectionEnabled})`, + placeholder: '100', + min: '0' + }) .pc-form-grid-col-30 - +number('Socket send buffer size:', `${connectionModel}.socketSendBufferSize`, '"ClientConnectorSocketSendBufferSize"', connectionEnabled, '0', '0', - 'Socket send buffer size<br/>\ - When set to <b>0</b>, operation system default will be used') + +form-field__number({ + label: 'Socket send buffer size:', + model: `${connectionModel}.socketSendBufferSize`, + name: '"ClientConnectorSocketSendBufferSize"', + disabled: `!(${connectionEnabled})`, + placeholder: '0', + min: '0', + tip: 'Socket send buffer size<br/>\ + When set to <b>0</b>, operation system default will be used' + }) .pc-form-grid-col-30 - +number('Socket receive buffer size:', `${connectionModel}.socketReceiveBufferSize`, '"ClientConnectorSocketReceiveBufferSize"', connectionEnabled, '0', '0', - 'Socket receive buffer size<br/>\ - When set to <b>0</b>, operation system default will be used') + +form-field__number({ + label: 'Socket receive buffer size:', + model: `${connectionModel}.socketReceiveBufferSize`, + name: '"ClientConnectorSocketReceiveBufferSize"', + disabled: `!(${connectionEnabled})`, + placeholder: '0', + min: '0', + tip: 'Socket receive buffer size<br/>\ + When set to <b>0</b>, operation system default will be used' + }) .pc-form-grid-col-30 - +number('Max connection cursors:', `${connectionModel}.maxOpenCursorsPerConnection`, '"ClientConnectorMaxOpenCursorsPerConnection"', connectionEnabled, '128', '0', - 'Max number of opened cursors per connection') + +form-field__number({ + label: 'Max connection cursors:', + model: `${connectionModel}.maxOpenCursorsPerConnection`, + name: '"ClientConnectorMaxOpenCursorsPerConnection"', + disabled: `!(${connectionEnabled})`, + placeholder: '128', + min: '0', + tip: 'Max number of opened cursors per connection' + }) .pc-form-grid-col-30 - +number('Pool size:', `${connectionModel}.threadPoolSize`, '"ClientConnectorThreadPoolSize"', connectionEnabled, 'max(8, availableProcessors)', '1', - 'Size of thread pool that is in charge of processing SQL requests') + +form-field__number({ + label: 'Pool size:', + model: `${connectionModel}.threadPoolSize`, + name: '"ClientConnectorThreadPoolSize"', + disabled: `!(${connectionEnabled})`, + placeholder: 'max(8, availableProcessors)', + min: '1', + tip: 'Size of thread pool that is in charge of processing SQL requests' + }) .pc-form-grid-col-60 - +checkbox-enabled('TCP_NODELAY option', `${connectionModel}.tcpNoDelay`, '"ClientConnectorTcpNoDelay"', connectionEnabled) + +form-field__checkbox({ + label: 'TCP_NODELAY option', + model: `${connectionModel}.tcpNoDelay`, + name: '"ClientConnectorTcpNoDelay"', + disabled: `!${connectionEnabled}` + }) .pc-form-grid-col-60(ng-if='$ctrl.available("2.4.0")') - +number('Idle timeout:', `${connectionModel}.idleTimeout`, '"ClientConnectorIdleTimeout"', connectionEnabled, '0', '-1', - 'Idle timeout for client connections<br/>\ - Zero or negative means no timeout') + +form-field__number({ + label: 'Idle timeout:', + model: `${connectionModel}.idleTimeout`, + name: '"ClientConnectorIdleTimeout"', + disabled: `!(${connectionEnabled})`, + placeholder: '0', + min: '-1', + tip: 'Idle timeout for client connections<br/>\ + Zero or negative means no timeout' + }) .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.5.0")') - +checkbox-enabled('Enable SSL', `${connectionModel}.sslEnabled`, '"ClientConnectorSslEnabled"', connectionEnabled, 'Enable secure socket layer on client connector') + +form-field__checkbox({ + label: 'Enable SSL', + model: `${connectionModel}.sslEnabled`, + name: '"ClientConnectorSslEnabled"', + disabled: `!${connectionEnabled}`, + tip: 'Enable secure socket layer on client connector' + }) .pc-form-grid-col-60 - +checkbox-enabled('Enable SSL client auth', `${connectionModel}.sslClientAuth`, '"ClientConnectorSslClientAuth"', sslEnabled, 'Flag indicating whether or not SSL client authentication is required') + +form-field__checkbox({ + label: 'Enable SSL client auth', + model: `${connectionModel}.sslClientAuth`, + name: '"ClientConnectorSslClientAuth"', + disabled: `!(${sslEnabled})`, + tip: 'Flag indicating whether or not SSL client authentication is required' + }) .pc-form-grid-col-60 - +checkbox-enabled('Use Ignite SSL', `${connectionModel}.useIgniteSslContextFactory`, '"ClientConnectorUseIgniteSslContextFactory"', sslEnabled, 'Use SSL factory Ignite configuration') + +form-field__checkbox({ + label: 'Use Ignite SSL', + model: `${connectionModel}.useIgniteSslContextFactory`, + name: '"ClientConnectorUseIgniteSslContextFactory"', + disabled: `!(${sslEnabled})`, + tip: 'Use SSL factory Ignite configuration' + }) .pc-form-grid-col-60(ng-if-end) - +java-class('SSL factory:', `${connectionModel}.sslContextFactory`, '"ClientConnectorSslContextFactory"', sslFactoryEnabled, sslFactoryEnabled, - 'If SSL factory specified then replication will be performed through secure SSL channel created with this factory<br/>\ - If not present <b>isUseIgniteSslContextFactory()</b> flag will be evaluated<br/>\ - If set to <b>true</b> and <b>IgniteConfiguration#getSslContextFactory()</b> exists, then Ignite SSL context factory will be used to establish secure connection') + +form-field__java-class({ + label:'SSL factory:', + model: `${connectionModel}.sslContextFactory`, + name: '"ClientConnectorSslContextFactory"', + disabled: `!(${sslFactoryEnabled})`, + required: sslFactoryEnabled, + tip: 'If SSL factory specified then replication will be performed through secure SSL channel created with this factory<br/>\ + If not present <b>isUseIgniteSslContextFactory()</b> flag will be evaluated<br/>\ + If set to <b>true</b> and <b>IgniteConfiguration#getSslContextFactory()</b> exists, then Ignite SSL context factory will be used to establish secure connection' + }) .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.4.0")') - +checkbox-enabled('JDBC Enabled', `${connectionModel}.jdbcEnabled`, '"ClientConnectorJdbcEnabled"', connectionEnabled, 'Access through JDBC is enabled') + +form-field__checkbox({ + label: 'JDBC Enabled', + model: `${connectionModel}.jdbcEnabled`, + name: '"ClientConnectorJdbcEnabled"', + disabled: `!${connectionEnabled}`, + tip: 'Access through JDBC is enabled' + }) .pc-form-grid-col-60 - +checkbox-enabled('ODBC Enabled', `${connectionModel}.odbcEnabled`, '"ClientConnectorOdbcEnabled"', connectionEnabled, 'Access through ODBC is enabled') + +form-field__checkbox({ + label: 'ODBC Enabled', + model: `${connectionModel}.odbcEnabled`, + name: '"ClientConnectorOdbcEnabled"', + disabled: `!${connectionEnabled}`, + tip: 'Access through ODBC is enabled' + }) .pc-form-grid-col-60(ng-if-end) - +checkbox-enabled('Thin client enabled', `${connectionModel}.thinClientEnabled`, '"ClientConnectorThinCliEnabled"', connectionEnabled, 'Access through thin client is enabled') + +form-field__checkbox({ + label: 'Thin client enabled', + model: `${connectionModel}.thinClientEnabled`, + name: '"ClientConnectorThinCliEnabled"', + disabled: `!${connectionEnabled}`, + tip: 'Access through thin client is enabled' + }) .pca-form-column-6 +preview-xml-java(model, 'clusterClientConnector') http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision.pug index c315af1..e3cacd3 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision.pug @@ -23,27 +23,32 @@ include /app/helpers/jade/mixins panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) panel-title Collision configuration panel-description - | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution. + | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution. | #[a.link-success(href="https://apacheignite.readme.io/docs/job-scheduling" target="_blank") More info] panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) .pca-form-column-6.pc-form-grid-row .pc-form-grid-col-60 - +dropdown('CollisionSpi:', modelCollisionKind, '"collisionKind"', 'true', '', - '[\ + +form-field__dropdown({ + label:'CollisionSpi:', + model: modelCollisionKind, + name: '"collisionKind"', + placeholder: 'Choose discovery', + options: '[\ {value: "JobStealing", label: "Job stealing"},\ {value: "FifoQueue", label: "FIFO queue"},\ {value: "PriorityQueue", label: "Priority queue"},\ {value: "Custom", label: "Custom"},\ {value: "Noop", label: "Default"}\ ]', - 'Regulate how grid jobs get executed when they arrive on a destination node for execution\ - <ul>\ - <li>Job stealing - supports job stealing from over-utilized nodes to under-utilized nodes</li>\ - <li>FIFO queue - jobs are ordered as they arrived</li>\ - <li>Priority queue - jobs are first ordered by their priority</li>\ - <li>Custom - custom CollisionSpi implementation</li>\ - <li>Default - jobs are activated immediately on arrival to mapped node</li>\ - </ul>') + tip: 'Regulate how grid jobs get executed when they arrive on a destination node for execution\ + <ul>\ + <li>Job stealing - supports job stealing from over-utilized nodes to under-utilized nodes</li>\ + <li>FIFO queue - jobs are ordered as they arrived</li>\ + <li>Priority queue - jobs are first ordered by their priority</li>\ + <li>Custom - custom CollisionSpi implementation</li>\ + <li>Default - jobs are activated immediately on arrival to mapped node</li>\ + </ul>' + }) .pc-form-group(ng-show=`${modelCollisionKind} !== 'Noop'`) .pc-form-grid-row(ng-show=`${modelCollisionKind} === 'JobStealing'`) include ./collision/job-stealing http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/custom.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/custom.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/custom.pug index c1d11d5..64bd5e4 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/custom.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/custom.pug @@ -20,4 +20,11 @@ include /app/helpers/jade/mixins -var required = '$ctrl.clonedCluster.collision.kind === "Custom"' .pc-form-grid-col-60 - +java-class('Class:', `${model}.class`, '"collisionCustom"', 'true', required, 'CollisionSpi implementation class', required) + +form-field__java-class({ + label: 'Class:', + model: `${model}.class`, + name: '"collisionCustom"', + required: required, + tip: 'CollisionSpi implementation class', + validationActive: required + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/fifo-queue.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/fifo-queue.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/fifo-queue.pug index c009386..de795b7 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/fifo-queue.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/fifo-queue.pug @@ -19,8 +19,20 @@ include /app/helpers/jade/mixins -var model = '$ctrl.clonedCluster.collision.FifoQueue' .pc-form-grid-col-30 - +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"fifoParallelJobsNumber"', 'true', 'availableProcessors * 2', '1', - 'Number of jobs that can be executed in parallel') + +form-field__number({ + label: 'Parallel jobs number:', + model: `${model}.parallelJobsNumber`, + name: '"fifoParallelJobsNumber"', + placeholder: 'availableProcessors * 2', + min: '1', + tip: 'Number of jobs that can be executed in parallel' + }) .pc-form-grid-col-30 - +number('Wait jobs number:', `${model}.waitingJobsNumber`, '"fifoWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0', - 'Maximum number of jobs that are allowed to wait in waiting queue') + +form-field__number({ + label: 'Wait jobs number:', + model: `${model}.waitingJobsNumber`, + name: '"fifoWaitingJobsNumber"', + placeholder: 'Integer.MAX_VALUE', + min: '0', + tip: 'Maximum number of jobs that are allowed to wait in waiting queue' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/job-stealing.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/job-stealing.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/job-stealing.pug index 10e0d7d..8722544 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/job-stealing.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/job-stealing.pug @@ -20,30 +20,63 @@ include /app/helpers/jade/mixins -var stealingAttributes = `${model}.stealingAttributes` .pc-form-grid-col-30 - +number('Active jobs threshold:', `${model}.activeJobsThreshold`, '"jsActiveJobsThreshold"', 'true', '95', '0', - 'Number of jobs that can be executed in parallel') + +form-field__number({ + label: 'Active jobs threshold:', + model: `${model}.activeJobsThreshold`, + name: '"jsActiveJobsThreshold"', + placeholder: '95', + min: '0', + tip: 'Number of jobs that can be executed in parallel' + }) .pc-form-grid-col-30 - +number('Wait jobs threshold:', `${model}.waitJobsThreshold`, '"jsWaitJobsThreshold"', 'true', '0', '0', - 'Job count threshold at which this node will start stealing jobs from other nodes') + +form-field__number({ + label: 'Wait jobs threshold:', + model: `${model}.waitJobsThreshold`, + name: '"jsWaitJobsThreshold"', + placeholder: '0', + min: '0', + tip: 'Job count threshold at which this node will start stealing jobs from other nodes' + }) .pc-form-grid-col-30 - +number('Message expire time:', `${model}.messageExpireTime`, '"jsMessageExpireTime"', 'true', '1000', '1', - 'Message expire time in ms') + +form-field__number({ + label: 'Message expire time:', + model: `${model}.messageExpireTime`, + name: '"jsMessageExpireTime"', + placeholder: '1000', + min: '1', + tip: 'Message expire time in ms' + }) .pc-form-grid-col-30 - +number('Maximum stealing attempts:', `${model}.maximumStealingAttempts`, '"jsMaximumStealingAttempts"', 'true', '5', '1', - 'Maximum number of attempts to steal job by another node') + +form-field__number({ + label: 'Maximum stealing attempts:', + model: `${model}.maximumStealingAttempts`, + name: '"jsMaximumStealingAttempts"', + placeholder: '5', + min: '1', + tip: 'Maximum number of attempts to steal job by another node' + }) .pc-form-grid-col-60 - +checkbox('Stealing enabled', `${model}.stealingEnabled`, '"jsStealingEnabled"', - 'Node should attempt to steal jobs from other nodes') + +form-field__checkbox({ + label: 'Stealing enabled', + model: `${model}.stealingEnabled`, + name: '"jsStealingEnabled"', + tip: 'Node should attempt to steal jobs from other nodes' + }) .pc-form-grid-col-60 - +java-class('External listener:', `${model}.externalCollisionListener`, '"jsExternalCollisionListener"', 'true', 'false', - 'Listener to be set for notification of external collision events', '$ctrl.clonedCluster.collision.kind === "JobStealing"') + +form-field__java-class({ + label: 'External listener:', + model: `${model}.externalCollisionListener`, + name: '"jsExternalCollisionListener"', + tip: 'Listener to be set for notification of external collision events', + validationActive: '$ctrl.clonedCluster.collision.kind === "JobStealing"' + }) .pc-form-grid-col-60 .ignite-form-field +form-field__label({ label: 'Stealing attributes:', name: '"stealingAttributes"' }) +form-field__tooltip(`Configuration parameter to enable stealing to/from only nodes that have these attributes set`) +list-pair-edit({ items: stealingAttributes, - keyLbl: 'Attribute name', + keyLbl: 'Attribute name', valLbl: 'Attribute value', itemName: 'stealing attribute', itemsName: 'stealing attributes' http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/priority-queue.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/priority-queue.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/priority-queue.pug index fd198ce..c8ae733 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/priority-queue.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/collision/priority-queue.pug @@ -19,23 +19,61 @@ include /app/helpers/jade/mixins -var model = '$ctrl.clonedCluster.collision.PriorityQueue' .pc-form-grid-col-30 - +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"priorityParallelJobsNumber"', 'true', 'availableProcessors * 2', '1', - 'Number of jobs that can be executed in parallel') + +form-field__number({ + label: 'Parallel jobs number:', + model: `${model}.parallelJobsNumber`, + name: '"priorityParallelJobsNumber"', + placeholder: 'availableProcessors * 2', + min: '1', + tip: 'Number of jobs that can be executed in parallel' + }) .pc-form-grid-col-30 - +number('Waiting jobs number:', `${model}.waitingJobsNumber`, '"priorityWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0', - 'Maximum number of jobs that are allowed to wait in waiting queue') + +form-field__number({ + label: 'Waiting jobs number:', + model: `${model}.waitingJobsNumber`, + name: '"priorityWaitingJobsNumber"', + placeholder: 'Integer.MAX_VALUE', + min: '0', + tip: 'Maximum number of jobs that are allowed to wait in waiting queue' + }) .pc-form-grid-col-30 - +text('Priority attribute key:', `${model}.priorityAttributeKey`, '"priorityPriorityAttributeKey"', 'false', 'grid.task.priority', - 'Task priority attribute key') + +form-field__text({ + label: 'Priority attribute key:', + model: `${model}.priorityAttributeKey`, + name: '"priorityPriorityAttributeKey"', + placeholder: 'grid.task.priority', + tip: 'Task priority attribute key' + }) .pc-form-grid-col-30 - +text('Job priority attribute key:', `${model}.jobPriorityAttributeKey`, '"priorityJobPriorityAttributeKey"', 'false', 'grid.job.priority', - 'Job priority attribute key') + +form-field__text({ + label: 'Job priority attribute key:', + model: `${model}.jobPriorityAttributeKey`, + name: '"priorityJobPriorityAttributeKey"', + placeholder: 'grid.job.priority', + tip: 'Job priority attribute key' + }) .pc-form-grid-col-30 - +number('Default priority:', `${model}.defaultPriority`, '"priorityDefaultPriority"', 'true', '0', '0', - 'Default priority to use if a job does not have priority attribute set') + +form-field__number({ + label: 'Default priority:', + model: `${model}.defaultPriority`, + name: '"priorityDefaultPriority"', + placeholder: '0', + min: '0', + tip: 'Default priority to use if a job does not have priority attribute set' + }) .pc-form-grid-col-30 - +number('Starvation increment:', `${model}.starvationIncrement`, '"priorityStarvationIncrement"', 'true', '1', '0', - 'Value to increment job priority by every time a lower priority job gets behind a higher priority job') + +form-field__number({ + label: 'Starvation increment:', + model: `${model}.starvationIncrement`, + name: '"priorityStarvationIncrement"', + placeholder: '1', + min: '0', + tip: 'Value to increment job priority by every time a lower priority job gets behind a higher priority job' + }) .pc-form-grid-col-60 - +checkbox('Starvation prevention enabled', `${model}.starvationPreventionEnabled`, '"priorityStarvationPreventionEnabled"', - 'Job starvation prevention is enabled') + +form-field__checkbox({ + label: 'Starvation prevention enabled', + model: `${model}.starvationPreventionEnabled`, + name: '"priorityStarvationPreventionEnabled"', + tip: 'Job starvation prevention is enabled' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/communication.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/communication.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/communication.pug index c94ea40..cdf473a 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/communication.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/communication.pug @@ -24,28 +24,82 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) panel-title Communication panel-description | Configuration of communication with other nodes by TCP/IP. - | Provide basic plumbing to send and receive grid messages and is utilized for all distributed grid operations. + | Provide basic plumbing to send and receive grid messages and is utilized for all distributed grid operations. | #[a.link-success(href="https://apacheignite.readme.io/docs/network-config" target="_blank") More info] panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) .pca-form-column-6.pc-form-grid-row .pc-form-grid-col-30 - +number('Timeout:', `${model}.networkTimeout`, '"commNetworkTimeout"', 'true', '5000', '1', 'Maximum timeout in milliseconds for network requests') + +form-field__number({ + label: 'Timeout:', + model: `${model}.networkTimeout`, + name: '"commNetworkTimeout"', + placeholder: '5000', + min: '1', + tip: 'Maximum timeout in milliseconds for network requests' + }) .pc-form-grid-col-30 - +number('Send retry delay:', `${model}.networkSendRetryDelay`, '"networkSendRetryDelay"', 'true', '1000', '1', 'Interval in milliseconds between message send retries') + +form-field__number({ + label: 'Send retry delay:', + model: `${model}.networkSendRetryDelay`, + name: '"networkSendRetryDelay"', + placeholder: '1000', + min: '1', + tip: 'Interval in milliseconds between message send retries' + }) .pc-form-grid-col-30 - +number('Send retry count:', `${model}.networkSendRetryCount`, '"networkSendRetryCount"', 'true', '3', '1', 'Message send retries count') + +form-field__number({ + label: 'Send retry count:', + model: `${model}.networkSendRetryCount`, + name: '"networkSendRetryCount"', + placeholder: '3', + min: '1', + tip: 'Message send retries count' + }) .pc-form-grid-col-30(ng-if='$ctrl.available(["1.0.0", "2.3.0"])') - +number('Discovery startup delay:', `${model}.discoveryStartupDelay`, '"discoveryStartupDelay"', 'true', '60000', '1', 'This value is used to expire messages from waiting list whenever node discovery discrepancies happen') + +form-field__number({ + label: 'Discovery startup delay:', + model: `${model}.discoveryStartupDelay`, + name: '"discoveryStartupDelay"', + placeholder: '60000', + min: '1', + tip: 'This value is used to expire messages from waiting list whenever node discovery discrepancies happen' + }) .pc-form-grid-col-60 - +java-class('Communication listener:', `${communication}.listener`, '"comListener"', 'true', 'false', 'Listener of communication events') + +form-field__java-class({ + label: 'Communication listener:', + model: `${communication}.listener`, + name: '"comListener"', + tip: 'Listener of communication events' + }) .pc-form-grid-col-30 - +text-ip-address('Local IP address:', `${communication}.localAddress`, '"comLocalAddress"', 'true', '0.0.0.0', - 'Local host address for socket binding<br/>\ - If not specified use all available addres on local host') + +form-field__ip-address({ + label: 'Local IP address:', + model: `${communication}.localAddress`, + name: '"comLocalAddress"', + enabled: 'true', + placeholder: '0.0.0.0', + tip: 'Local host address for socket binding<br/>\ + If not specified use all available addres on local host' + }) .pc-form-grid-col-30 - +number-min-max('Local port:', `${communication}.localPort`, '"comLocalPort"', 'true', '47100', '1024', '65535', 'Local port for socket binding') + +form-field__number({ + label: 'Local port:', + model: `${communication}.localPort`, + name: '"comLocalPort"', + placeholder: '47100', + min: '1024', + max: '65535', + tip: 'Local port for socket binding' + }) .pc-form-grid-col-30 - +number('Local port range:', `${communication}.localPortRange`, '"comLocalPortRange"', 'true', '100', '1', 'Local port range for local host ports') + +form-field__number({ + label: 'Local port range:', + model: `${communication}.localPortRange`, + name: '"comLocalPortRange"', + placeholder: '100', + min: '1', + tip: 'Local port range for local host ports' + }) .pc-form-grid-col-30 +form-field__number({ label: 'Shared memory port:', @@ -60,21 +114,68 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) ) +form-field__error({ error: 'notInCollection', message: 'Shared memory port should be more than "{{ ::$ctrl.Clusters.sharedMemoryPort.invalidValues[0] }}" or equal to "{{ ::$ctrl.Clusters.sharedMemoryPort.min }}"' }) .pc-form-grid-col-30 - +number('Idle connection timeout:', `${communication}.idleConnectionTimeout`, '"idleConnectionTimeout"', 'true', '30000', '1', - 'Maximum idle connection timeout upon which a connection to client will be closed') + +form-field__number({ + label: 'Idle connection timeout:', + model: `${communication}.idleConnectionTimeout`, + name: '"idleConnectionTimeout"', + placeholder: '30000', + min: '1', + tip: 'Maximum idle connection timeout upon which a connection to client will be closed' + }) .pc-form-grid-col-30 - +number('Connect timeout:', `${communication}.connectTimeout`, '"connectTimeout"', 'true', '5000', '0', 'Connect timeout used when establishing connection with remote nodes') + +form-field__number({ + label: 'Connect timeout:', + model: `${communication}.connectTimeout`, + name: '"connectTimeout"', + placeholder: '5000', + min: '0', + tip: 'Connect timeout used when establishing connection with remote nodes' + }) .pc-form-grid-col-30 - +number('Max. connect timeout:', `${communication}.maxConnectTimeout`, '"maxConnectTimeout"', 'true', '600000', '0', 'Maximum connect timeout') + +form-field__number({ + label: 'Max. connect timeout:', + model: `${communication}.maxConnectTimeout`, + name: '"maxConnectTimeout"', + placeholder: '600000', + min: '0', + tip: 'Maximum connect timeout' + }) .pc-form-grid-col-30 - +number('Reconnect count:', `${communication}.reconnectCount`, '"comReconnectCount"', 'true', '10', '1', - 'Maximum number of reconnect attempts used when establishing connection with remote nodes') + +form-field__number({ + label: 'Reconnect count:', + model: `${communication}.reconnectCount`, + name: '"comReconnectCount"', + placeholder: '10', + min: '1', + tip: 'Maximum number of reconnect attempts used when establishing connection with remote nodes' + }) .pc-form-grid-col-30 - +number('Socket send buffer:', `${communication}.socketSendBuffer`, '"socketSendBuffer"', 'true', '32768', '0', 'Send buffer size for sockets created or accepted by this SPI') + +form-field__number({ + label: 'Socket send buffer:', + model: `${communication}.socketSendBuffer`, + name: '"socketSendBuffer"', + placeholder: '32768', + min: '0', + tip: 'Send buffer size for sockets created or accepted by this SPI' + }) .pc-form-grid-col-30 - +number('Socket receive buffer:', `${communication}.socketReceiveBuffer`, '"socketReceiveBuffer"', 'true', '32768', '0', 'Receive buffer size for sockets created or accepted by this SPI') + +form-field__number({ + label: 'Socket receive buffer:', + model: `${communication}.socketReceiveBuffer`, + name: '"socketReceiveBuffer"', + placeholder: '32768', + min: '0', + tip: 'Receive buffer size for sockets created or accepted by this SPI' + }) .pc-form-grid-col-30 - +number('Slow client queue limit:', `${communication}.slowClientQueueLimit`, '"slowClientQueueLimit"', 'true', '0', '0', 'Slow client queue limit') + +form-field__number({ + label: 'Slow client queue limit:', + model: `${communication}.slowClientQueueLimit`, + name: '"slowClientQueueLimit"', + placeholder: '0', + min: '0', + tip: 'Slow client queue limit' + }) .pc-form-grid-col-30 +form-field__number({ label: 'Ack send threshold:', @@ -117,18 +218,51 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) }` ) .pc-form-grid-col-30 - +number('Socket write timeout:', `${communication}.socketWriteTimeout`, '"socketWriteTimeout"', 'true', '2000', '0', 'Socket write timeout') + +form-field__number({ + label: 'Socket write timeout:', + model: `${communication}.socketWriteTimeout`, + name: '"socketWriteTimeout"', + placeholder: '2000', + min: '0', + tip: 'Socket write timeout' + }) .pc-form-grid-col-30 - +number('Selectors count:', `${communication}.selectorsCount`, '"selectorsCount"', 'true', 'min(4, availableProcessors)', '1', 'Count of selectors te be used in TCP server') + +form-field__number({ + label: 'Selectors count:', + model: `${communication}.selectorsCount`, + name: '"selectorsCount"', + placeholder: 'min(4, availableProcessors)', + min: '1', + tip: 'Count of selectors te be used in TCP server' + }) .pc-form-grid-col-60 - +java-class('Address resolver:', `${communication}.addressResolver`, '"comAddressResolver"', 'true', 'false', 'Provides resolution between external and internal addresses') + +form-field__java-class({ + label: 'Address resolver:', + model: `${communication}.addressResolver`, + name: '"comAddressResolver"', + tip: 'Provides resolution between external and internal addresses' + }) .pc-form-grid-col-60 - +checkbox('Direct buffer', `${communication}.directBuffer`, '"directBuffer"', - 'If value is true, then SPI will use ByteBuffer.allocateDirect(int) call<br/>\ - Otherwise, SPI will use ByteBuffer.allocate(int) call') + +form-field__checkbox({ + label: 'Direct buffer', + model: `${communication}.directBuffer`, + name: '"directBuffer"', + tip: 'If value is true, then SPI will use ByteBuffer.allocateDirect(int) call<br/>\ + Otherwise, SPI will use ByteBuffer.allocate(int) call' + }) .pc-form-grid-col-60 - +checkbox('Direct send buffer', `${communication}.directSendBuffer`, '"directSendBuffer"', 'Flag defining whether direct send buffer should be used') + +form-field__checkbox({ + label: 'Direct send buffer', + model: `${communication}.directSendBuffer`, + name: '"directSendBuffer"', + tip: 'Flag defining whether direct send buffer should be used' + }) .pc-form-grid-col-60 - +checkbox('TCP_NODELAY option', `${communication}.tcpNoDelay`, '"tcpNoDelay"', 'Value for TCP_NODELAY socket option') + +form-field__checkbox({ + label: 'TCP_NODELAY option', + model: `${communication}.tcpNoDelay`, + name: '"tcpNoDelay"', + tip: 'Value for TCP_NODELAY socket option' + }) .pca-form-column-6 +preview-xml-java(model, 'clusterCommunication')
