mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Cinder volume attacher: use instanceID not NodeID
This commit is contained in:
parent
adcca3e663
commit
2267588d95
@ -68,17 +68,11 @@ func (attacher *cinderDiskAttacher) Attach(spec *volume.Spec, nodeName types.Nod
|
|||||||
|
|
||||||
volumeID := volumeSource.VolumeID
|
volumeID := volumeSource.VolumeID
|
||||||
|
|
||||||
instances, res := attacher.cinderProvider.Instances()
|
instanceid, err := attacher.nodeInstanceID(nodeName)
|
||||||
if !res {
|
|
||||||
return "", fmt.Errorf("failed to list openstack instances")
|
|
||||||
}
|
|
||||||
instanceid, err := instances.InstanceID(nodeName)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if ind := strings.LastIndex(instanceid, "/"); ind >= 0 {
|
|
||||||
instanceid = instanceid[(ind + 1):]
|
|
||||||
}
|
|
||||||
attached, err := attacher.cinderProvider.DiskIsAttached(volumeID, instanceid)
|
attached, err := attacher.cinderProvider.DiskIsAttached(volumeID, instanceid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Log error and continue with attach
|
// Log error and continue with attach
|
||||||
@ -124,7 +118,13 @@ func (attacher *cinderDiskAttacher) VolumesAreAttached(specs []*volume.Spec, nod
|
|||||||
volumesAttachedCheck[spec] = true
|
volumesAttachedCheck[spec] = true
|
||||||
volumeSpecMap[volumeSource.VolumeID] = spec
|
volumeSpecMap[volumeSource.VolumeID] = spec
|
||||||
}
|
}
|
||||||
attachedResult, err := attacher.cinderProvider.DisksAreAttached(volumeIDList, string(nodeName))
|
|
||||||
|
instanceid, err := attacher.nodeInstanceID(nodeName)
|
||||||
|
if err != nil {
|
||||||
|
return volumesAttachedCheck, err
|
||||||
|
}
|
||||||
|
|
||||||
|
attachedResult, err := attacher.cinderProvider.DisksAreAttached(volumeIDList, instanceid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Log error and continue with attach
|
// Log error and continue with attach
|
||||||
glog.Errorf(
|
glog.Errorf(
|
||||||
@ -284,3 +284,18 @@ func (detacher *cinderDiskDetacher) Detach(deviceMountPath string, nodeName type
|
|||||||
func (detacher *cinderDiskDetacher) UnmountDevice(deviceMountPath string) error {
|
func (detacher *cinderDiskDetacher) UnmountDevice(deviceMountPath string) error {
|
||||||
return volumeutil.UnmountPath(deviceMountPath, detacher.mounter)
|
return volumeutil.UnmountPath(deviceMountPath, detacher.mounter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (attacher *cinderDiskAttacher) nodeInstanceID(nodeName types.NodeName) (string, error) {
|
||||||
|
instances, res := attacher.cinderProvider.Instances()
|
||||||
|
if !res {
|
||||||
|
return "", fmt.Errorf("failed to list openstack instances")
|
||||||
|
}
|
||||||
|
instanceid, err := instances.InstanceID(nodeName)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if ind := strings.LastIndex(instanceid, "/"); ind >= 0 {
|
||||||
|
instanceid = instanceid[(ind + 1):]
|
||||||
|
}
|
||||||
|
return instanceid, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user