Hiroki Ohashi created CLOUDSTACK-6869:
-----------------------------------------
Summary: Public key content is overridden by template's meta data
when you create a instance
Key: CLOUDSTACK-6869
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6869
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: API, Management Server, Template
Affects Versions: Future, 4.3.0, 4.4.0, 4.5.0
Reporter: Hiroki Ohashi
Priority: Blocker
A public key content is overridden by detail value of 'SSH.PublicKey' from a
template created by an instance ROOT volume with public key specification.
This results in delivery of the template owner's ssh key for a instance created
from the template to virtual router inspite of specification of instance
owner's ssh key.
It is caused by import of resource detail values at commitUserVm method
like below.
{code}
Map<String, String> details = template.getDetails();
if (details != null && !details.isEmpty()) {
vm.details.putAll(details);
}
{code}
Reproduction procedure:
# Deploy an instance with a ssh key A by specifying 'keypair' value.
# Create a template from this instance.
# Deploy an instance with another ssh key B by specifying 'keypair' value.
Database example:
{noformat}
mysql> select * from cloud.template_view where id=207 \G;
*************************** 1. row ***************************
id: 207
uuid: c96f0d9a-0a56-4d30-af73-fe8b31ae37c3
unique_name: 2219faa5a-4e7b-3425-b6e6-135ab210422b
name: cluster_frontend-20140520.2
public: 1
featured: 0
type: USER
hvm: 1
bits: 64
url: NULL
format: QCOW2
created: 2014-05-20 09:33:47
checksum: NULL
display_text: Cluster Frontend VM CentOS 6.5 ver.20140520.2
enable_password: 1
dynamically_scalable: 0
template_state: Active
guest_os_id: 182
guest_os_uuid: 9d3c42d8-caab-11e3-9125-001e679910a0
guest_os_name: CentOS 6.4 (64-bit)
bootable: 1
prepopulate: 0
cross_zones: 0
hypervisor_type: KVM
extractable: 0
template_tag: NULL
sort_key: 0
removed: NULL
enable_sshkey: 0
source_template_id: 205
source_template_uuid: c131680c-3e0e-4d7c-b554-02dabc10ade1
account_id: 3
account_uuid: f9e4e1ca-69fd-4ae3-b70c-15bbcc13406e
account_name: sgcadm
account_type: 0
domain_id: 2
domain_uuid: 84dd635d-fb99-4895-b199-7d777aa144d5
domain_name: default
domain_path: /default/
project_id: NULL
project_uuid: NULL
project_name: NULL
data_center_id: NULL
data_center_uuid: NULL
data_center_name: NULL
lp_account_id: NULL
store_id: 3
store_scope: REGION
state: Ready
download_state: DOWNLOADED
download_pct: 100
error_str: NULL
size: 18465816576
destroyed: 0
created_on_store: 2014-05-20 09:33:47
detail_name: Message.ReservedCapacityFreed.Flag
detail_value: false
tag_id: NULL
tag_uuid: NULL
tag_key: NULL
tag_value: NULL
tag_domain_id: NULL
tag_account_id: NULL
tag_resource_id: NULL
tag_resource_uuid: NULL
tag_resource_type: NULL
tag_customer: NULL
temp_zone_pair: 207_0
*************************** 2. row ***************************
id: 207
uuid: c96f0d9a-0a56-4d30-af73-fe8b31ae37c3
unique_name: 2219faa5a-4e7b-3425-b6e6-135ab210422b
name: cluster_frontend-20140520.2
public: 1
featured: 0
type: USER
hvm: 1
bits: 64
url: NULL
format: QCOW2
created: 2014-05-20 09:33:47
checksum: NULL
display_text: Cluster Frontend VM CentOS 6.5 ver.20140520.2
enable_password: 1
dynamically_scalable: 0
template_state: Active
guest_os_id: 182
guest_os_uuid: 9d3c42d8-caab-11e3-9125-001e679910a0
guest_os_name: CentOS 6.4 (64-bit)
bootable: 1
prepopulate: 0
cross_zones: 0
hypervisor_type: KVM
extractable: 0
template_tag: NULL
sort_key: 0
removed: NULL
enable_sshkey: 0
source_template_id: 205
source_template_uuid: c131680c-3e0e-4d7c-b554-02dabc10ade1
account_id: 3
account_uuid: f9e4e1ca-69fd-4ae3-b70c-15bbcc13406e
account_name: sgcadm
account_type: 0
domain_id: 2
domain_uuid: 84dd635d-fb99-4895-b199-7d777aa144d5
domain_name: default
domain_path: /default/
project_id: NULL
project_uuid: NULL
project_name: NULL
data_center_id: NULL
data_center_uuid: NULL
data_center_name: NULL
lp_account_id: NULL
store_id: 3
store_scope: REGION
state: Ready
download_state: DOWNLOADED
download_pct: 100
error_str: NULL
size: 18465816576
destroyed: 0
created_on_store: 2014-05-20 09:33:47
detail_name: SSH.PublicKey
detail_value: ssh-rsa ...(snip)
tag_id: NULL
tag_uuid: NULL
tag_key: NULL
tag_value: NULL
tag_domain_id: NULL
tag_account_id: NULL
tag_resource_id: NULL
tag_resource_uuid: NULL
tag_resource_type: NULL
tag_customer: NULL
temp_zone_pair: 207_0
*************************** 3. row ***************************
id: 207
uuid: c96f0d9a-0a56-4d30-af73-fe8b31ae37c3
unique_name: 2219faa5a-4e7b-3425-b6e6-135ab210422b
name: cluster_frontend-20140520.2
public: 1
featured: 0
type: USER
hvm: 1
bits: 64
url: NULL
format: QCOW2
created: 2014-05-20 09:33:47
checksum: NULL
display_text: Cluster Frontend VM CentOS 6.5 ver.20140520.2
enable_password: 1
dynamically_scalable: 0
template_state: Active
guest_os_id: 182
guest_os_uuid: 9d3c42d8-caab-11e3-9125-001e679910a0
guest_os_name: CentOS 6.4 (64-bit)
bootable: 1
prepopulate: 0
cross_zones: 0
hypervisor_type: KVM
extractable: 0
template_tag: NULL
sort_key: 0
removed: NULL
enable_sshkey: 0
source_template_id: 205
source_template_uuid: c131680c-3e0e-4d7c-b554-02dabc10ade1
account_id: 3
account_uuid: f9e4e1ca-69fd-4ae3-b70c-15bbcc13406e
account_name: sgcadm
account_type: 0
domain_id: 2
domain_uuid: 84dd635d-fb99-4895-b199-7d777aa144d5
domain_name: default
domain_path: /default/
project_id: NULL
project_uuid: NULL
project_name: NULL
data_center_id: NULL
data_center_uuid: NULL
data_center_name: NULL
lp_account_id: NULL
store_id: 3
store_scope: REGION
state: Ready
download_state: DOWNLOADED
download_pct: 100
error_str: NULL
size: 18465816576
destroyed: 0
created_on_store: 2014-05-20 09:33:47
detail_name: Encrypted.Password
detail_value: ...(snip)
tag_id: NULL
tag_uuid: NULL
tag_key: NULL
tag_value: NULL
tag_domain_id: NULL
tag_account_id: NULL
tag_resource_id: NULL
tag_resource_uuid: NULL
tag_resource_type: NULL
tag_customer: NULL
temp_zone_pair: 207_0
3 rows in set (0.00 sec)
ERROR:
No query specified
mysql>
{noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)