Repository: ignite Updated Branches: refs/heads/master ca75df181 -> d24dab813
http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug index 7d5052e..a8194c2 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/fragmentizer.pug @@ -19,22 +19,19 @@ include /app/helpers/jade/mixins -var form = 'fragmentizer' -var model = 'backupItem' -.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 Fragmentizer - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) - .pca-form-column-6.pc-form-grid-row - -var enabled = `${model}.fragmentizerEnabled` +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title Fragmentizer + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + -var enabled = `${model}.fragmentizerEnabled` - .pc-form-grid-col-60 - +checkbox('Enabled', enabled, '"fragmentizerEnabled"', 'Fragmentizer enabled flag') - .pc-form-grid-col-30 - +number('Concurrent files:', `${model}.fragmentizerConcurrentFiles`, '"fragmentizerConcurrentFiles"', enabled, '0', '0', 'Number of files to process concurrently by fragmentizer') - .pc-form-grid-col-30 - +number('Throttling block length:', `${model}.fragmentizerThrottlingBlockLength`, '"fragmentizerThrottlingBlockLength"', enabled, '16777216', '1', 'Length of file chunk to transmit before throttling is delayed') - .pc-form-grid-col-60 - +number('Throttling delay:', `${model}.fragmentizerThrottlingDelay`, '"fragmentizerThrottlingDelay"', enabled, '200', '0', 'Delay in milliseconds for which fragmentizer is paused') - .pca-form-column-6 - +preview-xml-java(model, 'igfsFragmentizer') + .pc-form-grid-col-60 + +checkbox('Enabled', enabled, '"fragmentizerEnabled"', 'Fragmentizer enabled flag') + .pc-form-grid-col-30 + +number('Concurrent files:', `${model}.fragmentizerConcurrentFiles`, '"fragmentizerConcurrentFiles"', enabled, '0', '0', 'Number of files to process concurrently by fragmentizer') + .pc-form-grid-col-30 + +number('Throttling block length:', `${model}.fragmentizerThrottlingBlockLength`, '"fragmentizerThrottlingBlockLength"', enabled, '16777216', '1', 'Length of file chunk to transmit before throttling is delayed') + .pc-form-grid-col-60 + +number('Throttling delay:', `${model}.fragmentizerThrottlingDelay`, '"fragmentizerThrottlingDelay"', enabled, '200', '0', 'Delay in milliseconds for which fragmentizer is paused') + .pca-form-column-6 + +preview-xml-java(model, 'igfsFragmentizer') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug index 9f65f41..b9eb8fc 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/general.pug @@ -19,57 +19,54 @@ include /app/helpers/jade/mixins -var form = 'general' -var model = 'backupItem' -.pca-panel(ng-form=form novalidate) - .pca-panel-heading(bs-collapse-toggle) - ignite-form-panel-chevron - .pca-panel-heading-title General - .pca-panel-heading-description - | General IGFS configuration. - a.link-success(href="https://apacheignite-fs.readme.io/docs/in-memory-file-system" target="_blank") More info - .pca-panel-collapse(role='tabpanel' bs-collapse-target id='general') - .pca-panel-body.pca-form-row - .pca-form-column-6.pc-form-grid-row - .pc-form-grid-col-60 - +sane-ignite-form-field-text({ - label: 'Name:', - model: `${model}.name`, - name: '"igfsName"', - placeholder: 'Input name', - required: true - })( - ignite-unique='$ctrl.igfss' - ignite-unique-property='name' - ignite-unique-skip=`["_id", ${model}]` - ) - +unique-feedback(`${model}.name`, 'IGFS name should be unique.') - .pc-form-grid-col-30 - +sane-ignite-form-field-dropdown({ - label: 'IGFS mode:', - model: `${model}.defaultMode`, - name: '"defaultMode"', - placeholder: '{{::$ctrl.IGFSs.defaultMode.default}}', - options: '{{::$ctrl.IGFSs.defaultMode.values}}', - tip: ` - Mode to specify how IGFS interacts with Hadoop file system - <ul> - <li>PRIMARY - in this mode IGFS will not delegate to secondary Hadoop file system and will cache all the files in memory only</li> - <li>PROXY - in this mode IGFS will not cache any files in memory and will only pass them through to secondary file system</li> - <li>DUAL_SYNC - in this mode IGFS will cache files locally and also <b>synchronously</b> write them through to secondary file system</li> - <li>DUAL_ASYNC - in this mode IGFS will cache files locally and also <b> asynchronously </b> write them through to secondary file system</li> - </ul> - ` - }) - .pc-form-grid-col-30 - +sane-ignite-form-field-number({ - label: 'Group size:', - model: `${model}.affinnityGroupSize`, - name: '"affinnityGroupSize"', - placeholder: '{{::$ctrl.IGFSs.affinnityGroupSize.default}}', - min: '{{::$ctrl.IGFSs.affinnityGroupSize.min}}', - tip: ` - Size of the group in blocks<br/> - Required for construction of affinity mapper in IGFS data cache - ` - }) - .pca-form-column-6 - +preview-xml-java(model, 'igfsGeneral') +panel-collapsible(opened=`::true` ng-form=form) + panel-title General + panel-description + | General IGFS configuration. + a.link-success(href="https://apacheignite-fs.readme.io/docs/in-memory-file-system" target="_blank") More info + panel-content.pca-form-row + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +sane-ignite-form-field-text({ + label: 'Name:', + model: `${model}.name`, + name: '"igfsName"', + placeholder: 'Input name', + required: true + })( + ignite-unique='$ctrl.igfss' + ignite-unique-property='name' + ignite-unique-skip=`["_id", ${model}]` + ) + +unique-feedback(`${model}.name`, 'IGFS name should be unique.') + .pc-form-grid-col-30 + +sane-ignite-form-field-dropdown({ + label: 'IGFS mode:', + model: `${model}.defaultMode`, + name: '"defaultMode"', + placeholder: '{{::$ctrl.IGFSs.defaultMode.default}}', + options: '{{::$ctrl.IGFSs.defaultMode.values}}', + tip: ` + Mode to specify how IGFS interacts with Hadoop file system + <ul> + <li>PRIMARY - in this mode IGFS will not delegate to secondary Hadoop file system and will cache all the files in memory only</li> + <li>PROXY - in this mode IGFS will not cache any files in memory and will only pass them through to secondary file system</li> + <li>DUAL_SYNC - in this mode IGFS will cache files locally and also <b>synchronously</b> write them through to secondary file system</li> + <li>DUAL_ASYNC - in this mode IGFS will cache files locally and also <b> asynchronously </b> write them through to secondary file system</li> + </ul> + ` + }) + .pc-form-grid-col-30 + +sane-ignite-form-field-number({ + label: 'Group size:', + model: `${model}.affinnityGroupSize`, + name: '"affinnityGroupSize"', + placeholder: '{{::$ctrl.IGFSs.affinnityGroupSize.default}}', + min: '{{::$ctrl.IGFSs.affinnityGroupSize.min}}', + tip: ` + Size of the group in blocks<br/> + Required for construction of affinity mapper in IGFS data cache + ` + }) + .pca-form-column-6 + +preview-xml-java(model, 'igfsGeneral') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug index e123b3c..ef024b4 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/ipc.pug @@ -19,40 +19,37 @@ include /app/helpers/jade/mixins -var form = 'ipc' -var model = 'backupItem' -.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 IPC - .pca-panel-heading-description IGFS Inter-process communication properties. - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) - .pca-form-column-6.pc-form-grid-row - -var ipcEndpointConfiguration = `${model}.ipcEndpointConfiguration` - -var enabled = `${model}.ipcEndpointEnabled` +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title IPC + panel-description IGFS Inter-process communication properties. + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + -var ipcEndpointConfiguration = `${model}.ipcEndpointConfiguration` + -var enabled = `${model}.ipcEndpointEnabled` - .pc-form-grid-col-60 - +checkbox('Enabled', enabled, '"ipcEndpointEnabled"', 'IPC endpoint enabled flag') - .pc-form-grid-col-60 - +dropdown('Type:', `${ipcEndpointConfiguration}.type`, '"ipcEndpointConfigurationType"', enabled, 'TCP', - '[\ - {value: "SHMEM", label: "SHMEM"},\ - {value: "TCP", label: "TCP"}\ - ]', - 'IPC endpoint type\ - <ul>\ - <li>SHMEM - shared memory endpoint</li>\ - <li>TCP - TCP endpoint</li>\ - </ul>') - .pc-form-grid-col-30 - +text-ip-address('Host:', `${ipcEndpointConfiguration}.host`, '"ipcEndpointConfigurationHost"', enabled, '127.0.0.1', 'Host endpoint is bound to') - .pc-form-grid-col-30 - +number-min-max('Port:', `${ipcEndpointConfiguration}.port`, '"ipcEndpointConfigurationPort"', enabled, '10500', '1', '65535', 'Port endpoint is bound to') - .pc-form-grid-col-30 - +number('Memory size:', `${ipcEndpointConfiguration}.memorySize`, '"ipcEndpointConfigurationMemorySize"', enabled, '262144', '1', 'Shared memory size in bytes allocated for endpoint communication') - .pc-form-grid-col-30 - +number('Thread count:', `${ipcEndpointConfiguration}.threadCount`, '"ipcEndpointConfigurationThreadCount"', enabled, 'availableProcessors', '1', - 'Number of threads used by this endpoint to process incoming requests') - .pc-form-grid-col-60 - +text-enabled('Token directory:', `${ipcEndpointConfiguration}.tokenDirectoryPath`, '"ipcEndpointConfigurationTokenDirectoryPath"', enabled, 'false', 'ipc/shmem', 'Directory where shared memory tokens are stored') - .pca-form-column-6 - +preview-xml-java(model, 'igfsIPC') + .pc-form-grid-col-60 + +checkbox('Enabled', enabled, '"ipcEndpointEnabled"', 'IPC endpoint enabled flag') + .pc-form-grid-col-60 + +dropdown('Type:', `${ipcEndpointConfiguration}.type`, '"ipcEndpointConfigurationType"', enabled, 'TCP', + '[\ + {value: "SHMEM", label: "SHMEM"},\ + {value: "TCP", label: "TCP"}\ + ]', + 'IPC endpoint type\ + <ul>\ + <li>SHMEM - shared memory endpoint</li>\ + <li>TCP - TCP endpoint</li>\ + </ul>') + .pc-form-grid-col-30 + +text-ip-address('Host:', `${ipcEndpointConfiguration}.host`, '"ipcEndpointConfigurationHost"', enabled, '127.0.0.1', 'Host endpoint is bound to') + .pc-form-grid-col-30 + +number-min-max('Port:', `${ipcEndpointConfiguration}.port`, '"ipcEndpointConfigurationPort"', enabled, '10500', '1', '65535', 'Port endpoint is bound to') + .pc-form-grid-col-30 + +number('Memory size:', `${ipcEndpointConfiguration}.memorySize`, '"ipcEndpointConfigurationMemorySize"', enabled, '262144', '1', 'Shared memory size in bytes allocated for endpoint communication') + .pc-form-grid-col-30 + +number('Thread count:', `${ipcEndpointConfiguration}.threadCount`, '"ipcEndpointConfigurationThreadCount"', enabled, 'availableProcessors', '1', + 'Number of threads used by this endpoint to process incoming requests') + .pc-form-grid-col-60 + +text-enabled('Token directory:', `${ipcEndpointConfiguration}.tokenDirectoryPath`, '"ipcEndpointConfigurationTokenDirectoryPath"', enabled, 'false', 'ipc/shmem', 'Directory where shared memory tokens are stored') + .pca-form-column-6 + +preview-xml-java(model, 'igfsIPC') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/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 63e5e46..9a39b3a 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 @@ -20,94 +20,91 @@ include /app/helpers/jade/mixins -var model = 'backupItem' -var pathModes = `${model}.pathModes` -.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 Miscellaneous - .pca-panel-heading-description Various miscellaneous IGFS settings. - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) - .pca-form-column-6.pc-form-grid-row - .pc-form-grid-col-60 - +number('Block size:', `${model}.blockSize`, '"blockSize"', 'true', '65536', '0', 'File data block size in bytes') - - //- Since ignite 2.0 - .pc-form-grid-col-60(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 - .pc-form-grid-col-60(ng-if-start='$ctrl.available(["1.0.0", "2.0.0"])') - +number('Stream buffer size:', `${model}.streamBufferSize`, '"streamBufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes') - .pc-form-grid-col-60(ng-if-end) - +number('Maximum space size:', `${model}.maxSpaceSize`, '"maxSpaceSize"', 'true', '0', '0', 'Maximum space available for data cache to store file system entries') - - .pc-form-grid-col-30 - +number('Maximum task range length:', `${model}.maximumTaskRangeLength`, '"maximumTaskRangeLength"', 'true', '0', '0', 'Maximum default range size of a file being split during IGFS task execution') - .pc-form-grid-col-30 - +number-min-max('Management port:', `${model}.managementPort`, '"managementPort"', 'true', '11400', '0', '65535', 'Port number for management endpoint') - .pc-form-grid-col-30 - +number('Per node batch size:', `${model}.perNodeBatchSize`, '"perNodeBatchSize"', 'true', '100', '0', 'Number of file blocks collected on local node before sending batch to remote node') - .pc-form-grid-col-30 - +number('Per node parallel batch count:', `${model}.perNodeParallelBatchCount`, '"perNodeParallelBatchCount"', 'true', '8', '0', 'Number of file block batches that can be concurrently sent to remote node') - .pc-form-grid-col-60 - +number('Prefetch blocks:', `${model}.prefetchBlocks`, '"prefetchBlocks"', 'true', '0', '0', 'Number of pre-fetched blocks if specific file chunk is requested') - .pc-form-grid-col-60 - +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 - .pc-form-grid-col-60(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') - - .pc-form-grid-col-60 - +checkbox('Colocate metadata', `${model}.colocateMetadata`, '"colocateMetadata"', 'Whether to co-locate metadata on a single node') - .pc-form-grid-col-60 - +checkbox('Relaxed consistency', `${model}.relaxedConsistency`, '"relaxedConsistency"', - '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 - .pc-form-grid-col-60(ng-if='$ctrl.available("2.0.0")') - +checkbox('Update file length on flush', model + '.updateFileLengthOnFlush', '"updateFileLengthOnFlush"', 'Update file length on flush flag') - - .pc-form-grid-col-60 - mixin igfs-misc-path-modes - .ignite-form-field - +ignite-form-field__label('Path modes:', '"pathModes"') - +tooltip(`Map of path prefixes to IGFS modes used for them`) - .ignite-form-field__control - -let items = pathModes - - list-editable(ng-model=items) - list-editable-item-view - | {{ $item.path + " [" + $item.mode + "]"}} - - list-editable-item-edit - - form = '$parent.form' - - .pc-form-grid-row - .pc-form-grid-col-30 - +ignite-form-field-text('Path:', '$item.path', '"path"', false, true, 'Enter path')(ignite-auto-focus) - .pc-form-grid-col-30 - +sane-ignite-form-field-dropdown({ - label: 'Mode:', - model: `$item.mode`, - name: '"mode"', - required: true, - placeholder: 'Choose igfs mode', - options: '{{::$ctrl.IGFSs.defaultMode.values}}' - })( - ng-model-options='{allowInvalid: true}' - ) - - list-editable-no-items - list-editable-add-item-button( - add-item=`$editLast((${items} = ${items} || []).push({}))` - label-single='path mode' - label-multiple='path modes' - ) - - +igfs-misc-path-modes - - .pca-form-column-6 - +preview-xml-java(model, 'igfsMisc') +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title Miscellaneous + panel-description Various miscellaneous IGFS settings. + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + .pc-form-grid-col-60 + +number('Block size:', `${model}.blockSize`, '"blockSize"', 'true', '65536', '0', 'File data block size in bytes') + + //- Since ignite 2.0 + .pc-form-grid-col-60(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 + .pc-form-grid-col-60(ng-if-start='$ctrl.available(["1.0.0", "2.0.0"])') + +number('Stream buffer size:', `${model}.streamBufferSize`, '"streamBufferSize"', 'true', '65536', '0', 'Read/write buffer size for IGFS stream operations in bytes') + .pc-form-grid-col-60(ng-if-end) + +number('Maximum space size:', `${model}.maxSpaceSize`, '"maxSpaceSize"', 'true', '0', '0', 'Maximum space available for data cache to store file system entries') + + .pc-form-grid-col-30 + +number('Maximum task range length:', `${model}.maximumTaskRangeLength`, '"maximumTaskRangeLength"', 'true', '0', '0', 'Maximum default range size of a file being split during IGFS task execution') + .pc-form-grid-col-30 + +number-min-max('Management port:', `${model}.managementPort`, '"managementPort"', 'true', '11400', '0', '65535', 'Port number for management endpoint') + .pc-form-grid-col-30 + +number('Per node batch size:', `${model}.perNodeBatchSize`, '"perNodeBatchSize"', 'true', '100', '0', 'Number of file blocks collected on local node before sending batch to remote node') + .pc-form-grid-col-30 + +number('Per node parallel batch count:', `${model}.perNodeParallelBatchCount`, '"perNodeParallelBatchCount"', 'true', '8', '0', 'Number of file block batches that can be concurrently sent to remote node') + .pc-form-grid-col-60 + +number('Prefetch blocks:', `${model}.prefetchBlocks`, '"prefetchBlocks"', 'true', '0', '0', 'Number of pre-fetched blocks if specific file chunk is requested') + .pc-form-grid-col-60 + +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 + .pc-form-grid-col-60(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') + + .pc-form-grid-col-60 + +checkbox('Colocate metadata', `${model}.colocateMetadata`, '"colocateMetadata"', 'Whether to co-locate metadata on a single node') + .pc-form-grid-col-60 + +checkbox('Relaxed consistency', `${model}.relaxedConsistency`, '"relaxedConsistency"', + '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 + .pc-form-grid-col-60(ng-if='$ctrl.available("2.0.0")') + +checkbox('Update file length on flush', model + '.updateFileLengthOnFlush', '"updateFileLengthOnFlush"', 'Update file length on flush flag') + + .pc-form-grid-col-60 + mixin igfs-misc-path-modes + .ignite-form-field + +ignite-form-field__label('Path modes:', '"pathModes"') + +tooltip(`Map of path prefixes to IGFS modes used for them`) + .ignite-form-field__control + -let items = pathModes + + list-editable(ng-model=items) + list-editable-item-view + | {{ $item.path + " [" + $item.mode + "]"}} + + list-editable-item-edit + - form = '$parent.form' + + .pc-form-grid-row + .pc-form-grid-col-30 + +ignite-form-field-text('Path:', '$item.path', '"path"', false, true, 'Enter path')(ignite-auto-focus) + .pc-form-grid-col-30 + +sane-ignite-form-field-dropdown({ + label: 'Mode:', + model: `$item.mode`, + name: '"mode"', + required: true, + placeholder: 'Choose igfs mode', + options: '{{::$ctrl.IGFSs.defaultMode.values}}' + })( + ng-model-options='{allowInvalid: true}' + ) + + list-editable-no-items + list-editable-add-item-button( + add-item=`$editLast((${items} = ${items} || []).push({}))` + label-single='path mode' + label-multiple='path modes' + ) + + +igfs-misc-path-modes + + .pca-form-column-6 + +preview-xml-java(model, 'igfsMisc') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug index da34596..92c8210 100644 --- a/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug +++ b/modules/web-console/frontend/app/modules/states/configuration/igfs/secondary.pug @@ -19,40 +19,37 @@ include /app/helpers/jade/mixins -var form = 'secondaryFileSystem' -var model = 'backupItem' -.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 Secondary file system - .pca-panel-heading-description - | Secondary file system is provided for pass-through, write-through, and read-through purposes. - a.link-success(href="https://apacheignite-fs.readme.io/docs/secondary-file-system" target="_blank") More info - .pca-panel-collapse(role='tabpanel' bs-collapse-target id=`${form}`) - .pca-panel-body.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) - .pca-form-column-6.pc-form-grid-row - -var enabled = `${model}.secondaryFileSystemEnabled` - -var secondaryFileSystem = `${model}.secondaryFileSystem` +panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) + panel-title Secondary file system + panel-description + | Secondary file system is provided for pass-through, write-through, and read-through purposes. + a.link-success(href="https://apacheignite-fs.readme.io/docs/secondary-file-system" target="_blank") More info + panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) + .pca-form-column-6.pc-form-grid-row + -var enabled = `${model}.secondaryFileSystemEnabled` + -var secondaryFileSystem = `${model}.secondaryFileSystem` - .pc-form-grid-col-60 - +sane-form-field-checkbox({ - label: 'Enabled', - name: '"secondaryFileSystemEnabled"', - model: enabled - })( - ng-model-options='{allowInvalid: true}' - ui-validate=`{ - requiredWhenIGFSProxyMode: '$ctrl.IGFSs.secondaryFileSystemEnabled.requiredWhenIGFSProxyMode(${model})', - requiredWhenPathModeProxyMode: '$ctrl.IGFSs.secondaryFileSystemEnabled.requiredWhenPathModeProxyMode(${model})' - }` - ui-validate-watch-collection=`"[${model}.defaultMode, ${model}.pathModes]"` - ui-validate-watch-object-equality='true' - ) - +form-field-feedback(null, 'requiredWhenIGFSProxyMode', 'Secondary file system should be configured for "PROXY" IGFS mode') - +form-field-feedback(null, 'requiredWhenPathModeProxyMode', 'Secondary file system should be configured for "PROXY" path mode') - .pc-form-grid-col-60 - +text-enabled('URI:', `${secondaryFileSystem}.uri`, '"hadoopURI"', enabled, 'false', 'hdfs://[namenodehost]:[port]/[path]', 'URI of file system') - .pc-form-grid-col-60 - +text-enabled('Config path:', `${secondaryFileSystem}.cfgPath`, '"cfgPath"', enabled, 'false', 'Path to additional config', 'Additional path to Hadoop configuration') - .pc-form-grid-col-60 - +text-enabled('User name:', `${secondaryFileSystem}.userName`, '"userName"', enabled, 'false', 'Input user name', 'User name') - .pca-form-column-6 - +preview-xml-java(model, 'igfsSecondFS') + .pc-form-grid-col-60 + +sane-form-field-checkbox({ + label: 'Enabled', + name: '"secondaryFileSystemEnabled"', + model: enabled + })( + ng-model-options='{allowInvalid: true}' + ui-validate=`{ + requiredWhenIGFSProxyMode: '$ctrl.IGFSs.secondaryFileSystemEnabled.requiredWhenIGFSProxyMode(${model})', + requiredWhenPathModeProxyMode: '$ctrl.IGFSs.secondaryFileSystemEnabled.requiredWhenPathModeProxyMode(${model})' + }` + ui-validate-watch-collection=`"[${model}.defaultMode, ${model}.pathModes]"` + ui-validate-watch-object-equality='true' + ) + +form-field-feedback(null, 'requiredWhenIGFSProxyMode', 'Secondary file system should be configured for "PROXY" IGFS mode') + +form-field-feedback(null, 'requiredWhenPathModeProxyMode', 'Secondary file system should be configured for "PROXY" path mode') + .pc-form-grid-col-60 + +text-enabled('URI:', `${secondaryFileSystem}.uri`, '"hadoopURI"', enabled, 'false', 'hdfs://[namenodehost]:[port]/[path]', 'URI of file system') + .pc-form-grid-col-60 + +text-enabled('Config path:', `${secondaryFileSystem}.cfgPath`, '"cfgPath"', enabled, 'false', 'Path to additional config', 'Additional path to Hadoop configuration') + .pc-form-grid-col-60 + +text-enabled('User name:', `${secondaryFileSystem}.userName`, '"userName"', enabled, 'false', 'Input user name', 'User name') + .pca-form-column-6 + +preview-xml-java(model, 'igfsSecondFS') http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/package-lock.json ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/package-lock.json b/modules/web-console/frontend/package-lock.json index f7f313d..071dec0 100644 --- a/modules/web-console/frontend/package-lock.json +++ b/modules/web-console/frontend/package-lock.json @@ -39,6 +39,15 @@ "@types/angular": "1.6.43" } }, + "@types/angular-mocks": { + "version": "1.5.11", + "resolved": "https://registry.npmjs.org/@types/angular-mocks/-/angular-mocks-1.5.11.tgz", + "integrity": "sha512-C8ipXVKQvw+w64kH97Npa3a7uZB7ZL9Kr4+sOe33oYIyxeg09M8bzAWCIYCmPRRV0px6ozFTZeSVjBXDikz2zw==", + "dev": true, + "requires": { + "@types/angular": "1.6.43" + } + }, "@types/angular-strap": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@types/angular-strap/-/angular-strap-2.3.1.tgz", @@ -85,12 +94,41 @@ "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==", "dev": true }, + "@types/node": { + "version": "9.6.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.2.tgz", + "integrity": "sha512-UWkRY9X7RQHp5OhhRIIka58/gVVycL1zHZu0OTsT5LI86ABaMOSbUjAl+b0FeDhQcxclrkyft3kW5QWdMRs8wQ==", + "dev": true + }, "@types/sinon": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.3.1.tgz", "integrity": "sha512-DK4YtH30I67k4klURIBS4VAe1aBISfS9lgNlHFkibSmKem2tLQc5VkKoJreT3dCJAd+xRyCS8bx1o97iq3yUVg==", "dev": true }, + "@types/tapable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.1.tgz", + "integrity": "sha512-zRc13uGALq6rmLOYmpdI8X5TK6ATuf9jITC7iKTxaHqb/se7vBdiC8BEp1vM2VJQVSt3N53kDDzJOYeVkUKO/Q==", + "dev": true + }, + "@types/uglify-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.1.tgz", + "integrity": "sha512-eWwNO88HxJonNKyxZ3dR62yle3N+aBPIsjTrPtoMcldLXGeIKAIlewNIWT4cxjZ4gy3YdBobkaKSv74HJXSzRg==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "@types/ui-grid": { "version": "0.0.38", "resolved": "https://registry.npmjs.org/@types/ui-grid/-/ui-grid-0.0.38.tgz", @@ -101,6 +139,35 @@ "@types/jquery": "3.3.1" } }, + "@types/webpack": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.1.3.tgz", + "integrity": "sha512-NoGVTCumOsyFfuy3934f3ktiJi+wcXHJFxT47tby3iCpuo6M/WjFA9VqT5bYO+FE46i3R0N00RpJX75HxHKDaQ==", + "dev": true, + "requires": { + "@types/node": "9.6.2", + "@types/tapable": "1.0.1", + "@types/uglify-js": "3.0.1", + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/webpack-merge": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@types/webpack-merge/-/webpack-merge-4.1.3.tgz", + "integrity": "sha512-VdmNuYIvIouYlCI73NLKOE1pOVAxv5m5eupvTemojZz9dqghoQXmeEveI6CqeuWpCH6x6FLp6+tXM2sls20/MA==", + "dev": true, + "requires": { + "@types/webpack": "4.1.3" + } + }, "@uirouter/angularjs": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/@uirouter/angularjs/-/angularjs-1.0.15.tgz", @@ -323,6 +390,12 @@ "resolved": "https://registry.npmjs.org/angular-messages/-/angular-messages-1.6.9.tgz", "integrity": "sha512-/2xvG6vDC+Us8h0baSa1siDKwPj5R2A7LldxxhK2339HInc09bq9shMVCUy9zqnuvwnDUJ/DSgkSaBoSHSZrqg==" }, + "angular-mocks": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.6.9.tgz", + "integrity": "sha512-5aEwXmfd5DQvb64pOgP2W2D3ozAQSARkB6q+6NQfUJvJs9bD2YcExrUc1P4EbiIuyWag2OQM+pIKUNojVi3SBg==", + "dev": true + }, "angular-motion": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/angular-motion/-/angular-motion-0.4.4.tgz", http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/package.json ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/package.json b/modules/web-console/frontend/package.json index 32d9262..3b42a61 100644 --- a/modules/web-console/frontend/package.json +++ b/modules/web-console/frontend/package.json @@ -116,12 +116,16 @@ "devDependencies": { "@types/angular": "^1.6.32", "@types/angular-animate": "^1.5.8", + "@types/angular-mocks": "^1.5.11", "@types/angular-strap": "^2.3.1", - "@types/chai": "^4.0.4", + "@types/chai": "^4.1.2", "@types/lodash": "^4.14.77", - "@types/mocha": "^2.2.44", + "@types/mocha": "^2.2.48", "@types/sinon": "^4.0.0", "@types/ui-grid": "0.0.38", + "@types/webpack": "^4.1.2", + "@types/webpack-merge": "^4.1.3", + "angular-mocks": "^1.6.9", "app-root-path": "2.0.1", "chai": "4.1.0", "chalk": "2.1.0", @@ -131,7 +135,7 @@ "jasmine-core": "2.6.4", "karma": "2.0.0", "karma-babel-preprocessor": "6.0.1", - "karma-chrome-launcher": "2.2.0", + "karma-chrome-launcher": "^2.2.0", "karma-mocha": "1.3.0", "karma-mocha-reporter": "2.2.3", "karma-teamcity-reporter": "1.0.0", http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/test/karma.conf.babel.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/test/karma.conf.babel.js b/modules/web-console/frontend/test/karma.conf.babel.js index 48104c8..b192594 100644 --- a/modules/web-console/frontend/test/karma.conf.babel.js +++ b/modules/web-console/frontend/test/karma.conf.babel.js @@ -83,6 +83,14 @@ export default (config) => { ChromeHeadlessNoSandbox: { base: 'ChromeHeadless', flags: ['--no-sandbox'] + }, + ChromeDebug: { + base: 'Chrome', + flags: [ + '--start-maximized', + '--auto-open-devtools-for-tabs' + ], + debug: true } }, http://git-wip-us.apache.org/repos/asf/ignite/blob/d24dab81/modules/web-console/frontend/webpack/webpack.test.js ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/webpack/webpack.test.js b/modules/web-console/frontend/webpack/webpack.test.js index f906d0d..2ade625 100644 --- a/modules/web-console/frontend/webpack/webpack.test.js +++ b/modules/web-console/frontend/webpack/webpack.test.js @@ -38,10 +38,9 @@ export default merge(commonCfg, { } }, module: { + exprContextCritical: false, rules: [ - {test: /\.scss$/, use: ['ignore-loader']}, - {test: /\.css$/, use: ['ignore-loader']}, - {test: /\.pug$/, use: ['ignore-loader']} + {test: /\.s?css$/, use: ['ignore-loader']} ] } });