http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/caches/store.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/caches/store.jade b/modules/web-console/src/main/js/app/modules/states/configuration/caches/store.jade index d4f698e..cb26d03 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/caches/store.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/caches/store.jade @@ -20,7 +20,7 @@ include ../../../../../app/helpers/jade/mixins.jade -var model = 'backupItem' //- Mixin for DB dialect. -mixin dialect(lbl, model, name, tipTitle, genericDialectName, placeholder) +mixin dialect(lbl, model, name, required, tipTitle, genericDialectName, placeholder) ignite-form-field ignite-form-field-label | #{lbl} @@ -46,7 +46,7 @@ mixin dialect(lbl, model, name, tipTitle, genericDialectName, placeholder) {value: "H2", label: "H2 database"}\ ]' data-ng-model=model - data-ng-required='true' + data-ng-required=required data-placeholder=placeholder ) @@ -60,7 +60,7 @@ mixin hibernateField(items, field, valid, save, newItem) -var onBlur = valid + ' && ( ' + save + '); ' + resetOnBlur + ';' ignite-form-field-input-text( - data-name=field + data-name='#{field}{{ $index || "" }}' data-ng-model=field data-ng-required='true' data-placeholder='key=value' @@ -96,22 +96,23 @@ form.panel.panel-default(name=form novalidate) ]', 'Factory for persistent storage for cache data' ) - span(ng-if=storeFactoryKind ng-init='__.expanded = true') + span(ng-show=storeFactoryKind ng-init='__.expanded = true') a.customize(ng-show='__.expanded' ng-click='__.expanded = false') Hide settings a.customize(ng-hide='__.expanded' ng-click='__.expanded = true') Show settings - .panel-details(ng-if='__.expanded') - div(ng-if='#{storeFactoryKind} === "CacheJdbcPojoStoreFactory"') + .panel-details(ng-show='__.expanded') + div(ng-show='#{storeFactoryKind} === "CacheJdbcPojoStoreFactory"') -var pojoStoreFactory = storeFactory + '.CacheJdbcPojoStoreFactory' + -var required = storeFactoryKind + ' === "CacheJdbcPojoStoreFactory"' .details-row +text('Data source bean name:', pojoStoreFactory + '.dataSourceBean', - 'pojoDataSourceBean', 'true', 'Input bean name', + 'pojoDataSourceBean', required, 'Input bean name', 'Name of the data source bean in Spring context') .details-row - +dialect('Dialect:', pojoStoreFactory + '.dialect', 'pojoDialect', + +dialect('Dialect:', pojoStoreFactory + '.dialect', 'pojoDialect', required, 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect') - div(ng-if='#{storeFactoryKind} === "CacheJdbcBlobStoreFactory"') + div(ng-show='#{storeFactoryKind} === "CacheJdbcBlobStoreFactory"') -var blobStoreFactory = storeFactory + '.CacheJdbcBlobStoreFactory' -var blobStoreFactoryVia = blobStoreFactory + '.connectVia' @@ -126,20 +127,24 @@ form.panel.panel-default(name=form novalidate) <li>JDBC URL, for example: jdbc:h2:mem:myDatabase</li>\ <li>Configured data source</li>\ </ul>') - div(ng-if='#{blobStoreFactoryVia} === "URL"') + div(ng-show='#{blobStoreFactoryVia} === "URL"') + -var required = storeFactoryKind + ' === "CacheJdbcBlobStoreFactory" && ' + blobStoreFactoryVia + ' === "URL"' + .details-row - +text('Connection URL:', blobStoreFactory + '.connectionUrl', 'connectionUrl', 'true', 'Input URL', + +text('Connection URL:', blobStoreFactory + '.connectionUrl', 'connectionUrl', required, 'Input URL', 'URL for database access, for example: jdbc:h2:mem:myDatabase') .details-row - +text('User:', blobStoreFactory + '.user', 'user', 'true', 'Input user name', 'User name for database access') + +text('User:', blobStoreFactory + '.user', 'user', required, 'Input user name', 'User name for database access') .details-row label Note, password will be generated as stub - div(ng-if='#{blobStoreFactoryVia} !== "URL"') + div(ng-show='#{blobStoreFactoryVia} !== "URL"') + -var required = storeFactoryKind + ' === "CacheJdbcBlobStoreFactory" && ' + blobStoreFactoryVia + '!== "URL"' + .details-row - +text('Data source bean name:', blobStoreFactory + '.dataSourceBean', 'blobDataSourceBean', 'true', 'Input bean name', + +text('Data source bean name:', blobStoreFactory + '.dataSourceBean', 'blobDataSourceBean', required, 'Input bean name', 'Name of the data source bean in Spring context') .details-row - +dialect('Database:', blobStoreFactory + '.dialect', 'blobDialect', 'Supported databases:', 'Generic database', 'Choose database') + +dialect('Database:', blobStoreFactory + '.dialect', 'blobDialect', required, 'Supported databases:', 'Generic database', 'Choose database') .details-row +checkbox('Init schema', blobStoreFactory + '.initSchema', 'initSchema', 'Flag indicating whether DB schema should be initialized by Ignite (default behaviour) or was explicitly created by user') @@ -164,7 +169,7 @@ form.panel.panel-default(name=form novalidate) 'Query for delete entry from underlying database<br/>\ Default value: delete from ENTRIES where key=?') - div(ng-if='#{storeFactoryKind} === "CacheHibernateBlobStoreFactory"') + div(ng-show='#{storeFactoryKind} === "CacheHibernateBlobStoreFactory"') -var hibernateStoreFactory = storeFactory + '.CacheHibernateBlobStoreFactory' -var hibernateProperties = hibernateStoreFactory + '.hibernateProperties'
http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.directive.js new file mode 100644 index 0000000..cc9d474 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.directive.js @@ -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. + */ + +import template from './attributes.jade!'; + +export default ['igniteConfigurationUserAttributes', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.jade new file mode 100644 index 0000000..e6ffd50 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/attributes.jade @@ -0,0 +1,58 @@ +//- + 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 = 'attributes' +-var model = 'backupItem' +-var types = model + '.typeConfigurations' +-var userAttributes = model + '.attributes' + +form.panel.panel-default(name=form novalidate) + .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")') + ignite-form-panel-chevron + label User attributes + ignite-form-field-tooltip.tipLabel + | Configuration for Ignite user attributes + ignite-form-revert + .panel-collapse(role='tabpanel' bs-collapse-target id=form) + .panel-body(ng-if='ui.isPanelLoaded("#{form}")') + .col-sm-6 + .settings-row + ignite-form-group(ng-model='#{userAttributes}' ng-form='#{form}') + ignite-form-field-label + | User attributes + ignite-form-group-tooltip + | User-defined attributes to add to node + ignite-form-group-add(ng-click='tableNewItem(attributesTbl)') + | Add user attribute + .group-content-empty(ng-if='!((#{userAttributes} && #{userAttributes}.length > 0) || tableNewItemActive(attributesTbl))') + | Not defined + .group-content(ng-show='(#{userAttributes} && #{userAttributes}.length > 0) || tableNewItemActive(attributesTbl)') + table.links-edit(id='attributes' st-table=userAttributes) + tbody + tr(ng-repeat='item in #{userAttributes}') + td.col-sm-12(ng-show='!tableEditing(attributesTbl, $index)') + a.labelFormField(ng-click='tableStartEdit(backupItem, attributesTbl, $index)') {{item.name}} = {{item.value}} + +btn-remove('tableRemove(backupItem, attributesTbl, $index)', '"Remove attribute"') + td.col-sm-12(ng-show='tableEditing(attributesTbl, $index)') + +table-pair-edit('attributesTbl', 'cur', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '$index', '=') + tfoot(ng-show='tableNewItemActive(attributesTbl)') + tr + td.col-sm-12 + +table-pair-edit('attributesTbl', 'new', 'Attribute name', 'Attribute value', false, false, '{{::attributesTbl.focusId + $index}}', '-1', '=') + .col-sm-6 + +preview-xml-java(model, 'clusterUserAttributes') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/binary.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/binary.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/binary.jade index 37e7559..77caa36 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/binary.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/binary.jade @@ -79,20 +79,20 @@ form.panel.panel-default(name=form novalidate) | Add new type configuration. .group-content-empty(ng-if='!#{types}.length') | Not defined - .group-content(ng-repeat='type in #{types} track by $index') + .group-content(ng-repeat='model in #{types} track by $index') hr(ng-if='$index !== 0') .settings-row - +binary-types-java-class('Type name:', 'type.typeName', '"typeName" + $index', 'true', 'true', true, 'true', 'Type name') + +binary-types-java-class('Type name:', 'model.typeName', '"typeName" + $index', 'true', 'true', true, 'true', 'Type name') .settings-row - +binary-types-java-class('ID mapper:', 'type.idMapper', '"idMapper" + $index', 'true', 'false', false, 'false', + +binary-types-java-class('ID mapper:', 'model.idMapper', '"idMapper" + $index', 'true', 'false', false, 'false', 'Maps given from BinaryNameMapper type and filed name to ID that will be used by Ignite in internals<br/>\ Ignite never writes full strings for field or type/class names. Instead, for performance reasons, Ignite writes integer hash codes for type/class and field names. It has been tested that hash code conflicts for the type/class names or the field names within the same type are virtually non - existent and, to gain performance, it is safe to work with hash codes. For the cases when hash codes for different types or fields actually do collide #[b BinaryIdMapper] allows to override the automatically generated hash code IDs for the type and field names') .settings-row - +binary-types-java-class('Name mapper:', 'type.nameMapper', '"nameMapper" + $index', 'true', 'false', false, 'false', 'Maps type/class and field names to different names') + +binary-types-java-class('Name mapper:', 'model.nameMapper', '"nameMapper" + $index', 'true', 'false', false, 'false', 'Maps type/class and field names to different names') .settings-row - +binary-types-java-class('Serializer:', 'type.serializer', '"serializer" + $index', 'true', 'false', false, 'false', 'Class with custom serialization logic for binary object') + +binary-types-java-class('Serializer:', 'model.serializer', '"serializer" + $index', 'true', 'false', false, 'false', 'Class with custom serialization logic for binary object') .settings-row - +checkbox('Enum', 'type.enum', 'enum', 'Flag indicating that this type is the enum') + +checkbox('Enum', 'model.enum', 'enum', 'Flag indicating that this type is the enum') .settings-row +checkbox('Compact footer', model + '.compactFooter', 'compactFooter', 'When enabled, Ignite will not write fields metadata when serializing objects(this will increase serialization performance), because internally #[b BinaryMarshaller] already distribute metadata inside cluster') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.directive.js new file mode 100644 index 0000000..624056e --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.directive.js @@ -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. + */ + +import template from './collision.jade!'; + +export default ['igniteConfigurationClustersCollision', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.jade new file mode 100644 index 0000000..10e51f0 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision.jade @@ -0,0 +1,60 @@ +//- + 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' + +form.panel.panel-default(name=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 + 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:', model + '.kind', 'collision', '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='#{model}.kind !== "Noop"') + .panel-details + ignite-configuration-clusters-collision-job-stealing( + ng-show='#{model}.kind === "JobStealing"') + ignite-configuration-clusters-collision-fifo-queue( + ng-show='#{model}.kind === "FifoQueue"') + ignite-configuration-clusters-collision-priority-queue( + ng-show='#{model}.kind === "PriorityQueue"') + ignite-configuration-clusters-collision-custom( + ng-show='#{model}.kind === "Custom"') + .col-sm-6 + +preview-xml-java(model, 'clusterCollision') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.directive.js new file mode 100644 index 0000000..9a8d414 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.directive.js @@ -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. + */ + +import template from './custom.jade!'; + +export default ['igniteConfigurationClustersCollisionCustom', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.jade new file mode 100644 index 0000000..b666f54 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/custom.jade @@ -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.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') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.directive.js new file mode 100644 index 0000000..240c98a --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.directive.js @@ -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. + */ + +import template from './fifo-queue.jade!'; + +export default ['igniteConfigurationClustersCollisionFifoQueue', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.jade new file mode 100644 index 0000000..9c9d315 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/fifo-queue.jade @@ -0,0 +1,28 @@ +//- + 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' +-var form = 'collisionFifoQueue' + +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/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.directive.js new file mode 100644 index 0000000..3c187d1 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.directive.js @@ -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. + */ + +import template from './job-stealing.jade!'; + +export default ['igniteConfigurationClustersCollisionJobStealing', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.jade new file mode 100644 index 0000000..17392c0 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/job-stealing.jade @@ -0,0 +1,64 @@ +//- + 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 form = 'collisionJobStealing' +-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') + .details-row + ignite-form-group(ng-model='#{stealingAttributes}' ng-form='#{form}') + 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}') + 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/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.directive.js new file mode 100644 index 0000000..e7e8798 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.directive.js @@ -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. + */ + +import template from './priority-queue.jade!'; + +export default ['igniteConfigurationClustersCollisionPriorityQueue', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.jade new file mode 100644 index 0000000..208c12b --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/collision/priority-queue.jade @@ -0,0 +1,43 @@ +//- + 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' +-var form = 'collisionPriorityQueue' + +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/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/communication.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/communication.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/communication.jade index 5d8ed10..7073f27 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/communication.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/communication.jade @@ -41,7 +41,7 @@ form.panel.panel-default(name=form novalidate) .settings-row +java-class('Communication listener:', communication + '.listener', 'comListener', 'true', 'false', 'Communication listener') .settings-row - +text-ip-address('Local IP address:', communication + '.localAddress', 'comLocalAddress', 'true', '228.1.2.4', 'Local host address for socket binding') + +text-ip-address('Local IP address:', communication + '.localAddress', 'comLocalAddress', 'true', '0.0.0.0', 'Local host address for socket binding') .settings-row +number-min-max('Local port:', communication + '.localPort', 'comLocalPort', 'true', '47100', '1024', '65535', 'Local port for socket binding') .settings-row @@ -51,12 +51,6 @@ form.panel.panel-default(name=form novalidate) 'Local port to accept shared memory connections<br/>\ If set to #[b -1] shared memory communication will be disabled') .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 +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 @@ -71,20 +65,32 @@ form.panel.panel-default(name=form novalidate) .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('Message queue limit:', communication + '.messageQueueLimit', 'messageQueueLimit', 'true', '1024', '0', 'Message queue limit for incoming and outgoing messages') - .settings-row +number('Slow client queue limit:', communication + '.slowClientQueueLimit', 'slowClientQueueLimit', 'true', '0', '0', 'Slow client queue limit') .settings-row - +checkbox('TCP_NODELAY option', communication + '.tcpNoDelay', 'tcpNoDelay', 'Value for TCP_NODELAY socket option') - .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('Unacknowledged messages:', communication + '.unacknowledgedMessagesBufferSize', 'unacknowledgedMessagesBufferSize', 'true', '0', '0', 'Maximum number of stored unacknowledged messages per connection to node') + +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', 'Address resolver') + .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') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/deployment.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/deployment.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/deployment.jade index b2f1fb9..98e7f61 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/deployment.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/deployment.jade @@ -77,18 +77,25 @@ form.panel.panel-default(name='deployment' novalidate) -var javaKeywords = 'form[ngModelName].$error.javaKeywords' -var save = exclude + '[$index] = ' + field - ignite-form-field(ng-repeat='model in #{exclude} track by $index' type='internal' name='Package name') - .indexField - | {{ $index+1 }}) - +table-remove-button(exclude, 'Remove package name') - span(ng-hide='field.edit') - a.labelFormField(ng-click='#{enabled} && (field.edit = true)') {{ model }} - span(ng-if='field.edit' ng-init='#{field} = model') - +table-java-package-field(field, exclude, valid, save, false) - +table-save-button(valid, save, false) - +unique-feedback(unique, uniqueTip) - +error-feedback(javaPackageName, 'javaPackageName', tipJavaPackageName) - +error-feedback(javaKeywords, 'javaKeywords', tipJavaKeyWord) + div(ng-show=enabled) + ignite-form-field(ng-repeat='model in #{exclude} track by $index' type='internal' name='Package name') + .indexField + | {{ $index+1 }}) + +table-remove-button(exclude, 'Remove package name') + span(ng-hide='field.edit') + a.labelFormField(ng-click='#{enabled} && (field.edit = true)') {{ model }} + span(ng-if='field.edit' ng-init='#{field} = model') + +table-java-package-field(field, exclude, valid, save, false) + +table-save-button(valid, save, false) + +unique-feedback(unique, uniqueTip) + +error-feedback(javaPackageName, 'javaPackageName', tipJavaPackageName) + +error-feedback(javaKeywords, 'javaKeywords', tipJavaKeyWord) + div(ng-hide=enabled) + ignite-form-field(ng-repeat='model in #{exclude} track by $index' type='internal' name='Package name') + .labelFormField.labelField + | {{ $index+1 }}) + span.labelFormField + | {{ model }} .group-content(ng-repeat='field in group.add') -var field = 'new' http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/discovery.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/discovery.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/discovery.jade index d1ee763..15b7065 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/discovery.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/discovery.jade @@ -47,7 +47,9 @@ form.panel.panel-default(name=form novalidate) .settings-row +number('Network timeout:', model + '.networkTimeout', 'discoNetworkTimeout', 'true', '5000', '1', 'Network timeout') .settings-row - +number('Join timeout:', model + '.joinTimeout', 'joinTimeout', 'true', '0', '0', 'Join timeout') + +number('Join timeout:', model + '.joinTimeout', 'joinTimeout', 'true', '0', '0', + 'Join timeout<br/>' + + '0 means wait forever') .settings-row +number('Thread priority:', model + '.threadPriority', 'threadPriority', 'true', '10', '1', 'Thread priority for all threads started by SPI') .settings-row http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.directive.js new file mode 100644 index 0000000..98335a7 --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.directive.js @@ -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. + */ + +import template from './failover.jade!'; + +export default ['igniteConfigurationClustersFailover', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]]; http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.jade new file mode 100644 index 0000000..a973aeb --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/failover.jade @@ -0,0 +1,82 @@ +//- + 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' +-var form = 'failoverSpi' +-var failoverSpi = model + '.failoverSpi' +-var failoverCustom = 'failover.kind === "Custom"' + +form.panel.panel-default(name=form novalidate) + .panel-heading(bs-collapse-toggle ng-click='ui.loadPanel("#{form}")') + ignite-form-panel-chevron + label Failover configuration + ignite-form-field-tooltip.tipLabel + | Failover SPI provides ability to supply custom logic for handling failed execution of a grid job + 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='failoverSpiTbl={type: "failoverSpi", model: "failoverSpi", focusId: "kind", ui: "failover-table"}') + ignite-form-group(ng-model='#{failoverSpi}' ng-form=form) + ignite-form-field-label + | Failover SPI configurations + ignite-form-group-tooltip + | Failover SPI configurations + ignite-form-group-add(ng-click='tableNewItem(failoverSpiTbl)') + | Add failover SPI + .group-content-empty(ng-if='!(#{failoverSpi} && #{failoverSpi}.length > 0)') + | Not defined + .group-content(ng-show='#{failoverSpi} && #{failoverSpi}.length > 0' ng-repeat='failover in #{failoverSpi} track by $index') + hr(ng-if='$index != 0') + .settings-row + ignite-form-field + ignite-form-field-label + | Failover SPI + i.tipField.fa.fa-remove(bs-tooltip='"Remove Failover SPI"' ng-click='removeFailoverConfiguration($index)') + ignite-form-field-tooltip + | Provides ability to supply custom logic for handling failed execution of a grid job + ul + li Job stealing - Supports job stealing from over-utilized nodes to under-utilized nodes + li Never - Jobs are ordered as they arrived + li Always - Jobs are first ordered by their priority + li Custom - Jobs are activated immediately on arrival to mapped node + li Default - Default FailoverSpi implementation + ignite-form-field-dropdown( + data-id='failoverKind{{$index}}' + data-name='failoverKind{{$index}}' + data-options='[\ + {value: "JobStealing", label: "Job stealing"},\ + {value: "Never", label: "Never"},\ + {value: "Always", label: "Always"},\ + {value: "Custom", label: "Custom"}\ + ]' + data-ng-model='failover.kind' + data-ng-required='true' + data-placeholder='Choose Failover SPI' + ) + .settings-row(ng-show='failover.kind === "JobStealing"') + +number('Maximum failover attempts:', 'failover.JobStealing.maximumFailoverAttempts', 'jsMaximumFailoverAttempts{{$index}}', 'true', '5', '0', + 'Maximum number of attempts to execute a failed job on another node') + .settings-row(ng-show='failover.kind === "Always"') + +number('Maximum failover attempts:', 'failover.Always.maximumFailoverAttempts', 'alwaysMaximumFailoverAttempts{{$index}}', 'true', '5', '0', + 'Maximum number of attempts to execute a failed job on another node') + .settings-row(ng-show=failoverCustom) + +java-class('SPI implementation', 'failover.Custom.class', 'failoverSpiClass{{$index}}', 'true', failoverCustom, + 'Custom FailoverSpi implementation class name.') + .col-sm-6 + +preview-xml-java(model, 'clusterFailover') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general.jade index aea42d6..2ed0db0 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general.jade @@ -30,9 +30,7 @@ form.panel.panel-default(name=form novalidate) .settings-row +text('Name:', model + '.name', 'clusterName', 'true', 'Input name', 'Grid name') .settings-row - +dropdown-multiple('<span>Caches:</span><a ui-sref="base.configuration.caches({id: ' + model + '._id})"> (add)</a>', - model + '.caches', 'caches', 'true', 'Choose caches', 'No caches configured', 'caches', - 'Select caches to start in cluster or add a new cache') + +caches(model, 'Select caches to start in cluster or add a new cache') .settings-row +text-ip-address('Local host:', model + '.localHost', 'localHost', 'true', '0.0.0.0', 'System-wide local address or host for all Ignite components to bind to') .settings-row @@ -51,20 +49,20 @@ form.panel.panel-default(name=form novalidate) .settings-row .panel-details ignite-configuration-clusters-general-discovery-cloud( - ng-if='#{model}.discovery.kind === "Cloud"') + ng-show='#{model}.discovery.kind === "Cloud"') ignite-configuration-clusters-general-discovery-google( - ng-if='#{model}.discovery.kind === "GoogleStorage"') + ng-show='#{model}.discovery.kind === "GoogleStorage"') ignite-configuration-clusters-general-discovery-jdbc( - ng-if='#{model}.discovery.kind === "Jdbc"') + ng-show='#{model}.discovery.kind === "Jdbc"') ignite-configuration-clusters-general-discovery-multicast( - ng-if='#{model}.discovery.kind === "Multicast"') + ng-show='#{model}.discovery.kind === "Multicast"') ignite-configuration-clusters-general-discovery-s3( - ng-if='#{model}.discovery.kind === "S3"') + ng-show='#{model}.discovery.kind === "S3"') ignite-configuration-clusters-general-discovery-shared( - ng-if='#{model}.discovery.kind === "SharedFs"') + ng-show='#{model}.discovery.kind === "SharedFs"') ignite-configuration-clusters-general-discovery-vm( - ng-if='#{model}.discovery.kind === "Vm"') + ng-show='#{model}.discovery.kind === "Vm"') ignite-configuration-clusters-general-discovery-zookeeper( - ng-if='#{model}.discovery.kind === "ZooKeeper"') + ng-show='#{model}.discovery.kind === "ZooKeeper"') .col-sm-6 +preview-xml-java(model, 'clusterCaches', 'caches') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/cloud.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/cloud.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/cloud.jade index 1f5ef16..3a6565d 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/cloud.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/cloud.jade @@ -16,6 +16,8 @@ include ../../../../../../../app/helpers/jade/mixins.jade +-var discoveryKind = 'Cloud' +-var required = 'backupItem.discovery.kind == "' + discoveryKind + '"' -var model = 'backupItem.discovery.Cloud' -var regions = model + '.regions' -var zones = model + '.zones' @@ -32,11 +34,11 @@ div 'Path to a credential that is used during authentication on the cloud<br/>\ Access key or private key should be stored in a plain or PEM file without a passphrase') .details-row - +text('Identity:', model + '.identity', 'identity', 'true', 'Input identity', + +text('Identity:', model + '.identity', discoveryKind + 'Identity', required, 'Input identity', 'Identity that is used as a user name during a connection to the cloud<br/>\ Depending on a cloud platform it can be an email address, user name, etc') .details-row - +text('Provider:', model + '.provider', 'provider', 'true', 'Input provider', 'Cloud provider to use') + +text('Provider:', model + '.provider', discoveryKind + 'Provider', required, 'Input provider', 'Cloud provider to use') .details-row ignite-form-group(ng-model=regions ng-form=formRegions) -var uniqueTip = 'Such region already exists!' http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/google.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/google.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/google.jade index 54e4bb5..2a651df 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/google.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/google.jade @@ -16,20 +16,23 @@ include ../../../../../../../app/helpers/jade/mixins.jade + +-var discoveryKind = 'GoogleStorage' +-var required = 'backupItem.discovery.kind == "' + discoveryKind + '"' -var model = 'backupItem.discovery.GoogleStorage' div .details-row - +text('Project name:', model + '.projectName', 'projectName', 'true', 'Input project name', '' + + +text('Project name:', model + '.projectName', discoveryKind + 'ProjectName', required, 'Input project name', '' + 'Google Cloud Platforms project name<br/>\ Usually this is an auto generated project number(ex. 208709979073) that can be found in "Overview" section of Google Developer Console') .details-row - +text('Bucket name:', model + '.bucketName', 'bucketName', 'true', 'Input bucket name', + +text('Bucket name:', model + '.bucketName', discoveryKind + 'BucketName', required, 'Input bucket name', 'Google Cloud Storage bucket name<br/>\ If the bucket does not exist Ignite will automatically create it<br/>\ However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation') .details-row - +text('Private key path:', model + '.serviceAccountP12FilePath', 'serviceAccountP12FilePath', 'true', 'Input private key path', + +text('Private key path:', model + '.serviceAccountP12FilePath', discoveryKind + 'ServiceAccountP12FilePath', required, 'Input private key path', 'Full path to the private key in PKCS12 format of the Service Account') .details-row - +text('Account id:', model + '.serviceAccountId', 'serviceAccountId', 'true', 'Input account id', 'Service account ID (typically an e-mail address)') + +text('Account id:', model + '.serviceAccountId', discoveryKind + 'ServiceAccountId', required, 'Input account id', 'Service account ID (typically an e-mail address)') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/s3.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/s3.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/s3.jade index d693709..c2e29be 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/s3.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/s3.jade @@ -16,10 +16,12 @@ include ../../../../../../../app/helpers/jade/mixins.jade +-var discoveryKind = 'S3' +-var required = 'backupItem.discovery.kind == "' + discoveryKind + '"' -var model = 'backupItem.discovery.S3' div .details-row - +text('Bucket name:', model + '.bucketName', 'bucketName', 'true', 'Input bucket name', 'Bucket name for IP finder') + +text('Bucket name:', model + '.bucketName', discoveryKind + 'BucketName', required, 'Input bucket name', 'Bucket name for IP finder') .details-row label Note, AWS credentials will be generated as stub http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade index ad3dbea..72f0678 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper.jade @@ -16,6 +16,8 @@ include ../../../../../../../app/helpers/jade/mixins.jade +-var discoveryKind = 'ZooKeeper' +-var required = 'backupItem.discovery.kind == "' + discoveryKind + '"' -var model = 'backupItem.discovery.ZooKeeper' div @@ -25,7 +27,7 @@ div By default generates curator of org.apache.curator. framework.imps.CuratorFrameworkImpl\ class with configured connect string, retry policy, and default session and connection timeouts') .details-row - +text('Connect string:', model + '.zkConnectionString', 'zkConnectionString', 'true', 'host:port[chroot][,host:port[chroot]]', + +text('Connect string:', model + '.zkConnectionString', ZooKeeper + 'ConnectionString', required, 'host:port[chroot][,host:port[chroot]]', 'When "IGNITE_ZK_CONNECTION_STRING" system property is not configured this property will be used') .details-row +dropdown('Retry policy:', model + '.retryPolicy.kind', 'retryPolicy', 'true', 'Default', @@ -50,16 +52,15 @@ div <li>Custom - custom retry policy implementation</li>\ <li>Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10</li>\ </ul>') - .details-row(ng-if='#{model}.retryPolicy.kind') + .details-row(ng-show='#{model}.retryPolicy.kind') .panel-details - div(ng-switch='#{model}.retryPolicy.kind') - ignite-configuration-clusters-general-discovery-zookeeper-exponential(ng-switch-when='ExponentialBackoff') - ignite-configuration-clusters-general-discovery-zookeeper-bounded-exponential(ng-switch-when='BoundedExponentialBackoff') - ignite-configuration-clusters-general-discovery-zookeeper-until-elapsed(ng-switch-when='UntilElapsed') - ignite-configuration-clusters-general-discovery-zookeeper-n-times(ng-switch-when='NTimes') - ignite-configuration-clusters-general-discovery-zookeeper-one-time(ng-switch-when='OneTime') - ignite-configuration-clusters-general-discovery-zookeeper-forever(ng-switch-when='Forever') - ignite-configuration-clusters-general-discovery-zookeeper-custom(ng-switch-when='Custom') + ignite-configuration-clusters-general-discovery-zookeeper-exponential(ng-show='#{model}.retryPolicy.kind === "ExponentialBackoff"') + ignite-configuration-clusters-general-discovery-zookeeper-bounded-exponential(ng-show='#{model}.retryPolicy.kind === "BoundedExponentialBackoff"') + ignite-configuration-clusters-general-discovery-zookeeper-until-elapsed(ng-show='#{model}.retryPolicy.kind === "UntilElapsed"') + ignite-configuration-clusters-general-discovery-zookeeper-n-times(ng-show='#{model}.retryPolicy.kind === "NTimes"') + ignite-configuration-clusters-general-discovery-zookeeper-one-time(ng-show='#{model}.retryPolicy.kind === "OneTime"') + ignite-configuration-clusters-general-discovery-zookeeper-forever(ng-show='#{model}.retryPolicy.kind === "Forever"') + ignite-configuration-clusters-general-discovery-zookeeper-custom(ng-show='#{model}.retryPolicy.kind === "Custom"') .details-row +text('Base path:', model + '.basePath', 'basePath', 'false', '/services', 'Base path for service registration') .details-row http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade index f8f78f8..6f6e035 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.jade @@ -20,8 +20,8 @@ include ../../../../../../../../../app/helpers/jade/mixins.jade div .details-row - +number('Base interval:', model + '.baseSleepTimeMs', 'baseSleepTimeMs', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries') + +number('Base interval:', model + '.baseSleepTimeMs', 'beBaseSleepTimeMs', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries') .details-row - +number('Max interval:', model + '.maxSleepTimeMs', 'maxSleepTimeMs', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry') + +number('Max interval:', model + '.maxSleepTimeMs', 'beMaxSleepTimeMs', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry') .details-row - +number-min-max('Max retries:', model + '.maxRetries', 'maxRetries', 'true', '10', '0', '29', 'Max number of times to retry') + +number-min-max('Max retries:', model + '.maxRetries', 'beMaxRetries', 'true', '10', '0', '29', 'Max number of times to retry') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade index 8c55ad8..6e631ab 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/custom.jade @@ -16,7 +16,9 @@ include ../../../../../../../../../app/helpers/jade/mixins.jade --var model = 'backupItem.discovery.ZooKeeper.retryPolicy.Custom' +-var model = 'backupItem.discovery.ZooKeeper.retryPolicy' +-var retry = model + '.Custom' +-var required = 'backupItem.discovery.kind === "ZooKeeper" && backupItem.discovery.ZooKeeper.retryPolicy.kind === "Custom"' .details-row - +java-class('Class name:', model + '.className', 'className', 'true', 'true', 'Custom retry policy implementation class name') + +java-class('Class name:', retry + '.className', 'customClassName', 'true', required, 'Custom retry policy implementation class name') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade index b039335..9be2a71 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/exponential-backoff.jade @@ -20,8 +20,8 @@ include ../../../../../../../../../app/helpers/jade/mixins.jade div .details-row - +number('Base interval:', model + '.baseSleepTimeMs', 'baseSleepTimeMs', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries') + +number('Base interval:', model + '.baseSleepTimeMs', 'expBaseSleepTimeMs', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries') .details-row - +number-min-max('Max retries:', model + '.maxRetries', 'maxRetries', 'true', '10', '0', '29', 'Max number of times to retry') + +number-min-max('Max retries:', model + '.maxRetries', 'expMaxRetries', 'true', '10', '0', '29', 'Max number of times to retry') .details-row - +number('Max interval:', model + '.maxSleepMs', 'maxSleepMs', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry') + +number('Max interval:', model + '.maxSleepMs', 'expMaxSleepMs', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade index 1d09caa..f4045eb 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/forever.jade @@ -19,4 +19,4 @@ include ../../../../../../../../../app/helpers/jade/mixins.jade -var model = 'backupItem.discovery.ZooKeeper.retryPolicy.Forever' .details-row - +number('Interval:', model + '.retryIntervalMs', 'retryIntervalMs', 'true', '1000', '0', 'Time in ms between retry attempts') + +number('Interval:', model + '.retryIntervalMs', 'feRetryIntervalMs', 'true', '1000', '0', 'Time in ms between retry attempts') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade index 0b70f59..a4083b7 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/n-times.jade @@ -22,4 +22,4 @@ div .details-row +number('Retries:', model + '.n', 'n', 'true', '10', '0', 'Number of times to retry') .details-row - +number('Interval:', model + '.sleepMsBetweenRetries', 'sleepMsBetweenRetries', 'true', '1000', '0', 'Time in ms between retry attempts') + +number('Interval:', model + '.sleepMsBetweenRetries', 'ntSleepMsBetweenRetries', 'true', '1000', '0', 'Time in ms between retry attempts') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade index 8b9fa18..f259630 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/one-time.jade @@ -20,4 +20,4 @@ include ../../../../../../../../../app/helpers/jade/mixins.jade div .details-row - +number('Interval:', model + '.sleepMsBetweenRetry', 'sleepMsBetweenRetry', 'true', '1000', '0', 'Time in ms to retry attempt') + +number('Interval:', model + '.sleepMsBetweenRetry', 'oneSleepMsBetweenRetry', 'true', '1000', '0', 'Time in ms to retry attempt') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade index ad9f3c1..24a884e 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/general/discovery/zookeeper/retrypolicy/until-elapsed.jade @@ -20,6 +20,6 @@ include ../../../../../../../../../app/helpers/jade/mixins.jade div .details-row - +number('Total time:', model + '.maxElapsedTimeMs', 'maxElapsedTimeMs', 'true', '60000', '0', 'Total time in ms for execution of retry attempt') + +number('Total time:', model + '.maxElapsedTimeMs', 'ueMaxElapsedTimeMs', 'true', '60000', '0', 'Total time in ms for execution of retry attempt') .details-row - +number('Interval:', model + '.sleepMsBetweenRetries', 'sleepMsBetweenRetries', 'true', '1000', '0', 'Time in ms between retry attempts') + +number('Interval:', model + '.sleepMsBetweenRetries', 'ueSleepMsBetweenRetries', 'true', '1000', '0', 'Time in ms between retry attempts') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/igfs.jade ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/igfs.jade b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/igfs.jade index c76c66d..de20dfe 100644 --- a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/igfs.jade +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/igfs.jade @@ -30,8 +30,8 @@ form.panel.panel-default(name=form novalidate) .panel-body(ng-if='ui.isPanelLoaded("#{form}")') .col-sm-6 .settings-row - +dropdown-multiple('<span>IGFS:</span><a ui-sref="base.configuration.igfs({id: ' + model + '._id})"> (add)</a>', + +dropdown-multiple('<span>IGFS:</span><a ui-sref="base.configuration.igfs({linkId: linkId()})"> (add)</a>', model + '.igfss', 'igfss', 'true', 'Choose IGFS', 'No IGFS configured', 'igfss', 'Select IGFS to start in cluster or add a new IGFS') .col-sm-6 - +preview-xml-java(model, 'igfss') + +preview-xml-java(model, 'igfss', 'igfss') http://git-wip-us.apache.org/repos/asf/ignite/blob/541e17d0/modules/web-console/src/main/js/app/modules/states/configuration/clusters/logger.directive.js ---------------------------------------------------------------------- diff --git a/modules/web-console/src/main/js/app/modules/states/configuration/clusters/logger.directive.js b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/logger.directive.js new file mode 100644 index 0000000..3df231f --- /dev/null +++ b/modules/web-console/src/main/js/app/modules/states/configuration/clusters/logger.directive.js @@ -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. + */ + +import template from './logger.jade!'; + +export default ['igniteConfigurationClustersLogger', [() => { + return { + scope: true, + restrict: 'E', + template, + replace: true + }; +}]];
