@@ -147,44 +147,24 @@ private StoragePool createNetfsStoragePool(PoolType fsType, Connect conn, String
147
147
StoragePool sp = null ;
148
148
try {
149
149
s_logger .debug (spd .toString ());
150
- sp = conn .storagePoolCreateXML (spd .toString (), 0 );
151
- return sp ;
152
- } catch (LibvirtException e ) {
153
- s_logger .error (e .toString ());
154
- // if error is that pool is mounted, try to handle it
155
- if (e .toString ().contains ("already mounted" )) {
156
- s_logger .error ("Attempting to unmount old mount libvirt is unaware of at " + targetPath );
150
+ // check whether the pool is already mounted
151
+ int mountpointResult = Script .runSimpleBashScriptForExitValue ("mountpoint -q " + targetPath );
152
+ // if the pool is mounted, try to unmount it
153
+ if (mountpointResult == 0 ) {
154
+ s_logger .info ("Attempting to unmount old mount at " + targetPath );
157
155
String result = Script .runSimpleBashScript ("umount -l " + targetPath );
158
156
if (result == null ) {
159
- s_logger .error ("Succeeded in unmounting " + targetPath );
160
- try {
161
- sp = conn .storagePoolCreateXML (spd .toString (), 0 );
162
- s_logger .error ("Succeeded in redefining storage" );
163
- return sp ;
164
- } catch (LibvirtException l ) {
165
- s_logger .error ("Target was already mounted, unmounted it but failed to redefine storage:" + l );
166
- }
157
+ s_logger .info ("Succeeded in unmounting " + targetPath );
167
158
} else {
168
- s_logger .error ("Failed in unmounting and redefining storage" );
159
+ s_logger .error ("Failed in unmounting storage" );
169
160
}
170
- } else {
171
- s_logger .error ("Internal error occurred when attempting to mount: specified path may be invalid" );
172
- throw e ;
173
161
}
174
- if (sp != null ) {
175
- try {
176
- if (sp .isPersistent () == 1 ) {
177
- sp .destroy ();
178
- sp .undefine ();
179
- } else {
180
- sp .destroy ();
181
- }
182
- sp .free ();
183
- } catch (LibvirtException l ) {
184
- s_logger .debug ("Failed to undefine " + fsType .toString () + " storage pool with: " + l .toString ());
185
- }
186
- }
187
- return null ;
162
+
163
+ sp = conn .storagePoolCreateXML (spd .toString (), 0 );
164
+ return sp ;
165
+ } catch (LibvirtException e ) {
166
+ s_logger .error (e .toString ());
167
+ throw e ;
188
168
}
189
169
}
190
170
0 commit comments