diff --git a/ui/public/locales/en.json b/ui/public/locales/en.json
index 7b7bb0810b5..216c6168c5f 100644
--- a/ui/public/locales/en.json
+++ b/ui/public/locales/en.json
@@ -517,6 +517,7 @@
"label.copy.clipboard": "Copy to clipboard",
"label.copy.consoleurl": "Copy console URL to clipboard",
"label.copyid": "Copy ID",
+"label.copy.password": "Copy password",
"label.core": "Core",
"label.core.zone.type": "Core zone type",
"label.counter": "Counter",
diff --git a/ui/src/config/section/compute.js b/ui/src/config/section/compute.js
index 6602ecb884c..22ee2b007f5 100644
--- a/ui/src/config/section/compute.js
+++ b/ui/src/config/section/compute.js
@@ -370,7 +370,13 @@ export default {
message: 'message.action.instance.reset.password',
dataView: true,
show: (record) => { return ['Stopped'].includes(record.state) && record.passwordenabled },
- response: (result) => { return result.virtualmachine && result.virtualmachine.password ? `The password of VM ${result.virtualmachine.displayname} is ${result.virtualmachine.password}` : null }
+ response: (result) => {
+ return {
+ message: result.virtualmachine && result.virtualmachine.password ? `The password of VM ${result.virtualmachine.displayname} is ${result.virtualmachine.password}` : null,
+ copybuttontext: result.virtualmachine.password ? 'label.copy.password' : null,
+ copytext: result.virtualmachine.password ? result.virtualmachine.password : null
+ }
+ }
},
{
api: 'resetSSHKeyForVirtualMachine',
diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue
index ba1b87042b7..fa33be8d1b0 100644
--- a/ui/src/views/AutogenView.vue
+++ b/ui/src/views/AutogenView.vue
@@ -444,7 +444,8 @@