mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2024-12-22 08:26:03 +01:00
131 lines
4.5 KiB
C#
131 lines
4.5 KiB
C#
|
/* Copyright (c) Citrix Systems Inc.
|
|||
|
* All rights reserved.
|
|||
|
*
|
|||
|
* Redistribution and use in source and binary forms,
|
|||
|
* with or without modification, are permitted provided
|
|||
|
* that the following conditions are met:
|
|||
|
*
|
|||
|
* * Redistributions of source code must retain the above
|
|||
|
* copyright notice, this list of conditions and the
|
|||
|
* following disclaimer.
|
|||
|
* * Redistributions in binary form must reproduce the above
|
|||
|
* copyright notice, this list of conditions and the
|
|||
|
* following disclaimer in the documentation and/or other
|
|||
|
* materials provided with the distribution.
|
|||
|
*
|
|||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|||
|
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|||
|
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|||
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
|||
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|||
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|||
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|||
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|||
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|||
|
* SUCH DAMAGE.
|
|||
|
*/
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Text;
|
|||
|
using XenAdmin.Core;
|
|||
|
using XenAPI;
|
|||
|
using System.Collections;
|
|||
|
using XenAdmin.Network;
|
|||
|
|
|||
|
namespace XenAdmin.ServerDBs.FakeAPI
|
|||
|
{
|
|||
|
internal class fakeSR : fakeXenObject
|
|||
|
{
|
|||
|
public fakeSR(DbProxy proxy)
|
|||
|
: base("sr", proxy)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
public Response<string> get_uuid(string session, string opaque_ref)
|
|||
|
{
|
|||
|
return new Response<string>((string)proxy.db.GetValue("sr", opaque_ref, "uuid"));
|
|||
|
}
|
|||
|
|
|||
|
public Response<string> probe(string session, string host_ref, Hashtable device_config, string type, Hashtable sm_config)
|
|||
|
{
|
|||
|
switch (type)
|
|||
|
{
|
|||
|
case "lvmohba":
|
|||
|
return new Response<string>(
|
|||
|
@"<?xml version=""1.0"" ?>
|
|||
|
<BlockDevice>
|
|||
|
<Vendor>Vendor</Vendor>
|
|||
|
<Size>500GB</Size>
|
|||
|
<Serial>Serial</Serial>
|
|||
|
<Path>Path</Path>
|
|||
|
<SCSIID>1234-abcd-5678</SCSIID>
|
|||
|
<Adapter>1</Adapter>
|
|||
|
<Channel>2</Channel>
|
|||
|
<ID>3</ID>
|
|||
|
<LUN>4</LUN>
|
|||
|
</BlockDevice>
|
|||
|
");
|
|||
|
default:
|
|||
|
return new Response<string>(@"<?xml version=""1.0"" ?>
|
|||
|
<SRlist>
|
|||
|
<SR>
|
|||
|
<UUID>5fc2cbc4-8ae9-37aa-ab7e-a19fa24f3e91</UUID>
|
|||
|
<Size>197984256</Size>
|
|||
|
<Aggregate>SMAPI</Aggregate>
|
|||
|
</SR>
|
|||
|
</SRlist>");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public Response<string> assert_can_host_ha_statefile(string session, string opaque_ref)
|
|||
|
{
|
|||
|
return new Response<string>("");
|
|||
|
}
|
|||
|
|
|||
|
public Response<string> create(string session, string host_ref, Hashtable device_config, string size, string label, string description, string type, string content, bool shared, Hashtable sm_config)
|
|||
|
{
|
|||
|
// For SrScanAction: fake data so we can step through the New SR Wizard
|
|||
|
Response<string> response = new Response<string>();
|
|||
|
if (label == Helpers.GuiTempObjectPrefix) // fake create to find list of aggregates on an SR
|
|||
|
{
|
|||
|
response.Status = ResponseTypes.FAILURE;
|
|||
|
if (type == "netapp")
|
|||
|
response.ErrorDescription = new string[] { "SR_BACKEND_FAILURE_123", "", "",
|
|||
|
@"<?xml version=""1.0"" ?>
|
|||
|
<Aggrlist>
|
|||
|
<Aggr>
|
|||
|
<Name>SMAPI</Name>
|
|||
|
<Size>609550192640</Size>
|
|||
|
<Disks>6</Disks>
|
|||
|
<RAIDType>raid4</RAIDType>
|
|||
|
<asis_dedup>True</asis_dedup>
|
|||
|
</Aggr>
|
|||
|
</Aggrlist>" };
|
|||
|
else
|
|||
|
// I haven't managed to find out what a real Dell EqualLogic response looks like,
|
|||
|
// but this is good enough to make the New SR Wizard work.
|
|||
|
response.ErrorDescription = new string[] { "SR_BACKEND_FAILURE_163", "", "",
|
|||
|
@"<?xml version=""1.0"" ?>
|
|||
|
<Aggrlist>
|
|||
|
<StoragePool>
|
|||
|
<Name>SMAPI</Name>
|
|||
|
<Default>true</Default>
|
|||
|
<Members>2</Members>
|
|||
|
<Volumes>2</Volumes>
|
|||
|
<Capacity>609550192640</Capacity>
|
|||
|
<FreeSpace>532573377854</FreeSpace>
|
|||
|
</StoragePool>
|
|||
|
</Aggrlist>"};
|
|||
|
}
|
|||
|
|
|||
|
return response;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|