You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by nt...@apache.org on 2017/04/03 08:31:14 UTC
[14/50] [abbrv] ignite git commit: IGNITE-4659 Migration to Webpack
2. Upgrade template engine from jade to pug. (cherry picked from commit
1080e68)
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
new file mode 100644
index 0000000..716e082
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint.pug
@@ -0,0 +1,86 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'checkpoint'
+-var model = 'backupItem.checkpointSpi'
+-var CustomCheckpoint = 'model.kind === "Custom"'
+-var CacheCheckpoint = 'model.kind === "Cache"'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Checkpointing
+ ignite-form-field-tooltip.tipLabel
+ | Checkpointing provides an ability to save an intermediate job state#[br]
+ | #[a(href="http://apacheignite.readme.io/docs/checkpointing" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row(ng-init='checkpointSpiTbl={type: "checkpointSpi", model: "checkpointSpi", focusId: "kind", ui: "checkpoint-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Checkpoint SPI configurations
+ ignite-form-group-tooltip
+ | Checkpoint SPI configurations
+ ignite-form-group-add(ng-click='tableNewItem(checkpointSpiTbl)')
+ | Add checkpoint SPI
+ .group-content-empty(ng-if=`!(${model} && ${model}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${model} && ${model}.length > 0` ng-repeat=`model in ${model} track by $index`)
+ hr(ng-if='$index != 0')
+ .settings-row
+ +dropdown-required-autofocus('Checkpoint SPI:', 'model.kind', '"checkpointKind" + $index', 'true', 'true', 'Choose checkpoint configuration variant', '[\
+ {value: "FS", label: "File System"},\
+ {value: "Cache", label: "Cache"},\
+ {value: "S3", label: "Amazon S3"},\
+ {value: "JDBC", label: "Database"},\
+ {value: "Custom", label: "Custom"}\
+ ]',
+ 'Provides an ability to save an intermediate job state\
+ <ul>\
+ <li>File System - Uses a shared file system to store checkpoints</li>\
+ <li>Cache - Uses a cache to store checkpoints</li>\
+ <li>Amazon S3 - Uses Amazon S3 to store checkpoints</li>\
+ <li>Database - Uses a database to store checkpoints</li>\
+ <li>Custom - Custom checkpoint SPI implementation</li>\
+ </ul>')
+ +table-remove-button(model, 'Remove Checkpoint SPI')
+
+ div(ng-show='model.kind === "FS"')
+ include ./checkpoint/fs
+
+ div(ng-show=CacheCheckpoint)
+ .settings-row
+ +dropdown-required-empty('Cache:', 'model.Cache.cache', '"checkpointCacheCache" + $index', 'true', CacheCheckpoint,
+ 'Choose cache', 'No caches configured for current cluster', 'clusterCaches', 'Cache to use for storing checkpoints')
+ .settings-row
+ +java-class('Listener:', 'model.Cache.checkpointListener', '"checkpointCacheListener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', CacheCheckpoint)
+
+ div(ng-show='model.kind === "S3"')
+ include ./checkpoint/s3
+
+ div(ng-show='model.kind === "JDBC"')
+ include ./checkpoint/jdbc
+
+ .settings-row(ng-show=CustomCheckpoint)
+ +java-class('Class name:', 'model.Custom.className', '"checkpointCustomClassName" + $index', 'true', CustomCheckpoint,
+ 'Custom CheckpointSpi implementation class', CustomCheckpoint)
+ .col-sm-6
+ +preview-xml-java('backupItem', 'clusterCheckpoint', 'caches')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade
deleted file mode 100644
index 6ec4535..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.jade
+++ /dev/null
@@ -1,66 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'checkpointFsPaths'
--var dirPaths = 'model.FS.directoryPaths'
-
-.details-row
- +ignite-form-group(ng-form=form ng-model=dirPaths)
- -var uniqueTip = 'Such path already exists!'
-
- ignite-form-field-label
- | Paths
- ignite-form-group-tooltip
- | Paths to a shared directory where checkpoints will be stored
- ignite-form-group-add(ng-click='(group.add = [{}])')
- | Add new path
-
- .group-content(ng-if='#{dirPaths}.length')
- -var model = 'obj.model';
- -var name = '"edit" + $index'
- -var valid = form + '[' + name + '].$valid'
- -var save = dirPaths + '[$index] = ' + model
-
- div(ng-repeat='item in #{dirPaths} track by $index' ng-init='obj = {}')
- label.col-xs-12.col-sm-12.col-md-12
- .indexField
- | {{ $index+1 }})
- +table-remove-conditional-button(dirPaths, 'true', 'Remove path', 'item')
- span(ng-hide='field.edit')
- a.labelFormField(ng-click='(field.edit = true) && (#{model} = item)') {{ item }}
- span(ng-if='field.edit')
- +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', false)
- +table-save-button(valid, save, false)
- +unique-feedback(name, uniqueTip)
- .group-content(ng-repeat='field in group.add')
- -var model = 'new';
- -var name = '"new"'
- -var valid = form + '[' + name + '].$valid'
- -var save = dirPaths + '.push(' + model + ')'
-
- div
- label.col-xs-12.col-sm-12.col-md-12
- +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', true)
- +table-save-button(valid, save, true)
- +unique-feedback(name, uniqueTip)
- .group-content-empty(ng-if='!(#{dirPaths}.length) && !group.add.length')
- | Not defined
-
-.settings-row
- +java-class('Listener:', 'model.FS.checkpointListener', '"checkpointFsListener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', 'model.kind === "FS"')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
new file mode 100644
index 0000000..04cc7fb
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/fs.pug
@@ -0,0 +1,66 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'checkpointFsPaths'
+-var dirPaths = 'model.FS.directoryPaths'
+
+.details-row
+ +ignite-form-group(ng-form=form ng-model=dirPaths)
+ -var uniqueTip = 'Such path already exists!'
+
+ ignite-form-field-label
+ | Paths
+ ignite-form-group-tooltip
+ | Paths to a shared directory where checkpoints will be stored
+ ignite-form-group-add(ng-click='(group.add = [{}])')
+ | Add new path
+
+ .group-content(ng-if=`${dirPaths}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = dirPaths + '[$index] = ' + model
+
+ div(ng-repeat=`item in ${dirPaths} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-conditional-button(dirPaths, 'true', 'Remove path', 'item')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`(field.edit = true) && (${model} = item)`) {{ item }}
+ span(ng-if='field.edit')
+ +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = dirPaths + '.push(' + model + ')'
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-text-field(name, model, dirPaths, valid, save, 'Input directory path', true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+ .group-content-empty(ng-if=`!(${dirPaths}.length) && !group.add.length`)
+ | Not defined
+
+.settings-row
+ +java-class('Listener:', 'model.FS.checkpointListener', '"checkpointFsListener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', 'model.kind === "FS"')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade
deleted file mode 100644
index 5a13337..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.jade
+++ /dev/null
@@ -1,48 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var jdbcCheckpoint = 'model.kind === "JDBC"'
-
-.settings-row
- +text('Data source bean name:', 'model.JDBC.dataSourceBean', '"checkpointJdbcDataSourceBean" + $index', jdbcCheckpoint, 'Input bean name',
- 'Name of the data source bean in Spring context')
-.settings-row
- +dialect('Dialect:', 'model.JDBC.dialect', '"checkpointJdbcDialect" + $index', jdbcCheckpoint,
- 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
-.settings-row
- +java-class('Listener:', 'model.JDBC.checkpointListener', '"checkpointJdbcListener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', jdbcCheckpoint)
-+showHideLink('jdbcExpanded', 'settings')
- .details-row
- +text('User:', 'model.JDBC.user', '"checkpointJdbcUser" + $index', 'false', 'Input user name', 'Checkpoint jdbc user name')
- .details-row
- +text('Table name:', 'model.JDBC.checkpointTableName', '"checkpointJdbcCheckpointTableName" + $index', 'false', 'CHECKPOINTS', 'Checkpoint table name')
- .details-row
- +text('Key field name:', 'model.JDBC.keyFieldName', '"checkpointJdbcKeyFieldName" + $index', 'false', 'NAME', 'Checkpoint key field name')
- .details-row
- +dropdown('Key field type:', 'model.JDBC.keyFieldType', '"checkpointJdbcKeyFieldType" + $index', 'true', 'VARCHAR', 'supportedJdbcTypes', 'Checkpoint key field type')
- .details-row
- +text('Value field name:', 'model.JDBC.valueFieldName', '"checkpointJdbcValueFieldName" + $index', 'false', 'VALUE', 'Checkpoint value field name')
- .details-row
- +dropdown('Value field type:', 'model.JDBC.valueFieldType', '"checkpointJdbcValueFieldType" + $index', 'true', 'BLOB', 'supportedJdbcTypes', 'Checkpoint value field type')
- .details-row
- +text('Expire date field name:', 'model.JDBC.expireDateFieldName', '"checkpointJdbcExpireDateFieldName" + $index', 'false', 'EXPIRE_DATE', 'Checkpoint expire date field name')
- .details-row
- +dropdown('Expire date field type:', 'model.JDBC.expireDateFieldType', '"checkpointJdbcExpireDateFieldType"', 'true', 'DATETIME', 'supportedJdbcTypes', 'Checkpoint expire date field type')
- .details-row
- +number('Number of retries:', 'model.JDBC.numberOfRetries', '"checkpointJdbcNumberOfRetries"', 'true', '2', '0', 'Number of retries in case of DB failure')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
new file mode 100644
index 0000000..ea67977
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/jdbc.pug
@@ -0,0 +1,48 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var jdbcCheckpoint = 'model.kind === "JDBC"'
+
+.settings-row
+ +text('Data source bean name:', 'model.JDBC.dataSourceBean', '"checkpointJdbcDataSourceBean" + $index', jdbcCheckpoint, 'Input bean name',
+ 'Name of the data source bean in Spring context')
+.settings-row
+ +dialect('Dialect:', 'model.JDBC.dialect', '"checkpointJdbcDialect" + $index', jdbcCheckpoint,
+ 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect')
+.settings-row
+ +java-class('Listener:', 'model.JDBC.checkpointListener', '"checkpointJdbcListener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', jdbcCheckpoint)
++showHideLink('jdbcExpanded', 'settings')
+ .details-row
+ +text('User:', 'model.JDBC.user', '"checkpointJdbcUser" + $index', 'false', 'Input user name', 'Checkpoint jdbc user name')
+ .details-row
+ +text('Table name:', 'model.JDBC.checkpointTableName', '"checkpointJdbcCheckpointTableName" + $index', 'false', 'CHECKPOINTS', 'Checkpoint table name')
+ .details-row
+ +text('Key field name:', 'model.JDBC.keyFieldName', '"checkpointJdbcKeyFieldName" + $index', 'false', 'NAME', 'Checkpoint key field name')
+ .details-row
+ +dropdown('Key field type:', 'model.JDBC.keyFieldType', '"checkpointJdbcKeyFieldType" + $index', 'true', 'VARCHAR', 'supportedJdbcTypes', 'Checkpoint key field type')
+ .details-row
+ +text('Value field name:', 'model.JDBC.valueFieldName', '"checkpointJdbcValueFieldName" + $index', 'false', 'VALUE', 'Checkpoint value field name')
+ .details-row
+ +dropdown('Value field type:', 'model.JDBC.valueFieldType', '"checkpointJdbcValueFieldType" + $index', 'true', 'BLOB', 'supportedJdbcTypes', 'Checkpoint value field type')
+ .details-row
+ +text('Expire date field name:', 'model.JDBC.expireDateFieldName', '"checkpointJdbcExpireDateFieldName" + $index', 'false', 'EXPIRE_DATE', 'Checkpoint expire date field name')
+ .details-row
+ +dropdown('Expire date field type:', 'model.JDBC.expireDateFieldType', '"checkpointJdbcExpireDateFieldType"', 'true', 'DATETIME', 'supportedJdbcTypes', 'Checkpoint expire date field type')
+ .details-row
+ +number('Number of retries:', 'model.JDBC.numberOfRetries', '"checkpointJdbcNumberOfRetries"', 'true', '2', '0', 'Number of retries in case of DB failure')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade
deleted file mode 100644
index 6531897..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.jade
+++ /dev/null
@@ -1,178 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var credentialsModel = 'model.S3.awsCredentials'
--var clientCfgModel = 'model.S3.clientConfiguration'
--var checkpointS3 = 'model.kind === "S3"'
--var checkpointS3Path = checkpointS3 + ' && model.S3.awsCredentials.kind === "Properties"'
--var checkpointS3Custom = checkpointS3 + ' && model.S3.awsCredentials.kind === "Custom"'
-
--var clientRetryModel = clientCfgModel + '.retryPolicy'
--var checkpointS3DefaultMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DefaultMaxRetries"'
--var checkpointS3DynamoDbMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DynamoDBMaxRetries"'
--var checkpointS3CustomRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "Custom"'
-
-.settings-row
- +dropdown-required('AWS credentials:', 'model.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>')
-.settings-row
- label Note, AWS credentials will be generated as stub
-.panel-details(ng-show=checkpointS3Path)
- .details-row
- +text('Path:', credentialsModel + '.Properties.path', '"checkpointS3PropertiesPath"', checkpointS3Path, 'Input properties file path',
- 'The file from which to read the AWS credentials properties')
-.panel-details(ng-show=checkpointS3Custom)
- .details-row
- +java-class('Class name:', credentialsModel + '.Custom.className', '"checkpointS3CustomClassName" + $index', 'true', checkpointS3Custom,
- 'Custom AWS credentials provider implementation class', checkpointS3Custom)
-.settings-row
- +text('Bucket name suffix:', 'model.S3.bucketNameSuffix', '"checkpointS3BucketNameSuffix"', 'false', 'default-bucket', 'Bucket name suffix')
-.settings-row
- +java-class('Listener:', 'model.S3.checkpointListener', '"checkpointS3Listener" + $index', 'true', 'false',
- 'Checkpoint listener implementation class name', checkpointS3)
-+showHideLink('s3Expanded', 'client configuration')
- .details-row
- +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>')
- .details-row
- +number('Maximum connections:', clientCfgModel + '.maxConnections', '"checkpointS3MaxConnections"',
- 'true', '50', '1', 'Maximum number of allowed open HTTP connections')
- .details-row
- +text('User agent:', clientCfgModel + '.userAgent', '"checkpointS3UserAgent"', 'false', 'System specific header',
- 'HTTP user agent header to send with all requests')
- .details-row
- +text-ip-address('Local address:', clientCfgModel + '.localAddress', '"checkpointS3LocalAddress"', 'true', 'Not specified',
- 'Optionally specifies the local address to bind to')
- .details-row
- +text('Proxy host:', clientCfgModel + '.proxyHost', '"checkpointS3ProxyHost"', 'false', 'Not specified',
- 'Optional proxy host the client will connect through')
- .details-row
- +number('Proxy port:', clientCfgModel + '.proxyPort', '"checkpointS3ProxyPort"', 'true', 'Not specified', '0',
- 'Optional proxy port the client will connect through')
- .details-row
- +text('Proxy user:', clientCfgModel + '.proxyUsername', '"checkpointS3ProxyUsername"', 'false', 'Not specified',
- 'Optional proxy user name to use if connecting through a proxy')
- .details-row
- +text('Proxy domain:', clientCfgModel + '.proxyDomain', '"checkpointS3ProxyDomain"', 'false', 'Not specified',
- 'Optional Windows domain name for configuring an NTLM proxy')
- .details-row
- +text('Proxy workstation:', clientCfgModel + '.proxyWorkstation', '"checkpointS3ProxyWorkstation"', 'false', 'Not specified',
- 'Optional Windows workstation name for configuring NTLM proxy support')
- .details-row
- +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>')
- .panel-details(ng-show=checkpointS3DefaultMaxRetry)
- .details-row
- +number-required('Maximum retry attempts:', clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', '"checkpointS3DefaultMaxErrorRetry"', 'true', checkpointS3DefaultMaxRetry, '-1', '1',
- 'Maximum number of retry attempts for failed requests')
- .panel-details(ng-show=checkpointS3DynamoDbMaxRetry)
- .details-row
- +number-required('Maximum retry attempts:', clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', '"checkpointS3DynamoDBMaxErrorRetry"', 'true', checkpointS3DynamoDbMaxRetry, '-1', '1',
- 'Maximum number of retry attempts for failed requests')
- .panel-details(ng-show=checkpointS3CustomRetry)
- .details-row
- +java-class('Retry condition:', clientRetryModel + '.Custom.retryCondition', '"checkpointS3CustomRetryPolicy" + $index', 'true', checkpointS3CustomRetry,
- 'Retry condition on whether a specific request and exception should be retried', checkpointS3CustomRetry)
- .details-row
- +java-class('Backoff strategy:', clientRetryModel + '.Custom.backoffStrategy', '"checkpointS3CustomBackoffStrategy" + $index', 'true', checkpointS3CustomRetry,
- 'Back-off strategy for controlling how long the next retry should wait', checkpointS3CustomRetry)
- .details-row
- +number-required('Maximum retry attempts:', clientRetryModel + '.Custom.maxErrorRetry', '"checkpointS3CustomMaxErrorRetry"', 'true', checkpointS3CustomRetry, '-1', '1',
- 'Maximum number of retry attempts for failed requests')
- .details-row
- +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)')
- .details-row
- +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')
- .details-row
- +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')
- .details-row
- +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')
- .details-row
- +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')
- .details-row
- +text('Signature algorithm:', clientCfgModel + '.signerOverride', '"checkpointS3SignerOverride"', 'false', 'Not specified',
- 'Name of the signature algorithm to use for signing requests made by this client')
- .details-row
- +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')
- .details-row
- +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')
- .details-row
- +java-class('DNS resolver:', clientCfgModel + '.dnsResolver', '"checkpointS3DnsResolver" + $index', 'true', 'false',
- 'DNS Resolver that should be used to for resolving AWS IP addresses', checkpointS3)
- .details-row
- +number('Response metadata cache size:', clientCfgModel + '.responseMetadataCacheSize', '"checkpointS3ResponseMetadataCacheSize"', 'true', '50', '0',
- 'Response metadata cache size')
- .details-row
- +java-class('SecureRandom class name:', clientCfgModel + '.secureRandom', '"checkpointS3SecureRandom" + $index', 'true', 'false',
- 'SecureRandom to be used by the SDK class name', checkpointS3)
- .details-row
- +checkbox('Use reaper', clientCfgModel + '.useReaper', '"checkpointS3UseReaper"', 'Checks if the IdleConnectionReaper is to be started')
- .details-row
- +checkbox('Use GZIP', clientCfgModel + '.useGzip', '"checkpointS3UseGzip"', 'Checks if gzip compression is used')
- .details-row
- +checkbox('Preemptively basic authentication', clientCfgModel + '.preemptiveBasicProxyAuth', '"checkpointS3PreemptiveBasicProxyAuth"',
- 'Attempt to authenticate preemptively against proxy servers using basic authentication')
- .details-row
- +checkbox('TCP KeepAlive', clientCfgModel + '.useTcpKeepAlive', '"checkpointS3UseTcpKeepAlive"', 'TCP KeepAlive support is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
new file mode 100644
index 0000000..16be6c0
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/checkpoint/s3.pug
@@ -0,0 +1,178 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var credentialsModel = 'model.S3.awsCredentials'
+-var clientCfgModel = 'model.S3.clientConfiguration'
+-var checkpointS3 = 'model.kind === "S3"'
+-var checkpointS3Path = checkpointS3 + ' && model.S3.awsCredentials.kind === "Properties"'
+-var checkpointS3Custom = checkpointS3 + ' && model.S3.awsCredentials.kind === "Custom"'
+
+-var clientRetryModel = clientCfgModel + '.retryPolicy'
+-var checkpointS3DefaultMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DefaultMaxRetries"'
+-var checkpointS3DynamoDbMaxRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "DynamoDBMaxRetries"'
+-var checkpointS3CustomRetry = checkpointS3 + ' && ' + clientRetryModel + '.kind === "Custom"'
+
+.settings-row
+ +dropdown-required('AWS credentials:', 'model.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>')
+.settings-row
+ label Note, AWS credentials will be generated as stub
+.panel-details(ng-show=checkpointS3Path)
+ .details-row
+ +text('Path:', credentialsModel + '.Properties.path', '"checkpointS3PropertiesPath"', checkpointS3Path, 'Input properties file path',
+ 'The file from which to read the AWS credentials properties')
+.panel-details(ng-show=checkpointS3Custom)
+ .details-row
+ +java-class('Class name:', credentialsModel + '.Custom.className', '"checkpointS3CustomClassName" + $index', 'true', checkpointS3Custom,
+ 'Custom AWS credentials provider implementation class', checkpointS3Custom)
+.settings-row
+ +text('Bucket name suffix:', 'model.S3.bucketNameSuffix', '"checkpointS3BucketNameSuffix"', 'false', 'default-bucket', 'Bucket name suffix')
+.settings-row
+ +java-class('Listener:', 'model.S3.checkpointListener', '"checkpointS3Listener" + $index', 'true', 'false',
+ 'Checkpoint listener implementation class name', checkpointS3)
++showHideLink('s3Expanded', 'client configuration')
+ .details-row
+ +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>')
+ .details-row
+ +number('Maximum connections:', clientCfgModel + '.maxConnections', '"checkpointS3MaxConnections"',
+ 'true', '50', '1', 'Maximum number of allowed open HTTP connections')
+ .details-row
+ +text('User agent:', clientCfgModel + '.userAgent', '"checkpointS3UserAgent"', 'false', 'System specific header',
+ 'HTTP user agent header to send with all requests')
+ .details-row
+ +text-ip-address('Local address:', clientCfgModel + '.localAddress', '"checkpointS3LocalAddress"', 'true', 'Not specified',
+ 'Optionally specifies the local address to bind to')
+ .details-row
+ +text('Proxy host:', clientCfgModel + '.proxyHost', '"checkpointS3ProxyHost"', 'false', 'Not specified',
+ 'Optional proxy host the client will connect through')
+ .details-row
+ +number('Proxy port:', clientCfgModel + '.proxyPort', '"checkpointS3ProxyPort"', 'true', 'Not specified', '0',
+ 'Optional proxy port the client will connect through')
+ .details-row
+ +text('Proxy user:', clientCfgModel + '.proxyUsername', '"checkpointS3ProxyUsername"', 'false', 'Not specified',
+ 'Optional proxy user name to use if connecting through a proxy')
+ .details-row
+ +text('Proxy domain:', clientCfgModel + '.proxyDomain', '"checkpointS3ProxyDomain"', 'false', 'Not specified',
+ 'Optional Windows domain name for configuring an NTLM proxy')
+ .details-row
+ +text('Proxy workstation:', clientCfgModel + '.proxyWorkstation', '"checkpointS3ProxyWorkstation"', 'false', 'Not specified',
+ 'Optional Windows workstation name for configuring NTLM proxy support')
+ .details-row
+ +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>')
+ .panel-details(ng-show=checkpointS3DefaultMaxRetry)
+ .details-row
+ +number-required('Maximum retry attempts:', clientRetryModel + '.DefaultMaxRetries.maxErrorRetry', '"checkpointS3DefaultMaxErrorRetry"', 'true', checkpointS3DefaultMaxRetry, '-1', '1',
+ 'Maximum number of retry attempts for failed requests')
+ .panel-details(ng-show=checkpointS3DynamoDbMaxRetry)
+ .details-row
+ +number-required('Maximum retry attempts:', clientRetryModel + '.DynamoDBMaxRetries.maxErrorRetry', '"checkpointS3DynamoDBMaxErrorRetry"', 'true', checkpointS3DynamoDbMaxRetry, '-1', '1',
+ 'Maximum number of retry attempts for failed requests')
+ .panel-details(ng-show=checkpointS3CustomRetry)
+ .details-row
+ +java-class('Retry condition:', clientRetryModel + '.Custom.retryCondition', '"checkpointS3CustomRetryPolicy" + $index', 'true', checkpointS3CustomRetry,
+ 'Retry condition on whether a specific request and exception should be retried', checkpointS3CustomRetry)
+ .details-row
+ +java-class('Backoff strategy:', clientRetryModel + '.Custom.backoffStrategy', '"checkpointS3CustomBackoffStrategy" + $index', 'true', checkpointS3CustomRetry,
+ 'Back-off strategy for controlling how long the next retry should wait', checkpointS3CustomRetry)
+ .details-row
+ +number-required('Maximum retry attempts:', clientRetryModel + '.Custom.maxErrorRetry', '"checkpointS3CustomMaxErrorRetry"', 'true', checkpointS3CustomRetry, '-1', '1',
+ 'Maximum number of retry attempts for failed requests')
+ .details-row
+ +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)')
+ .details-row
+ +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')
+ .details-row
+ +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')
+ .details-row
+ +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')
+ .details-row
+ +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')
+ .details-row
+ +text('Signature algorithm:', clientCfgModel + '.signerOverride', '"checkpointS3SignerOverride"', 'false', 'Not specified',
+ 'Name of the signature algorithm to use for signing requests made by this client')
+ .details-row
+ +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')
+ .details-row
+ +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')
+ .details-row
+ +java-class('DNS resolver:', clientCfgModel + '.dnsResolver', '"checkpointS3DnsResolver" + $index', 'true', 'false',
+ 'DNS Resolver that should be used to for resolving AWS IP addresses', checkpointS3)
+ .details-row
+ +number('Response metadata cache size:', clientCfgModel + '.responseMetadataCacheSize', '"checkpointS3ResponseMetadataCacheSize"', 'true', '50', '0',
+ 'Response metadata cache size')
+ .details-row
+ +java-class('SecureRandom class name:', clientCfgModel + '.secureRandom', '"checkpointS3SecureRandom" + $index', 'true', 'false',
+ 'SecureRandom to be used by the SDK class name', checkpointS3)
+ .details-row
+ +checkbox('Use reaper', clientCfgModel + '.useReaper', '"checkpointS3UseReaper"', 'Checks if the IdleConnectionReaper is to be started')
+ .details-row
+ +checkbox('Use GZIP', clientCfgModel + '.useGzip', '"checkpointS3UseGzip"', 'Checks if gzip compression is used')
+ .details-row
+ +checkbox('Preemptively basic authentication', clientCfgModel + '.preemptiveBasicProxyAuth', '"checkpointS3PreemptiveBasicProxyAuth"',
+ 'Attempt to authenticate preemptively against proxy servers using basic authentication')
+ .details-row
+ +checkbox('TCP KeepAlive', clientCfgModel + '.useTcpKeepAlive', '"checkpointS3UseTcpKeepAlive"', 'TCP KeepAlive support is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade
deleted file mode 100644
index 91676df..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.jade
+++ /dev/null
@@ -1,63 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'collision'
--var model = 'backupItem.collision'
--var modelCollisionKind = model + '.kind';
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Collision configuration
- ignite-form-field-tooltip.tipLabel
- | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution#[br]
- | #[a(href="https://apacheignite.readme.io/docs/job-scheduling" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +dropdown('CollisionSpi:', modelCollisionKind, '"collisionKind"', 'true', '',
- '[\
- {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>')
- .settings-row(ng-show='#{modelCollisionKind} !== "Noop"')
- .panel-details
- div(ng-show='#{modelCollisionKind} === "JobStealing"')
- include ./collision/job-stealing.jade
- div(ng-show='#{modelCollisionKind} === "FifoQueue"')
- include ./collision/fifo-queue.jade
- div(ng-show='#{modelCollisionKind} === "PriorityQueue"')
- include ./collision/priority-queue.jade
- div(ng-show='#{modelCollisionKind} === "Custom"')
- include ./collision/custom.jade
- .col-sm-6
- -var model = 'backupItem.collision'
- +preview-xml-java(model, 'clusterCollision')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
new file mode 100644
index 0000000..2f58e0a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision.pug
@@ -0,0 +1,63 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'collision'
+-var model = 'backupItem.collision'
+-var modelCollisionKind = model + '.kind';
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Collision configuration
+ ignite-form-field-tooltip.tipLabel
+ | Configuration Collision SPI allows to regulate how grid jobs get executed when they arrive on a destination node for execution#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/job-scheduling" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('CollisionSpi:', modelCollisionKind, '"collisionKind"', 'true', '',
+ '[\
+ {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>')
+ .settings-row(ng-show=`${modelCollisionKind} !== 'Noop'`)
+ .panel-details
+ div(ng-show=`${modelCollisionKind} === 'JobStealing'`)
+ include ./collision/job-stealing
+ div(ng-show=`${modelCollisionKind} === 'FifoQueue'`)
+ include ./collision/fifo-queue
+ div(ng-show=`${modelCollisionKind} === 'PriorityQueue'`)
+ include ./collision/priority-queue
+ div(ng-show=`${modelCollisionKind} === 'Custom'`)
+ include ./collision/custom
+ .col-sm-6
+ -var model = 'backupItem.collision'
+ +preview-xml-java(model, 'clusterCollision')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade
deleted file mode 100644
index 8e77ac4..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.jade
+++ /dev/null
@@ -1,24 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var model = 'backupItem.collision.Custom'
--var required = 'backupItem.collision.kind === "Custom"'
-
-div
- .details-row
- +java-class('Class:', model + '.class', '"collisionCustom"', 'true', required, 'CollisionSpi implementation class', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
new file mode 100644
index 0000000..dc5dee0
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/custom.pug
@@ -0,0 +1,24 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var model = 'backupItem.collision.Custom'
+-var required = 'backupItem.collision.kind === "Custom"'
+
+div
+ .details-row
+ +java-class('Class:', `${model}.class`, '"collisionCustom"', 'true', required, 'CollisionSpi implementation class', required)
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade
deleted file mode 100644
index cd8b6a3..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.jade
+++ /dev/null
@@ -1,27 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var model = 'backupItem.collision.FifoQueue'
-
-div
- .details-row
- +number('Parallel jobs number:', model + '.parallelJobsNumber', '"fifoParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
- 'Number of jobs that can be executed in parallel')
- .details-row
- +number('Wait jobs number:', model + '.waitingJobsNumber', '"fifoWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
- 'Maximum number of jobs that are allowed to wait in waiting queue')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
new file mode 100644
index 0000000..159b463
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/fifo-queue.pug
@@ -0,0 +1,27 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var model = 'backupItem.collision.FifoQueue'
+
+div
+ .details-row
+ +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"fifoParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
+ 'Number of jobs that can be executed in parallel')
+ .details-row
+ +number('Wait jobs number:', `${model}.waitingJobsNumber`, '"fifoWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
+ 'Maximum number of jobs that are allowed to wait in waiting queue')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade
deleted file mode 100644
index dbe0478..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.jade
+++ /dev/null
@@ -1,63 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var model = 'backupItem.collision.JobStealing'
--var stealingAttributes = model + '.stealingAttributes'
-
-div
- .details-row
- +number('Active jobs threshold:', model + '.activeJobsThreshold', '"jsActiveJobsThreshold"', 'true', '95', '0',
- 'Number of jobs that can be executed in parallel')
- .details-row
- +number('Wait jobs threshold:', model + '.waitJobsThreshold', '"jsWaitJobsThreshold"', 'true', '0', '0',
- 'Job count threshold at which this node will start stealing jobs from other nodes')
- .details-row
- +number('Message expire time:', model + '.messageExpireTime', '"jsMessageExpireTime"', 'true', '1000', '1',
- 'Message expire time in ms')
- .details-row
- +number('Maximum stealing attempts:', model + '.maximumStealingAttempts', '"jsMaximumStealingAttempts"', 'true', '5', '1',
- 'Maximum number of attempts to steal job by another node')
- .details-row
- +checkbox('Stealing enabled', model + '.stealingEnabled', '"jsStealingEnabled"',
- 'Node should attempt to steal jobs from other nodes')
- .details-row
- +java-class('External listener:', model + '.externalCollisionListener', '"jsExternalCollisionListener"', 'true', 'false',
- 'Listener to be set for notification of external collision events', 'backupItem.collision.kind === "JobStealing"')
- .details-row
- +ignite-form-group
- ignite-form-field-label
- | Stealing attributes
- ignite-form-group-tooltip
- | Configuration parameter to enable stealing to/from only nodes that have these attributes set
- ignite-form-group-add(ng-click='tableNewItem(stealingAttributesTbl)')
- | Add stealing attribute
- .group-content-empty(ng-if='!((#{stealingAttributes} && #{stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl))')
- | Not defined
- .group-content(ng-show='(#{stealingAttributes} && #{stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl)')
- table.links-edit(id='attributes' st-table=stealingAttributes)
- tbody
- tr(ng-repeat='item in #{stealingAttributes} track by $index')
- td.col-sm-12(ng-show='!tableEditing(stealingAttributesTbl, $index)')
- a.labelFormField(ng-click='tableStartEdit(backupItem, stealingAttributesTbl, $index)') {{item.name}} = {{item.value}}
- +btn-remove('tableRemove(backupItem, stealingAttributesTbl, $index)', '"Remove attribute"')
- td.col-sm-12(ng-show='tableEditing(stealingAttributesTbl, $index)')
- +table-pair-edit('stealingAttributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '$index', '=')
- tfoot(ng-show='tableNewItemActive(stealingAttributesTbl)')
- tr
- td.col-sm-12
- +table-pair-edit('stealingAttributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '-1', '=')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
new file mode 100644
index 0000000..d10a02e
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/job-stealing.pug
@@ -0,0 +1,63 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var model = 'backupItem.collision.JobStealing'
+-var stealingAttributes = `${model}.stealingAttributes`
+
+div
+ .details-row
+ +number('Active jobs threshold:', `${model}.activeJobsThreshold`, '"jsActiveJobsThreshold"', 'true', '95', '0',
+ 'Number of jobs that can be executed in parallel')
+ .details-row
+ +number('Wait jobs threshold:', `${model}.waitJobsThreshold`, '"jsWaitJobsThreshold"', 'true', '0', '0',
+ 'Job count threshold at which this node will start stealing jobs from other nodes')
+ .details-row
+ +number('Message expire time:', `${model}.messageExpireTime`, '"jsMessageExpireTime"', 'true', '1000', '1',
+ 'Message expire time in ms')
+ .details-row
+ +number('Maximum stealing attempts:', `${model}.maximumStealingAttempts`, '"jsMaximumStealingAttempts"', 'true', '5', '1',
+ 'Maximum number of attempts to steal job by another node')
+ .details-row
+ +checkbox('Stealing enabled', `${model}.stealingEnabled`, '"jsStealingEnabled"',
+ 'Node should attempt to steal jobs from other nodes')
+ .details-row
+ +java-class('External listener:', `${model}.externalCollisionListener`, '"jsExternalCollisionListener"', 'true', 'false',
+ 'Listener to be set for notification of external collision events', 'backupItem.collision.kind === "JobStealing"')
+ .details-row
+ +ignite-form-group
+ ignite-form-field-label
+ | Stealing attributes
+ ignite-form-group-tooltip
+ | Configuration parameter to enable stealing to/from only nodes that have these attributes set
+ ignite-form-group-add(ng-click='tableNewItem(stealingAttributesTbl)')
+ | Add stealing attribute
+ .group-content-empty(ng-if=`!((${stealingAttributes} && ${stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl))`)
+ | Not defined
+ .group-content(ng-show=`(${stealingAttributes} && ${stealingAttributes}.length > 0) || tableNewItemActive(stealingAttributesTbl)`)
+ table.links-edit(id='attributes' st-table=stealingAttributes)
+ tbody
+ tr(ng-repeat=`item in ${stealingAttributes} track by $index`)
+ td.col-sm-12(ng-show='!tableEditing(stealingAttributesTbl, $index)')
+ a.labelFormField(ng-click='tableStartEdit(backupItem, stealingAttributesTbl, $index)') {{item.name}} = {{item.value}}
+ +btn-remove('tableRemove(backupItem, stealingAttributesTbl, $index)', '"Remove attribute"')
+ td.col-sm-12(ng-show='tableEditing(stealingAttributesTbl, $index)')
+ +table-pair-edit('stealingAttributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '$index', '=')
+ tfoot(ng-show='tableNewItemActive(stealingAttributesTbl)')
+ tr
+ td.col-sm-12
+ +table-pair-edit('stealingAttributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::stealingAttributesTbl.focusId + $index}}', '-1', '=')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade
deleted file mode 100644
index 6f52ee0..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.jade
+++ /dev/null
@@ -1,42 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var model = 'backupItem.collision.PriorityQueue'
-
-div
- .details-row
- +number('Parallel jobs number:', model + '.parallelJobsNumber', '"priorityParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
- 'Number of jobs that can be executed in parallel')
- .details-row
- +number('Waiting jobs number:', model + '.waitingJobsNumber', '"priorityWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
- 'Maximum number of jobs that are allowed to wait in waiting queue')
- .details-row
- +text('Priority attribute key:', model + '.priorityAttributeKey', '"priorityPriorityAttributeKey"', 'false', 'grid.task.priority',
- 'Task priority attribute key')
- .details-row
- +text('Job priority attribute key:', model + '.jobPriorityAttributeKey', '"priorityJobPriorityAttributeKey"', 'false', 'grid.job.priority',
- 'Job priority attribute key')
- .details-row
- +number('Default priority:', model + '.defaultPriority', '"priorityDefaultPriority"', 'true', '0', '0',
- 'Default priority to use if a job does not have priority attribute set')
- .details-row
- +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')
- .details-row
- +checkbox('Starvation prevention enabled', model + '.starvationPreventionEnabled', '"priorityStarvationPreventionEnabled"',
- 'Job starvation prevention is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
new file mode 100644
index 0000000..04056df
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/collision/priority-queue.pug
@@ -0,0 +1,42 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var model = 'backupItem.collision.PriorityQueue'
+
+div
+ .details-row
+ +number('Parallel jobs number:', `${model}.parallelJobsNumber`, '"priorityParallelJobsNumber"', 'true', 'availableProcessors * 2', '1',
+ 'Number of jobs that can be executed in parallel')
+ .details-row
+ +number('Waiting jobs number:', `${model}.waitingJobsNumber`, '"priorityWaitingJobsNumber"', 'true', 'Integer.MAX_VALUE', '0',
+ 'Maximum number of jobs that are allowed to wait in waiting queue')
+ .details-row
+ +text('Priority attribute key:', `${model}.priorityAttributeKey`, '"priorityPriorityAttributeKey"', 'false', 'grid.task.priority',
+ 'Task priority attribute key')
+ .details-row
+ +text('Job priority attribute key:', `${model}.jobPriorityAttributeKey`, '"priorityJobPriorityAttributeKey"', 'false', 'grid.job.priority',
+ 'Job priority attribute key')
+ .details-row
+ +number('Default priority:', `${model}.defaultPriority`, '"priorityDefaultPriority"', 'true', '0', '0',
+ 'Default priority to use if a job does not have priority attribute set')
+ .details-row
+ +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')
+ .details-row
+ +checkbox('Starvation prevention enabled', `${model}.starvationPreventionEnabled`, '"priorityStarvationPreventionEnabled"',
+ 'Job starvation prevention is enabled')
http://git-wip-us.apache.org/repos/asf/ignite/blob/cad46799/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade b/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade
deleted file mode 100644
index 047c9a2..0000000
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/communication.jade
+++ /dev/null
@@ -1,100 +0,0 @@
-//-
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
-include /app/helpers/jade/mixins.jade
-
--var form = 'communication'
--var model = 'backupItem'
--var communication = model + '.communication'
-
-.panel.panel-default(ng-form=form novalidate)
- .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")')
- ignite-form-panel-chevron
- label Communication
- ignite-form-field-tooltip.tipLabel
- | 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#[br]
- | #[a(href="https://apacheignite.readme.io/docs/network-config" target="_blank") More info]
- ignite-form-revert
- .panel-collapse(role='tabpanel' bs-collapse-target id=form)
- .panel-body(ng-if='ui.isPanelLoaded("#{form}")')
- .col-sm-6
- .settings-row
- +number('Timeout:', model + '.networkTimeout', '"commNetworkTimeout"', 'true', '5000', '1', 'Maximum timeout in milliseconds for network requests')
- .settings-row
- +number('Send retry delay:', model + '.networkSendRetryDelay', '"networkSendRetryDelay"', 'true', '1000', '1', 'Interval in milliseconds between message send retries')
- .settings-row
- +number('Send retry count:', model + '.networkSendRetryCount', '"networkSendRetryCount"', 'true', '3', '1', 'Message send retries count')
- .settings-row
- +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')
- .settings-row
- +java-class('Communication listener:', communication + '.listener', '"comListener"', 'true', 'false', 'Listener of communication events')
- .settings-row
- +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')
- .settings-row
- +number-min-max('Local port:', communication + '.localPort', '"comLocalPort"', 'true', '47100', '1024', '65535', 'Local port for socket binding')
- .settings-row
- +number('Local port range:', communication + '.localPortRange', '"comLocalPortRange"', 'true', '100', '1', 'Local port range for local host ports')
- .settings-row
- +number-min-max('Shared memory port:', communication + '.sharedMemoryPort', '"sharedMemoryPort"', 'true', '48100', '-1', '65535',
- 'Local port to accept shared memory connections<br/>\
- If set to #[b -1] shared memory communication will be disabled')
- .settings-row
- +number('Idle connection timeout:', communication + '.idleConnectionTimeout', '"idleConnectionTimeout"', 'true', '30000', '1',
- 'Maximum idle connection timeout upon which a connection to client will be closed')
- .settings-row
- +number('Connect timeout:', communication + '.connectTimeout', '"connectTimeout"', 'true', '5000', '0', 'Connect timeout used when establishing connection with remote nodes')
- .settings-row
- +number('Maximum connect timeout:', communication + '.maxConnectTimeout', '"maxConnectTimeout"', 'true', '600000', '0', 'Maximum connect timeout')
- .settings-row
- +number('Reconnect count:', communication + '.reconnectCount', '"comReconnectCount"', 'true', '10', '1',
- 'Maximum number of reconnect attempts used when establishing connection with remote nodes')
- .settings-row
- +number('Socket send buffer:', communication + '.socketSendBuffer', '"socketSendBuffer"', 'true', '32768', '0', 'Send buffer size for sockets created or accepted by this SPI')
- .settings-row
- +number('Socket receive buffer:', communication + '.socketReceiveBuffer', '"socketReceiveBuffer"', 'true', '32768', '0', 'Receive buffer size for sockets created or accepted by this SPI')
- .settings-row
- +number('Slow client queue limit:', communication + '.slowClientQueueLimit', '"slowClientQueueLimit"', 'true', '0', '0', 'Slow client queue limit')
- .settings-row
- +number('Ack send threshold:', communication + '.ackSendThreshold', '"ackSendThreshold"', 'true', '16', '1', 'Number of received messages per connection to node after which acknowledgment message is sent')
- .settings-row
- +number('Message queue limit:', communication + '.messageQueueLimit', '"messageQueueLimit"', 'true', '1024', '0', 'Message queue limit for incoming and outgoing messages')
- .settings-row
- +number('Unacknowledged messages:', communication + '.unacknowledgedMessagesBufferSize', '"unacknowledgedMessagesBufferSize"', 'true', '0', '0',
- 'Maximum number of stored unacknowledged messages per connection to node<br/>\
- If specified non zero value it should be\
- <ul>\
- <li>At least ack send threshold * 5</li>\
- <li>At least message queue limit * 5</li>\
- </ul>')
- .settings-row
- +number('Socket write timeout:', communication + '.socketWriteTimeout', '"socketWriteTimeout"', 'true', '2000', '0', 'Socket write timeout')
- .settings-row
- +number('Selectors count:', communication + '.selectorsCount', '"selectorsCount"', 'true', 'min(4, availableProcessors)', '1', 'Count of selectors te be used in TCP server')
- .settings-row
- +java-class('Address resolver:', communication + '.addressResolver', '"comAddressResolver"', 'true', 'false', 'Provides resolution between external and internal addresses')
- .settings-row
- +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')
- .settings-row
- +checkbox('Direct send buffer', communication + '.directSendBuffer', '"directSendBuffer"', 'Flag defining whether direct send buffer should be used')
- .settings-row
- +checkbox('TCP_NODELAY option', communication + '.tcpNoDelay', '"tcpNoDelay"', 'Value for TCP_NODELAY socket option')
- .col-sm-6
- +preview-xml-java(model, 'clusterCommunication')