Reviewed:  https://review.openstack.org/289269
Committed: 
https://git.openstack.org/cgit/openstack/nova/commit/?id=9f60d9bca77379b0429de7b66ba65bc37fd17448
Submitter: Jenkins
Branch:    master

commit 9f60d9bca77379b0429de7b66ba65bc37fd17448
Author: Radoslav Gerganov <[email protected]>
Date:   Mon Mar 7 13:06:38 2016 +0200

    VMware: create temp parent directory when booting sparse image
    
    When sparse images are uploaded with HTTP PUT to a vmware datastore,
    the parent directory may not exist and it will be automatically created.
    However, this is not the case when using datastore copy for fetching the
    image. In this case we should create the parent directory first.
    
    Change-Id: I18783e23ba487504e9130171c7424b807ad0251d
    Closes-Bug: #1552610


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1552610

Title:
  Failed to download images from vmware glance datastore to compute
  datastore

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  Openstack version: Kilo.

  We are configuring openstack/vmware w/ multiple datastore.
  We also applied this patch: https://review.openstack.org/#/c/186716/

  But we got an error when booting instances.

  What we do:
  1. Configure glance-store backend as vsphere
  2. Create an image in glance. It is stored in 
vsphere://172.20.2.38/folder/openstack_glance/58f446bb-35da-4aca-9532-c33c8562e2c2?dcPath=IDC_Test&dsName=LUN03-00
  3. Boot an instance with this image.

  We failed at Step-3:
  2016-03-02 18:37:19.941 14897 DEBUG nova.virt.vmwareapi.ds_util 
[req-6d3819a8-d5f8-406a-aa5c-0da4e4f26bf6 4412e38ec9814b96a03e63097ec51f1a 
8f75187cd29f4715881f450646fc6e08 - - -] Copying the datastore file from 
[LUN03-00] openstack_glance/58f446bb-35da-4aca-9532-c33c8562e2c2 to [LUN03-02] 
vmware_temp/e3e50103-da69-44bb-910d-0ecaaba77c78/58f446bb-35da-4aca-9532-c33c8562e2c2/tmp-sparse.vmdk
 file_copy /usr/lib/python2.7/site-packages/nova/virt/vmwareapi/ds_util.py:239 
  7c78/58f446bb-35da-4aca-9532-c33c8562e2c2/tmp-sparse.vmdk file_copy 
/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/ds_util.py:239 
  ….
  2016-03-02 18:37:20.480 14897 TRACE oslo_vmware.common.loopingcall 
FileNotFoundException: \u627e\u4e0d\u5230\u6587\u4ef6 [LUN03-02] 
vmware_temp/e3e50103-da69-44bb-910d-0ecaaba77c78/58f446bb-35da-4aca-9532-c33c8562e2c2/
 

  There is no e3e50103-da69-44bb-910d-0ecaaba77c78 under [LUN03-02]
  vmware_temp.

  Radoslav Gerganov confirms nova/virt/vmwareapi/vmops.py has a bug:

      def _prepare_sparse_image(self, vi):
          tmp_dir_loc = vi.datastore.build_path(
                  self._tmp_folder, uuidutils.generate_uuid())
          tmp_image_ds_loc = tmp_dir_loc.join(
                  vi.ii.image_id, "tmp-sparse.vmdk")
          return tmp_dir_loc, tmp_image_ds_loc

  should be:

  def _prepare_sparse_image(self, vi):
      tmp_dir_loc = vi.datastore.build_path(
              self._tmp_folder, uuidutils.generate_uuid())
      tmp_image_ds_loc = tmp_dir_loc.join(
              vi.ii.image_id, "tmp-sparse.vmdk")
      ds_util.mkdir(self._session, tmp_image_ds_loc.parent, vi.dc_info.ref)
      return tmp_dir_loc, tmp_image_ds_loc

  This issue is gone after we make the changes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1552610/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to