http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/memory.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/memory.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/memory.pug index 06c8e0b..831adea 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/memory.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/memory.pug @@ -20,175 +20,176 @@ include /app/helpers/jade/mixins -var model = '$ctrl.clonedCluster.memoryConfiguration' -var memoryPolicies = model + '.memoryPolicies' -.pca-panel.pca-panel-default(ng-show='$ctrl.available(["2.0.0", "2.3.0"])' ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title Memory configuration - .pca-panel-heading-description - | Page memory is a manageable off-heap based memory architecture that is split into pages of fixed size. - | #[a.link-success(href="https://apacheignite.readme.io/docs/durable-memory" target="_blank") More info] - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`$ctrl.available(["2.0.0", "2.3.0"]) && ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6.pc-form-grid-row +panel-collapsible( + ng-form=form + on-open=`ui.loadPanel('${form}')` + ng-show='$ctrl.available(["2.0.0", "2.3.0"])' +) + panel-title Memory configuration + panel-description + | Page memory is a manageable off-heap based memory architecture that is split into pages of fixed size. + | #[a.link-success(href="https://apacheignite.readme.io/docs/durable-memory" target="_blank") More info] + panel-content.pca-form-row(ng-if=`$ctrl.available(["2.0.0", "2.3.0"]) && ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +sane-ignite-form-field-dropdown({ + label: 'Page size:', + model: `${model}.pageSize`, + name: '"MemoryConfigurationPageSize"', + options: `$ctrl.Clusters.memoryConfiguration.pageSize.values`, + tip: 'Every memory region is split on pages of fixed size' + }) + .pc-form-grid-col-60 + +number('Concurrency level:', model + '.concurrencyLevel', '"MemoryConfigurationConcurrencyLevel"', + 'true', 'availableProcessors', '2', 'The number of concurrent segments in Ignite internal page mapping tables') + .pc-form-grid-col-60.pc-form-group__text-title + span System cache + .pc-form-group.pc-form-grid-row + .pc-form-grid-col-30 + pc-form-field-size( + label='Initial size:' + ng-model=`${model}.systemCacheInitialSize` + name='systemCacheInitialSize' + placeholder='{{ $ctrl.Clusters.memoryConfiguration.systemCacheInitialSize.default / systemCacheInitialSizeScale.value }}' + min='{{ ::$ctrl.Clusters.memoryConfiguration.systemCacheInitialSize.min }}' + tip='Initial size of a memory region reserved for system cache' + on-scale-change='systemCacheInitialSizeScale = $event' + ) + .pc-form-grid-col-30 + pc-form-field-size( + label='Max size:' + ng-model=`${model}.systemCacheMaxSize` + name='systemCacheMaxSize' + placeholder='{{ $ctrl.Clusters.memoryConfiguration.systemCacheMaxSize.default / systemCacheMaxSizeScale.value }}' + min='{{ $ctrl.Clusters.memoryConfiguration.systemCacheMaxSize.min($ctrl.clonedCluster) }}' + tip='Maximum size of a memory region reserved for system cache' + on-scale-change='systemCacheMaxSizeScale = $event' + ) + .pc-form-grid-col-60.pc-form-group__text-title + span Memory policies + .pc-form-group.pc-form-grid-row .pc-form-grid-col-60 - +sane-ignite-form-field-dropdown({ - label: 'Page size:', - model: `${model}.pageSize`, - name: '"MemoryConfigurationPageSize"', - options: `$ctrl.Clusters.memoryConfiguration.pageSize.values`, - tip: 'Every memory region is split on pages of fixed size' - }) + +sane-ignite-form-field-text({ + label: 'Default memory policy name:', + model: `${model}.defaultMemoryPolicyName`, + name: '"defaultMemoryPolicyName"', + placeholder: '{{ ::$ctrl.Clusters.memoryPolicy.name.default }}', + tip: 'Name of a memory policy to be used as default one' + })( + pc-not-in-collection='::$ctrl.Clusters.memoryPolicy.name.invalidValues' + ui-validate=`{ + defaultMemoryPolicyExists: '$ctrl.Clusters.memoryPolicy.customValidators.defaultMemoryPolicyExists($value, ${memoryPolicies})' + }` + ui-validate-watch=`"${memoryPolicies}"` + ui-validate-watch-object-equality='true' + ng-model-options='{allowInvalid: true}' + ) + +form-field-feedback('"MemoryPolicyName"', 'notInCollection', '{{::$ctrl.Clusters.memoryPolicy.name.invalidValues[0]}} is reserved for internal use') + +form-field-feedback('"MemoryPolicyName"', 'defaultMemoryPolicyExists', 'Memory policy with that name should be configured') + .pc-form-grid-col-60(ng-hide='(' + model + '.defaultMemoryPolicyName || "default") !== "default"') + +number('Default memory policy size:', model + '.defaultMemoryPolicySize', '"defaultMemoryPolicySize"', + 'true', '0.8 * totalMemoryAvailable', '10485760', + 'Specify desired size of default memory policy without having to use more verbose syntax of MemoryPolicyConfiguration elements') .pc-form-grid-col-60 - +number('Concurrency level:', model + '.concurrencyLevel', '"MemoryConfigurationConcurrencyLevel"', - 'true', 'availableProcessors', '2', 'The number of concurrent segments in Ignite internal page mapping tables') - .pc-form-grid-col-60.pc-form-group__text-title - span System cache - .pc-form-group.pc-form-grid-row - .pc-form-grid-col-30 - pc-form-field-size( - label='Initial size:' - ng-model=`${model}.systemCacheInitialSize` - name='systemCacheInitialSize' - placeholder='{{ $ctrl.Clusters.memoryConfiguration.systemCacheInitialSize.default / systemCacheInitialSizeScale.value }}' - min='{{ ::$ctrl.Clusters.memoryConfiguration.systemCacheInitialSize.min }}' - tip='Initial size of a memory region reserved for system cache' - on-scale-change='systemCacheInitialSizeScale = $event' - ) - .pc-form-grid-col-30 - pc-form-field-size( - label='Max size:' - ng-model=`${model}.systemCacheMaxSize` - name='systemCacheMaxSize' - placeholder='{{ $ctrl.Clusters.memoryConfiguration.systemCacheMaxSize.default / systemCacheMaxSizeScale.value }}' - min='{{ $ctrl.Clusters.memoryConfiguration.systemCacheMaxSize.min($ctrl.clonedCluster) }}' - tip='Maximum size of a memory region reserved for system cache' - on-scale-change='systemCacheMaxSizeScale = $event' - ) - .pc-form-grid-col-60.pc-form-group__text-title - span Memory policies - .pc-form-group.pc-form-grid-row - .pc-form-grid-col-60 - +sane-ignite-form-field-text({ - label: 'Default memory policy name:', - model: `${model}.defaultMemoryPolicyName`, - name: '"defaultMemoryPolicyName"', - placeholder: '{{ ::$ctrl.Clusters.memoryPolicy.name.default }}', - tip: 'Name of a memory policy to be used as default one' - })( - pc-not-in-collection='::$ctrl.Clusters.memoryPolicy.name.invalidValues' - ui-validate=`{ - defaultMemoryPolicyExists: '$ctrl.Clusters.memoryPolicy.customValidators.defaultMemoryPolicyExists($value, ${memoryPolicies})' - }` - ui-validate-watch=`"${memoryPolicies}"` - ui-validate-watch-object-equality='true' - ng-model-options='{allowInvalid: true}' - ) - +form-field-feedback('"MemoryPolicyName"', 'notInCollection', '{{::$ctrl.Clusters.memoryPolicy.name.invalidValues[0]}} is reserved for internal use') - +form-field-feedback('"MemoryPolicyName"', 'defaultMemoryPolicyExists', 'Memory policy with that name should be configured') - .pc-form-grid-col-60(ng-hide='(' + model + '.defaultMemoryPolicyName || "default") !== "default"') - +number('Default memory policy size:', model + '.defaultMemoryPolicySize', '"defaultMemoryPolicySize"', - 'true', '0.8 * totalMemoryAvailable', '10485760', - 'Specify desired size of default memory policy without having to use more verbose syntax of MemoryPolicyConfiguration elements') - .pc-form-grid-col-60 - mixin clusters-memory-policies - .ignite-form-field(ng-init='memoryPoliciesTbl={type: "memoryPolicies", model: "memoryPolicies", focusId: "name", ui: "memory-policies-table"}') - +ignite-form-field__label('Configured policies:', '"configuredPolicies"') - +tooltip(`List of configured policies`) - .ignite-form-field__control - -let items = memoryPolicies + mixin clusters-memory-policies + .ignite-form-field(ng-init='memoryPoliciesTbl={type: "memoryPolicies", model: "memoryPolicies", focusId: "name", ui: "memory-policies-table"}') + +ignite-form-field__label('Configured policies:', '"configuredPolicies"') + +tooltip(`List of configured policies`) + .ignite-form-field__control + -let items = memoryPolicies - list-editable(ng-model=items name='memoryPolicies') - list-editable-item-edit.pc-form-grid-row - - form = '$parent.form' - .pc-form-grid-col-60 - +sane-ignite-form-field-text({ - label: 'Name:', - model: '$item.name', - name: '"MemoryPolicyName"', - placeholder: '{{ ::$ctrl.Clusters.memoryPolicy.name.default }}', - tip: 'Memory policy name' - })( - ui-validate=`{ - uniqueMemoryPolicyName: '$ctrl.Clusters.memoryPolicy.customValidators.uniqueMemoryPolicyName($item, ${items})' - }` - ui-validate-watch=`"${items}"` - ui-validate-watch-object-equality='true' - pc-not-in-collection='::$ctrl.Clusters.memoryPolicy.name.invalidValues' - ng-model-options='{allowInvalid: true}' - ) - +form-field-feedback('"MemoryPolicyName', 'uniqueMemoryPolicyName', 'Memory policy with that name is already configured') - +form-field-feedback('"MemoryPolicyName', 'notInCollection', '{{::$ctrl.Clusters.memoryPolicy.name.invalidValues[0]}} is reserved for internal use') - .pc-form-grid-col-60 - pc-form-field-size( - label='Initial size:' - ng-model='$item.initialSize' - ng-model-options='{allowInvalid: true}' - name='MemoryPolicyInitialSize' - placeholder='{{ $ctrl.Clusters.memoryPolicy.initialSize.default / scale.value }}' - min='{{ ::$ctrl.Clusters.memoryPolicy.initialSize.min }}' - tip='Initial memory region size defined by this memory policy' - on-scale-change='scale = $event' - ) - .pc-form-grid-col-60 - pc-form-field-size( - ng-model='$item.maxSize' - ng-model-options='{allowInvalid: true}' - name='MemoryPolicyMaxSize' - label='Maximum size:' - placeholder='{{ ::$ctrl.Clusters.memoryPolicy.maxSize.default }}' - min='{{ $ctrl.Clusters.memoryPolicy.maxSize.min($item) }}' - tip='Maximum memory region size defined by this memory policy' - ) - .pc-form-grid-col-60 - +text('Swap file path:', '$item.swapFilePath', '"MemoryPolicySwapFilePath"', 'false', - 'Input swap file path', 'An optional path to a memory mapped file for this memory policy') - .pc-form-grid-col-60 - +dropdown('Eviction mode:', '$item.pageEvictionMode', '"MemoryPolicyPageEvictionMode"', 'true', 'DISABLED', - '[\ - {value: "DISABLED", label: "DISABLED"},\ - {value: "RANDOM_LRU", label: "RANDOM_LRU"},\ - {value: "RANDOM_2_LRU", label: "RANDOM_2_LRU"}\ - ]', - 'An algorithm for memory pages eviction\ - <ul>\ - <li>DISABLED - Eviction is disabled</li>\ - <li>RANDOM_LRU - Once a memory region defined by a memory policy is configured, an off - heap array is allocated to track last usage timestamp for every individual data page</li>\ - <li>RANDOM_2_LRU - Differs from Random - LRU only in a way that two latest access timestamps are stored for every data page</li>\ - </ul>') - .pc-form-grid-col-30 - +number-min-max-step('Eviction threshold:', '$item.evictionThreshold', '"MemoryPolicyEvictionThreshold"', - 'true', '0.9', '0.5', '0.999', '0.05', 'A threshold for memory pages eviction initiation') - .pc-form-grid-col-30 - +sane-ignite-form-field-number({ - label: 'Empty pages pool size:', - model: '$item.emptyPagesPoolSize', - name: '"MemoryPolicyEmptyPagesPoolSize"', - placeholder: '{{ ::$ctrl.Clusters.memoryPolicy.emptyPagesPoolSize.default }}', - min: '{{ ::$ctrl.Clusters.memoryPolicy.emptyPagesPoolSize.min }}', - max: '{{ $ctrl.Clusters.memoryPolicy.emptyPagesPoolSize.max($ctrl.clonedCluster, $item) }}', - tip: 'The minimal number of empty pages to be present in reuse lists for this memory policy' - }) + list-editable(ng-model=items name='memoryPolicies') + list-editable-item-edit.pc-form-grid-row + - form = '$parent.form' + .pc-form-grid-col-60 + +sane-ignite-form-field-text({ + label: 'Name:', + model: '$item.name', + name: '"MemoryPolicyName"', + placeholder: '{{ ::$ctrl.Clusters.memoryPolicy.name.default }}', + tip: 'Memory policy name' + })( + ui-validate=`{ + uniqueMemoryPolicyName: '$ctrl.Clusters.memoryPolicy.customValidators.uniqueMemoryPolicyName($item, ${items})' + }` + ui-validate-watch=`"${items}"` + ui-validate-watch-object-equality='true' + pc-not-in-collection='::$ctrl.Clusters.memoryPolicy.name.invalidValues' + ng-model-options='{allowInvalid: true}' + ) + +form-field-feedback('"MemoryPolicyName', 'uniqueMemoryPolicyName', 'Memory policy with that name is already configured') + +form-field-feedback('"MemoryPolicyName', 'notInCollection', '{{::$ctrl.Clusters.memoryPolicy.name.invalidValues[0]}} is reserved for internal use') + .pc-form-grid-col-60 + pc-form-field-size( + label='Initial size:' + ng-model='$item.initialSize' + ng-model-options='{allowInvalid: true}' + name='MemoryPolicyInitialSize' + placeholder='{{ $ctrl.Clusters.memoryPolicy.initialSize.default / scale.value }}' + min='{{ ::$ctrl.Clusters.memoryPolicy.initialSize.min }}' + tip='Initial memory region size defined by this memory policy' + on-scale-change='scale = $event' + ) + .pc-form-grid-col-60 + pc-form-field-size( + ng-model='$item.maxSize' + ng-model-options='{allowInvalid: true}' + name='MemoryPolicyMaxSize' + label='Maximum size:' + placeholder='{{ ::$ctrl.Clusters.memoryPolicy.maxSize.default }}' + min='{{ $ctrl.Clusters.memoryPolicy.maxSize.min($item) }}' + tip='Maximum memory region size defined by this memory policy' + ) + .pc-form-grid-col-60 + +text('Swap file path:', '$item.swapFilePath', '"MemoryPolicySwapFilePath"', 'false', + 'Input swap file path', 'An optional path to a memory mapped file for this memory policy') + .pc-form-grid-col-60 + +dropdown('Eviction mode:', '$item.pageEvictionMode', '"MemoryPolicyPageEvictionMode"', 'true', 'DISABLED', + '[\ + {value: "DISABLED", label: "DISABLED"},\ + {value: "RANDOM_LRU", label: "RANDOM_LRU"},\ + {value: "RANDOM_2_LRU", label: "RANDOM_2_LRU"}\ + ]', + 'An algorithm for memory pages eviction\ + <ul>\ + <li>DISABLED - Eviction is disabled</li>\ + <li>RANDOM_LRU - Once a memory region defined by a memory policy is configured, an off - heap array is allocated to track last usage timestamp for every individual data page</li>\ + <li>RANDOM_2_LRU - Differs from Random - LRU only in a way that two latest access timestamps are stored for every data page</li>\ + </ul>') + .pc-form-grid-col-30 + +number-min-max-step('Eviction threshold:', '$item.evictionThreshold', '"MemoryPolicyEvictionThreshold"', + 'true', '0.9', '0.5', '0.999', '0.05', 'A threshold for memory pages eviction initiation') + .pc-form-grid-col-30 + +sane-ignite-form-field-number({ + label: 'Empty pages pool size:', + model: '$item.emptyPagesPoolSize', + name: '"MemoryPolicyEmptyPagesPoolSize"', + placeholder: '{{ ::$ctrl.Clusters.memoryPolicy.emptyPagesPoolSize.default }}', + min: '{{ ::$ctrl.Clusters.memoryPolicy.emptyPagesPoolSize.min }}', + max: '{{ $ctrl.Clusters.memoryPolicy.emptyPagesPoolSize.max($ctrl.clonedCluster, $item) }}', + tip: 'The minimal number of empty pages to be present in reuse lists for this memory policy' + }) - //- Since ignite 2.1 - .pc-form-grid-col-30(ng-if-start='$ctrl.available("2.1.0")') - +number('Sub intervals:', '$item.subIntervals', '"MemoryPolicySubIntervals"', - 'true', '5', '1', 'A number of sub-intervals the whole rate time interval will be split into to calculate allocation and eviction rates') - .pc-form-grid-col-30(ng-if-end) - +number('Rate time interval:', '$item.rateTimeInterval', '"MemoryPolicyRateTimeInterval"', - 'true', '60000', '1000', 'Time interval for allocation rate and eviction rate monitoring purposes') - - .pc-form-grid-col-60 - +checkbox('Metrics enabled', '$item.metricsEnabled', '"MemoryPolicyMetricsEnabled"', - 'Whether memory metrics are enabled by default on node startup') + //- Since ignite 2.1 + .pc-form-grid-col-30(ng-if-start='$ctrl.available("2.1.0")') + +number('Sub intervals:', '$item.subIntervals', '"MemoryPolicySubIntervals"', + 'true', '5', '1', 'A number of sub-intervals the whole rate time interval will be split into to calculate allocation and eviction rates') + .pc-form-grid-col-30(ng-if-end) + +number('Rate time interval:', '$item.rateTimeInterval', '"MemoryPolicyRateTimeInterval"', + 'true', '60000', '1000', 'Time interval for allocation rate and eviction rate monitoring purposes') + + .pc-form-grid-col-60 + +checkbox('Metrics enabled', '$item.metricsEnabled', '"MemoryPolicyMetricsEnabled"', + 'Whether memory metrics are enabled by default on node startup') - list-editable-no-items - list-editable-add-item-button( - add-item=`$ctrl.Clusters.addMemoryPolicy($ctrl.clonedCluster)` - label-single='memory policy configuration' - label-multiple='memory policy configurations' - ) + list-editable-no-items + list-editable-add-item-button( + add-item=`$ctrl.Clusters.addMemoryPolicy($ctrl.clonedCluster)` + label-single='memory policy configuration' + label-multiple='memory policy configurations' + ) - +clusters-memory-policies + +clusters-memory-policies - .pca-form-column-6 - +preview-xml-java(model, 'clusterMemory') + .pca-form-column-6 + +preview-xml-java(model, 'clusterMemory')
http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug index 2cfc59c..82994a9 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/metrics.pug @@ -19,32 +19,28 @@ include /app/helpers/jade/mixins -var form = 'metrics' -var model = '$ctrl.clonedCluster' -.pca-panel.pca-panel-default(ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title Metrics - .pca-panel-heading-description - | Cluster runtime metrics settings. - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6.pc-form-grid-row - .pc-form-grid-col-30 - +number('Elapsed time:', `${model}.metricsExpireTime`, '"metricsExpireTime"', 'true', 'Long.MAX_VALUE', '1', - 'Time in milliseconds after which a certain metric value is considered expired') - .pc-form-grid-col-30 - +number('History size:', `${model}.metricsHistorySize`, '"metricsHistorySize"', 'true', '10000', '1', - 'Number of metrics kept in history to compute totals and averages') - .pc-form-grid-col-30 - +number('Log frequency:', `${model}.metricsLogFrequency`, '"metricsLogFrequency"', 'true', '60000', '0', - 'Frequency of metrics log print out<br/>\ ' + - 'When <b>0</b> log print of metrics is disabled') - .pc-form-grid-col-30 - +number('Update frequency:', `${model}.metricsUpdateFrequency`, '"metricsUpdateFrequency"', 'true', '2000', '-1', - 'Job metrics update frequency in milliseconds\ - <ul>\ - <li>If set to -1 job metrics are never updated</li>\ - <li>If set to 0 job metrics are updated on each job start and finish</li>\ - <li>Positive value defines the actual update frequency</li>\ - </ul>') - .pca-form-column-6 - +preview-xml-java(model, 'clusterMetrics') +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title Metrics + panel-description Cluster runtime metrics settings. + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-30 + +number('Elapsed time:', `${model}.metricsExpireTime`, '"metricsExpireTime"', 'true', 'Long.MAX_VALUE', '1', + 'Time in milliseconds after which a certain metric value is considered expired') + .pc-form-grid-col-30 + +number('History size:', `${model}.metricsHistorySize`, '"metricsHistorySize"', 'true', '10000', '1', + 'Number of metrics kept in history to compute totals and averages') + .pc-form-grid-col-30 + +number('Log frequency:', `${model}.metricsLogFrequency`, '"metricsLogFrequency"', 'true', '60000', '0', + 'Frequency of metrics log print out<br/>\ ' + + 'When <b>0</b> log print of metrics is disabled') + .pc-form-grid-col-30 + +number('Update frequency:', `${model}.metricsUpdateFrequency`, '"metricsUpdateFrequency"', 'true', '2000', '-1', + 'Job metrics update frequency in milliseconds\ + <ul>\ + <li>If set to -1 job metrics are never updated</li>\ + <li>If set to 0 job metrics are updated on each job start and finish</li>\ + <li>Positive value defines the actual update frequency</li>\ + </ul>') + .pca-form-column-6 + +preview-xml-java(model, 'clusterMetrics') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/misc.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/misc.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/misc.pug index 99f05f3..cdc7258 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/misc.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/misc.pug @@ -19,44 +19,40 @@ include /app/helpers/jade/mixins -var form = 'misc' -var model = '$ctrl.clonedCluster' -.pca-panel.pca-panel-default(ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle) - ignite-form-panel-chevron - .pca-panel-heading-title Miscellaneous - .pca-panel-heading-description - | Various miscellaneous cluster settings. - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body.pca-form-row - .pca-form-column-6.pc-form-grid-row - .pc-form-grid-col-60 - +text('Work directory:', model + '.workDirectory', '"workDirectory"', 'false', 'Input work directory', - 'Ignite work directory.<br/>\ - If not provided, the method will use work directory under IGNITE_HOME specified by IgniteConfiguration#setIgniteHome(String)\ - or IGNITE_HOME environment variable or system property.') - - //- Since ignite 2.0 - .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.0.0")') - +text('Consistent ID:', model + '.consistentId', '"ConsistentId"', 'false', 'Input consistent ID', 'Consistent globally unique node ID which survives node restarts') - .pc-form-grid-col-60 - +java-class('Warmup closure:', model + '.warmupClosure', '"warmupClosure"', 'true', 'false', 'This closure will be executed before actual grid instance start') - .pc-form-grid-col-60 - +checkbox('Active on start', model + '.activeOnStart', '"activeOnStart"', - 'If cluster is not active on start, there will be no cache partition map exchanges performed until the cluster is activated') - .pc-form-grid-col-60(ng-if-end) - +checkbox('Cache sanity check enabled', model + '.cacheSanityCheckEnabled', '"cacheSanityCheckEnabled"', - 'If enabled, then Ignite will perform the following checks and throw an exception if check fails<br/>\ - <ul>\ - <li>Cache entry is not externally locked with lock or lockAsync methods when entry is enlisted to transaction</li>\ - <li>Each entry in affinity group - lock transaction has the same affinity key as was specified on affinity transaction start</li>\ - <li>Each entry in partition group - lock transaction belongs to the same partition as was specified on partition transaction start</li>\ - </ul>') - - .pc-form-grid-col-60(ng-if='$ctrl.available(["1.0.0", "2.1.0"])') - +checkbox('Late affinity assignment', model + '.lateAffinityAssignment', '"lateAffinityAssignment"', - 'With late affinity assignment mode if primary node was changed for some partition this nodes becomes primary only when rebalancing for all assigned primary partitions is finished') - - .pc-form-grid-col-60(ng-if='$ctrl.available("2.1.0")') - +number('Long query timeout:', `${model}.longQueryWarningTimeout`, '"LongQueryWarningTimeout"', 'true', '3000', '0', - 'Timeout in milliseconds after which long query warning will be printed') - .pca-form-column-6 - +preview-xml-java(model, 'clusterMisc', 'caches') +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title Miscellaneous + panel-description Various miscellaneous cluster settings. + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +text('Work directory:', model + '.workDirectory', '"workDirectory"', 'false', 'Input work directory', + 'Ignite work directory.<br/>\ + If not provided, the method will use work directory under IGNITE_HOME specified by IgniteConfiguration#setIgniteHome(String)\ + or IGNITE_HOME environment variable or system property.') + + //- Since ignite 2.0 + .pc-form-grid-col-60(ng-if-start='$ctrl.available("2.0.0")') + +text('Consistent ID:', model + '.consistentId', '"ConsistentId"', 'false', 'Input consistent ID', 'Consistent globally unique node ID which survives node restarts') + .pc-form-grid-col-60 + +java-class('Warmup closure:', model + '.warmupClosure', '"warmupClosure"', 'true', 'false', 'This closure will be executed before actual grid instance start') + .pc-form-grid-col-60 + +checkbox('Active on start', model + '.activeOnStart', '"activeOnStart"', + 'If cluster is not active on start, there will be no cache partition map exchanges performed until the cluster is activated') + .pc-form-grid-col-60(ng-if-end) + +checkbox('Cache sanity check enabled', model + '.cacheSanityCheckEnabled', '"cacheSanityCheckEnabled"', + 'If enabled, then Ignite will perform the following checks and throw an exception if check fails<br/>\ + <ul>\ + <li>Cache entry is not externally locked with lock or lockAsync methods when entry is enlisted to transaction</li>\ + <li>Each entry in affinity group - lock transaction has the same affinity key as was specified on affinity transaction start</li>\ + <li>Each entry in partition group - lock transaction belongs to the same partition as was specified on partition transaction start</li>\ + </ul>') + + .pc-form-grid-col-60(ng-if='$ctrl.available(["1.0.0", "2.1.0"])') + +checkbox('Late affinity assignment', model + '.lateAffinityAssignment', '"lateAffinityAssignment"', + 'With late affinity assignment mode if primary node was changed for some partition this nodes becomes primary only when rebalancing for all assigned primary partitions is finished') + + .pc-form-grid-col-60(ng-if='$ctrl.available("2.1.0")') + +number('Long query timeout:', `${model}.longQueryWarningTimeout`, '"LongQueryWarningTimeout"', 'true', '3000', '0', + 'Timeout in milliseconds after which long query warning will be printed') + .pca-form-column-6 + +preview-xml-java(model, 'clusterMisc', 'caches') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug index b35b30c..74b1f02 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/odbc.pug @@ -20,50 +20,51 @@ include /app/helpers/jade/mixins -var model = '$ctrl.clonedCluster.odbc' -var enabled = model + '.odbcEnabled' -.pca-panel.pca-panel-default(ng-show='$ctrl.available(["1.0.0", "2.1.0"])' ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title ODBC configuration - .pca-panel-heading-description - | ODBC server configuration. - | #[a.link-success(href="https://apacheignite.readme.io/docs/odbc-driver" target="_blank") More info] - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`$ctrl.available(["1.0.0", "2.1.0"]) && ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6 - .settings-row - +sane-form-field-checkbox({ - label: 'Enabled', - model: enabled, - name: '"odbcEnabled"', - tip: 'Flag indicating whether to configure ODBC configuration' - })( - ui-validate=`{ - correctMarshaller: '$ctrl.Clusters.odbc.odbcEnabled.correctMarshaller($ctrl.clonedCluster, $value)' - }` - ui-validate-watch='$ctrl.Clusters.odbc.odbcEnabled.correctMarshallerWatch("$ctrl.clonedCluster")' - ) - +form-field-feedback(null, 'correctMarshaller', 'ODBC can only be used with BinaryMarshaller') - .settings-row - +text-ip-address-with-port-range('ODBC endpoint address:', `${model}.endpointAddress`, '"endpointAddress"', enabled, '0.0.0.0:10800..10810', - 'ODBC endpoint address. <br/>\ - The following address formats are permitted:\ - <ul>\ - <li>hostname - will use provided hostname and default port range</li>\ - <li>hostname:port - will use provided hostname and port</li>\ - <li>hostname:port_from..port_to - will use provided hostname and port range</li>\ - </ul>') - .settings-row - +number('Send buffer size:', `${model}.socketSendBufferSize`, '"ODBCSocketSendBufferSize"', enabled, '0', '0', - 'Socket send buffer size.<br/>\ - When set to <b>0</b>, operation system default will be used') - .settings-row - +number('Socket receive buffer size:', `${model}.socketReceiveBufferSize`, '"ODBCSocketReceiveBufferSize"', enabled, '0', '0', - 'Socket receive buffer size.<br/>\ - When set to <b>0</b>, operation system default will be used') - .settings-row - +number('Maximum open cursors', `${model}.maxOpenCursors`, '"maxOpenCursors"', enabled, '128', '1', 'Maximum number of opened cursors per connection') - .settings-row - +number('Pool size:', `${model}.threadPoolSize`, '"ODBCThreadPoolSize"', enabled, 'max(8, availableProcessors)', '1', - 'Size of thread pool that is in charge of processing ODBC tasks') - .pca-form-column-6 - +preview-xml-java(model, 'clusterODBC') +panel-collapsible( + ng-form=form + on-open=`ui.loadPanel('${form}')` + ng-show='$ctrl.available(["1.0.0", "2.1.0"])' +) + panel-title ODBC configuration + panel-description + | ODBC server configuration. + | #[a.link-success(href="https://apacheignite.readme.io/docs/odbc-driver" target="_blank") More info] + panel-content.pca-form-row(ng-if=`$ctrl.available(["1.0.0", "2.1.0"]) && ui.isPanelLoaded('${form}')`) + .pca-form-column-6 + .settings-row + +sane-form-field-checkbox({ + label: 'Enabled', + model: enabled, + name: '"odbcEnabled"', + tip: 'Flag indicating whether to configure ODBC configuration' + })( + ui-validate=`{ + correctMarshaller: '$ctrl.Clusters.odbc.odbcEnabled.correctMarshaller($ctrl.clonedCluster, $value)' + }` + ui-validate-watch='$ctrl.Clusters.odbc.odbcEnabled.correctMarshallerWatch("$ctrl.clonedCluster")' + ) + +form-field-feedback(null, 'correctMarshaller', 'ODBC can only be used with BinaryMarshaller') + .settings-row + +text-ip-address-with-port-range('ODBC endpoint address:', `${model}.endpointAddress`, '"endpointAddress"', enabled, '0.0.0.0:10800..10810', + 'ODBC endpoint address. <br/>\ + The following address formats are permitted:\ + <ul>\ + <li>hostname - will use provided hostname and default port range</li>\ + <li>hostname:port - will use provided hostname and port</li>\ + <li>hostname:port_from..port_to - will use provided hostname and port range</li>\ + </ul>') + .settings-row + +number('Send buffer size:', `${model}.socketSendBufferSize`, '"ODBCSocketSendBufferSize"', enabled, '0', '0', + 'Socket send buffer size.<br/>\ + When set to <b>0</b>, operation system default will be used') + .settings-row + +number('Socket receive buffer size:', `${model}.socketReceiveBufferSize`, '"ODBCSocketReceiveBufferSize"', enabled, '0', '0', + 'Socket receive buffer size.<br/>\ + When set to <b>0</b>, operation system default will be used') + .settings-row + +number('Maximum open cursors', `${model}.maxOpenCursors`, '"maxOpenCursors"', enabled, '128', '1', 'Maximum number of opened cursors per connection') + .settings-row + +number('Pool size:', `${model}.threadPoolSize`, '"ODBCThreadPoolSize"', enabled, 'max(8, availableProcessors)', '1', + 'Size of thread pool that is in charge of processing ODBC tasks') + .pca-form-column-6 + +preview-xml-java(model, 'clusterODBC') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/persistence.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/persistence.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/persistence.pug index edd1c32..2c8d10a 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/persistence.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/persistence.pug @@ -20,62 +20,63 @@ include /app/helpers/jade/mixins -var model = '$ctrl.clonedCluster.persistenceStoreConfiguration' -var enabled = model + '.enabled' -.pca-panel.pca-panel-default(ng-show='$ctrl.available(["2.1.0", "2.3.0"])' ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title Persistence store - .pca-panel-heading-description - | Configures Apache Ignite Native Persistence. - a.link-success(href='https://apacheignite.readme.io/docs/distributed-persistent-store' target='_blank') More info - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`$ctrl.available(["2.1.0", "2.3.0"]) && ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6.pc-form-grid-row - .pc-form-grid-col-60 - +checkbox('Enabled', enabled, '"PersistenceEnabled"', 'Flag indicating whether to configure persistent configuration') - .pc-form-grid-col-60 - +text-enabled('Store path:', `${model}.persistentStorePath`, '"PersistenceStorePath"', enabled, 'false', 'Input store path', - 'A path the root directory where the Persistent Store will persist data and indexes') - .pc-form-grid-col-60 - +checkbox-enabled('Metrics enabled', `${model}.metricsEnabled`, '"PersistenceMetricsEnabled"', enabled, 'Flag indicating whether persistence metrics collection is enabled') - .pc-form-grid-col-60 - +checkbox-enabled('Always write full pages', `${model}.alwaysWriteFullPages`, '"PersistenceAlwaysWriteFullPages"', enabled, 'Flag indicating whether always write full pages') - .pc-form-grid-col-60 - +number('Checkpointing frequency:', `${model}.checkpointingFrequency`, '"PersistenceCheckpointingFrequency"', enabled, '180000', '1', - 'Frequency which is a minimal interval when the dirty pages will be written to the Persistent Store') - .pc-form-grid-col-60 - +number('Checkpointing page buffer size:', `${model}.checkpointingPageBufferSize`, '"PersistenceCheckpointingPageBufferSize"', enabled, '268435456', '0', - 'Amount of memory allocated for a checkpointing temporary buffer') - .pc-form-grid-col-60 - +number('Checkpointing threads:', `${model}.checkpointingThreads`, '"PersistenceCheckpointingThreads"', enabled, '1', '1', 'A number of threads to use for the checkpointing purposes') - .pc-form-grid-col-60 - +text-enabled('WAL store path:', `${model}.walStorePath`, '"PersistenceWalStorePath"', enabled, 'false', 'Input store path', 'A path to the directory where WAL is stored') - .pc-form-grid-col-60 - +text-enabled('WAL archive path:', `${model}.walArchivePath`, '"PersistenceWalArchivePath"', enabled, 'false', 'Input archive path', 'A path to the WAL archive directory') - .pc-form-grid-col-30 - +number('WAL segments:', `${model}.walSegments`, '"PersistenceWalSegments"', enabled, '10', '1', 'A number of WAL segments to work with') - .pc-form-grid-col-30 - +number('WAL segment size:', `${model}.walSegmentSize`, '"PersistenceWalSegmentSize"', enabled, '67108864', '0', 'Size of a WAL segment') - .pc-form-grid-col-30 - +number('WAL history size:', `${model}.walHistorySize`, '"PersistenceWalHistorySize"', enabled, '20', '1', 'A total number of checkpoints to keep in the WAL history') - .pc-form-grid-col-30 - +number('WAL flush frequency:', `${model}.walFlushFrequency`, '"PersistenceWalFlushFrequency"', enabled, '2000', '1', - 'How often will be fsync, in milliseconds. In background mode, exist thread which do fsync by timeout') - .pc-form-grid-col-30 - +number('WAL fsync delay:', `${model}.walFsyncDelayNanos`, '"PersistenceWalFsyncDelay"', enabled, '1000', '1', 'WAL fsync delay, in nanoseconds') - .pc-form-grid-col-30 - +number('WAL record iterator buffer size:', `${model}.walRecordIteratorBufferSize`, '"PersistenceWalRecordIteratorBufferSize"', enabled, '67108864', '1', - 'How many bytes iterator read from disk(for one reading), during go ahead WAL') - .pc-form-grid-col-30 - +number('Lock wait time:', `${model}.lockWaitTime`, '"PersistenceLockWaitTime"', enabled, '10000', '1', - 'Time out in second, while wait and try get file lock for start persist manager') - .pc-form-grid-col-30 - +number('Rate time interval:', `${model}.rateTimeInterval`, '"PersistenceRateTimeInterval"', enabled, '60000', '1000', - 'The length of the time interval for rate - based metrics. This interval defines a window over which hits will be tracked.') - .pc-form-grid-col-30 - +number('Thread local buffer size:', `${model}.tlbSize`, '"PersistenceTlbSize"', enabled, '131072', '1', - 'Define size thread local buffer. Each thread which write to WAL have thread local buffer for serialize recode before write in WAL') - .pc-form-grid-col-30 - +number('Sub intervals:', `${model}.subIntervals`, '"PersistenceSubIntervals"', enabled, '5', '1', - 'Number of sub - intervals the whole rate time interval will be split into to calculate rate - based metrics') - .pca-form-column-6 - +preview-xml-java(model, 'clusterPersistence') +panel-collapsible( + ng-form=form + on-open=`ui.loadPanel('${form}')` + ng-show='$ctrl.available(["2.1.0", "2.3.0"])' +) + panel-title Persistence store + panel-description + | Configures Apache Ignite Native Persistence. + a.link-success(href='https://apacheignite.readme.io/docs/distributed-persistent-store' target='_blank') More info + panel-content.pca-form-row(ng-if=`$ctrl.available(["2.1.0", "2.3.0"]) && ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +checkbox('Enabled', enabled, '"PersistenceEnabled"', 'Flag indicating whether to configure persistent configuration') + .pc-form-grid-col-60 + +text-enabled('Store path:', `${model}.persistentStorePath`, '"PersistenceStorePath"', enabled, 'false', 'Input store path', + 'A path the root directory where the Persistent Store will persist data and indexes') + .pc-form-grid-col-60 + +checkbox-enabled('Metrics enabled', `${model}.metricsEnabled`, '"PersistenceMetricsEnabled"', enabled, 'Flag indicating whether persistence metrics collection is enabled') + .pc-form-grid-col-60 + +checkbox-enabled('Always write full pages', `${model}.alwaysWriteFullPages`, '"PersistenceAlwaysWriteFullPages"', enabled, 'Flag indicating whether always write full pages') + .pc-form-grid-col-60 + +number('Checkpointing frequency:', `${model}.checkpointingFrequency`, '"PersistenceCheckpointingFrequency"', enabled, '180000', '1', + 'Frequency which is a minimal interval when the dirty pages will be written to the Persistent Store') + .pc-form-grid-col-60 + +number('Checkpointing page buffer size:', `${model}.checkpointingPageBufferSize`, '"PersistenceCheckpointingPageBufferSize"', enabled, '268435456', '0', + 'Amount of memory allocated for a checkpointing temporary buffer') + .pc-form-grid-col-60 + +number('Checkpointing threads:', `${model}.checkpointingThreads`, '"PersistenceCheckpointingThreads"', enabled, '1', '1', 'A number of threads to use for the checkpointing purposes') + .pc-form-grid-col-60 + +text-enabled('WAL store path:', `${model}.walStorePath`, '"PersistenceWalStorePath"', enabled, 'false', 'Input store path', 'A path to the directory where WAL is stored') + .pc-form-grid-col-60 + +text-enabled('WAL archive path:', `${model}.walArchivePath`, '"PersistenceWalArchivePath"', enabled, 'false', 'Input archive path', 'A path to the WAL archive directory') + .pc-form-grid-col-30 + +number('WAL segments:', `${model}.walSegments`, '"PersistenceWalSegments"', enabled, '10', '1', 'A number of WAL segments to work with') + .pc-form-grid-col-30 + +number('WAL segment size:', `${model}.walSegmentSize`, '"PersistenceWalSegmentSize"', enabled, '67108864', '0', 'Size of a WAL segment') + .pc-form-grid-col-30 + +number('WAL history size:', `${model}.walHistorySize`, '"PersistenceWalHistorySize"', enabled, '20', '1', 'A total number of checkpoints to keep in the WAL history') + .pc-form-grid-col-30 + +number('WAL flush frequency:', `${model}.walFlushFrequency`, '"PersistenceWalFlushFrequency"', enabled, '2000', '1', + 'How often will be fsync, in milliseconds. In background mode, exist thread which do fsync by timeout') + .pc-form-grid-col-30 + +number('WAL fsync delay:', `${model}.walFsyncDelayNanos`, '"PersistenceWalFsyncDelay"', enabled, '1000', '1', 'WAL fsync delay, in nanoseconds') + .pc-form-grid-col-30 + +number('WAL record iterator buffer size:', `${model}.walRecordIteratorBufferSize`, '"PersistenceWalRecordIteratorBufferSize"', enabled, '67108864', '1', + 'How many bytes iterator read from disk(for one reading), during go ahead WAL') + .pc-form-grid-col-30 + +number('Lock wait time:', `${model}.lockWaitTime`, '"PersistenceLockWaitTime"', enabled, '10000', '1', + 'Time out in second, while wait and try get file lock for start persist manager') + .pc-form-grid-col-30 + +number('Rate time interval:', `${model}.rateTimeInterval`, '"PersistenceRateTimeInterval"', enabled, '60000', '1000', + 'The length of the time interval for rate - based metrics. This interval defines a window over which hits will be tracked.') + .pc-form-grid-col-30 + +number('Thread local buffer size:', `${model}.tlbSize`, '"PersistenceTlbSize"', enabled, '131072', '1', + 'Define size thread local buffer. Each thread which write to WAL have thread local buffer for serialize recode before write in WAL') + .pc-form-grid-col-30 + +number('Sub intervals:', `${model}.subIntervals`, '"PersistenceSubIntervals"', enabled, '5', '1', + 'Number of sub - intervals the whole rate time interval will be split into to calculate rate - based metrics') + .pca-form-column-6 + +preview-xml-java(model, 'clusterPersistence') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/service.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/service.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/service.pug index 7f9d75f..a244602 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/service.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/service.pug @@ -19,74 +19,71 @@ include /app/helpers/jade/mixins -var form = 'serviceConfiguration' -var model = '$ctrl.clonedCluster.serviceConfigurations' -.pca-panel.pca-panel-default(ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title Service configuration - .pca-panel-heading-description - | Service Grid allows for deployments of arbitrary user-defined services on the cluster. - | #[a.link-success(href="https://apacheignite.readme.io/docs/fault-tolerance" target="_blank") More info] - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6 - mixin clusters-service-configurations - .ignite-form-field(ng-init='serviceConfigurationsTbl={type: "serviceConfigurations", model: "serviceConfigurations", focusId: "kind", ui: "failover-table"}') - +ignite-form-field__label('Service configurations:', '"serviceConfigurations"') - .ignite-form-field__control - -let items = model +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title Service configuration + panel-description + | Service Grid allows for deployments of arbitrary user-defined services on the cluster. + | #[a.link-success(href="https://apacheignite.readme.io/docs/fault-tolerance" target="_blank") More info] + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6 + mixin clusters-service-configurations + .ignite-form-field(ng-init='serviceConfigurationsTbl={type: "serviceConfigurations", model: "serviceConfigurations", focusId: "kind", ui: "failover-table"}') + +ignite-form-field__label('Service configurations:', '"serviceConfigurations"') + .ignite-form-field__control + -let items = model - list-editable(ng-model=items name='serviceConfigurations') - list-editable-item-edit - - form = '$parent.form' - - -var nodeFilter = '$item.nodeFilter'; - -var nodeFilterKind = nodeFilter + '.kind'; - -var customFilter = nodeFilterKind + ' === "Custom"' + list-editable(ng-model=items name='serviceConfigurations') + list-editable-item-edit + - form = '$parent.form' + + -var nodeFilter = '$item.nodeFilter'; + -var nodeFilterKind = nodeFilter + '.kind'; + -var customFilter = nodeFilterKind + ' === "Custom"' - .settings-row - +sane-ignite-form-field-text({ - label: 'Name:', - model: '$item.name', - name: '"serviceName"', - required: true, - placeholder: 'Input service name' - })( - ui-validate=`{ - uniqueName: '$ctrl.Clusters.serviceConfigurations.serviceConfiguration.name.customValidators.uniqueName($item, ${items})' - }` - ui-validate-watch=`"${items}"` - ui-validate-watch-object-equality='true' - ng-model-options='{allowInvalid: true}' - ) - +form-field-feedback('"serviceName', 'uniqueName', 'Service with that name is already configured') - .settings-row - +java-class('Service class', '$item.service', '"serviceService"', 'true', 'true', 'Service implementation class name') - .settings-row - +number('Max per node count:', '$item.maxPerNodeCount', '"ServiceMaxPerNodeCount"', 'true', 'Unlimited', '0', - 'Maximum number of deployed service instances on each node.<br/>' + - 'Zero for unlimited') - .settings-row - +number('Total count:', '$item.totalCount', '"serviceTotalCount"', 'true', 'Unlimited', '0', - 'Total number of deployed service instances in the cluster.<br/>' + - 'Zero for unlimited') - .settings-row - +dropdown-required-empty('Cache:', '$item.cache', '"serviceCache"', 'true', 'false', - 'Choose cache', 'No caches configured for current cluster', '$ctrl.cachesMenu', 'Cache name used for key-to-node affinity calculation')( - pc-is-in-collection='$ctrl.clonedCluster.caches' - ).settings-row - +form-field-feedback(form, 'isInCollection', `Cluster doesn't have such a cache`) - .settings-row - +text('Affinity key:', '$item.affinityKey', '"serviceAffinityKey"', 'false', 'Input affinity key', - 'Affinity key used for key-to-node affinity calculation') - - list-editable-no-items - list-editable-add-item-button( - add-item=`$ctrl.Clusters.addServiceConfiguration($ctrl.clonedCluster)` - label-single='service configuration' - label-multiple='service configurations' + .settings-row + +sane-ignite-form-field-text({ + label: 'Name:', + model: '$item.name', + name: '"serviceName"', + required: true, + placeholder: 'Input service name' + })( + ui-validate=`{ + uniqueName: '$ctrl.Clusters.serviceConfigurations.serviceConfiguration.name.customValidators.uniqueName($item, ${items})' + }` + ui-validate-watch=`"${items}"` + ui-validate-watch-object-equality='true' + ng-model-options='{allowInvalid: true}' ) + +form-field-feedback('"serviceName', 'uniqueName', 'Service with that name is already configured') + .settings-row + +java-class('Service class', '$item.service', '"serviceService"', 'true', 'true', 'Service implementation class name') + .settings-row + +number('Max per node count:', '$item.maxPerNodeCount', '"ServiceMaxPerNodeCount"', 'true', 'Unlimited', '0', + 'Maximum number of deployed service instances on each node.<br/>' + + 'Zero for unlimited') + .settings-row + +number('Total count:', '$item.totalCount', '"serviceTotalCount"', 'true', 'Unlimited', '0', + 'Total number of deployed service instances in the cluster.<br/>' + + 'Zero for unlimited') + .settings-row + +dropdown-required-empty('Cache:', '$item.cache', '"serviceCache"', 'true', 'false', + 'Choose cache', 'No caches configured for current cluster', '$ctrl.cachesMenu', 'Cache name used for key-to-node affinity calculation')( + pc-is-in-collection='$ctrl.clonedCluster.caches' + ).settings-row + +form-field-feedback(form, 'isInCollection', `Cluster doesn't have such a cache`) + .settings-row + +text('Affinity key:', '$item.affinityKey', '"serviceAffinityKey"', 'false', 'Input affinity key', + 'Affinity key used for key-to-node affinity calculation') + + list-editable-no-items + list-editable-add-item-button( + add-item=`$ctrl.Clusters.addServiceConfiguration($ctrl.clonedCluster)` + label-single='service configuration' + label-multiple='service configurations' + ) - +clusters-service-configurations + +clusters-service-configurations - .pca-form-column-6 - +preview-xml-java('$ctrl.clonedCluster', 'clusterServiceConfiguration', '$ctrl.caches') + .pca-form-column-6 + +preview-xml-java('$ctrl.clonedCluster', 'clusterServiceConfiguration', '$ctrl.caches') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/sql-connector.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/sql-connector.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/sql-connector.pug index b52b973..2e61fc2 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/sql-connector.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/sql-connector.pug @@ -21,37 +21,38 @@ include /app/helpers/jade/mixins -var connectionModel = model + '.sqlConnectorConfiguration' -var connectionEnabled = connectionModel + '.enabled' -.pca-panel.pca-panel-default(ng-show='$ctrl.available(["2.1.0", "2.3.0"])' ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title Query configuration - //- TODO IGNITE-5415 Add link to documentation. - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`$ctrl.available(["2.1.0", "2.3.0"]) && ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6.pc-form-grid-row - .pc-form-grid-col-60 - +checkbox('Enabled', connectionEnabled, '"SqlConnectorEnabled"', 'Flag indicating whether to configure SQL connector configuration') - .pc-form-grid-col-40 - +text-enabled('Host:', `${connectionModel}.host`, '"SqlConnectorHost"', connectionEnabled, 'false', 'localhost') - .pc-form-grid-col-20 - +number('Port:', `${connectionModel}.port`, '"SqlConnectorPort"', connectionEnabled, '10800', '1025') - .pc-form-grid-col-20 - +number('Port range:', `${connectionModel}.portRange`, '"SqlConnectorPortRange"', connectionEnabled, '100', '0') - .pc-form-grid-col-20 - +number('Socket send buffer size:', `${connectionModel}.socketSendBufferSize`, '"SqlConnectorSocketSendBufferSize"', connectionEnabled, '0', '0', - 'Socket send buffer size.<br/>\ - When set to <b>0</b>, operation system default will be used') - .pc-form-grid-col-20 - +number('Socket receive buffer size:', `${connectionModel}.socketReceiveBufferSize`, '"SqlConnectorSocketReceiveBufferSize"', connectionEnabled, '0', '0', - 'Socket receive buffer size.<br/>\ - When set to <b>0</b>, operation system default will be used') - .pc-form-grid-col-30 - +number('Max connection cursors:', `${connectionModel}.maxOpenCursorsPerConnection`, '"SqlConnectorMaxOpenCursorsPerConnection"', connectionEnabled, '128', '0', - 'Max number of opened cursors per connection') - .pc-form-grid-col-30 - +number('Pool size:', `${connectionModel}.threadPoolSize`, '"SqlConnectorThreadPoolSize"', connectionEnabled, 'max(8, availableProcessors)', '1', - 'Size of thread pool that is in charge of processing SQL requests') - .pc-form-grid-col-60 - +checkbox-enabled('TCP_NODELAY option', `${connectionModel}.tcpNoDelay`, '"SqlConnectorTcpNoDelay"', connectionEnabled) - .pca-form-column-6 - +preview-xml-java(model, 'clusterQuery') +panel-collapsible( + ng-form=form + on-open=`ui.loadPanel('${form}')` + ng-show='$ctrl.available(["2.1.0", "2.3.0"])' +) + panel-title Query configuration + //- TODO IGNITE-5415 Add link to documentation. + panel-content.pca-form-row(ng-if=`$ctrl.available(["2.1.0", "2.3.0"]) && ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +checkbox('Enabled', connectionEnabled, '"SqlConnectorEnabled"', 'Flag indicating whether to configure SQL connector configuration') + .pc-form-grid-col-40 + +text-enabled('Host:', `${connectionModel}.host`, '"SqlConnectorHost"', connectionEnabled, 'false', 'localhost') + .pc-form-grid-col-20 + +number('Port:', `${connectionModel}.port`, '"SqlConnectorPort"', connectionEnabled, '10800', '1025') + .pc-form-grid-col-20 + +number('Port range:', `${connectionModel}.portRange`, '"SqlConnectorPortRange"', connectionEnabled, '100', '0') + .pc-form-grid-col-20 + +number('Socket send buffer size:', `${connectionModel}.socketSendBufferSize`, '"SqlConnectorSocketSendBufferSize"', connectionEnabled, '0', '0', + 'Socket send buffer size.<br/>\ + When set to <b>0</b>, operation system default will be used') + .pc-form-grid-col-20 + +number('Socket receive buffer size:', `${connectionModel}.socketReceiveBufferSize`, '"SqlConnectorSocketReceiveBufferSize"', connectionEnabled, '0', '0', + 'Socket receive buffer size.<br/>\ + When set to <b>0</b>, operation system default will be used') + .pc-form-grid-col-30 + +number('Max connection cursors:', `${connectionModel}.maxOpenCursorsPerConnection`, '"SqlConnectorMaxOpenCursorsPerConnection"', connectionEnabled, '128', '0', + 'Max number of opened cursors per connection') + .pc-form-grid-col-30 + +number('Pool size:', `${connectionModel}.threadPoolSize`, '"SqlConnectorThreadPoolSize"', connectionEnabled, 'max(8, availableProcessors)', '1', + 'Size of thread pool that is in charge of processing SQL requests') + .pc-form-grid-col-60 + +checkbox-enabled('TCP_NODELAY option', `${connectionModel}.tcpNoDelay`, '"SqlConnectorTcpNoDelay"', connectionEnabled) + .pca-form-column-6 + +preview-xml-java(model, 'clusterQuery') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug index f353e2e..2745f53 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/ssl.pug @@ -22,72 +22,68 @@ include /app/helpers/jade/mixins -var model = cluster + '.sslContextFactory' -var trust = model + '.trustManagers' -.pca-panel.pca-panel-default(ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`) - ignite-form-panel-chevron - .pca-panel-heading-title SSL configuration - .pca-panel-heading-description - | Settings for SSL configuration for creating a secure socket layer. - | #[a.link-success(href="https://apacheignite.readme.io/docs/ssltls" target="_blank") More info] - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body(ng-if=`ui.isPanelLoaded('${form}')`).pca-form-row - .pca-form-column-6 - .pc-form-grid-row - .pc-form-grid-col-60 - +checkbox('Enabled', enabled, '"sslEnabled"', 'Flag indicating whether to configure SSL configuration') - .pc-form-grid-col-60 - +text-options('Algorithm to create a key manager:', `${model}.keyAlgorithm`, '"keyAlgorithm"', '["SumX509", "X509"]', enabled, 'false', 'SumX509', - 'Sets key manager algorithm that will be used to create a key manager<br/>\ - Notice that in most cased default value suites well, however, on Android platform this value need to be set to X509') - .pc-form-grid-col-60 - +text-enabled('Key store file:', `${model}.keyStoreFilePath`, '"keyStoreFilePath"', enabled, enabled, 'Path to the key store file', - 'Path to the key store file<br/>\ - This is a mandatory parameter since ssl context could not be initialized without key manager') - .pc-form-grid-col-30 - +text-options('Key store type:', `${model}.keyStoreType`, '"keyStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS', - 'Key store type used in context initialization') - .pc-form-grid-col-30 - +text-options('Protocol:', `${model}.protocol`, '"protocol"', '["TSL", "SSL"]', enabled, 'false', 'TSL', 'Protocol for secure transport') - .pc-form-grid-col-60 - .ignite-form-field - .ignite-form-field__control - list-editable( - ng-model=trust - name='trustManagers' - list-editable-cols=`::[{name: "Pre-configured trust managers:"}]` - ng-disabled=enabledToDisabled(enabled) - ng-required=`${enabled} && !${model}.trustStoreFilePath` - ) - list-editable-item-view {{ $item }} +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title SSL configuration + panel-description + | Settings for SSL configuration for creating a secure socket layer. + | #[a.link-success(href="https://apacheignite.readme.io/docs/ssltls" target="_blank") More info] + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +checkbox('Enabled', enabled, '"sslEnabled"', 'Flag indicating whether to configure SSL configuration') + .pc-form-grid-col-60 + +text-options('Algorithm to create a key manager:', `${model}.keyAlgorithm`, '"keyAlgorithm"', '["SumX509", "X509"]', enabled, 'false', 'SumX509', + 'Sets key manager algorithm that will be used to create a key manager<br/>\ + Notice that in most cased default value suites well, however, on Android platform this value need to be set to X509') + .pc-form-grid-col-60 + +text-enabled('Key store file:', `${model}.keyStoreFilePath`, '"keyStoreFilePath"', enabled, enabled, 'Path to the key store file', + 'Path to the key store file<br/>\ + This is a mandatory parameter since ssl context could not be initialized without key manager') + .pc-form-grid-col-30 + +text-options('Key store type:', `${model}.keyStoreType`, '"keyStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS', + 'Key store type used in context initialization') + .pc-form-grid-col-30 + +text-options('Protocol:', `${model}.protocol`, '"protocol"', '["TSL", "SSL"]', enabled, 'false', 'TSL', 'Protocol for secure transport') + .pc-form-grid-col-60 + .ignite-form-field + .ignite-form-field__control + list-editable( + ng-model=trust + name='trustManagers' + list-editable-cols=`::[{name: "Pre-configured trust managers:"}]` + ng-disabled=enabledToDisabled(enabled) + ng-required=`${enabled} && !${model}.trustStoreFilePath` + ) + list-editable-item-view {{ $item }} - list-editable-item-edit - +list-java-class-field('Trust manager', '$item', '"trustManager"', trust) - +unique-feedback('"trustManager"', 'Such trust manager already exists!') + list-editable-item-edit + +list-java-class-field('Trust manager', '$item', '"trustManager"', trust) + +unique-feedback('"trustManager"', 'Such trust manager already exists!') - list-editable-no-items - list-editable-add-item-button( - add-item=`$editLast((${trust} = ${trust} || []).push(''))` - label-single='trust manager' - label-multiple='trust managers' - ) - .ignite-form-field__errors( - ng-messages=`sslConfiguration.trustManagers.$error` - ng-show=`sslConfiguration.trustManagers.$invalid` - ) - +form-field-feedback(_, 'required', 'Trust managers or trust store file should be configured') + list-editable-no-items + list-editable-add-item-button( + add-item=`$editLast((${trust} = ${trust} || []).push(''))` + label-single='trust manager' + label-multiple='trust managers' + ) + .ignite-form-field__errors( + ng-messages=`sslConfiguration.trustManagers.$error` + ng-show=`sslConfiguration.trustManagers.$invalid` + ) + +form-field-feedback(_, 'required', 'Trust managers or trust store file should be configured') - .pc-form-grid-col-30(ng-if-start=`!${trust}.length`) - +sane-ignite-form-field-text({ - label: 'Trust store file:', - model: `${model}.trustStoreFilePath`, - name: '"trustStoreFilePath"', - required: `${enabled} && !${trust}.length`, - disabled: enabledToDisabled(enabled), - placeholder: 'Path to the trust store file', - tip: 'Path to the trust store file' - }) - +form-field-feedback(_, 'required', 'Trust store file or trust managers should be configured') - .pc-form-grid-col-30(ng-if-end) - +text-options('Trust store type:', `${model}.trustStoreType`, '"trustStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS', 'Trust store type used in context initialization') - .pca-form-column-6 - +preview-xml-java(cluster, 'clusterSsl') + .pc-form-grid-col-30(ng-if-start=`!${trust}.length`) + +sane-ignite-form-field-text({ + label: 'Trust store file:', + model: `${model}.trustStoreFilePath`, + name: '"trustStoreFilePath"', + required: `${enabled} && !${trust}.length`, + disabled: enabledToDisabled(enabled), + placeholder: 'Path to the trust store file', + tip: 'Path to the trust store file' + }) + +form-field-feedback(_, 'required', 'Trust store file or trust managers should be configured') + .pc-form-grid-col-30(ng-if-end) + +text-options('Trust store type:', `${model}.trustStoreType`, '"trustStoreType"', '["JKS", "PCKS11", "PCKS12"]', enabled, 'false', 'JKS', 'Trust store type used in context initialization') + .pca-form-column-6 + +preview-xml-java(cluster, 'clusterSsl')