You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/06/06 08:59:47 UTC
[29/50] [abbrv] ignite git commit: IGNITE-5388 Added support to
configuration of Ignite 2.x and Ignite 1.x.
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
index 4ea9160..8264731 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/memory.pug
@@ -23,23 +23,108 @@ include /app/helpers/jade/mixins
.panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
ignite-form-panel-chevron
label Memory
- ignite-form-field-tooltip.tipLabel
+ ignite-form-field-tooltip.tipLabel(ng-show='$ctrl.available(["1.0.0", "2.0.0"])')
| Cache memory settings#[br]
- | #[a(href="https://apacheignite.readme.io/docs/off-heap-memory" target="_blank") More info]
+ | #[a(href="https://apacheignite.readme.io/v1.9/off-heap-memory" target="_blank") More info]
+ ignite-form-field-tooltip.tipLabel(ng-show='$ctrl.available("2.0.0")')
+ | Cache memory settings#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/evictions" target="_blank") More info]
ignite-form-revert
.panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
+ //- Since ignite 2.0
+ div(ng-if='$ctrl.available("2.0.0")')
+ .settings-row
+ +checkbox('Onheap cache enabled', model + '.onheapCacheEnabled', '"OnheapCacheEnabled"', 'Checks if the on-heap cache is enabled for the off-heap based page memory')
+ .settings-row
+ +text('Memory policy name:', model + '.memoryPolicyName', '"MemoryPolicyName"', 'false', 'default',
+ 'Name of memory policy configuration for this cache')
+
+ //- Removed in ignite 2.0
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ .settings-row
+ +dropdown('Mode:', `${model}.memoryMode`, '"memoryMode"', 'true', 'ONHEAP_TIERED',
+ '[\
+ {value: "ONHEAP_TIERED", label: "ONHEAP_TIERED"},\
+ {value: "OFFHEAP_TIERED", label: "OFFHEAP_TIERED"},\
+ {value: "OFFHEAP_VALUES", label: "OFFHEAP_VALUES"}\
+ ]',
+ 'Memory modes control whether value is stored in on-heap memory, off-heap memory, or swap space\
+ <ul>\
+ <li>\
+ ONHEAP_TIERED - entries are cached on heap memory first<br/>\
+ <ul>\
+ <li>\
+ If offheap memory is enabled and eviction policy evicts an entry from heap memory, entry will be moved to offheap memory<br/>\
+ If offheap memory is disabled, then entry is simply discarded\
+ </li>\
+ <li>\
+ If swap space is enabled and offheap memory fills up, then entry will be evicted into swap space<br/>\
+ If swap space is disabled, then entry will be discarded. If swap is enabled and offheap memory is disabled, then entry will be evicted directly from heap memory into swap\
+ </li>\
+ </ul>\
+ </li>\
+ <li>\
+ OFFHEAP_TIERED - works the same as ONHEAP_TIERED, except that entries never end up in heap memory and get stored in offheap memory right away<br/>\
+ Entries get cached in offheap memory first and then get evicted to swap, if one is configured\
+ </li>\
+ <li>\
+ OFFHEAP_VALUES - entry keys will be stored on heap memory, and values will be stored in offheap memory<br/>\
+ Note that in this mode entries can be evicted only to swap\
+ </li>\
+ </ul>')
+ .settings-row(ng-show=`${model}.memoryMode !== 'OFFHEAP_VALUES'`)
+ +dropdown-required('Off-heap memory:', `${model}.offHeapMode`, '"offHeapMode"', 'true', `${model}.memoryMode === 'OFFHEAP_TIERED'`,
+ 'Disabled',
+ '[\
+ {value: -1, label: "Disabled"},\
+ {value: 1, label: "Limited"},\
+ {value: 0, label: "Unlimited"}\
+ ]',
+ 'Off-heap storage mode\
+ <ul>\
+ <li>Disabled - Off-heap storage is disabled</li>\
+ <li>Limited - Off-heap storage has limited size</li>\
+ <li>Unlimited - Off-heap storage grow infinitely (it is up to user to properly add and remove entries from cache to ensure that off-heap storage does not grow infinitely)</li>\
+ </ul>')
+ .settings-row(ng-if=`${model}.offHeapMode === 1 && ${model}.memoryMode !== 'OFFHEAP_VALUES'`)
+ +number-required('Off-heap memory max size:', `${model}.offHeapMaxMemory`, '"offHeapMaxMemory"', 'true',
+ `${model}.offHeapMode === 1`, 'Enter off-heap memory size', '1',
+ 'Maximum amount of memory available to off-heap storage in bytes')
+
.settings-row
- +checkbox('On-heap cache enabled', `${model}.onheapCacheEnabled`, '"onheapCacheEnabled"', 'On-heap cache enabled flag')
- .settings-row(ng-show=`${model}.onheapCacheEnabled`)
- +evictionPolicy(`${model}.evictionPolicy`, '"evictionPolicy"', 'true', 'false',
- 'Cache eviction policy<br/>\
- Must be set for entries to be evicted to off-heap\
+ -var onHeapTired = model + '.memoryMode === "ONHEAP_TIERED"'
+ -var swapEnabled = model + '.swapEnabled'
+ -var offHeapMaxMemory = model + '.offHeapMaxMemory'
+
+ +evictionPolicy(`${model}.evictionPolicy`, '"evictionPolicy"', 'true',
+ onHeapTired + ' && (' + swapEnabled + '|| _.isNumber(' + offHeapMaxMemory + ') &&' + offHeapMaxMemory + ' >= 0)',
+ 'Optional cache eviction policy<br/>\
+ Must be set for entries to be evicted from on-heap to off-heap or swap\
<ul>\
<li>Least Recently Used(LRU) - Eviction policy based on LRU algorithm and supports batch eviction</li>\
<li>First In First Out (FIFO) - Eviction policy based on FIFO algorithm and supports batch eviction</li>\
<li>SORTED - Eviction policy which will select the minimum cache entry for eviction</li>\
</ul>')
+
+ //- Since ignite 2.0
+ .settings-row(ng-if='$ctrl.available("2.0.0")')
+ +java-class('Eviction filter:', model + '.evictionFilter', '"EvictionFilter"', 'true', 'false', 'Eviction filter to specify which entries should not be evicted')
+
+ //- Removed in ignite 2.0
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ .settings-row
+ +number('Start size:', `${model}.startSize`, '"startSize"', 'true', '1500000', '0',
+ 'In terms of size and capacity, Ignite internal cache map acts exactly like a normal Java HashMap: it has some initial capacity\
+ (which is pretty small by default), which doubles as data arrives. The process of internal cache map resizing is CPU-intensive\
+ and time-consuming, and if you load a huge dataset into cache (which is a normal use case), the map will have to resize a lot of times.\
+ To avoid that, you can specify the initial cache map capacity, comparable to the expected size of your dataset.\
+ This will save a lot of CPU resources during the load time, because the map would not have to resize.\
+ For example, if you expect to load 10 million entries into cache, you can set this property to 10 000 000.\
+ This will save you from cache internal map resizes.')
+ .settings-row
+ +checkbox('Swap enabled', `${model}.swapEnabled`, '"swapEnabled"', 'Flag indicating whether swap storage is enabled or not for this cache')
+
.col-sm-6
+preview-xml-java(model, 'cacheMemory')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
index 6715dcd..1b34b60 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/node-filter.pug
@@ -18,6 +18,10 @@ include /app/helpers/jade/mixins
-var form = 'nodeFilter'
-var model = 'backupItem'
+-var nodeFilter = model + '.nodeFilter';
+-var nodeFilterKind = nodeFilter + '.kind';
+-var igfsFilter = nodeFilterKind + ' === "IGFS"'
+-var customFilter = nodeFilterKind + ' === "Custom"'
.panel.panel-default(ng-form=form novalidate)
.panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
@@ -30,9 +34,6 @@ include /app/helpers/jade/mixins
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
.settings-row
- -var nodeFilter = model + '.nodeFilter';
- -var nodeFilterKind = nodeFilter + '.kind';
-
+dropdown('Node filter:', nodeFilterKind, '"nodeFilter"', 'true', 'Not set',
'[\
{value: "IGFS", label: "IGFS nodes"},\
@@ -41,19 +42,11 @@ include /app/helpers/jade/mixins
]',
'Node filter variant'
)
- .settings-row(ng-show=nodeFilterKind)
- div(ng-show=`${nodeFilterKind} === 'IGFS'`)
- -var igfsNodeFilter = `${nodeFilter}.IGFS`
- -var required = `${nodeFilterKind} === 'IGFS'`
-
- //(lbl, model, name, enabled, required, placeholder, options, tip)
- +dropdown-required-empty('IGFS:', `${igfsNodeFilter}.igfs`, '"igfsNodeFilter"', 'true', required,
- 'Choose IGFS', 'No IGFS configured', 'igfss', 'Select IGFS to filter nodes')
- div(ng-show=`${nodeFilterKind} === 'Custom'`)
- -var customNodeFilter = `${nodeFilter}.Custom`
- -var required = `${nodeFilterKind} === 'Custom'`
-
- +java-class('Class name:', `${customNodeFilter}.className`, '"customNodeFilter"',
- 'true', required, 'Class name of custom node filter implementation', required)
+ .settings-row(ng-show=igfsFilter)
+ +dropdown-required-empty('IGFS:', `${nodeFilter}.IGFS.igfs`, '"igfsNodeFilter"', 'true', igfsFilter,
+ 'Choose IGFS', 'No IGFS configured', 'igfss', 'Select IGFS to filter nodes')
+ .settings-row(ng-show=customFilter)
+ +java-class('Class name:', `${nodeFilter}.Custom.className`, '"customNodeFilter"',
+ 'true', customFilter, 'Class name of custom node filter implementation', customFilter)
.col-sm-6
+preview-xml-java(model, 'cacheNodeFilter', 'igfss')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
index b3650e2..480b0a5 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/query.pug
@@ -46,6 +46,12 @@ include /app/helpers/jade/mixins
SELECT * FROM Persons.Person p INNER JOIN Organizations.Organization o on p.org = o.id\
</li>\
</ul>')
+
+ //- Removed in ignite 2.0
+ .settings-row(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ +number('On-heap cache for off-heap indexes:', `${model}.sqlOnheapRowCacheSize`, '"sqlOnheapRowCacheSize"', 'true', '10240', '1',
+ 'Number of SQL rows which will be cached onheap to avoid deserialization on each SQL index access')
+
.settings-row
+number('Long query timeout:', `${model}.longQueryWarningTimeout`, '"longQueryWarningTimeout"', 'true', '3000', '0',
'Timeout in milliseconds after which long query warning will be printed')
@@ -53,9 +59,6 @@ include /app/helpers/jade/mixins
+number('History size:', `${model}.queryDetailMetricsSize`, '"queryDetailMetricsSize"', 'true', '0', '0',
'Size of queries detail metrics that will be stored in memory for monitoring purposes')
.settings-row
- +number('Parallelism:', `${model}.queryParallelism`, '"queryParallelism"', 'true', '1', '1',
- 'Defines a hint to query execution engine on desired degree of parallelism within a single node.')
- .settings-row
-var form = 'querySqlFunctionClasses';
-var sqlFunctionClasses = `${model}.sqlFunctionClasses`;
@@ -102,10 +105,26 @@ include /app/helpers/jade/mixins
.group-content-empty(ng-if=`!(${sqlFunctionClasses}.length) && !group.add.length`)
| Not defined
+
+ //- Removed in ignite 2.0
+ .settings-row(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ +checkbox('Snapshotable index', `${model}.snapshotableIndex`, '"snapshotableIndex"',
+ 'Flag indicating whether SQL indexes should support snapshots')
+
.settings-row
+checkbox('Escape table and filed names', `${model}.sqlEscapeAll`, '"sqlEscapeAll"',
'If enabled than all schema, table and field names will be escaped with double quotes (for example: "tableName"."fieldName").<br/>\
This enforces case sensitivity for field names and also allows having special characters in table and field names.<br/>\
Escaped names will be used for creation internal structures in Ignite SQL engine.')
+
+ //- Since ignite 2.0
+ div(ng-if='$ctrl.available("2.0.0")')
+ .settings-row
+ +number('Query parallelism', model + '.queryParallelism', '"queryParallelism"', 'true', '1', '1',
+ 'A hint to query execution engine on desired degree of parallelism within a single node')
+ .settings-row
+ +number('SQL index max inline size:', model + '.sqlIndexMaxInlineSize', '"sqlIndexMaxInlineSize"', 'true', '-1', '0',
+ 'Maximum inline size for sql indexes')
+
.col-sm-6
+preview-xml-java(model, 'cacheQuery', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug b/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
index f09bc0b..3af24df 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/caches/store.pug
@@ -246,5 +246,10 @@ mixin hibernateField(name, model, items, valid, save, newItem)
.details-row
+number('Flush threads count:', `${model}.writeBehindFlushThreadCount`, '"writeBehindFlushThreadCount"', enabled, '1', '1',
'Number of threads that will perform cache flushing')
+
+ //- Since ignite 2.0
+ .details-row(ng-if='$ctrl.available("2.0.0")')
+ +checkbox-enabled('Write coalescing', model + '.writeBehindCoalescing', '"WriteBehindCoalescing"', enabled, 'Write coalescing flag for write-behind cache store')
+
.col-sm-6
+preview-xml-java(model, 'cacheStore', 'domains')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
index 2021c1c..25ee62a 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/deployment.pug
@@ -115,6 +115,12 @@ include /app/helpers/jade/mixins
.group-content-empty(ng-if=`!(${exclude}.length) && !group.add.length`)
| Not defined
+
+ //- Since ignite 2.0
+ .settings-row(ng-if='$ctrl.available("2.0.0")')
+ +java-class('Class loader:', model + '.classLoader', '"classLoader"', 'true', 'false',
+ 'Loader which will be used for instantiating execution context')
+
.settings-row
+dropdown('Deployment variant:', modelDeployment + '.kind', '"deploymentKind"', 'true', 'Default',
'[\
@@ -214,7 +220,7 @@ include /app/helpers/jade/mixins
div(type='internal' name='Scanner')
label.col-xs-12.col-sm-12.col-md-12
- // (lbl, name, model, items, valid, save, newItem)
+ //- (lbl, name, model, items, valid, save, newItem)
+table-java-class-field('Scanner:', name, model, scannerModel, valid, save, true)
+table-save-button(valid, save, true)
+unique-feedback(name, uniqueTip)
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
index 71d9974..5718755 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/discovery.pug
@@ -55,8 +55,18 @@ include /app/helpers/jade/mixins
'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
- +number('Metrics update frequency:', `${model}.metricsUpdateFrequency`, '"metricsUpdateFrequency"', 'true', '2000', '1', 'Metrics update messages issuing frequency')
+
+ //- Removed in ignite 2.0
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ .settings-row
+ +number('Heartbeat frequency:', `${model}.heartbeatFrequency`, '"heartbeatFrequency"', 'true', '2000', '1', 'Heartbeat messages issuing frequency')
+ .settings-row
+ +number('Max heartbeats miss w/o init:', `${model}.maxMissedHeartbeats`, '"maxMissedHeartbeats"', 'true', '1', '1',
+ 'Max heartbeats count node can miss without initiating status check')
+ .settings-row
+ +number('Max missed client heartbeats:', `${model}.maxMissedClientHeartbeats`, '"maxMissedClientHeartbeats"', 'true', '5', '1',
+ 'Max heartbeats count node can miss without failing client node')
+
.settings-row
+number('Topology history:', `${model}.topHistorySize`, '"topHistorySize"', 'true', '1000', '0', 'Size of topology snapshots history')
.settings-row
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
index 09cd40c..2f5cc31 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/events.pug
@@ -34,25 +34,21 @@ include /app/helpers/jade/mixins
.panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
- .settings-row
- +dropdown-multiple('Include type:', `${model}.includeEventTypes`, '"includeEventTypes"', true, 'Choose recorded event types', '', 'eventGroups',
- 'Array of event types, which will be recorded by GridEventStorageManager#record(Event)<br/>\
- Note, that either the include event types or the exclude event types can be established')
-
- .settings-row
- +dropdown('Event storage:', modelEventStorageKind, '"eventStorageKind"', 'true', 'Disabled',
- '[\
- {value: "Memory", label: "Memory"},\
- {value: "Custom", label: "Custom"},\
- {value: undefined, label: "Disabled"}\
- ]',
+ .settings-row(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ +dropdown('Event storage:', modelEventStorageKind, '"eventStorageKind"', 'true', 'Disabled', 'eventStorage',
+ 'Regulate how grid store events locally on node\
+ <ul>\
+ <li>Memory - All events are kept in the FIFO queue in-memory</li>\
+ <li>Custom - Custom implementation of event storage SPI</li>\
+ </ul>')
+ .settings-row(ng-if='$ctrl.available("2.0.0")')
+ +dropdown('Event storage:', modelEventStorageKind, '"eventStorageKind"', 'true', 'Disabled', 'eventStorage',
'Regulate how grid store events locally on node\
<ul>\
<li>Memory - All events are kept in the FIFO queue in-memory</li>\
<li>Custom - Custom implementation of event storage SPI</li>\
<li>Disabled - Events are not collected</li>\
</ul>')
-
div(ng-show=eventStorageMemory)
.settings-row
+number('Events expiration time:', `${modelEventStorage}.Memory.expireAgeMs`, '"EventStorageExpireAgeMs"', 'true', 'Long.MAX_VALUE', '1', 'All events that exceed this value will be removed from the queue when next event comes')
@@ -66,5 +62,9 @@ include /app/helpers/jade/mixins
.settings-row(ng-show=eventStorageCustom)
+java-class('Class:', `${modelEventStorage}.Custom.className`, '"EventStorageCustom"', 'true', eventStorageCustom, 'Event storage implementation class name', eventStorageCustom)
+ .settings-row(ng-show=modelEventStorageKind)
+ +dropdown-multiple('Include type:', `${model}.includeEventTypes`, '"includeEventTypes"', true, 'Choose recorded event types', '', 'eventGroups',
+ 'Array of event types, which will be recorded by GridEventStorageManager#record(Event)<br/>\
+ Note, that either the include event types or the exclude event types can be established')
.col-sm-6
+preview-xml-java(model, 'clusterEvents')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
index e0c2357..d61516c 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/failover.pug
@@ -32,6 +32,15 @@ include /app/helpers/jade/mixins
.panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
+ //- Since ignite 2.0
+ div(ng-if='$ctrl.available("2.0.0")')
+ .settings-row
+ +number('Failure detection timeout:', model + '.failureDetectionTimeout', '"failureDetectionTimeout"', 'true',
+ '10000', '1', 'Failure detection timeout is used to determine how long the communication or discovery SPIs should wait before considering a remote connection failed')
+ .settings-row
+ +number('Client failure detection timeout:', model + '.clientFailureDetectionTimeout', '"clientFailureDetectionTimeout"', 'true',
+ '30000', '1', 'Failure detection timeout is used to determine how long the communication or discovery SPIs should wait before considering a remote connection failed')
+
.settings-row(ng-init='failoverSpiTbl={type: "failoverSpi", model: "failoverSpi", focusId: "kind", ui: "failover-table"}')
+ignite-form-group()
ignite-form-field-label
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
index 62cc23d..752eb79 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/general.pug
@@ -32,7 +32,7 @@ include /app/helpers/jade/mixins
.panel-body
.col-sm-6
.settings-row
- +text('Name:', `${model}.name`, '"clusterName"', 'true', 'Input name', 'Grid name allows to indicate to what grid this particular grid instance belongs to')
+ +text('Name:', `${model}.name`, '"clusterName"', 'true', 'Input name', 'Instance name allows to indicate to what grid this particular grid instance belongs to')
.settings-row
+caches(model, 'Select caches to start in cluster or add a new cache')
.settings-row
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/hadoop.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/hadoop.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/hadoop.pug
new file mode 100644
index 0000000..b45efa4
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/hadoop.pug
@@ -0,0 +1,119 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'hadoop'
+-var model = 'backupItem.hadoopConfiguration'
+-var plannerModel = model + '.mapReducePlanner'
+-var weightedModel = plannerModel + '.Weighted'
+-var weightedPlanner = plannerModel + '.kind === "Weighted"'
+-var customPlanner = plannerModel + '.kind === "Custom"'
+-var libs = model + '.nativeLibraryNames'
+
+.panel.panel-default(ng-form=form novalidate)
+ -var uniqueTip = 'Such native library already exists!'
+
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Hadoop configuration
+ ignite-form-field-tooltip.tipLabel
+ | Hadoop Accelerator configuration
+ 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('Map reduce planner:', plannerModel + '.kind', '"MapReducePlanner"', 'true', 'Default', '[\
+ {value: "Weighted", label: "Weighted"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Default"}\
+ ]', 'Implementation of map reduce planner\
+ <ul>\
+ <li>Weighted - Planner which assigns mappers and reducers based on their "weights"</li>\
+ <li>Custom - Custom planner implementation</li>\
+ <li>Default - Default planner implementation</li>\
+ </ul>')
+ .settings-row(ng-show=weightedPlanner)
+ .panel-details
+ .details-row
+ +number('Local mapper weight:', weightedModel + '.localMapperWeight', '"LocalMapperWeight"', 'true', 100, '0',
+ 'This weight is added to a node when a mapper is assigned and it is input split data is located on this node')
+ .details-row
+ +number('Remote mapper weight:', weightedModel + '.remoteMapperWeight', '"remoteMapperWeight"', 'true', 100, '0',
+ 'This weight is added to a node when a mapper is assigned, but it is input split data is not located on this node')
+ .details-row
+ +number('Local reducer weight:', weightedModel + '.localReducerWeight', '"localReducerWeight"', 'true', 100, '0',
+ 'This weight is added to a node when a reducer is assigned and the node have at least one assigned mapper')
+ .details-row
+ +number('Remote reducer weight:', weightedModel + '.remoteReducerWeight', '"remoteReducerWeight"', 'true', 100, '0',
+ 'This weight is added to a node when a reducer is assigned, but the node does not have any assigned mappers')
+ .details-row
+ +number('Local mapper weight:', weightedModel + '.preferLocalReducerThresholdWeight', '"preferLocalReducerThresholdWeight"', 'true', 200, '0',
+ "When threshold is reached, a node with mappers is no longer considered as preferred for further reducer assignments")
+ .settings-row(ng-show=customPlanner)
+ .panel-details
+ .details-row
+ +java-class('Class name:', plannerModel + '.Custom.className', '"MapReducePlannerCustomClass"', 'true', customPlanner,
+ 'Custom planner implementation')
+ .settings-row
+ +number('Finished job info TTL:', model + '.finishedJobInfoTtl', '"finishedJobInfoTtl"', 'true', '30000', '0',
+ 'Finished job info time-to-live in milliseconds')
+ .settings-row
+ +number('Max parallel tasks:', model + '.maxParallelTasks', '"maxParallelTasks"', 'true', 'availableProcessors * 2', '1',
+ 'Max number of local tasks that may be executed in parallel')
+ .settings-row
+ +number('Max task queue size:', model + '.maxTaskQueueSize', '"maxTaskQueueSize"', 'true', '8192', '1', 'Max task queue size')
+ .settings-row
+ +ignite-form-group(ng-form=form ng-model=`${addresses}`)
+ ignite-form-field-label
+ | Native libraries
+ ignite-form-group-tooltip
+ | Library names
+ ignite-form-group-add(ng-click='group.add = [{}]')
+ | Add new library
+ .group-content(ng-if=`${libs}.length`)
+ -var model = 'obj.model';
+ -var name = '"edit" + $index'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${libs}[$index] = ${model}`
+
+ div(ng-repeat=`model in ${libs} track by $index` ng-init='obj = {}')
+ label.col-xs-12.col-sm-12.col-md-12
+ .indexField
+ | {{ $index+1 }})
+ +table-remove-button(libs, 'Remove library')
+ span(ng-hide='field.edit')
+ a.labelFormField(ng-click=`field.edit = true; ${model} = model;`) {{ model }}
+ span(ng-if='field.edit')
+ +table-text-field(name, model, libs, valid, save, 'Input library name', false)
+ +table-save-button(valid, save, false)
+ +unique-feedback(name, uniqueTip)
+ .group-content(ng-repeat='field in group.add')
+ -var model = 'new';
+ -var name = '"new"'
+ -var valid = `${form}[${name}].$valid`
+ -var save = `${libs}.push(${model})`
+
+ div
+ label.col-xs-12.col-sm-12.col-md-12
+ +table-text-field(name, model, libs, valid, save, 'Input library name', true)
+ +table-save-button(valid, save, true)
+ +unique-feedback(name, uniqueTip)
+ .group-content-empty(id='libs' ng-if=`!(${libs}.length) && !group.add.length`)
+ | Not defined
+ .col-sm-6
+ +preview-xml-java(model, 'clusterHadoop')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
index 274b014..6126a9e 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/marshaller.pug
@@ -35,18 +35,21 @@ include /app/helpers/jade/mixins
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
.settings-row
- +dropdown('Marshaller:', marshaller + '.kind', '"kind"', 'true', 'Choose marshaller',
- '[\
- {value: "OptimizedMarshaller", label: "OptimizedMarshaller"},\
- {value: "JdkMarshaller", label: "JdkMarshaller"},\
- {value: undefined, label: "Not set"}\
- ]',
- 'Instance of marshaller to use in grid<br/>\
- <ul>\
- <li>OptimizedMarshaller - Optimized implementation of marshaller</li>\
- <li>JdkMarshaller - Marshaller based on JDK serialization mechanism</li>\
- <li>Not set - BinaryMarshaller serialize and deserialize all objects in the binary format</li>\
- </ul>')
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ +dropdown('Marshaller:', marshaller + '.kind', '"kind"', 'true', 'Default', 'marshallerVariant',
+ 'Instance of marshaller to use in grid<br/>\
+ <ul>\
+ <li>OptimizedMarshaller - Optimized implementation of marshaller</li>\
+ <li>JdkMarshaller - Marshaller based on JDK serialization mechanism</li>\
+ <li>Default - BinaryMarshaller serialize and deserialize all objects in the binary format</li>\
+ </ul>')
+ div(ng-if='$ctrl.available("2.0.0")')
+ +dropdown('Marshaller:', marshaller + '.kind', '"kind"', 'true', 'Default', 'marshallerVariant',
+ 'Instance of marshaller to use in grid<br/>\
+ <ul>\
+ <li>JdkMarshaller - Marshaller based on JDK serialization mechanism</li>\
+ <li>Default - BinaryMarshaller serialize and deserialize all objects in the binary format</li>\
+ </ul>')
a.customize(
ng-if=`${marshaller}.kind && ${marshaller}.kind === 'OptimizedMarshaller'`
ng-click=`${marshaller}.expanded = !${marshaller}.expanded`
@@ -66,5 +69,15 @@ include /app/helpers/jade/mixins
'Whether marshaller should require Serializable interface or not')
.settings-row
+checkbox('Marshal local jobs', `${model}.marshalLocalJobs`, '"marshalLocalJobs"', 'If this flag is enabled, jobs mapped to local node will be marshalled as if it was remote node')
+
+ //- Removed in ignite 2.0
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ .settings-row
+ +number('Keep alive time:', `${model}.marshallerCacheKeepAliveTime`, '"marshallerCacheKeepAliveTime"', 'true', '10000', '0',
+ 'Keep alive time of thread pool that is in charge of processing marshaller messages')
+ .settings-row
+ +number('Pool size:', `${model}.marshallerCacheThreadPoolSize`, '"marshallerCacheThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ 'Default size of thread pool that is in charge of processing marshaller messages')
+
.col-sm-6
+preview-xml-java(model, 'clusterMarshaller')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/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
new file mode 100644
index 0000000..62a07c1
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/memory.pug
@@ -0,0 +1,114 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'memoryConfiguration'
+-var model = 'backupItem.memoryConfiguration'
+-var memoryPolicies = model + '.memoryPolicies'
+
+.panel.panel-default(ng-if='$ctrl.available("2.0.0")' ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Memory configuration
+ ignite-form-field-tooltip.tipLabel
+ | Page memory is a manageable off-heap based memory architecture that is split into pages of fixed size#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/page-memory" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number-min-max('Page size:', model + '.pageSize', '"MemoryConfigurationPageSize"',
+ 'true', '2048', '1024', '16384', 'Every memory region is split on pages of fixed size')
+ .settings-row
+ +number('Concurrency level:', model + '.concurrencyLevel', '"MemoryConfigurationConcurrencyLevel"',
+ 'true', 'availableProcessors', '2', 'The number of concurrent segments in Ignite internal page mapping tables')
+ .settings-row
+ +ignite-form-group
+ ignite-form-field-label
+ | System cache
+ ignite-form-group-tooltip
+ | System cache properties
+ .group-content
+ .details-row
+ +number('Initial size:', model + '.systemCacheInitialSize', '"systemCacheInitialSize"',
+ 'true', '41943040', '10485760', 'Initial size of a memory region reserved for system cache')
+ .details-row
+ +number('Maximum size:', model + '.systemCacheMaxSize', '"systemCacheMaxSize"',
+ 'true', '104857600', '10485760', 'Maximum size of a memory region reserved for system cache')
+ .settings-row
+ +ignite-form-group
+ ignite-form-field-label
+ | Memory policies
+ ignite-form-group-tooltip
+ | Memory policies configuration
+ .group-content
+ .details-row
+ +text('Default region name:', model + '.defaultMemoryPolicyName', '"defaultMemoryPolicyName"',
+ 'false', 'default', 'Name of the memory policy that defines the default memory region')
+ .details-row(ng-hide='(' + model + '.defaultMemoryPolicyName || "default") !== "default"')
+ +number('Default region size:', model + '.defaultMemoryPolicySize', '"defaultMemoryPolicySize"',
+ 'true', '0.8 * totalMemoryAvailable', '10485760',
+ 'Size of the memory policy that defines the default memory region')
+ .details-row(ng-init='memoryPoliciesTbl={type: "memoryPolicies", model: "memoryPolicies", focusId: "name", ui: "memory-policies-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Configured policies
+ ignite-form-group-tooltip
+ | List of configured policies
+ ignite-form-group-add(ng-click='tableNewItem(memoryPoliciesTbl)')
+ | Add Memory policy configuration
+ .group-content-empty(ng-if=`!(${memoryPolicies} && ${memoryPolicies}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${memoryPolicies} && ${memoryPolicies}.length > 0` ng-repeat=`model in ${memoryPolicies} track by $index`)
+ hr(ng-if='$index != 0')
+ .settings-row
+ +text-enabled-autofocus('Name:', 'model.name', '"MemoryPolicyName" + $index', 'true', 'false', 'default', 'Memory policy name')
+ +table-remove-button(memoryPolicies, 'Remove memory configuration')
+ .settings-row
+ +number('Initial size:', 'model.initialSize', '"MemoryPolicyInitialSize" + $index',
+ 'true', '268435456', '10485760', 'Initial memory region size defined by this memory policy')
+ .settings-row
+ +number('Maximum size:', 'model.maxSize', '"MemoryPolicyMaxSize" + $index',
+ 'true', '0.8 * totalMemoryAvailable', '10485760', 'Maximum memory region size defined by this memory policy')
+ .settings-row
+ +text('Swap file path:', 'model.swapFilePath', '"MemoryPolicySwapFilePath" + $index', 'false',
+ 'Input swap file path', 'An optional path to a memory mapped file for this memory policy')
+ .settings-row
+ +dropdown('Eviction mode:', 'model.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>')
+ .settings-row
+ +number-min-max-step('Eviction threshold:', 'model.evictionThreshold', '"MemoryPolicyEvictionThreshold" + $index',
+ 'true', '0.9', '0.5', '0.999', '0.05', 'A threshold for memory pages eviction initiation')
+ .settings-row
+ +number('Empty pages pool size:', 'model.emptyPagesPoolSize', '"MemoryPolicyEmptyPagesPoolSize" + $index',
+ 'true', '100', '10', 'The minimal number of empty pages to be present in reuse lists for this memory policy')
+ .settings-row
+ +checkbox('Metrics enabled', 'model.metricsEnabled', '"MemoryPolicyMetricsEnabled" + $index',
+ 'Whether memory metrics are enabled by default on node startup')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterMemory')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/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 6810e6b..bae3267 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
@@ -40,7 +40,7 @@ include /app/helpers/jade/mixins
'Frequency of metrics log print out<br/>\ ' +
'When <b>0</b> log print of metrics is disabled')
.settings-row
- +number('Update frequency:', `${model}.metricsUpdateFrequency`, '"metricsUpdateFrequency"', 'true', '2000', '0',
+ +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>\
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/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
new file mode 100644
index 0000000..f84fae4
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/misc.pug
@@ -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
+
+-var form = 'misc'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle)
+ ignite-form-panel-chevron
+ label Miscellaneous
+ ignite-form-field-tooltip.tipLabel
+ | Various miscellaneous cluster settings
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body
+ .col-sm-6
+ .settings-row
+ +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
+ div(ng-show='$ctrl.available("2.0.0")')
+ .settings-row
+ +text('Consistent ID:', model + '.consistentId', '"ConsistentId"', 'false', 'Input consistent ID', 'Consistent globally unique node ID which survives node restarts')
+ .settings-row
+ +java-class('Warmup closure:', model + '.warmupClosure', '"warmupClosure"', 'true', 'false', 'This closure will be executed before actual grid instance start')
+ .settings-row
+ +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')
+ .settings-row
+ +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>')
+
+ .settings-row
+ +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')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterMisc', 'caches')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/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
new file mode 100644
index 0000000..cf4c27a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/service.pug
@@ -0,0 +1,88 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'serviceConfiguration'
+-var model = 'backupItem.serviceConfigurations'
+
+.panel.panel-default(ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Service configuration
+ ignite-form-field-tooltip.tipLabel
+ | Service Grid allows for deployments of arbitrary user-defined services on the cluster#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/fault-tolerance" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row(ng-init='serviceConfigurationsTbl={type: "serviceConfigurations", model: "serviceConfigurations", focusId: "kind", ui: "failover-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Service configurations
+ ignite-form-group-tooltip
+ | Service configurations
+ ignite-form-group-add(ng-click='tableNewItem(serviceConfigurationsTbl)')
+ | Add service configuration
+ .group-content-empty(ng-if=`!(${model} && ${model}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${model} && ${model}.length > 0` ng-repeat=`model in ${model} track by $index`)
+ -var nodeFilter = 'model.nodeFilter';
+ -var nodeFilterKind = nodeFilter + '.kind';
+ -var igfsFilter = nodeFilterKind + ' === "IGFS"'
+ -var customFilter = nodeFilterKind + ' === "Custom"'
+
+ hr(ng-if='$index != 0')
+ .settings-row
+ +text-enabled-autofocus('Name:', 'model.name', '"ServiceName" + $index', 'true', 'true', 'Input service name', 'Service name')
+ +table-remove-button(model, 'Remove service configuration')
+ .settings-row
+ +java-class('Service class', 'model.service', '"serviceService" + $index', 'true', 'true', 'Service implementation class name')
+ .settings-row
+ +number('Max per node count:', 'model.maxPerNodeCount', '"ServiceMaxPerNodeCount" + $index', 'true', 'Unlimited', '0',
+ 'Maximum number of deployed service instances on each node.<br/>' +
+ 'Zero for unlimited')
+ .settings-row
+ +number('Total count:', 'model.totalCount', '"ServiceTotalCount" + $index', 'true', 'Unlimited', '0',
+ 'Total number of deployed service instances in the cluster.<br/>' +
+ 'Zero for unlimited')
+ //-
+ .settings-row
+ +dropdown('Node filter:', nodeFilterKind, '"nodeFilter" + $index', 'true', 'Not set',
+ '[\
+ {value: "IGFS", label: "IGFS nodes"},\
+ {value: "Custom", label: "Custom"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Node filter variant'
+ )
+ .panel-details(ng-show=igfsFilter)
+ .settings-row
+ +dropdown-required-empty('IGFS:', nodeFilter + '.IGFS.igfs', '"igfsNodeFilter"', 'true', igfsFilter,
+ 'Choose IGFS', 'No IGFS configured', 'igfss', 'Select IGFS to filter nodes')
+ .panel-details(ng-show=customFilter)
+ .settings-row
+ +java-class('Class name:', nodeFilter + '.Custom.className', '"customNodeFilter"',
+ 'true', customFilter, 'Class name of custom node filter implementation', customFilter)
+ .settings-row
+ +dropdown-required-empty('Cache:', 'model.cache', '"ServiceCache" + $index', 'true', 'false',
+ 'Choose cache', 'No caches configured for current cluster', 'clusterCachesEmpty', 'Cache name used for key-to-node affinity calculation').settings-row
+ .settings-row
+ +text('Affinity key:', 'model.affinityKey', '"ServiceAffinityKey" + $index', 'false', 'Input affinity key',
+ 'Affinity key used for key-to-node affinity calculation')
+ .col-sm-6
+ +preview-xml-java('backupItem', 'clusterServiceConfiguration', 'caches')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug
new file mode 100644
index 0000000..7210f7a
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/swap.pug
@@ -0,0 +1,72 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'swap'
+-var model = 'backupItem'
+-var swapModel = model + '.swapSpaceSpi'
+-var fileSwapModel = swapModel + '.FileSwapSpaceSpi'
+
+.panel.panel-default(ng-if='$ctrl.available(["1.0.0", "2.0.0"])' ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Swap
+ ignite-form-field-tooltip.tipLabel
+ | Settings for overflow data to disk if it cannot fit in memory#[br]
+ | #[a(href="https://apacheignite.readme.io/docs/off-heap-memory#swap-space" target="_blank") More info]
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +dropdown('Swap space SPI:', `${swapModel}.kind`, '"swapSpaceSpi"', 'true', 'Choose swap SPI',
+ '[\
+ {value: "FileSwapSpaceSpi", label: "File-based swap"},\
+ {value: undefined, label: "Not set"}\
+ ]',
+ 'Provides a mechanism in grid for storing data on disk<br/>\
+ Ignite cache uses swap space to overflow data to disk if it cannot fit in memory\
+ <ul>\
+ <li>File-based swap - File-based swap space SPI implementation which holds keys in memory</li>\
+ <li>Not set - File-based swap space SPI with default configuration when it needed</li>\
+ </ul>')
+ a.customize(
+ ng-if=`${swapModel}.kind`
+ ng-click=`${swapModel}.expanded = !${swapModel}.expanded`
+ ) {{ #{swapModel}.expanded ? 'Hide settings' : 'Show settings'}}
+ .settings-row
+ .panel-details(ng-show=`${swapModel}.expanded && ${swapModel}.kind`)
+ .details-row
+ +text('Base directory:', `${fileSwapModel}.baseDirectory`, '"baseDirectory"', 'false', 'swapspace',
+ 'Base directory where to write files')
+ .details-row
+ +number('Read stripe size:', `${fileSwapModel}.readStripesNumber`, '"readStripesNumber"', 'true', 'availableProcessors', '0',
+ 'Read stripe size defines number of file channels to be used concurrently')
+ .details-row
+ +number-min-max-step('Maximum sparsity:', `${fileSwapModel}.maximumSparsity`, '"maximumSparsity"', 'true', '0.5', '0', '0.999', '0.05',
+ 'This property defines maximum acceptable wasted file space to whole file size ratio<br/>\
+ When this ratio becomes higher than specified number compacting thread starts working')
+ .details-row
+ +number('Max write queue size:', `${fileSwapModel}.maxWriteQueueSize`, '"maxWriteQueueSize"', 'true', '1024 * 1024', '0',
+ 'Max write queue size in bytes<br/>\
+ If there are more values are waiting for being written to disk then specified size, SPI will block on store operation')
+ .details-row
+ +number('Write buffer size:', `${fileSwapModel}.writeBufferSize`, '"writeBufferSize"', 'true', '64 * 1024', '0',
+ 'Write buffer size in bytes<br/>\
+ Write to disk occurs only when this buffer is full')
+ .col-sm-6
+ +preview-xml-java(model, 'clusterSwap')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
index 31dd333..ac4673c 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/thread.pug
@@ -18,6 +18,7 @@ include /app/helpers/jade/mixins
-var form = 'pools'
-var model = 'backupItem'
+-var executors = model + '.executorConfiguration'
.panel.panel-default(ng-form=form novalidate)
.panel-heading(bs-collapse-toggle ng-click=`ui.loadPanel('${form}')`)
@@ -30,19 +31,62 @@ include /app/helpers/jade/mixins
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
.settings-row
- +number('Public:', `${model}.publicThreadPoolSize`, '"publicThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ +number('Public:', model + '.publicThreadPoolSize', '"publicThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
'Thread pool that is in charge of processing ComputeJob, GridJobs and user messages sent to node')
.settings-row
- +number('System:', `${model}.systemThreadPoolSize`, '"systemThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ +number('System:', model + '.systemThreadPoolSize', '"systemThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
'Thread pool that is in charge of processing internal system messages')
.settings-row
- +number('Management:', `${model}.managementThreadPoolSize`, '"managementThreadPoolSize"', 'true', '4', '1',
+ +number('Service:', model + '.serviceThreadPoolSize', '"serviceThreadPoolSize"', 'true', 'max(8, availableProcessors) * 2', '1',
+ 'Thread pool that is in charge of processing proxy invocation')
+ .settings-row
+ +number('Management:', model + '.managementThreadPoolSize', '"managementThreadPoolSize"', 'true', '4', '1',
'Thread pool that is in charge of processing internal and Visor ComputeJob, GridJobs')
.settings-row
- +number('IGFS:', `${model}.igfsThreadPoolSize`, '"igfsThreadPoolSize"', 'true', 'availableProcessors', '1',
+ +number('IGFS:', model + '.igfsThreadPoolSize', '"igfsThreadPoolSize"', 'true', 'availableProcessors', '1',
'Thread pool that is in charge of processing outgoing IGFS messages')
.settings-row
- +number('Rebalance:', `${model}.rebalanceThreadPoolSize`, '"rebalanceThreadPoolSize"', 'true', '1', '1',
+ +number('Rebalance:', model + '.rebalanceThreadPoolSize', '"rebalanceThreadPoolSize"', 'true', '1', '1',
'Max count of threads can be used at rebalancing')
+ .settings-row
+ +number('Utility cache:', model + '.utilityCacheThreadPoolSize', '"utilityCacheThreadPoolSize"', 'true', 'max(8, availableProcessors)', '1',
+ 'Default thread pool size that will be used to process utility cache messages')
+ .settings-row
+ +number('Utility cache keep alive time:', model + '.utilityCacheKeepAliveTime', '"utilityCacheKeepAliveTime"', 'true', '60000', '0',
+ 'Keep alive time of thread pool size that will be used to process utility cache messages')
+ .settings-row
+ +number('Async callback:', model + '.asyncCallbackPoolSize', '"asyncCallbackPoolSize"', 'true', 'max(8, availableProcessors)', '1',
+ 'Size of thread pool that is in charge of processing asynchronous callbacks')
+ .settings-row
+ +number('Striped:', model + '.stripedPoolSize', '"stripedPoolSize"', 'true', 'max(8, availableProcessors)', '1',
+ 'Striped pool size that should be used for cache requests processing')
+
+ //- Since ignite 2.0
+ div(ng-if='$ctrl.available("2.0.0")')
+ .settings-row
+ +number('Data streamer:', model + '.dataStreamerThreadPoolSize', '"dataStreamerThreadPoolSize"', 'true', 'max(8, availableProcessors)', '1',
+ 'Size of thread pool that is in charge of processing data stream messages')
+ .settings-row
+ +number('Query:', model + '.queryThreadPoolSize', '"queryThreadPoolSize"', 'true', 'max(8, availableProcessors)', '1',
+ 'Size of thread pool that is in charge of processing query messages')
+ .settings-row(ng-init='executorConfigurationsTbl={type: "executorConfigurations", model: "executorConfigurations", focusId: "kind", ui: "failover-table"}')
+ +ignite-form-group()
+ ignite-form-field-label
+ | Executor configurations
+ ignite-form-group-tooltip
+ | Сustom thread pool configurations for compute tasks
+ ignite-form-group-add(ng-click='tableNewItem(executorConfigurationsTbl)')
+ | Add executor configuration
+ .group-content-empty(ng-if=`!(${executors} && ${executors}.length > 0)`)
+ | Not defined
+ .group-content(ng-show=`${executors} && ${executors}.length > 0` ng-repeat=`model in ${executors} track by $index`)
+ hr(ng-if='$index != 0')
+ .settings-row
+ +text-enabled-autofocus('Name:', 'model.name', '"ExecutorName" + $index', 'true', 'true', 'Input executor name', 'Thread pool name')
+ +table-remove-button(executors, 'Remove executor configuration')
+ .settings-row
+ +number('Pool size:', 'model.size', '"ExecutorPoolSize" + $index', 'true', 'max(8, availableProcessors)', '1',
+ 'Thread pool size')
+
.col-sm-6
+preview-xml-java(model, 'clusterPools')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug b/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
index 1645a60..329d7c4 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/clusters/time.pug
@@ -29,8 +29,19 @@ include /app/helpers/jade/mixins
.panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
.panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
.col-sm-6
+ //- Removed in ignite 2.0
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ .settings-row
+ +number('Samples size:', `${model}.clockSyncSamples`, '"clockSyncSamples"', 'true', '8', '0',
+ 'Number of samples used to synchronize clocks between different nodes<br/>\
+ Clock synchronization is used for cache version assignment in CLOCK order mode')
+ .settings-row
+ +number('Frequency:', `${model}.clockSyncFrequency`, '"clockSyncFrequency"', 'true', '120000', '0',
+ 'Frequency at which clock is synchronized between nodes, in milliseconds<br/>\
+ Clock synchronization is used for cache version assignment in CLOCK order mode')
+
.settings-row
- +number-min-max('Port base:', model + '.timeServerPortBase', '"timeServerPortBase"', 'true', '31100', '0', '65535',
+ +number-min-max('Port base:', `${model}.timeServerPortBase`, '"timeServerPortBase"', 'true', '31100', '0', '65535',
'Time server provides clock synchronization between nodes<br/>\
Base UPD port number for grid time server. Time server will be started on one of free ports in range')
.settings-row
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug b/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
index aff3c73..b8564dc 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/domains/query.pug
@@ -25,7 +25,7 @@ include /app/helpers/jade/mixins
-var queryAliasesForm = 'queryAliases'
-var queryIndexesForm = 'queryIndexes'
-// LEGACY mixin for LEGACY index fields table.
+//- LEGACY mixin for LEGACY index fields table.
mixin table-index-item-edit(prefix, index, sortAvailable, idAddition)
-var fieldName = `${prefix}FieldName`
-var direction = `${prefix}Direction`
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug
new file mode 100644
index 0000000..c6c1f89
--- /dev/null
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/dual.pug
@@ -0,0 +1,42 @@
+//-
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+include /app/helpers/jade/mixins
+
+-var form = 'dualMode'
+-var model = 'backupItem'
+
+.panel.panel-default(ng-if='$ctrl.available(["1.0.0", "2.0.0"])' ng-form=form novalidate)
+ .panel-heading(bs-collapse-toggle='' ng-click=`ui.loadPanel('${form}')`)
+ ignite-form-panel-chevron
+ label Dual mode
+ ignite-form-field-tooltip.tipLabel
+ | IGFS supports dual-mode that allows it to work as either a standalone file system in Hadoop cluster, or work in tandem with HDFS, providing a primary caching layer for the secondary HDFS#[br]
+ | As a caching layer it provides highly configurable read-through and write-through behaviour
+ ignite-form-revert
+ .panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`)
+ .panel-body(ng-if=`ui.isPanelLoaded('${form}')`)
+ .col-sm-6
+ .settings-row
+ +number('Maximum pending puts size:', `${model}.dualModeMaxPendingPutsSize`, '"dualModeMaxPendingPutsSize"', 'true', '0', 'Number.MIN_SAFE_INTEGER',
+ 'Maximum amount of pending data read from the secondary file system and waiting to be written to data cache<br/>\
+ Zero or negative value stands for unlimited size')
+ .settings-row
+ +java-class('Put executor service:', `${model}.dualModePutExecutorService`, '"dualModePutExecutorService"', 'true', 'false', 'DUAL mode put operation executor service')
+ .settings-row
+ +checkbox('Put executor service shutdown', `${model}.dualModePutExecutorServiceShutdown`, '"dualModePutExecutorServiceShutdown"', 'DUAL mode put operation executor service shutdown flag')
+ .col-sm-6
+ +preview-xml-java(model, 'igfsDualMode')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
index 29f955a..72d0649 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
+++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/misc.pug
@@ -54,8 +54,18 @@ mixin table-igfs-path-mode-edit(prefix, focusId, index)
.col-sm-6
.settings-row
+number('Block size:', `${model}.blockSize`, '"blockSize"', 'true', '65536', '0', 'File data block size in bytes')
- .settings-row
- +number('Buffer size:', `${model}.bufferSize`, '"bufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes')
+
+ //- Since ignite 2.0
+ .settings-row(ng-if='$ctrl.available("2.0.0")')
+ +number('Buffer size:', `${model}.streamBufferSize`, '"streamBufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes')
+
+ //- Removed in ignite 2.0
+ div(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ .settings-row
+ +number('Stream buffer size:', `${model}.streamBufferSize`, '"streamBufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes')
+ .settings-row
+ +number('Maximum space size:', `${model}.maxSpaceSize`, '"maxSpaceSize"', 'true', '0', '0', 'Maximum space available for data cache to store file system entries')
+
.settings-row
+number('Maximum task range length:', `${model}.maximumTaskRangeLength`, '"maximumTaskRangeLength"', 'true', '0', '0', 'Maximum default range size of a file being split during IGFS task execution')
.settings-row
@@ -68,6 +78,11 @@ mixin table-igfs-path-mode-edit(prefix, focusId, index)
+number('Prefetch blocks:', `${model}.prefetchBlocks`, '"prefetchBlocks"', 'true', '0', '0', 'Number of pre-fetched blocks if specific file chunk is requested')
.settings-row
+number('Sequential reads before prefetch:', `${model}.sequentialReadsBeforePrefetch`, '"sequentialReadsBeforePrefetch"', 'true', '0', '0', 'Amount of sequential block reads before prefetch is triggered')
+
+ //- Removed in ignite 2.0
+ .settings-row(ng-if='$ctrl.available(["1.0.0", "2.0.0"])')
+ +number('Trash purge timeout:', `${model}.trashPurgeTimeout`, '"trashPurgeTimeout"', 'true', '1000', '0', 'Maximum timeout awaiting for trash purging in case data cache oversize is detected')
+
.settings-row
+checkbox('Colocate metadata', `${model}.colocateMetadata`, '"colocateMetadata"', 'Whether to co-locate metadata on a single node')
.settings-row
@@ -75,6 +90,11 @@ mixin table-igfs-path-mode-edit(prefix, focusId, index)
'If value of this flag is <b>true</b>, IGFS will skip expensive consistency checks<br/>\
It is recommended to set this flag to <b>false</b> if your application has conflicting\
operations, or you do not know how exactly users will use your system')
+
+ //- Since ignite 2.0
+ .settings-row(ng-if='$ctrl.available("2.0.0")')
+ +checkbox('Update file length on flush', model + '.updateFileLengthOnFlush', '"updateFileLengthOnFlush"', 'Update file length on flush flag')
+
.settings-row
+ignite-form-group(ng-model=pathModes ng-form=pathModesForm)
ignite-form-field-label
@@ -99,6 +119,5 @@ mixin table-igfs-path-mode-edit(prefix, focusId, index)
tr
td.col-sm-12
+table-igfs-path-mode-edit('new', 'PathMode', '-1')
-
.col-sm-6
+preview-xml-java(model, 'igfsMisc')
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js b/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js
index 08cfa71..0259d39 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js
+++ b/modules/web-console/frontend/app/modules/states/configuration/summary/summary-zipper.service.js
@@ -18,11 +18,11 @@
import Worker from 'worker?inline=true!./summary.worker';
export default ['$q', function($q) {
- return function({ cluster, data }) {
+ return function(message) {
const defer = $q.defer();
const worker = new Worker();
- worker.postMessage({ cluster, data });
+ worker.postMessage(message);
worker.onmessage = (e) => {
defer.resolve(e.data);
http://git-wip-us.apache.org/repos/asf/ignite/blob/e04df7d1/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js b/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
index 71b5a82..8f6a6fa 100644
--- a/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
+++ b/modules/web-console/frontend/app/modules/states/configuration/summary/summary.controller.js
@@ -314,7 +314,7 @@ export default [
ActivitiesData.post({ action: '/configuration/download' });
- return new SummaryZipper({ cluster, data: ctrl.data || {}, IgniteDemoMode: $root.IgniteDemoMode })
+ return new SummaryZipper({ cluster, data: ctrl.data || {}, demo: $root.IgniteDemoMode, targetVer: Version.currentSbj.getValue() })
.then((data) => {
saver.saveAs(data, escapeFileName(cluster.name) + '-project.zip');
})