← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1552610] Re: Failed to download images from vmware glance datastore to compute datastore

 

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 <rgerganov@xxxxxxxxxx>
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


References