@@ -52,13 +52,24 @@ let device_config ?(provider= "iscsi") ~ip ~iqn ?scsiid () =
52
52
in
53
53
(match scsiid with Some id -> (" SCSIid" , id) :: conf | None -> conf)
54
54
55
- let create_gfs2_sr ctx ~iscsi ~ iqn ?scsiid () =
55
+ let create_gfs2_sr ctx ~iscsi ? iqn ?scsiid () =
56
56
get_pool_master ctx
57
57
>> = fun (_pool , master ) ->
58
58
(* probe *)
59
- let device_config =
60
- [(" provider" , " iscsi" ); (" target" , Ipaddr.V4. to_string iscsi); (" targetIQN" , iqn)]
59
+ let probe_iqn device_config =
60
+ match iqn with
61
+ | Some iqn ->
62
+ Lwt. return ((" targetIQN" , iqn) :: device_config)
63
+ | None ->
64
+ rpc ctx @@ SR. probe_ext ~host: master ~device_config ~_type:" gfs2" ~sm_config: []
65
+ >> = function
66
+ | [] -> Lwt. fail_with " Probe found nothing, not even a SCSIid"
67
+ | probed :: _ ->
68
+ Lwt. return probed.API. probe_result_configuration
61
69
in
70
+ let device_config =
71
+ [(" provider" , " iscsi" ); (" target" , Ipaddr.V4. to_string iscsi)] in
72
+ probe_iqn device_config >> = fun device_config ->
62
73
rpc ctx
63
74
@@ SR. probe_ext ~host: master ~device_config ~_type:" gfs2" ~sm_config: []
64
75
>> = function
@@ -120,7 +131,7 @@ let plug_pbds ctx ~sr =
120
131
pbds
121
132
122
133
123
- let get_gfs2_sr t ~iscsi ~ iqn ?scsiid () =
134
+ let get_gfs2_sr t ~iscsi ? iqn ?scsiid () =
124
135
step t " GFS2 SR"
125
136
@@ fun ctx ->
126
137
debug (fun m -> m " Looking for GFS2 SR" ) ;
@@ -129,7 +140,7 @@ let get_gfs2_sr t ~iscsi ~iqn ?scsiid () =
129
140
| (sr , _ ) :: _ ->
130
141
debug (fun m -> m " Found existing GFS2 SR" ) ;
131
142
plug_pbds ctx ~sr >> = fun () -> Lwt. return sr
132
- | [] -> create_gfs2_sr ctx ~iscsi ~ iqn ?scsiid ()
143
+ | [] -> create_gfs2_sr ctx ~iscsi ? iqn ?scsiid ()
133
144
134
145
135
146
let do_ha t sr =
0 commit comments