Merge pull request #7847 from swagiaal/fix-gce-pd-on-atomic-host

Support default udev GCE PD device path
This commit is contained in:
Victor Marmol 2015-05-14 09:10:06 -07:00
commit aa744f92da

View File

@ -42,19 +42,34 @@ func (util *GCEDiskUtil) AttachAndMountDisk(pd *gcePersistentDisk, globalPDPath
if err := gce.(*gce_cloud.GCECloud).AttachDisk(pd.pdName, pd.readOnly); err != nil {
return err
}
devicePath := path.Join("/dev/disk/by-id/", "google-"+pd.pdName)
devicePaths := []string{
path.Join("/dev/disk/by-id/", "google-"+pd.pdName),
path.Join("/dev/disk/by-id/", "scsi-0Google_PersistentDisk_"+pd.pdName),
}
if pd.partition != "" {
devicePath = devicePath + "-part" + pd.partition
for i, path := range devicePaths {
devicePaths[i] = path + "-part" + pd.partition
}
}
//TODO(jonesdl) There should probably be better method than busy-waiting here.
numTries := 0
devicePath := ""
// Wait for the disk device to be created
for {
_, err := os.Stat(devicePath)
if err == nil {
break
for _, path := range devicePaths {
_, err := os.Stat(path)
if err == nil {
devicePath = path
break
}
if err != nil && !os.IsNotExist(err) {
return err
}
}
if err != nil && !os.IsNotExist(err) {
return err
if devicePath != "" {
break
}
numTries++
if numTries == 10 {