diff --git a/ui/packages/consul-ui/app/components/hcp-nav-item/index.js b/ui/packages/consul-ui/app/components/hcp-nav-item/index.js
index 1de939d3561f..741de542de77 100644
--- a/ui/packages/consul-ui/app/components/hcp-nav-item/index.js
+++ b/ui/packages/consul-ui/app/components/hcp-nav-item/index.js
@@ -52,7 +52,6 @@ export default class HcpLinkItemComponent extends Component {
@action
onLinkToConsulCentral() {
- this.hcpLinkModal.setResourceId(this.args.linkData?.resourceId);
this.hcpLinkModal.show();
}
}
diff --git a/ui/packages/consul-ui/app/components/link-to-hcp-banner/index.js b/ui/packages/consul-ui/app/components/link-to-hcp-banner/index.js
index 3f96ac261f0e..22574aed52ab 100644
--- a/ui/packages/consul-ui/app/components/link-to-hcp-banner/index.js
+++ b/ui/packages/consul-ui/app/components/link-to-hcp-banner/index.js
@@ -22,7 +22,6 @@ export default class LinkToHcpBannerComponent extends Component {
}
@action
onClusterLink() {
- this.hcpLinkModal.setResourceId(this.args.linkData?.resourceId);
this.hcpLinkModal.show();
}
}
diff --git a/ui/packages/consul-ui/app/components/link-to-hcp-modal/index.hbs b/ui/packages/consul-ui/app/components/link-to-hcp-modal/index.hbs
index bdabe3b2e52e..312a16b7ffc7 100644
--- a/ui/packages/consul-ui/app/components/link-to-hcp-modal/index.hbs
+++ b/ui/packages/consul-ui/app/components/link-to-hcp-modal/index.hbs
@@ -45,7 +45,7 @@
{{#if (and this.isReadOnlyAccessLevelSelected (can "read acls") (can "create tokens"))}}
- {{#if globalReadonlyPolicy.data}}
+ {{#if (and globalReadonlyPolicy globalReadonlyPolicy.data)}}
Generate a read-only ACL token now (preferred) or copy an existing token’s secret ID
@@ -97,7 +97,7 @@
@icon="external-link"
@iconPosition="trailing"
data-test-link-to-hcp-modal-next-button
- @href={{hcp-authentication-link this.hcpLinkModal.resourceId this.accessLevel}}
+ @href={{hcp-authentication-link @dc this.accessLevel}}
/>
0;
}
- deactivateModal = () => {
- this.hcpLinkModal.hide();
- };
-
onGenerateTokenClicked = (policy) => {
this.isGeneratingToken = true;
let token = this.tokenRepo.create({
@@ -53,12 +55,12 @@ export default class LinkToHcpModalComponent extends Component {
});
};
- @action
- onCancel() {
- this.deactivateModal();
- }
@action
onAccessModeChanged({ target }) {
this.accessLevel = target.value;
}
+ @action
+ deactivateModal() {
+ this.hideModal();
+ }
}
diff --git a/ui/packages/consul-ui/app/helpers/hcp-authentication-link.js b/ui/packages/consul-ui/app/helpers/hcp-authentication-link.js
index 08bc205e74da..c72c6b13408b 100644
--- a/ui/packages/consul-ui/app/helpers/hcp-authentication-link.js
+++ b/ui/packages/consul-ui/app/helpers/hcp-authentication-link.js
@@ -7,10 +7,6 @@ import Helper from '@ember/component/helper';
import { inject as service } from '@ember/service';
/**
- * A resourceId Looks like:
- * organization/b4432207-bb9c-438e-a160-b98923efa979/project/4b09958c-fa91-43ab-8029-eb28d8cee9d4/hashicorp.consul.global-network-manager.cluster/test-from-api
- * organization/${organizationId}/project/${projectId}/hashicorp.consul.global-network-manager.cluster/${clusterName}
- *
* A HCP URL looks like:
* https://portal.cloud.hashicorp.com/services/consul/clusters/self-managed/link-existing?cluster_name=test-from-api&cluster_version=1.18.0&cluster_access_mode=CONSUL_ACCESS_LEVEL_GLOBAL_READ_WRITE&redirect_url=localhost:8500/services
*/
@@ -18,17 +14,12 @@ export const HCP_PREFIX =
'https://portal.cloud.hashicorp.com/services/consul/clusters/self-managed/link-existing';
export default class hcpAuthenticationLink extends Helper {
@service('env') env;
- compute([resourceId, accessMode], hash) {
+ compute([datacenterName, accessMode]) {
let url = new URL(HCP_PREFIX);
const clusterVersion = this.env.var('CONSUL_VERSION');
- // if resourceId is empty, we still might want the user to get to the HCP sign-in page
- if (resourceId) {
- // Array looks like: ["organization", organizationId, "project", projectId, "hashicorp.consul.global-network-manager.cluster", "Cluster Id"]
- const [, , , , , clusterName] = resourceId.split('/');
- if (clusterName) {
- url.searchParams.append('cluster_name', clusterName);
- }
+ if (datacenterName) {
+ url.searchParams.append('cluster_name', datacenterName);
}
if (clusterVersion) {
diff --git a/ui/packages/consul-ui/app/services/hcp-link-modal.js b/ui/packages/consul-ui/app/services/hcp-link-modal.js
index 3938fa465503..a88ef5434481 100644
--- a/ui/packages/consul-ui/app/services/hcp-link-modal.js
+++ b/ui/packages/consul-ui/app/services/hcp-link-modal.js
@@ -8,16 +8,12 @@ import { tracked } from '@glimmer/tracking';
export default class HcpLinkModalService extends Service {
@tracked isModalVisible = false;
- @tracked resourceId = null;
- show(hcpLinkData) {
+ show() {
this.isModalVisible = true;
}
hide() {
this.isModalVisible = false;
}
- setResourceId(resourceId) {
- this.resourceId = resourceId;
- }
}
diff --git a/ui/packages/consul-ui/tests/acceptance/link-to-hcp-test.js b/ui/packages/consul-ui/tests/acceptance/link-to-hcp-test.js
index 9a71e4c6005d..39d4cbc989f5 100644
--- a/ui/packages/consul-ui/tests/acceptance/link-to-hcp-test.js
+++ b/ui/packages/consul-ui/tests/acceptance/link-to-hcp-test.js
@@ -6,7 +6,6 @@
import { module, test } from 'qunit';
import { click, visit } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';
-import HcpLinkModalService from 'consul-ui/services/hcp-link-modal';
const bannerSelector = '[data-test-link-to-hcp-banner]';
const linkToHcpSelector = '[data-test-link-to-hcp]';
@@ -15,20 +14,10 @@ const linkToHcpModalSelector = '[data-test-link-to-hcp-modal]';
const linkToHcpModalCancelButtonSelector = '[data-test-link-to-hcp-modal-cancel-button]';
module('Acceptance | link to hcp', function (hooks) {
setupApplicationTest(hooks);
- const correctResourceId =
- 'organization/b4432207-bb9c-438e-a160-b98923efa979/project/4b09958c-fa91-43ab-8029-eb28d8cee9d4/hashicorp.consul.global-network-manager.cluster/test-from-api';
hooks.beforeEach(function () {
// clear local storage so we don't have any settings
window.localStorage.clear();
- this.owner.register(
- 'service:hcp-link-modal',
- class extends HcpLinkModalService {
- setResourceId(resourceId) {
- super.setResourceId(correctResourceId);
- }
- }
- );
});
test('the banner and nav item are initially displayed on services page', async function (assert) {
diff --git a/ui/packages/consul-ui/tests/integration/components/link-to-hcp-modal-test.js b/ui/packages/consul-ui/tests/integration/components/link-to-hcp-modal-test.js
index f71c183f5fec..746317bfddc5 100644
--- a/ui/packages/consul-ui/tests/integration/components/link-to-hcp-modal-test.js
+++ b/ui/packages/consul-ui/tests/integration/components/link-to-hcp-modal-test.js
@@ -27,8 +27,6 @@ const modalGenerateTokenMissedPolicyAlertSelector =
'[data-test-link-to-hcp-modal-missed-policy-alert]';
const modalNextButtonSelector = '[data-test-link-to-hcp-modal-next-button]';
const modalCancelButtonSelector = '[data-test-link-to-hcp-modal-cancel-button]';
-const resourceId =
- 'organization/b4432207-bb9c-438e-a160-b98923efa979/project/4b09958c-fa91-43ab-8029-eb28d8cee9d4/hashicorp.consul.global-network-manager.cluster/test-from-api';
module('Integration | Component | link-to-hcp-modal', function (hooks) {
let originalClipboardWriteText;
@@ -71,7 +69,6 @@ module('Integration | Component | link-to-hcp-modal', function (hooks) {
this.owner.register(
'service:hcp-link-modal',
class Stub extends Service {
- resourceId = resourceId;
hide = hideModal;
}
);
diff --git a/ui/packages/consul-ui/tests/integration/helpers/hcp-authentication-link-test.js b/ui/packages/consul-ui/tests/integration/helpers/hcp-authentication-link-test.js
index f089b209341c..335217836441 100644
--- a/ui/packages/consul-ui/tests/integration/helpers/hcp-authentication-link-test.js
+++ b/ui/packages/consul-ui/tests/integration/helpers/hcp-authentication-link-test.js
@@ -10,12 +10,9 @@ import { setupRenderingTest } from 'ember-qunit';
import { HCP_PREFIX } from 'consul-ui/helpers/hcp-authentication-link';
import { EnvStub } from 'consul-ui/services/env';
-// organization/b4432207-bb9c-438e-a160-b98923efa979/project/4b09958c-fa91-43ab-8029-eb28d8cee9d4/hashicorp.consul.global-network-manager.cluster/test-from-api
const clusterName = 'hello';
const clusterVersion = '1.18.0';
const accessMode = 'CONSUL_ACCESS_LEVEL_GLOBAL_READ_WRITE';
-const projectId = '4b09958c-fa91-43ab-8029-eb28d8cee9d4';
-const realResourceId = `organization/b4432207-bb9c-438e-a160-b98923efa979/project/${projectId}/hashicorp.consul.global-network-manager.cluster/${clusterName}`;
module('Integration | Helper | hcp-authentication-link', function (hooks) {
setupRenderingTest(hooks);
hooks.beforeEach(function () {
@@ -29,9 +26,9 @@ module('Integration | Helper | hcp-authentication-link', function (hooks) {
);
});
test('it makes a URL out of a real resourceId', async function (assert) {
- this.resourceId = realResourceId;
+ this.dcName = clusterName;
- await render(hbs`{{hcp-authentication-link resourceId}}`);
+ await render(hbs`{{hcp-authentication-link dcName}}`);
assert.equal(
this.element.textContent.trim(),
@@ -39,38 +36,21 @@ module('Integration | Helper | hcp-authentication-link', function (hooks) {
);
});
- test('it returns correct link with invalid resourceId', async function (assert) {
- this.resourceId = 'invalid';
+ test('it returns correct link without dc name', async function (assert) {
+ this.dcName = null;
- await render(hbs`{{hcp-authentication-link resourceId}}`);
- assert.equal(
- this.element.textContent.trim(),
- `${HCP_PREFIX}?cluster_version=${clusterVersion}`
- );
-
- // not enough items in id
- this.resourceId =
- '`organization/b4432207-bb9c-438e-a160-b98923efa979/project/${projectId}/hashicorp.consul.global-network-manager.cluster`';
- await render(hbs`{{hcp-authentication-link resourceId}}`);
- assert.equal(
- this.element.textContent.trim(),
- `${HCP_PREFIX}?cluster_version=${clusterVersion}`
- );
-
- // value is null
- this.resourceId = null;
- await render(hbs`{{hcp-authentication-link resourceId}}`);
+ await render(hbs`{{hcp-authentication-link dcName}}`);
assert.equal(
this.element.textContent.trim(),
`${HCP_PREFIX}?cluster_version=${clusterVersion}`
);
});
- test('it makes a URL out of a real resourceId and accessLevel, if passed', async function (assert) {
- this.resourceId = realResourceId;
+ test('it makes a URL out of a dc name and accessLevel, if passed', async function (assert) {
+ this.dcName = clusterName;
this.accessMode = accessMode;
- await render(hbs`{{hcp-authentication-link resourceId accessMode}}`);
+ await render(hbs`{{hcp-authentication-link dcName accessMode}}`);
assert.equal(
this.element.textContent.trim(),