@@ -49,12 +49,13 @@ const (
49
49
)
50
50
51
51
type controllerServer struct {
52
- caps []* csi.ControllerServiceCapability
52
+ caps []* csi.ControllerServiceCapability
53
+ nodeID string
53
54
}
54
55
55
- func NewControllerServer (ephemeral bool ) * controllerServer {
56
+ func NewControllerServer (ephemeral bool , nodeID string ) * controllerServer {
56
57
if ephemeral {
57
- return & controllerServer {caps : getControllerServiceCapabilities (nil )}
58
+ return & controllerServer {caps : getControllerServiceCapabilities (nil ), nodeID : nodeID }
58
59
}
59
60
return & controllerServer {
60
61
caps : getControllerServiceCapabilities (
@@ -64,6 +65,7 @@ func NewControllerServer(ephemeral bool) *controllerServer {
64
65
csi .ControllerServiceCapability_RPC_LIST_SNAPSHOTS ,
65
66
csi .ControllerServiceCapability_RPC_CLONE_VOLUME ,
66
67
}),
68
+ nodeID : nodeID ,
67
69
}
68
70
}
69
71
@@ -164,12 +166,17 @@ func (cs *controllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
164
166
glog .V (4 ).Infof ("successfully populated volume %s" , vol .VolID )
165
167
}
166
168
169
+ topologies := []* csi.Topology {& csi.Topology {
170
+ Segments : map [string ]string {TopologyKeyNode : cs .nodeID },
171
+ }}
172
+
167
173
return & csi.CreateVolumeResponse {
168
174
Volume : & csi.Volume {
169
- VolumeId : volumeID ,
170
- CapacityBytes : req .GetCapacityRange ().GetRequiredBytes (),
171
- VolumeContext : req .GetParameters (),
172
- ContentSource : req .GetVolumeContentSource (),
175
+ VolumeId : volumeID ,
176
+ CapacityBytes : req .GetCapacityRange ().GetRequiredBytes (),
177
+ VolumeContext : req .GetParameters (),
178
+ ContentSource : req .GetVolumeContentSource (),
179
+ AccessibleTopology : topologies ,
173
180
},
174
181
}, nil
175
182
}
0 commit comments