[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-8727?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14693471#comment-14693471
 ] 

ASF GitHub Bot commented on CLOUDSTACK-8727:
--------------------------------------------

Github user kansal commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/685#discussion_r36858306
  
    --- Diff: setup/db/db/schema-452to460.sql ---
    @@ -353,6 +353,8 @@ CREATE VIEW `cloud`.`user_vm_view` AS
             `cloud`.`user_vm_details` `custom_speed`  ON 
(((`custom_speed`.`vm_id` = `cloud`.`vm_instance`.`id`) and 
(`custom_speed`.`name` = 'CpuSpeed')))
                left join
             `cloud`.`user_vm_details` `custom_ram_size`  ON 
(((`custom_ram_size`.`vm_id` = `cloud`.`vm_instance`.`id`) and 
(`custom_ram_size`.`name` = 'memory')));
    +        delete s1 from ssh_keypairs s1, ssh_keypairs s2 where s1.id > 
s2.id and s1.public_key = s2.public_key;
    +        ALTER TABLE ssh_keypairs ADD UNIQUE (fingerprint);
    --- End diff --
    
    @sedukullI have deleted the lines with the same public_key because we want 
that previous different name-same key registrations are handled. (I mean the 
ones people will already have in their DB). For putting the unique constraint, 
I added it on the fingerprint because the public_key is a VARCHAR(5120) and our 
DB doesn't allow unique key on such large values. It won't be a problem because 
finger print is generated from the public_key only. 
    Coming to deleting the rows, I am deleting the ones with newer(large) id's. 
If required, older ones can be deleted and newest can be kept.(no big deal).
    
    @DaanHoogland Being new to the community, I was not aware of the fact that 
we have take these to Mailing lists. If you want I can do that also. 
    
    @sedukull as far as the api changes are concerned, I don't think that is 
necessary. Its not generating the duplicates in the main table. What happens is 
that in the logic, there is join between ssh_keypairs and user_vm_details to 
create user_vm_view on the basis of public_key. Since public_key is not a 
foreign key, such kind of issues are arising. 
    For "cascading delete logic" I will get back to you in detail. But it 
worked fine for me.


> API call listVirtualMachines returns same keypair
> -------------------------------------------------
>
>                 Key: CLOUDSTACK-8727
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8727
>             Project: CloudStack
>          Issue Type: Improvement
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>            Reporter: Kshitij Kansal
>
> If you register 2 SSH keypairs with the same public key then 
> listVirtualMachines API call will only return the first keypair. Although its 
> a very rare case and generally don't make much sense by registering the same 
> key with different name, still it can be fixed. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to