/*
  * Should do some input checking of ss and base
  * storage_plugin_getFileSystemInfo,
  * <class 'agent.api.storageplugin.StoragePlugin'> argument: impl_name -
  * default: None requires a minumum of uuid, access_host, storage_type
  * ss_uuid, access_path, uuid (the ss
  */
 public StorageDetails storagePluginGetFileSystemInfo(
     String propUuid, String mntUuid, String nfsHost, String nfsRemotePath)
     throws Ovm3ResourceException {
   /* clean the props */
   StorageServer ss = new StorageServer();
   StorageDetails sd = new StorageDetails();
   new FileProperties();
   ss.setUuid(propUuid);
   sd.setDetailsRelationalUuid(propUuid);
   sd.setUuid(mntUuid);
   ss.setAccessHost(nfsHost);
   if (nfsRemotePath.contains(nfsHost + ":")) {
     sd.setAccessPath(nfsRemotePath);
   } else {
     sd.setAccessPath(nfsHost + ":" + nfsRemotePath);
   }
   ss.setStorageType(FILESYS);
   sd.setDetails(
       (HashMap<String, Object>)
           callWrapper(
               "storage_plugin_getFileSystemInfo",
               getPluginType,
               ss.getDetails(),
               sd.getDetails()));
   return sd;
 }
 /**
  * . storage_plugin_mount, <class 'agent.api.storageplugin.StoragePlugin'> argument: impl_name -
  * default: None
  */
 public final StorageDetails storagePluginMountNFS(
     String nfsHost, String nfsRemotePath, String mntUuid, String mountPoint)
     throws Ovm3ResourceException {
   String propUuid = deDash(mntUuid);
   StorageServer ss = new StorageServer();
   StorageDetails sd = new StorageDetails();
   ss.setUuid(propUuid);
   ss.setName(propUuid);
   ss.setAccessHost(nfsHost);
   sd.setDetailsRelationalUuid(propUuid);
   sd.setUuid(mntUuid);
   sd.setAccessPath(nfsHost + ":" + nfsRemotePath);
   if (!mountPoint.contains(mntUuid)) {
     mountPoint += "/" + mntUuid;
   }
   sd.setDetails(
       (HashMap<String, Object>)
           callWrapper(
               "storage_plugin_mount",
               getPluginType,
               ss.getDetails(),
               sd.getDetails(),
               mountPoint,
               EMPTY_STRING,
               ACTIVE,
               someList));
   /* this magically means it's already mounted....
    * double check */
   if (sd.getDetails() == null) {
     sd = storagePluginGetFileSystemInfo(propUuid, mntUuid, nfsHost, nfsRemotePath);
   }
   if (EMPTY_STRING.contains(ss.getUuid())) {
     throw new Ovm3ResourceException("Unable to mount NFS FileSystem");
   }
   return sd;
 }