blob: 800302ad0c65a6ab67fbc67b9361a1ff92f89b16 [file] [log] [blame]
//-
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
include /app/helpers/jade/mixins
mixin discovery-cloud(modelAt='$ctrl.clonedCluster')
-const model = `${modelAt}.discovery.Cloud`
-const discoveryKind = 'Cloud'
-const required = `${modelAt}.discovery.kind == "${discoveryKind}"`
-const regions = `${model}.regions`
-const zones = `${model}.zones`
-const formRegions = 'discoveryCloudRegions'
-const formZones = 'discoveryCloudZones'
div.pc-form-grid-row&attributes(attributes=attributes)
.pc-form-grid-col-30
+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
+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
+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
+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({
items: regions,
lbl: 'Region name',
name: 'regionName',
itemName: 'region',
itemsName: 'regions'
})(
list-editable-cols=`::[{
name: 'Regions:',
tip: "List of regions where VMs are located<br />
If the regions are not set then every region, that a cloud provider has, will be investigated. This could lead to significant performance degradation<br />
Note, that some cloud providers, like Google Compute Engine, doesn't have a notion of a region. For such providers regions are redundant"
}]`
)
+form-field__error({ error: 'igniteUnique', message: 'Such region already exists!' })
.pc-form-grid-col-60
.ignite-form-field
+list-text-field({
items: zones,
lbl: 'Zone name',
name: 'zoneName',
itemName: 'zone',
itemsName: 'zones'
})(
list-editable-cols=`::[{
name: 'Zones:',
tip: "List of zones where VMs are located<br />
If the zones are not set then every zone from specified regions, will be taken into account<br />
Note, that some cloud providers, like Rackspace, doesn't have a notion of a zone. For such providers zones are redundant"
}]`
)
+form-field__error({ error: 'igniteUnique', message: 'Such zone already exists!' })