public storageVolumeInfo GetSampleStorageVolume() { var sv = new storageVolumeInfo(); sv.displayName = ""; sv.friendlyName = ""; sv.serialNum = "serialNum"; sv.sizeInMB = 5000; sv.storagePoolId = "storagePoolInfo"; sv.storageSystemId = "storageSystemId"; sv.storageVolumeId = "storageVolumeId"; sv.usedSpaceInMB = 1000; sv.objectId = "storageVolumeId"; return sv; }
public storageVolumeInfo GetSampleStorageVolume() { var sv = new storageVolumeInfo(); sv.displayName = ""; sv.friendlyName = ""; sv.serialNum = "serialNum"; sv.sizeInMB = 5000; sv.storagePoolId = "storagePoolInfo"; sv.storageSystemId = "storageSystemId"; sv.storageVolumeId = "storageVolumeId"; sv.usedSpaceInMB = 1000; sv.objectId = "storageVolumeId"; return(sv); }
private void RefreshStorageLinkSystem(string storageSystemId) { StorageLinkSystem system = new List <StorageLinkSystem>(_connection.Cache.StorageSystems).Find(s => s.opaque_ref == storageSystemId); if (system != null) { storagePoolInfo[] storagePools = new storagePoolInfo[0]; storageVolumeInfo[] storageVolumes = new storageVolumeInfo[0]; try { _connection._service.enumStoragePools(storageSystemId, string.Empty, (int)StorageLinkEnums.FlagsType.NONE, out storagePools); _connection._service.enumStorageNodes(storageSystemId, string.Empty, string.Empty, (int)StorageLinkEnums.FlagsType.NONE, out storageVolumes); } catch (SoapException e) { // if the creds have just been removed then don't throw the exception on. if (e.Detail == null || e.Detail.InnerText.IndexOf("SL_MSG_ERR_NO_STORAGE_MANAGEMENT_CREDENTIALS_COULD_BE_FOUND_FOR_STORAGE_SYSTEM") < 0) { throw; } } List <StorageLinkPool> pools = new List <StorageLinkPool>(); List <StorageLinkVolume> volumes = new List <StorageLinkVolume>(); foreach (storagePoolInfo poolInfo in storagePools) { pools.Add(new StorageLinkPool(_connection, poolInfo.objectId, poolInfo.friendlyName, poolInfo.parentPool, poolInfo.storageSystemId, poolInfo.sizeInMB, poolInfo.sizeInMB - poolInfo.freeSpaceInMB, (StorageLinkEnums.RaidType)poolInfo.supportedRaidTypes, (StorageLinkEnums.ProvisioningType)poolInfo.supportedProvisioningTypes)); } foreach (storageVolumeInfo volumeInfo in storageVolumes) { volumes.Add(new StorageLinkVolume(_connection, volumeInfo.objectId, system.StorageLinkServer, volumeInfo.friendlyName, volumeInfo.storageSystemId, volumeInfo.storagePoolId, volumeInfo.sizeInMB, volumeInfo.usedSpaceInMB)); } _connection.Invoke(() => _connection.Cache.Update(storageSystemId, pools, volumes)); } }
public void TestStorageSystemExistsOnConnect() { storageSystemInfo ss = _ws.GetSampleStorageSystem(); storagePoolInfo sp = _ws.GetSampleStoragePool(); storageVolumeInfo sv = _ws.GetSampleStorageVolume(); _ws.StorageSystemsAndPools.Add(ss, new[] { sp }); _ws.StoragePoolsAndVolumes.Add(sp, new[] { sv }); Connect(); WaitFor(() => _con.Cache.StorageSystems.Count == 1, "Storage System didn't get added."); Assert.AreEqual(_con.Cache.StorageSystems[0].opaque_ref, ss.objectId); Assert.AreEqual(_con.Cache.StorageSystems[0].SerialNumber, ss.serialNum); Assert.AreEqual(_con.Cache.StorageSystems[0].Model, ss.model); Assert.AreEqual(_con.Cache.StorageSystems[0].FullName, ss.displayName); Assert.AreEqual((uint)_con.Cache.StorageSystems[0].Capabilities, ss.capabilities); Assert.AreEqual(_con.Cache.StorageSystems[0].FriendlyName, ss.friendlyName); Assert.AreEqual(_con.Cache.StoragePools[0].opaque_ref, sp.objectId); Assert.AreEqual(_con.Cache.StorageVolumes[0].opaque_ref, sv.objectId); }
public jobInfo enumStorageNodes(string storageSystemId, string storagePoolId, string filters, int flags, out storageVolumeInfo[] snInfoList) { var output = new List<storageVolumeInfo>(); foreach (storageSystemInfo ss in StorageSystemsAndPools.Keys) { if (ss.storageSystemId == storageSystemId) { foreach (storagePoolInfo sp in StoragePoolsAndVolumes.Keys) { if (storagePoolId.Length == 0) { output.AddRange(StoragePoolsAndVolumes[sp]); } else if (sp.storagePoolId == storagePoolId) { snInfoList = new List<storageVolumeInfo>(StoragePoolsAndVolumes[sp]).ToArray(); return null; } } } } snInfoList = output.ToArray(); return null; }
private void RefreshStorageLinkSystem(string storageSystemId) { StorageLinkSystem system = new List<StorageLinkSystem>(_connection.Cache.StorageSystems).Find(s => s.opaque_ref == storageSystemId); if (system != null) { storagePoolInfo[] storagePools = new storagePoolInfo[0]; storageVolumeInfo[] storageVolumes = new storageVolumeInfo[0]; try { _connection._service.enumStoragePools(storageSystemId, string.Empty, (int)StorageLinkEnums.FlagsType.NONE, out storagePools); _connection._service.enumStorageNodes(storageSystemId, string.Empty, string.Empty, (int)StorageLinkEnums.FlagsType.NONE, out storageVolumes); } catch (SoapException e) { // if the creds have just been removed then don't throw the exception on. if (e.Detail == null || e.Detail.InnerText.IndexOf("SL_MSG_ERR_NO_STORAGE_MANAGEMENT_CREDENTIALS_COULD_BE_FOUND_FOR_STORAGE_SYSTEM") < 0) { throw; } } List<StorageLinkPool> pools = new List<StorageLinkPool>(); List<StorageLinkVolume> volumes = new List<StorageLinkVolume>(); foreach (storagePoolInfo poolInfo in storagePools) { pools.Add(new StorageLinkPool(_connection, poolInfo.objectId, poolInfo.friendlyName, poolInfo.parentPool, poolInfo.storageSystemId, poolInfo.sizeInMB, poolInfo.sizeInMB - poolInfo.freeSpaceInMB, (StorageLinkEnums.RaidType)poolInfo.supportedRaidTypes, (StorageLinkEnums.ProvisioningType)poolInfo.supportedProvisioningTypes)); } foreach (storageVolumeInfo volumeInfo in storageVolumes) { volumes.Add(new StorageLinkVolume(_connection, volumeInfo.objectId, system.StorageLinkServer, volumeInfo.friendlyName, volumeInfo.storageSystemId, volumeInfo.storagePoolId, volumeInfo.sizeInMB, volumeInfo.usedSpaceInMB)); } _connection.Invoke(() => _connection.Cache.Update(storageSystemId, pools, volumes)); } }