http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general.pug index a7eb99e..26a949a 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general.pug @@ -42,7 +42,6 @@ panel-collapsible(opened=`::true` ng-form=form) label: 'Name:', model: `${model}.name`, name: '"clusterName"', - disabled: 'false', placeholder: 'Input name', required: true, tip: 'Instance name allows to indicate to what grid this particular grid instance belongs to' @@ -51,28 +50,40 @@ panel-collapsible(opened=`::true` ng-form=form) ignite-unique-property='name' ignite-unique-skip=`["_id", ${model}]` ) - +unique-feedback(`${model}.name`, 'Cluster name should be unique.') + +form-field__error({ error: 'igniteUnique', message: 'Cluster name should be unique.' }) .pc-form-grid-col-30 - +text-ip-address('Local host:', `${model}.localHost`, '"localHost"', 'true', '0.0.0.0', - 'System-wide local address or host for all Ignite components to bind to<br/>\ - If not defined then Ignite tries to use local wildcard address<br/>\ - That means that all services will be available on all network interfaces of the host machine') + +form-field__ip-address({ + label: 'Local host:', + model: `${model}.localHost`, + name: '"localHost"', + enabled: 'true', + placeholder: '0.0.0.0', + tip: 'System-wide local address or host for all Ignite components to bind to<br/>\ + If not defined then Ignite tries to use local wildcard address<br/>\ + That means that all services will be available on all network interfaces of the host machine' + }) .pc-form-grid-col-60 - +dropdown('Discovery:', `${model}.discovery.kind`, '"discovery"', 'true', 'Choose discovery', '$ctrl.Clusters.discoveries', - 'Discovery allows to discover remote nodes in grid\ - <ul>\ - <li>Static IPs - IP Finder which works only with pre configured list of IP addresses specified</li>\ - <li>Multicast - Multicast based IP finder</li>\ - <li>AWS S3 - AWS S3 based IP finder that automatically discover cluster nodes on Amazon EC2 cloud</li>\ - <li>Apache jclouds - Apache jclouds multi cloud toolkit based IP finder for cloud platforms with unstable IP addresses</li>\ - <li>Google cloud storage - Google Cloud Storage based IP finder that automatically discover cluster nodes on Google Compute Engine cluster</li>\ - <li>JDBC - JDBC based IP finder that use database to store node IP address</li>\ - <li>Shared filesystem - Shared filesystem based IP finder that use file to store node IP address</li>\ - <li>Apache ZooKeeper - Apache ZooKeeper based IP finder when you use ZooKeeper to coordinate your distributed environment</li>\ - <li>Kubernetes - IP finder for automatic lookup of Ignite nodes running in Kubernetes environment</li>\ - </ul>') + +form-field__dropdown({ + label: 'Discovery:', + model: `${model}.discovery.kind`, + name: '"discovery"', + placeholder: 'Choose discovery', + options: '$ctrl.Clusters.discoveries', + tip: 'Discovery allows to discover remote nodes in grid\ + <ul>\ + <li>Static IPs - IP Finder which works only with pre configured list of IP addresses specified</li>\ + <li>Multicast - Multicast based IP finder</li>\ + <li>AWS S3 - AWS S3 based IP finder that automatically discover cluster nodes on Amazon EC2 cloud</li>\ + <li>Apache jclouds - Apache jclouds multi cloud toolkit based IP finder for cloud platforms with unstable IP addresses</li>\ + <li>Google cloud storage - Google Cloud Storage based IP finder that automatically discover cluster nodes on Google Compute Engine cluster</li>\ + <li>JDBC - JDBC based IP finder that use database to store node IP address</li>\ + <li>Shared filesystem - Shared filesystem based IP finder that use file to store node IP address</li>\ + <li>Apache ZooKeeper - Apache ZooKeeper based IP finder when you use ZooKeeper to coordinate your distributed environment</li>\ + <li>Kubernetes - IP finder for automatic lookup of Ignite nodes running in Kubernetes environment</li>\ + </ul>' + }) .pc-form-group +discovery-cloud()(ng-if=`${modelDiscoveryKind} === 'Cloud'`) +discovery-google()(ng-if=`${modelDiscoveryKind} === 'GoogleStorage'`)
http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/cloud.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/cloud.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/cloud.pug index 074756e..800302a 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/cloud.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/cloud.pug @@ -28,19 +28,42 @@ mixin discovery-cloud(modelAt='$ctrl.clonedCluster') div.pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-30 - +text('Credential:', `${model}.credential`, '"credential"', 'false', 'Input cloud credential', - 'Credential that is used during authentication on the cloud<br/>\ - Depending on a cloud platform it can be a password or access key') + +form-field__text({ + label: 'Credential:', + model: `${model}.credential`, + name: '"credential"', + placeholder: 'Input cloud credential', + tip: 'Credential that is used during authentication on the cloud<br/>\ + Depending on a cloud platform it can be a password or access key' + }) .pc-form-grid-col-30 - +text('Path to credential:', `${model}.credentialPath`, '"credentialPath"', 'false', 'Input path to credential', - 'Path to a credential that is used during authentication on the cloud<br/>\ - Access key or private key should be stored in a plain or PEM file without a passphrase') + +form-field__text({ + label: 'Path to credential:', + model: `${model}.credentialPath`, + name: '"credentialPath"', + placeholder: 'Input path to credential', + tip: 'Path to a credential that is used during authentication on the cloud<br/>\ + Access key or private key should be stored in a plain or PEM file without a passphrase' + }) .pc-form-grid-col-30 - +text('Identity:', `${model}.identity`, '"' + discoveryKind + 'Identity"', required, 'Input identity', - 'Identity that is used as a user name during a connection to the cloud<br/>\ - Depending on a cloud platform it can be an email address, user name, etc') + +form-field__text({ + label: 'Identity:', + model: `${model}.identity`, + name: '"' + discoveryKind + 'Identity"', + required: required, + placeholder: 'Input identity', + tip: 'Identity that is used as a user name during a connection to the cloud<br/>\ + Depending on a cloud platform it can be an email address, user name, etc' + }) .pc-form-grid-col-30 - +text('Provider:', `${model}.provider`, '"' + discoveryKind + 'Provider"', required, 'Input provider', 'Cloud provider to use') + +form-field__text({ + label:'Provider:', + model: `${model}.provider`, + name: '"' + discoveryKind + 'Provider"', + required: required, + placeholder: 'Input provider', + tip: 'Cloud provider to use' + }) .pc-form-grid-col-60 .ignite-form-field +list-text-field({ @@ -57,8 +80,7 @@ mixin discovery-cloud(modelAt='$ctrl.clonedCluster') Note, that some cloud providers, like Google Compute Engine, doesn't have a notion of a region. For such providers regions are redundant" }]` ) - +unique-feedback(_, 'Such region already exists!') - + +form-field__error({ error: 'igniteUnique', message: 'Such region already exists!' }) .pc-form-grid-col-60 .ignite-form-field +list-text-field({ @@ -75,4 +97,4 @@ mixin discovery-cloud(modelAt='$ctrl.clonedCluster') Note, that some cloud providers, like Rackspace, doesn't have a notion of a zone. For such providers zones are redundant" }]` ) - +unique-feedback(_, 'Such zone already exists!') + +form-field__error({ error: 'igniteUnique', message: 'Such zone already exists!' }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/google.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/google.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/google.pug index 7de3843..01996ac 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/google.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/google.pug @@ -23,16 +23,41 @@ mixin discovery-google(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-30 - +text('Project name:', `${model}.projectName`, `'${discoveryKind}ProjectName'`, required, 'Input project name', '' + - 'Google Cloud Platforms project name<br/>\ - Usually this is an auto generated project number(ex. 208709979073) that can be found in "Overview" section of Google Developer Console') + +form-field__text({ + label: 'Project name:', + model: `${model}.projectName`, + name: `'${discoveryKind}ProjectName'`, + required: required, + placeholder: 'Input project name', + tip: 'Google Cloud Platforms project name<br/>\ + Usually this is an auto generated project number(ex. 208709979073) that can be found in "Overview" section of Google Developer Console' + }) .pc-form-grid-col-30 - +text('Bucket name:', `${model}.bucketName`, `'${discoveryKind}BucketName'`, required, 'Input bucket name', - 'Google Cloud Storage bucket name<br/>\ - If the bucket does not exist Ignite will automatically create it<br/>\ - However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation') + +form-field__text({ + label: 'Bucket name:', + model: `${model}.bucketName`, + name: `'${discoveryKind}BucketName'`, + required: required, + placeholder: 'Input bucket name', + tip: 'Google Cloud Storage bucket name<br/>\ + If the bucket does not exist Ignite will automatically create it<br/>\ + However the name must be unique across whole Google Cloud Storage and Service Account Id must be authorized to perform this operation' + }) .pc-form-grid-col-30 - +text('Private key path:', `${model}.serviceAccountP12FilePath`, `'${discoveryKind}ServiceAccountP12FilePath'`, required, 'Input private key path', - 'Full path to the private key in PKCS12 format of the Service Account') + +form-field__text({ + label: 'Private key path:', + model: `${model}.serviceAccountP12FilePath`, + name: `'${discoveryKind}ServiceAccountP12FilePath'`, + required: required, + placeholder: 'Input private key path', + tip: 'Full path to the private key in PKCS12 format of the Service Account' + }) .pc-form-grid-col-30 - +text('Account id:', `${model}.serviceAccountId`, `'${discoveryKind}ServiceAccountId'`, required, 'Input account id', 'Service account ID (typically an e-mail address)') + +form-field__text({ + label: 'Account id:', + model: `${model}.serviceAccountId`, + name: `'${discoveryKind}ServiceAccountId'`, + required: required, + placeholder: 'Input account id', + tip: 'Service account ID (typically an e-mail address)' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/jdbc.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/jdbc.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/jdbc.pug index 8a8f4f4..eb9f0aa 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/jdbc.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/jdbc.pug @@ -22,11 +22,24 @@ mixin discovery-jdbc(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-30 - +text('Data source bean name:', `${model}.dataSourceBean`, - '"dataSourceBean"', required, 'Input bean name', 'Name of the data source bean in Spring context') + +form-field__text({ + label: 'Data source bean name:', + model: `${model}.dataSourceBean`, + name: '"dataSourceBean"', + required: required, + placeholder:'Input bean name', + tip: 'Name of the data source bean in Spring context' + }) .pc-form-grid-col-30 - +dialect('Dialect:', `${model}.dialect`, '"dialect"', required, - 'Dialect of SQL implemented by a particular RDBMS:', 'Generic JDBC dialect', 'Choose JDBC dialect') + +form-field__dialect({ + label: 'Dialect:', + model: `${model}.dialect`, + name: '"dialect"', + required, + tip: 'Dialect of SQL implemented by a particular RDBMS:', + genericDialectName: 'Generic JDBC dialect', + placeholder: 'Choose JDBC dialect' + }) .pc-form-grid-col-60 +form-field__checkbox({ label: 'DB schema should be initialized by Ignite', http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/kubernetes.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/kubernetes.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/kubernetes.pug index 9232022..32d94fc 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/kubernetes.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/kubernetes.pug @@ -22,17 +22,38 @@ mixin discovery-kubernetes(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-30 - +text('Service name:', `${model}.serviceName`, `'${discoveryKind}ServiceName'`, 'false', 'ignite', - "The name of Kubernetes service for Ignite pods' IP addresses lookup.<br/>\ - The name of the service must be equal to the name set in service's Kubernetes configuration.<br/>\ - If this parameter is not changed then the name of the service has to be set to 'ignite' in the corresponding Kubernetes configuration.") + +form-field__text({ + label: 'Service name:', + model: `${model}.serviceName`, + name: `'${discoveryKind}ServiceName'`, + placeholder: 'ignite', + tip: "The name of Kubernetes service for Ignite pods' IP addresses lookup.<br/>\ + The name of the service must be equal to the name set in service's Kubernetes configuration.<br/>\ + If this parameter is not changed then the name of the service has to be set to 'ignite' in the corresponding Kubernetes configuration." + }) .pc-form-grid-col-30 - +text('Namespace:', `${model}.namespace`, `'${discoveryKind}Namespace'`, 'false', 'default', - "The namespace the Kubernetes service belongs to.<br/>\ - By default, it's supposed that the service is running under Kubernetes `default` namespace.") + +form-field__text({ + label: 'Namespace:', + model: `${model}.namespace`, + name: `'${discoveryKind}Namespace'`, + placeholder: 'default', + tip: "The namespace the Kubernetes service belongs to.<br/>\ + By default, it's supposed that the service is running under Kubernetes `default` namespace." + }) .pc-form-grid-col-60 - +url('Kubernetes server:', `${model}.masterUrl`, `'${discoveryKind}MasterUrl'`, 'true', 'false', 'https://kubernetes.default.svc.cluster.local:443', - 'The host name of the Kubernetes API server') + +form-field__url({ + label: 'Kubernetes server:', + model: `${model}.masterUrl`, + name: `'${discoveryKind}MasterUrl'`, + enabled: 'true', + placeholder: 'https://kubernetes.default.svc.cluster.local:443', + tip: 'The host name of the Kubernetes API server' + }) .pc-form-grid-col-60 - +text('Service token file:', `${model}.accountToken`, `'${discoveryKind}AccountToken'`, 'false', '/var/run/secrets/kubernetes.io/serviceaccount/token', - 'The path to the service token file') + +form-field__text({ + label: 'Service token file:', + model: `${model}.accountToken`, + name: `'${discoveryKind}AccountToken'`, + placeholder: '/var/run/secrets/kubernetes.io/serviceaccount/token', + tip: 'The path to the service token file' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/multicast.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/multicast.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/multicast.pug index d4f3173..b767e9c 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/multicast.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/multicast.pug @@ -22,21 +22,54 @@ mixin discovery-multicast(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-30 - +text-ip-address('IP address:', `${model}.multicastGroup`, '"multicastGroup"', 'true', '228.1.2.4', 'IP address of multicast group') + +form-field__ip-address({ + label: 'IP address:', + model: `${model}.multicastGroup`, + name: '"multicastGroup"', + enabled: 'true', + placeholder: '228.1.2.4', + tip: 'IP address of multicast group' + }) .pc-form-grid-col-30 - +number-min-max('Port number:', `${model}.multicastPort`, '"multicastPort"', 'true', '47400', '0', '65535', 'Port number which multicast messages are sent to') + +form-field__number({ + label: 'Port number:', + model: `${model}.multicastPort`, + name: '"multicastPort"', + placeholder: '47400', + min: '0', + max: '65535', + tip: 'Port number which multicast messages are sent to' + }) .pc-form-grid-col-20 - +number('Waits for reply:', `${model}.responseWaitTime`, '"responseWaitTime"', 'true', '500', '0', - 'Time in milliseconds IP finder waits for reply to multicast address request') + +form-field__number({ + label: 'Waits for reply:', + model: `${model}.responseWaitTime`, + name: '"responseWaitTime"', + placeholder: '500', + min: '0', + tip: 'Time in milliseconds IP finder waits for reply to multicast address request' + }) .pc-form-grid-col-20 - +number('Attempts count:', `${model}.addressRequestAttempts`, '"addressRequestAttempts"', 'true', '2', '0', - 'Number of attempts to send multicast address request<br/>\ - IP finder re - sends request only in case if no reply for previous request is received') + +form-field__number({ + label: 'Attempts count:', + model: `${model}.addressRequestAttempts`, + name: '"addressRequestAttempts"', + placeholder: '2', + min: '0', + tip: 'Number of attempts to send multicast address request<br/>\ + IP finder re - sends request only in case if no reply for previous request is received' + }) .pc-form-grid-col-20.pc-form-grid-col-free - +text-ip-address('Local address:', `${model}.localAddress`, '"localAddress"', 'true', '0.0.0.0', - 'Local host address used by this IP finder<br/>\ - If provided address is non - loopback then multicast socket is bound to this interface<br/>\ - If local address is not set or is any local address then IP finder creates multicast sockets for all found non - loopback addresses') + +form-field__ip-address({ + label: 'Local address:', + model: `${model}.localAddress`, + name: '"localAddress"', + enabled: 'true', + placeholder: '0.0.0.0', + tip: 'Local host address used by this IP finder<br/>\ + If provided address is non - loopback then multicast socket is bound to this interface<br/>\ + If local address is not set or is any local address then IP finder creates multicast sockets for all found non - loopback addresses' + }) .pc-form-grid-col-60 .ignite-form-field +list-addresses({ http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/s3.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/s3.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/s3.pug index 41d45ac..dc18824 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/s3.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/s3.pug @@ -24,15 +24,32 @@ mixin discovery-s3(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-30 - +text('Bucket name:', `${model}.bucketName`, `'${discoveryKind}BucketName'`, required, 'Input bucket name', 'Bucket name for IP finder') + +form-field__text({ + label: 'Bucket name:', + model: `${model}.bucketName`, + name: `'${discoveryKind}BucketName'`, + required: required, + placeholder: 'Input bucket name', + tip: 'Bucket name for IP finder' + }) .pc-form-grid-col-30 .pc-form-grid__text-only-item(style='font-style: italic;color: #424242;') | AWS credentials will be generated as stub .pc-form-grid-col-40(ng-if-start=`$ctrl.available("2.4.0")`) - +text('Bucket endpoint:', `${model}.bucketEndpoint`, `'${discoveryKind}BucketEndpoint'`, false, 'Input bucket endpoint', - 'Bucket endpoint for IP finder<br/> \ - For information about possible endpoint names visit <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">docs.aws.amazon.com</a>') + +form-field__text({ + label: 'Bucket endpoint:', + model: `${model}.bucketEndpoint`, + name: `'${discoveryKind}BucketEndpoint'`, + placeholder: 'Input bucket endpoint', + tip: 'Bucket endpoint for IP finder<br/> \ + For information about possible endpoint names visit <a href="http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region">docs.aws.amazon.com</a>' + }) .pc-form-grid-col-20(ng-if-end) - +text('SSE algorithm:', `${model}.SSEAlgorithm`, `'${discoveryKind}SSEAlgorithm'`, false, 'Input SSE algorithm', - 'Server-side encryption algorithm for Amazon S3-managed encryption keys<br/> \ - For information about possible S3-managed encryption keys visit <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">docs.aws.amazon.com</a>') \ No newline at end of file + +form-field__text({ + label: 'SSE algorithm:', + model: `${model}.SSEAlgorithm`, + name: `'${discoveryKind}SSEAlgorithm'`, + placeholder: 'Input SSE algorithm', + tip: 'Server-side encryption algorithm for Amazon S3-managed encryption keys<br/> \ + For information about possible S3-managed encryption keys visit <a href="http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html">docs.aws.amazon.com</a>' + }) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/shared.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/shared.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/shared.pug index 83e8f2a..e5b86c3 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/shared.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/shared.pug @@ -21,4 +21,10 @@ mixin discovery-shared(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-60 - +text('File path:', `${model}.path`, '"path"', 'false', 'disco/tcp', 'Shared path') + +form-field__text({ + label: 'File path:', + model: `${model}.path`, + name: '"path"', + placeholder: 'disco/tcp', + tip: 'Shared path' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/vm.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/vm.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/vm.pug index 133de43..aee3a1b 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/vm.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/vm.pug @@ -45,7 +45,8 @@ mixin discovery-vm(modelAt = '$ctrl.clonedCluster') </ul>` })( ng-required='true' - expose-ignite-form-field-control='$vmAddresses' + ng-ref='$vmAddresses' + ng-ref-read='ngModel' ) .form-field__errors( ng-messages=`$vmAddresses.$error` http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper.pug index 826e09b..53d704f 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper.pug @@ -25,36 +25,52 @@ mixin discovery-zookeeper(modelAt = '$ctrl.clonedCluster') .pc-form-grid-row&attributes(attributes=attributes) .pc-form-grid-col-60 - +java-class('Curator:', `${model}.curator`, '"curator"', 'true', 'false', - 'The Curator framework in use<br/>\ - By default generates curator of org.apache.curator. framework.imps.CuratorFrameworkImpl\ - class with configured connect string, retry policy, and default session and connection timeouts', required) + +form-field__java-class({ + label: 'Curator:', + model: `${model}.curator`, + name: '"curator"', + tip: 'The Curator framework in use<br/>\ + By default generates curator of org.apache.curator. framework.imps.CuratorFrameworkImpl\ + class with configured connect string, retry policy, and default session and connection timeouts', + validationActive: required + }) .pc-form-grid-col-60 - +text('Connect string:', `${model}.zkConnectionString`, `'${discoveryKind}ConnectionString'`, required, 'host:port[chroot][,host:port[chroot]]', - 'When <b>IGNITE_ZK_CONNECTION_STRING</b> system property is not configured this property will be used.<br><br>This should be a comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001".<br>If the optional chroot suffix is used the example would look like: "127.0.0.1:3000,127.0.0.1:3002/app/a".<br><br>Where the client would be rooted at "/app/a" and all paths would be relative to this root - ie getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar" (from the server perspective).<br><br><a href="https://zookeeper.apache.org/doc/r3.2.2/api/org/apache/zookeeper/ZooKeeper.html#ZooKeeper(java.lang.String,%20int,%20org.apache.zookeeper.Watcher)">Zookeeper docs</a>') + +form-field__text({ + label: 'Connect string:', + model: `${model}.zkConnectionString`, + name: `'${discoveryKind}ConnectionString'`, + required: required, + placeholder: 'host:port[chroot][,host:port[chroot]]', + tip: 'When <b>IGNITE_ZK_CONNECTION_STRING</b> system property is not configured this property will be used.<br><br>This should be a comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001".<br>If the optional chroot suffix is used the example would look like: "127.0.0.1:3000,127.0.0.1:3002/app/a".<br><br>Where the client would be rooted at "/app/a" and all paths would be relative to this root - ie getting/setting/etc... "/foo/bar" would result in operations being run on "/app/a/foo/bar" (from the server perspective).<br><br><a href="https://zookeeper.apache.org/doc/r3.2.2/api/org/apache/zookeeper/ZooKeeper.html#ZooKeeper(java.lang.String,%20int,%20org.apache.zookeeper.Watcher)">Zookeeper docs</a>' + }) .pc-form-grid-col-60 - +dropdown('Retry policy:', `${model}.retryPolicy.kind`, '"retryPolicy"', 'true', 'Default', - '[\ - {value: "ExponentialBackoff", label: "Exponential backoff"},\ - {value: "BoundedExponentialBackoff", label: "Bounded exponential backoff"},\ - {value: "UntilElapsed", label: "Until elapsed"},\ - {value: "NTimes", label: "Max number of times"},\ - {value: "OneTime", label: "Only once"},\ - {value: "Forever", label: "Always allow retry"},\ - {value: "Custom", label: "Custom"},\ - {value: null, label: "Default"}\ - ]', - 'Available retry policies:\ - <ul>\ - <li>Exponential backoff - retries a set number of times with increasing sleep time between retries</li>\ - <li>Bounded exponential backoff - retries a set number of times with an increasing (up to a maximum bound) sleep time between retries</li>\ - <li>Until elapsed - retries until a given amount of time elapses</li>\ - <li>Max number of times - retries a max number of times</li>\ - <li>Only once - retries only once</li>\ - <li>Always allow retry - retries infinitely</li>\ - <li>Custom - custom retry policy implementation</li>\ - <li>Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10</li>\ - </ul>') + +form-field__dropdown({ + label: 'Retry policy:', + model: `${model}.retryPolicy.kind`, + name: '"retryPolicy"', + placeholder: 'Default', + options: '[\ + {value: "ExponentialBackoff", label: "Exponential backoff"},\ + {value: "BoundedExponentialBackoff", label: "Bounded exponential backoff"},\ + {value: "UntilElapsed", label: "Until elapsed"},\ + {value: "NTimes", label: "Max number of times"},\ + {value: "OneTime", label: "Only once"},\ + {value: "Forever", label: "Always allow retry"},\ + {value: "Custom", label: "Custom"},\ + {value: null, label: "Default"}\ + ]', + tip: 'Available retry policies:\ + <ul>\ + <li>Exponential backoff - retries a set number of times with increasing sleep time between retries</li>\ + <li>Bounded exponential backoff - retries a set number of times with an increasing (up to a maximum bound) sleep time between retries</li>\ + <li>Until elapsed - retries until a given amount of time elapses</li>\ + <li>Max number of times - retries a max number of times</li>\ + <li>Only once - retries only once</li>\ + <li>Always allow retry - retries infinitely</li>\ + <li>Custom - custom retry policy implementation</li>\ + <li>Default - exponential backoff retry policy with configured base sleep time equal to 1000ms and max retry count equal to 10</li>\ + </ul>' + }) .pc-form-grid__break @@ -69,16 +85,31 @@ mixin discovery-zookeeper(modelAt = '$ctrl.clonedCluster') .pc-form-grid-col-30 -var model = `${modelAt}.discovery.ZooKeeper` - +text('Base path:', `${model}.basePath`, '"basePath"', 'false', '/services', 'Base path for service registration') + +form-field__text({ + label: 'Base path:', + model: `${model}.basePath`, + name: '"basePath"', + placeholder: '/services', + tip: 'Base path for service registration' + }) .pc-form-grid-col-30 - +text('Service name:', `${model}.serviceName`, '"serviceName"', 'false', 'ignite', - 'Service name to use, as defined by Curator's ServiceDiscovery recipe<br/>\ - In physical ZooKeeper terms, it represents the node under basePath, under which services will be registered') + +form-field__text({ + label:'Service name:', + model: `${model}.serviceName`, + name: '"serviceName"', + placeholder: 'ignite', + tip: 'Service name to use, as defined by Curator's ServiceDiscovery recipe<br/>\ + In physical ZooKeeper terms, it represents the node under basePath, under which services will be registered' + }) .pc-form-grid__break .pc-form-grid-col-60 - +checkbox('Allow duplicate registrations', `${model}.allowDuplicateRegistrations`, '"allowDuplicateRegistrations"', - 'Whether to register each node only once, or if duplicate registrations are allowed<br/>\ - Nodes will attempt to register themselves, plus those they know about<br/>\ - By default, duplicate registrations are not allowed, but you might want to set this property to <b>true</b> if you have multiple network interfaces or if you are facing troubles') + +form-field__checkbox({ + label: 'Allow duplicate registrations', + model: `${model}.allowDuplicateRegistrations`, + name: '"allowDuplicateRegistrations"', + tip: 'Whether to register each node only once, or if duplicate registrations are allowed<br/>\ + Nodes will attempt to register themselves, plus those they know about<br/>\ + By default, duplicate registrations are not allowed, but you might want to set this property to <b>true</b> if you have multiple network interfaces or if you are facing troubles' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug index 0ddc1e9..84f7f2d 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/bounded-exponential-backoff.pug @@ -19,8 +19,30 @@ include /app/helpers/jade/mixins -var model = `${modelAt}.discovery.ZooKeeper.retryPolicy.BoundedExponentialBackoff` .pc-form-grid-col-20(ng-if-start=`${modelRetryPolicyKind} === 'BoundedExponentialBackoff'`) - +number('Base interval:', `${model}.baseSleepTimeMs`, '"beBaseSleepTimeMs"', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries') + +form-field__number({ + label: 'Base interval:', + model: `${model}.baseSleepTimeMs`, + name: '"beBaseSleepTimeMs"', + placeholder: '1000', + min: '0', + tip: 'Initial amount of time in ms to wait between retries' + }) .pc-form-grid-col-20 - +number('Max interval:', `${model}.maxSleepTimeMs`, '"beMaxSleepTimeMs"', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry') + +form-field__number({ + label: 'Max interval:', + model: `${model}.maxSleepTimeMs`, + name: '"beMaxSleepTimeMs"', + placeholder: 'Integer.MAX_VALUE', + min: '0', + tip: 'Max time in ms to sleep on each retry' + }) .pc-form-grid-col-20(ng-if-end) - +number-min-max('Max retries:', `${model}.maxRetries`, '"beMaxRetries"', 'true', '10', '0', '29', 'Max number of times to retry') + +form-field__number({ + label: 'Max retries:', + model: `${model}.maxRetries`, + name: '"beMaxRetries"', + placeholder: '10', + min: '0', + max: '29', + tip: 'Max number of times to retry' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/custom.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/custom.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/custom.pug index 6a1bcfb..1cac6b8 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/custom.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/custom.pug @@ -21,5 +21,12 @@ include /app/helpers/jade/mixins -var required = `${modelAt}.discovery.kind === "ZooKeeper" && ${modelAt}.discovery.ZooKeeper.retryPolicy.kind === "Custom"` .pc-form-grid-col-60(ng-if-start=`${modelRetryPolicyKind} === 'Custom'`) - +java-class('Class name:', `${retry}.className`, '"customClassName"', 'true', required, 'Custom retry policy implementation class name', required) -.pc-form-grid__break(ng-if-end) \ No newline at end of file + +form-field__java-class({ + label: 'Class name:', + model: `${retry}.className`, + name: '"customClassName"', + required: required, + tip: 'Custom retry policy implementation class name', + validationActive: required + }) +.pc-form-grid__break(ng-if-end) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug index bfc3c02..ed0b5ff 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/exponential-backoff.pug @@ -19,8 +19,30 @@ include /app/helpers/jade/mixins -var model = `${modelAt}.discovery.ZooKeeper.retryPolicy.ExponentialBackoff` .pc-form-grid-col-20(ng-if-start=`${modelRetryPolicyKind} === 'ExponentialBackoff'`) - +number('Base interval:', `${model}.baseSleepTimeMs`, '"expBaseSleepTimeMs"', 'true', '1000', '0', 'Initial amount of time in ms to wait between retries') + +form-field__number({ + label: 'Base interval:', + model: `${model}.baseSleepTimeMs`, + name: '"expBaseSleepTimeMs"', + placeholder: '1000', + min: '0', + tip: 'Initial amount of time in ms to wait between retries' + }) .pc-form-grid-col-20 - +number-min-max('Max retries:', `${model}.maxRetries`, '"expMaxRetries"', 'true', '10', '0', '29', 'Max number of times to retry') + +form-field__number({ + label: 'Max retries:', + model: `${model}.maxRetries`, + name: '"expMaxRetries"', + placeholder: '10', + min: '0', + max: '29', + tip: 'Max number of times to retry' + }) .pc-form-grid-col-20(ng-if-end) - +number('Max interval:', `${model}.maxSleepMs`, '"expMaxSleepMs"', 'true', 'Integer.MAX_VALUE', '0', 'Max time in ms to sleep on each retry') + +form-field__number({ + label: 'Max interval:', + model: `${model}.maxSleepMs`, + name: '"expMaxSleepMs"', + placeholder: 'Integer.MAX_VALUE', + min: '0', + tip: 'Max time in ms to sleep on each retry' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/forever.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/forever.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/forever.pug index 575106b..e61a3c6 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/forever.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/forever.pug @@ -19,5 +19,12 @@ include /app/helpers/jade/mixins -var model = `${modelAt}.discovery.ZooKeeper.retryPolicy.Forever` .pc-form-grid-col-30(ng-if-start=`${modelRetryPolicyKind} === 'Forever'`) - +number('Interval:', `${model}.retryIntervalMs`, '"feRetryIntervalMs"', 'true', '1000', '0', 'Time in ms between retry attempts') + +form-field__number({ + label: 'Interval:', + model: `${model}.retryIntervalMs`, + name: '"feRetryIntervalMs"', + placeholder: '1000', + min: '0', + tip: 'Time in ms between retry attempts' + }) .pc-form-grid__break(ng-if-end) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/n-times.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/n-times.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/n-times.pug index dbb54e5..e44d030 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/n-times.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/n-times.pug @@ -19,6 +19,20 @@ include /app/helpers/jade/mixins -var model = `${modelAt}.discovery.ZooKeeper.retryPolicy.NTimes` .pc-form-grid-col-30(ng-if-start=`${modelRetryPolicyKind} === 'NTimes'`) - +number('Retries:', `${model}.n`, '"n"', 'true', '10', '0', 'Number of times to retry') + +form-field__number({ + label: 'Retries:', + model: `${model}.n`, + name: '"n"', + placeholder: '10', + min: '0', + tip: 'Number of times to retry' + }) .pc-form-grid-col-30(ng-if-end) - +number('Interval:', `${model}.sleepMsBetweenRetries`, '"ntSleepMsBetweenRetries"', 'true', '1000', '0', 'Time in ms between retry attempts') + +form-field__number({ + label: 'Interval:', + model: `${model}.sleepMsBetweenRetries`, + name: '"ntSleepMsBetweenRetries"', + placeholder: '1000', + min: '0', + tip: 'Time in ms between retry attempts' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/one-time.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/one-time.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/one-time.pug index 4ff1644..4d86f5c 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/one-time.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/one-time.pug @@ -19,5 +19,12 @@ include /app/helpers/jade/mixins -var model = `${modelAt}.discovery.ZooKeeper.retryPolicy.OneTime` .pc-form-grid-col-30(ng-if-start=`${modelRetryPolicyKind} === 'OneTime'`) - +number('Interval:', `${model}.sleepMsBetweenRetry`, '"oneSleepMsBetweenRetry"', 'true', '1000', '0', 'Time in ms to retry attempt') -.pc-form-grid__break(ng-if-end) \ No newline at end of file + +form-field__number({ + label: 'Interval:', + model: `${model}.sleepMsBetweenRetry`, + name: '"oneSleepMsBetweenRetry"', + placeholder: '1000', + min: '0', + tip: 'Time in ms to retry attempt' + }) +.pc-form-grid__break(ng-if-end) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/until-elapsed.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/until-elapsed.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/until-elapsed.pug index ebde01c..acb1dff 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/until-elapsed.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/general/discovery/zookeeper/retrypolicy/until-elapsed.pug @@ -19,6 +19,20 @@ include /app/helpers/jade/mixins -var model = `${modelAt}.discovery.ZooKeeper.retryPolicy.UntilElapsed` .pc-form-grid-col-30(ng-if-start=`${modelRetryPolicyKind} === 'UntilElapsed'`) - +number('Total time:', `${model}.maxElapsedTimeMs`, '"ueMaxElapsedTimeMs"', 'true', '60000', '0', 'Total time in ms for execution of retry attempt') + +form-field__number({ + label: 'Total time:', + model: `${model}.maxElapsedTimeMs`, + name: '"ueMaxElapsedTimeMs"', + placeholder: '60000', + min: '0', + tip: 'Total time in ms for execution of retry attempt' + }) .pc-form-grid-col-30(ng-if-end) - +number('Interval:', `${model}.sleepMsBetweenRetries`, '"ueSleepMsBetweenRetries"', 'true', '1000', '0', 'Time in ms between retry attempts') + +form-field__number({ + label: 'Interval:', + model: `${model}.sleepMsBetweenRetries`, + name: '"ueSleepMsBetweenRetries"', + placeholder: '1000', + min: '0', + tip: 'Time in ms between retry attempts' + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/hadoop.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/hadoop.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/hadoop.pug index 16a072c..082f7bd 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/hadoop.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/hadoop.pug @@ -25,51 +25,110 @@ include /app/helpers/jade/mixins -var libs = model + '.nativeLibraryNames' panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) - -var uniqueTip = 'Such native library already exists!' - panel-title Hadoop configuration panel-description Hadoop Accelerator configuration. panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) .pca-form-column-6.pc-form-grid-row .pc-form-grid-col-60 - +dropdown('Map reduce planner:', plannerModel + '.kind', '"MapReducePlanner"', 'true', 'Default', '[\ - {value: "Weighted", label: "Weighted"},\ - {value: "Custom", label: "Custom"},\ - {value: null, 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>') + +form-field__dropdown({ + label: 'Map reduce planner:', + model: `${plannerModel}.kind`, + name: '"MapReducePlanner"', + placeholder: 'Default', + options: '[\ + {value: "Weighted", label: "Weighted"},\ + {value: "Custom", label: "Custom"},\ + {value: null, label: "Default"}\ + ]', + tip: '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>' + }) .pc-form-group.pc-form-grid-row(ng-show=weightedPlanner) .pc-form-grid-col-20 - +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') + +form-field__number({ + label: 'Local mapper weight:', + model: `${weightedModel}.localMapperWeight`, + name: '"LocalMapperWeight"', + placeholder: '100', + min: '0', + tip: 'This weight is added to a node when a mapper is assigned and it is input split data is located on this node' + }) .pc-form-grid-col-20 - +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') + +form-field__number({ + label: 'Remote mapper weight:', + model: `${weightedModel}.remoteMapperWeight`, + name: '"remoteMapperWeight"', + placeholder: '100', + min: '0', + tip: 'This weight is added to a node when a mapper is assigned, but it is input split data is not located on this node' + }) .pc-form-grid-col-20 - +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') + +form-field__number({ + label: 'Local reducer weight:', + model: `${weightedModel}.localReducerWeight`, + name: '"localReducerWeight"', + placeholder: '100', + min: '0', + tip: 'This weight is added to a node when a reducer is assigned and the node have at least one assigned mapper' + }) .pc-form-grid-col-30 - +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') + +form-field__number({ + label: 'Remote reducer weight:', + model: `${weightedModel}.remoteReducerWeight`, + name: '"remoteReducerWeight"', + placeholder: '100', + min: '0', + tip: 'This weight is added to a node when a reducer is assigned, but the node does not have any assigned mappers' + }) .pc-form-grid-col-30 - +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") + +form-field__number({ + label: 'Local mapper weight:', + model: `${weightedModel}.preferLocalReducerThresholdWeight`, + name: '"preferLocalReducerThresholdWeight"', + placeholder: '200', + min: '0', + tip: 'When threshold is reached, a node with mappers is no longer considered as preferred for further reducer assignments' + }) .pc-form-group.pc-form-grid-row(ng-show=customPlanner) .pc-form-grid-col-60 - +java-class('Class name:', plannerModel + '.Custom.className', '"MapReducePlannerCustomClass"', 'true', customPlanner, - 'Custom planner implementation') + +form-field__java-class({ + label: 'Class name:', + model: `${plannerModel}.Custom.className`, + name: '"MapReducePlannerCustomClass"', + required: customPlanner, + tip: 'Custom planner implementation' + }) .pc-form-grid-col-30 - +number('Finished job info TTL:', model + '.finishedJobInfoTtl', '"finishedJobInfoTtl"', 'true', '30000', '0', - 'Finished job info time-to-live in milliseconds') + +form-field__number({ + label: 'Finished job info TTL:', + model: `${model}.finishedJobInfoTtl`, + name: '"finishedJobInfoTtl"', + placeholder: '30000', + min: '0', + tip: 'Finished job info time-to-live in milliseconds' + }) .pc-form-grid-col-30 - +number('Max parallel tasks:', model + '.maxParallelTasks', '"maxParallelTasks"', 'true', 'availableProcessors * 2', '1', - 'Max number of local tasks that may be executed in parallel') + +form-field__number({ + label: 'Max parallel tasks:', + model: `${model}.maxParallelTasks`, + name: '"maxParallelTasks"', + placeholder: 'availableProcessors * 2', + min: '1', + tip: 'Max number of local tasks that may be executed in parallel' + }) .pc-form-grid-col-30 - +number('Max task queue size:', model + '.maxTaskQueueSize', '"maxTaskQueueSize"', 'true', '8192', '1', 'Max task queue size') + +form-field__number({ + label: 'Max task queue size:', + model: `${model}.maxTaskQueueSize`, + name: '"maxTaskQueueSize"', + placeholder: '8192', + min: '1', + tip: 'Max task queue size' + }) .pc-form-grid-col-60 .ignite-form-field +list-text-field({ @@ -81,7 +140,7 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) })( list-editable-cols=`::[{name: 'Native libraries:'}]` ) - +unique-feedback(_, `${uniqueTip}`) + +form-field__error({ error: 'igniteUnique', message: 'Such native library already exists!' }) .pca-form-column-6 +preview-xml-java(model, 'clusterHadoop') http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/load-balancing.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/load-balancing.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/load-balancing.pug index 390952c..e96b016 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/load-balancing.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/load-balancing.pug @@ -25,7 +25,7 @@ include /app/helpers/jade/mixins panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) panel-title Load balancing configuration panel-description - | Load balancing component balances job distribution among cluster nodes. + | Load balancing component balances job distribution among cluster nodes. | #[a.link-success(href="https://apacheignite.readme.io/docs/load-balancing" target="_blank") More info] panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) .pca-form-column-6 @@ -59,50 +59,115 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) ignite-unique=`${loadBalancingSpi}` ignite-unique-property='kind' ) - +unique-feedback('"loadBalancingKind"', 'Load balancing SPI of that type is already configured') + +form-field__error({ error: 'igniteUnique', message: 'Load balancing SPI of that type is already configured' }) .settings-row(ng-show='$item.kind === "RoundRobin"') - +checkbox('Per task', '$item.RoundRobin.perTask', '"loadBalancingRRPerTask"', 'A new round robin order should be created for every task flag') + +form-field__checkbox({ + label: 'Per task', + model: '$item.RoundRobin.perTask', + name: '"loadBalancingRRPerTask"', + tip: 'A new round robin order should be created for every task flag' + }) .settings-row(ng-show='$item.kind === "Adaptive"') - +dropdown('Load probe:', '$item.Adaptive.loadProbe.kind', '"loadBalancingAdaptiveLoadProbeKind"', 'true', 'Default', '[\ + +form-field__dropdown({ + label: 'Load probe:', + model: '$item.Adaptive.loadProbe.kind', + name: '"loadBalancingAdaptiveLoadProbeKind"', + placeholder: 'Default', + options: '[\ {value: "Job", label: "Job count"},\ {value: "CPU", label: "CPU load"},\ {value: "ProcessingTime", label: "Processing time"},\ {value: "Custom", label: "Custom"},\ {value: null, label: "Default"}\ - ]', 'Implementation of node load probing\ - <ul>\ - <li>Job count - Based on active and waiting job count</li>\ - <li>CPU load - Based on CPU load</li>\ - <li>Processing time - Based on total job processing time</li>\ - <li>Custom - Custom load probing implementation</li>\ - <li>Default - Default load probing implementation</li>\ - </ul>') + ]', + tip: 'Implementation of node load probing\ + <ul>\ + <li>Job count - Based on active and waiting job count</li>\ + <li>CPU load - Based on CPU load</li>\ + <li>Processing time - Based on total job processing time</li>\ + <li>Custom - Custom load probing implementation</li>\ + <li>Default - Default load probing implementation</li>\ + </ul>' + }) .settings-row(ng-show='$item.kind === "Adaptive" && $item.Adaptive.loadProbe.kind') .panel-details(ng-show='$item.Adaptive.loadProbe.kind === "Job"') .details-row - +checkbox('Use average', '$item.Adaptive.loadProbe.Job.useAverage', '"loadBalancingAdaptiveJobUseAverage"', 'Use average CPU load vs. current') + +form-field__checkbox({ + label: 'Use average', + model: '$item.Adaptive.loadProbe.Job.useAverage', + name: '"loadBalancingAdaptiveJobUseAverage"', + tip: 'Use average CPU load vs. current' + }) .panel-details(ng-show='$item.Adaptive.loadProbe.kind === "CPU"') .details-row - +checkbox('Use average', '$item.Adaptive.loadProbe.CPU.useAverage', '"loadBalancingAdaptiveCPUUseAverage"', 'Use average CPU load vs. current') + +form-field__checkbox({ + label: 'Use average', + model: '$item.Adaptive.loadProbe.CPU.useAverage', + name: '"loadBalancingAdaptiveCPUUseAverage"', + tip: 'Use average CPU load vs. current' + }) .details-row - +checkbox('Use processors', '$item.Adaptive.loadProbe.CPU.useProcessors', '"loadBalancingAdaptiveCPUUseProcessors"', "divide each node's CPU load by the number of processors on that node") + +form-field__checkbox({ + label: 'Use processors', + model: '$item.Adaptive.loadProbe.CPU.useProcessors', + name: '"loadBalancingAdaptiveCPUUseProcessors"', + tip: 'Divide each node\'s CPU load by the number of processors on that node' + }) .details-row - +number-min-max-step('Processor coefficient:', '$item.Adaptive.loadProbe.CPU.processorCoefficient', - '"loadBalancingAdaptiveCPUProcessorCoefficient"', 'true', '1', '0.001', '1', '0.05', 'Coefficient of every CPU') + +form-field__number({ + label: 'Processor coefficient:', + model: '$item.Adaptive.loadProbe.CPU.processorCoefficient', + name: '"loadBalancingAdaptiveCPUProcessorCoefficient"', + placeholder: '1', + min: '0.001', + max: '1', + step: '0.05', + tip: 'Coefficient of every CPU' + }) .panel-details(ng-show='$item.Adaptive.loadProbe.kind === "ProcessingTime"') .details-row - +checkbox('Use average', '$item.Adaptive.loadProbe.ProcessingTime.useAverage', '"loadBalancingAdaptiveJobUseAverage"', 'Use average execution time vs. current') + +form-field__checkbox({ + label: 'Use average', + model: '$item.Adaptive.loadProbe.ProcessingTime.useAverage', + name: '"loadBalancingAdaptiveJobUseAverage"', + tip: 'Use average execution time vs. current' + }) .panel-details(ng-show=loadProbeCustom) .details-row - +java-class('Load brobe implementation:', '$item.Adaptive.loadProbe.Custom.className', '"loadBalancingAdaptiveJobUseClass"', 'true', loadProbeCustom, - 'Custom load balancing SPI implementation class name.', loadProbeCustom) + +form-field__java-class({ + label: 'Load brobe implementation:', + model: '$item.Adaptive.loadProbe.Custom.className', + name: '"loadBalancingAdaptiveJobUseClass"', + required: loadProbeCustom, + tip: 'Custom load balancing SPI implementation class name.', + validationActive: loadProbeCustom + }) + .settings-row(ng-show='$item.kind === "WeightedRandom"') - +number('Node weight:', '$item.WeightedRandom.nodeWeight', '"loadBalancingWRNodeWeight"', 'true', 10, '1', 'Weight of node') + +form-field__number({ + label: 'Node weight:', + model: '$item.WeightedRandom.nodeWeight', + name: '"loadBalancingWRNodeWeight"', + placeholder: '10', + min: '1', + tip: 'Weight of node' + }) .settings-row(ng-show='$item.kind === "WeightedRandom"') - +checkbox('Use weights', '$item.WeightedRandom.useWeights', '"loadBalancingWRUseWeights"', 'Node weights should be checked when doing random load balancing') + +form-field__checkbox({ + label: 'Use weights', + model: '$item.WeightedRandom.useWeights', + name: '"loadBalancingWRUseWeights"', + tip: 'Node weights should be checked when doing random load balancing' + }) .settings-row(ng-show=loadBalancingCustom) - +java-class('Load balancing SPI implementation:', '$item.Custom.className', '"loadBalancingClass"', 'true', loadBalancingCustom, - 'Custom load balancing SPI implementation class name.', loadBalancingCustom) + +form-field__java-class({ + label: 'Load balancing SPI implementation:', + model: '$item.Custom.className', + name: '"loadBalancingClass"', + required: loadBalancingCustom, + tip: 'Custom load balancing SPI implementation class name.', + validationActive: loadBalancingCustom + }) list-editable-no-items list-editable-add-item-button( http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger.pug index 7b4b9aa..c30448c 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger.pug @@ -26,8 +26,12 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) panel-content.pca-form-row(ng-if=`ui.isPanelLoaded('${form}')`) .pca-form-column-6.pc-form-grid-row .pc-form-grid-col-60 - +dropdown('Logger:', kind, '"logger"', 'true', 'Default', - '[\ + +form-field__dropdown({ + label: 'Logger:', + model: kind, + name: '"logger"', + placeholder: 'Default', + options: '[\ {value: "Log4j", label: "Apache Log4j"},\ {value: "Log4j2", label: "Apache Log4j 2"},\ {value: "SLF4J", label: "Simple Logging Facade (SLF4J)"},\ @@ -37,17 +41,18 @@ panel-collapsible(ng-form=form on-open=`ui.loadPanel('${form}')`) {value: "Custom", label: "Custom"},\ {value: null, label: "Default"}\ ]', - 'Logger implementations\ - <ul>\ - <li>Apache Log4j - log4j-based logger</li>\ - <li>Apache Log4j 2 - Log4j2-based logger</li>\ - <li>Simple Logging Facade (SLF4J) - SLF4j-based logger</li>\ - <li>Java logger (JUL) - built in java logger</li>\ - <li>Jakarta Commons Logging (JCL) - wraps any JCL (Jakarta Commons Logging) loggers</li>\ - <li>Null logger - logger which does not output anything</li>\ - <li>Custom - custom logger implementation</li>\ - <li>Default - Apache Log4j if awailable on classpath or Java logger otherwise</li>\ - </ul>') + tip: 'Logger implementations\ + <ul>\ + <li>Apache Log4j - log4j-based logger</li>\ + <li>Apache Log4j 2 - Log4j2-based logger</li>\ + <li>Simple Logging Facade (SLF4J) - SLF4j-based logger</li>\ + <li>Java logger (JUL) - built in java logger</li>\ + <li>Jakarta Commons Logging (JCL) - wraps any JCL (Jakarta Commons Logging) loggers</li>\ + <li>Null logger - logger which does not output anything</li>\ + <li>Custom - custom logger implementation</li>\ + <li>Default - Apache Log4j if awailable on classpath or Java logger otherwise</li>\ + </ul>' + }) .pc-form-group(ng-show=`${kind} && (${kind} === 'Log4j2' || ${kind} === 'Log4j' || ${kind} === 'Custom')`) .pc-form-grid-row(ng-show=`${kind} === 'Log4j2'`) include ./logger/log4j2 http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/custom.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/custom.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/custom.pug index a717754..589a9c0 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/custom.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/custom.pug @@ -21,4 +21,11 @@ include /app/helpers/jade/mixins -var required = '$ctrl.clonedCluster.logger.kind === "Custom"' .pc-form-grid-col-60 - +java-class('Class:', `${model}.class`, '"customLogger"', 'true', required, 'Logger implementation class name', required) + +form-field__java-class({ + label: 'Class:', + model: `${model}.class`, + name: '"customLogger"', + required: required, + tip: 'Logger implementation class name', + validationActive: required + }) http://git-wip-us.apache.org/repos/asf/ignite/blob/cca10d0c/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/log4j.pug ---------------------------------------------------------------------- diff --git a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/log4j.pug b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/log4j.pug index a1cab60..1f216b7 100644 --- a/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/log4j.pug +++ b/modules/web-console/frontend/app/components/page-configure-advanced/components/cluster-edit-form/templates/logger/log4j.pug @@ -21,29 +21,48 @@ include /app/helpers/jade/mixins -var pathRequired = model + '.mode === "Path" && $ctrl.clonedCluster.logger.kind === "Log4j"' .pc-form-grid-col-30 - +dropdown('Level:', `${model}.level`, '"log4jLevel"', 'true', 'Default', - '[\ - {value: "OFF", label: "OFF"},\ - {value: "FATAL", label: "FATAL"},\ - {value: "ERROR", label: "ERROR"},\ - {value: "WARN", label: "WARN"},\ - {value: "INFO", label: "INFO"},\ - {value: "DEBUG", label: "DEBUG"},\ - {value: "TRACE", label: "TRACE"},\ - {value: "ALL", label: "ALL"},\ - {value: null, label: "Default"}\ - ]', - 'Level for internal log4j implementation') + +form-field__dropdown({ + label: 'Level:', + model: `${model}.level`, + name: '"log4jLevel"', + placeholder: 'Default', + options: '[\ + {value: "OFF", label: "OFF"},\ + {value: "FATAL", label: "FATAL"},\ + {value: "ERROR", label: "ERROR"},\ + {value: "WARN", label: "WARN"},\ + {value: "INFO", label: "INFO"},\ + {value: "DEBUG", label: "DEBUG"},\ + {value: "TRACE", label: "TRACE"},\ + {value: "ALL", label: "ALL"},\ + {value: null, label: "Default"}\ + ]', + tip: 'Level for internal log4j implementation' + }) + .pc-form-grid-col-30 - +dropdown-required('Logger configuration:', `${model}.mode`, '"log4jMode"', 'true', 'true', 'Choose logger mode', - '[\ - {value: "Default", label: "Default"},\ - {value: "Path", label: "Path"}\ - ]', - 'Choose logger configuration\ - <ul>\ - <li>Default - default logger</li>\ - <li>Path - path or URI to XML configuration</li>\ - </ul>') + +form-field__dropdown({ + label: 'Logger configuration:', + model: `${model}.mode`, + name: '"log4jMode"', + required: 'true', + placeholder: 'Choose logger mode', + options: '[\ + {value: "Default", label: "Default"},\ + {value: "Path", label: "Path"}\ + ]', + tip: 'Choose logger configuration\ + <ul>\ + <li>Default - default logger</li>\ + <li>Path - path or URI to XML configuration</li>\ + </ul>' + }) .pc-form-grid-col-60(ng-show=pathRequired) - +text('Path:', `${model}.path`, '"log4jPath"', pathRequired, 'Input path', 'Path or URI to XML configuration') + +form-field__text({ + label: 'Path:', + model: `${model}.path`, + name: '"log4jPath"', + required: pathRequired, + placeholder: 'Input path', + tip: 'Path or URI to XML configuration' + })
