Merge branch 'main' into show-ip-address

This commit is contained in:
dharini committed 2022-02-15 15:43:04 -08:00
commit 92eb0a4be2
9 files changed
+68 -72

No files matched your search

+21 -34
View File
@@ -2,32 +2,6 @@ import factory from '../generated/factories/host';
import permissions from '../helpers/permissions';
import { internet, datatype } from 'faker';
/**
* Returns an array of strings with IP addresses.
* @returns {array}
*/
const returnIpAddressesArray = () => {
const addressesAmount = Math.floor(Math.random() * 6) + 1;
let result = [];
for (let i = 0; i < addressesAmount; ++i) {
result.push(internet.ip());
}
return result;
};
/**
* Returns an array of strings with DNS names.
* @param {string} hostType
*/
const returnDnsNames = () => {
const dnsNamesAmount = Math.floor(Math.random() * 6) + 1;
let result = [];
for (let i = 0; i < dnsNamesAmount; i++) {
result.push(internet.domainName());
}
return result;
};
export default factory.extend({
id: (i) => `host-id-${i}`,
type() {
@@ -45,13 +19,26 @@ export default factory.extend({
return this.hostCatalog.plugin;
}
},
attributes() {
return {
address: internet.ipv6(),
ip_addresses: returnIpAddressesArray(),
external_id: datatype.uuid(),
// Only aws plugins have dns_names
dns_names: this.plugin?.name === 'aws' ? returnDnsNames() : undefined,
};
ip_addresses() {
const addressesAmount = Math.floor(Math.random() * 6) + 1;
let result = [];
for (let i = 0; i < addressesAmount; ++i) {
result.push(internet.ip());
}
return result;
},
external_id() {
return datatype.uuid();
},
// Only aws plugins have dns_names
dns_names() {
if (this.plugin?.name === 'aws') {
const dnsNamesAmount = Math.floor(Math.random() * 6) + 1;
let result = [];
for (let i = 0; i < dnsNamesAmount; i++) {
result.push(internet.domainName());
}
return result;
}
},
});
@@ -1,5 +1,5 @@
import { Factory } from 'ember-cli-mirage';
import { random, date, datatype } from 'faker';
import { random, date, datatype, internet } from 'faker';
/**
* GeneratedHostModelFactory
@@ -11,4 +11,7 @@ export default Factory.extend({
created_time: () => date.recent(),
updated_time: () => date.recent(),
version: () => datatype.number(),
attributes: () => {
return { address: internet.ipv6() };
},
});
+10 -8
View File
@@ -118,7 +118,7 @@ callback_url:
filter:
label: Filter
help: A boolean expression defining a filter run against the provided information.
tenant_id:
tenant_id:
label: Tenant ID
help: The tenant (directory) ID for your Azure Active Directory application.
link-text: Learn more
@@ -134,20 +134,22 @@ secret_access_key:
label: Secret Access Key
help: The subscription ID for the subscription with read access.
link-text: Learn more
region:
region:
label: Region
provider:
label: Provider Details
description: This is the provider for this host catalog. The format of the host set filters are specific to each provider.
help:
client:
help:
client:
label: Client ID
help: The client ID for the client you want Boundary to use.
link-text : Learn more
choose_a_provider:
label: Choose a provider
choose_a_provider:
label: Choose a provider
description: There are several built-in plugins for the most common providers. You can choose from on of the included plugins or use a custom plugin.
filter:
filter:
label: Filter
help: Create a filter to select resources using values such as tag name or tag value. Filter format is specific to each provider.
link-text: Learn more about using filters for Azure resources.
link-text: Learn more about using filters for Azure resources.
disable_credential_rotation:
label: Disable credential rotation
@@ -13,7 +13,6 @@
@label={{t 'form.name.label'}}
@helperText={{t 'form.name.help'}}
@error={{@model.errors.name}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|
>
@@ -33,7 +32,6 @@
@label={{t 'form.description.label'}}
@helperText={{t 'form.description.help'}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|
>
@@ -156,6 +154,16 @@
@link='https://learn.hashicorp.com/tutorials/boundary/cloud-host-catalogs#set-up-cloud-hosts'
readonly={{false}}
/>
<form.checkbox
@name='disable_credential_rotation'
@checked={{@model.disable_credential_rotation}}
@label={{t 'form.disable_credential_rotation.label'}}
@onChange={{fn this.toggleDisableCredentialRotation @model}}
/>
&nbsp;
{{#if (can 'save model' @model)}}
<form.actions
@disabled={{if @model.cannotSave @model.cannotSave}}
@@ -0,0 +1,11 @@
import Component from '@glimmer/component';
import { action } from '@ember/object';
export default class FormHostCatalogAwsComponent extends Component {
// =actions
@action
toggleDisableCredentialRotation(model) {
model.disable_credential_rotation = !model.disable_credential_rotation;
}
}
@@ -13,7 +13,6 @@
@label={{t 'form.name.label'}}
@helperText={{t 'form.name.help'}}
@error={{@model.errors.name}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|
>
@@ -33,7 +32,6 @@
@label={{t 'form.description.label'}}
@helperText={{t 'form.description.help'}}
@error={{@model.errors.description}}
disabled={{@model.isSaving}}
readonly={{false}}
as |field|
>
@@ -15,9 +15,6 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsNewRoute extends
const { id: host_catalog_id, compositeType } = this.modelFor(
'scopes.scope.host-catalogs.host-catalog'
);
if (this.currentModel?.isNew) {
this.currentModel.rollbackAttributes();
}
return this.store.createRecord('host-set', {
compositeType,
host_catalog_id,
@@ -54,17 +51,10 @@ export default class ScopesScopeHostCatalogsHostCatalogHostSetsNewRoute extends
model: model,
});
}
/**
* Update type of host set
* @param {string} type
*/
@action
async changeType(type) {
await this.router.replaceWith({ queryParams: { type } });
}
/**
* Adds a string item to array `property` on the passed `filter`.
* @param {hostSetModel} hostSet
* @param {string} property
* @param {string} value
@@ -23,34 +23,32 @@ export default class ScopesScopeHostCatalogsNewRoute extends Route {
* creating another, but reuse name/description if available.
* @return {HostCatalogModel}
*/
model() {
model({ type: compositeType = 'static' }) {
const scopeModel = this.modelFor('scopes.scope');
let name, description;
let name, description, disable_credential_rotation;
if (this.currentModel?.isNew) {
({ name, description } = this.currentModel);
this.currentModel.rollbackAttributes();
}
if (compositeType === 'azure') {
disable_credential_rotation = true;
}
return this.store.createRecord('host-catalog', {
scopeModel,
compositeType,
name,
description,
disable_credential_rotation,
});
}
afterModel(model, transition) {
this.changeType(transition.to.queryParams?.type);
}
/**
* Update type of host catalog
* @param {string} type
*/
@action
async changeType(type) {
const model = this.modelFor('scopes.scope.host-catalogs.new');
if (!type) type = 'static'; // Unknown host catalog type defaults to 'static'
if (model.isUnknown) type = 'aws'; //Is this the default case for plugin type?
model.compositeType = type;
await this.router.replaceWith({ queryParams: { type } });
changeType(type) {
if (type === 'plugin') type = 'aws';
this.router.replaceWith({ queryParams: { type } });
}
}
@@ -4,7 +4,6 @@
@model={{@model}}
@submit={{route-action 'save' @model}}
@cancel={{route-action 'cancel' @model}}
@changeType={{route-action 'changeType' @model.type}}
@removeItemByIndex={{route-action 'removeItemByIndex' @model}}
@addStringItem={{route-action 'addStringItem' @model}}
/>