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

Aaron Peeler commented on VCL-630:
----------------------------------

I vote using the imagerevision_id. There are other areas where imagerevision_id 
would be best, such as in the healthcheck.pm, etc. I would also recommend to 
redo _getcurrentimage or create a new getcurrentimage routine that's not 
dependent on the Datastructure. I've almost started reworking that routine 
related to the healthcheck code. 
                
> currentimage.txt name may conflict with imagerevision name, causing 
> unnecessary reloads
> ---------------------------------------------------------------------------------------
>
>                 Key: VCL-630
>                 URL: https://issues.apache.org/jira/browse/VCL-630
>             Project: VCL
>          Issue Type: Bug
>          Components: vcld (backend)
>    Affects Versions: 2.3
>         Environment: accessing the first revision of an image on a clustered 
> (vCenter) VMware host. This only affects images whose name (cleaned of 
> non-alphanumeric characters) exceeds 29 characters. 
>            Reporter: Aaron Coburn
>            Assignee: Aaron Coburn
>             Fix For: 2.4, 2.3.1
>
>
> A few words to provide some background: when the VCL uses a clustered 
> (vCenter) VMware host, one cannot simply copy virtual disks as part of the 
> image capture process; instead, the VM is cloned. This, however, exposed an 
> apparently undocumented feature of VMware in that virtual disk names 
> exceeding 29 characters are silently truncated. This creates significant 
> problems for the VCL. The current solution (for 2.3) is to update the image 
> name in the database after successfully capturing an image. This way, the VCL 
> knows where to find the virtual disk in the VMware datastore.
> The problem with this approach is that this change isn't registered with the 
> system until after the image has been captured. At this point, however, the 
> currentimage.txt file has already been written to the disk and if the name 
> changes ex post facto, then the problem simply re-emerges in a different form 
> when a user makes a reservation for the image.
> Assuming the VM is available and otherwise ready to grant an immediate 
> reservation, the reclaim.pm:process() subroutine checks the VM name listed in 
> the currentimage.txt file and finds a conflict in the name listed on the OS 
> and the name in the database.
> An immediate solution for users is to simply make a new revision of the same 
> image. That second revision will have a shortened name in both 
> currentimage.txt and the imagerevision table.
> There are two ways that this could be correctly solved in the perl code: 
> either by updating the image name earlier in the provisioning module's 
> capture() subroutine or by extracting other information from 
> currentimage.txt, such as imagerevision_id.
> While the first approach would be easier to implement, the second approach 
> seems to be more architecturally sound. That is, rather than relying on a 
> comparison of two strings, the test would be between two integers, one of 
> which is the primary key of the database table in question.
> Any thoughts on the best way to proceed?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to