/* * 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: * * 1) Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2) 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; using System.Collections.Generic; namespace XenAPI { internal class Maps { internal static Dictionary convert_from_proxy_string_string(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; string v = table[key] == null ? null : (string)table[key]; result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_string(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = (table[key] != null) ? table[key] : ""; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_long(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; long v = table[key] == null ? 0 : long.Parse((string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_long(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = table[key].ToString(); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_host_allowed_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; host_allowed_operations v = table[key] == null ? (host_allowed_operations) 0 : (host_allowed_operations)Helper.EnumParseDefault(typeof(host_allowed_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_host_allowed_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = host_allowed_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_network_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; network_operations v = table[key] == null ? (network_operations) 0 : (network_operations)Helper.EnumParseDefault(typeof(network_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_network_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = network_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_storage_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; storage_operations v = table[key] == null ? (storage_operations) 0 : (storage_operations)Helper.EnumParseDefault(typeof(storage_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_storage_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = storage_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_task_allowed_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; task_allowed_operations v = table[key] == null ? (task_allowed_operations) 0 : (task_allowed_operations)Helper.EnumParseDefault(typeof(task_allowed_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_task_allowed_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = task_allowed_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_vbd_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; vbd_operations v = table[key] == null ? (vbd_operations) 0 : (vbd_operations)Helper.EnumParseDefault(typeof(vbd_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_vbd_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = vbd_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_vdi_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; vdi_operations v = table[key] == null ? (vdi_operations) 0 : (vdi_operations)Helper.EnumParseDefault(typeof(vdi_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_vdi_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = vdi_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_vif_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; vif_operations v = table[key] == null ? (vif_operations) 0 : (vif_operations)Helper.EnumParseDefault(typeof(vif_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_vif_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = vif_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_vm_appliance_operation(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; vm_appliance_operation v = table[key] == null ? (vm_appliance_operation) 0 : (vm_appliance_operation)Helper.EnumParseDefault(typeof(vm_appliance_operation), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_vm_appliance_operation(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = vm_appliance_operation_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_string_vm_operations(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; vm_operations v = table[key] == null ? (vm_operations) 0 : (vm_operations)Helper.EnumParseDefault(typeof(vm_operations), (string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_vm_operations(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = vm_operations_helper.ToString(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary> convert_from_proxy_string_XenRefBlob(Object o) { Hashtable table = (Hashtable)o; Dictionary> result = new Dictionary>(); if (table != null) { foreach (string key in table.Keys) { try { string k = key; XenRef v = table[key] == null ? null : XenRef.Create(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_string_XenRefBlob(Dictionary> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (string key in table.Keys) { try { string k = (key != null) ? key : ""; string v = (table[key] != null) ? table[key] : ""; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_long_long(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { long k = long.Parse(key); long v = table[key] == null ? 0 : long.Parse((string)table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_long_long(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (long key in table.Keys) { try { string k = key.ToString(); string v = table[key].ToString(); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_long_double(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { long k = long.Parse(key); double v = Convert.ToDouble(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_long_double(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (long key in table.Keys) { try { string k = key.ToString(); double v = table[key]; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_long_string_array(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { long k = long.Parse(key); string[] v = table[key] == null ? new string[] {} : Array.ConvertAll((object[])table[key], Convert.ToString); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_long_string_array(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (long key in table.Keys) { try { string k = key.ToString(); string [] v = table[key]; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary convert_from_proxy_vm_operations_string(Object o) { Hashtable table = (Hashtable)o; Dictionary result = new Dictionary(); if (table != null) { foreach (string key in table.Keys) { try { vm_operations k = (vm_operations)Helper.EnumParseDefault(typeof(vm_operations), (string)key); string v = table[key] == null ? null : (string)table[key]; result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_vm_operations_string(Dictionary table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (vm_operations key in table.Keys) { try { string k = vm_operations_helper.ToString(key); string v = (table[key] != null) ? table[key] : ""; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary, XenRef> convert_from_proxy_XenRefVDI_XenRefSR(Object o) { Hashtable table = (Hashtable)o; Dictionary, XenRef> result = new Dictionary, XenRef>(); if (table != null) { foreach (string key in table.Keys) { try { XenRef k = XenRef.Create(key); XenRef v = table[key] == null ? null : XenRef.Create(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_XenRefVDI_XenRefSR(Dictionary, XenRef> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (XenRef key in table.Keys) { try { string k = (key != null) ? key : ""; string v = (table[key] != null) ? table[key] : ""; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary, XenRef> convert_from_proxy_XenRefVIF_XenRefNetwork(Object o) { Hashtable table = (Hashtable)o; Dictionary, XenRef> result = new Dictionary, XenRef>(); if (table != null) { foreach (string key in table.Keys) { try { XenRef k = XenRef.Create(key); XenRef v = table[key] == null ? null : XenRef.Create(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_XenRefVIF_XenRefNetwork(Dictionary, XenRef> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (XenRef key in table.Keys) { try { string k = (key != null) ? key : ""; string v = (table[key] != null) ? table[key] : ""; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary, string> convert_from_proxy_XenRefVM_string(Object o) { Hashtable table = (Hashtable)o; Dictionary, string> result = new Dictionary, string>(); if (table != null) { foreach (string key in table.Keys) { try { XenRef k = XenRef.Create(key); string v = table[key] == null ? null : (string)table[key]; result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_XenRefVM_string(Dictionary, string> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (XenRef key in table.Keys) { try { string k = (key != null) ? key : ""; string v = (table[key] != null) ? table[key] : ""; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary, string[]> convert_from_proxy_XenRefVM_string_array(Object o) { Hashtable table = (Hashtable)o; Dictionary, string[]> result = new Dictionary, string[]>(); if (table != null) { foreach (string key in table.Keys) { try { XenRef k = XenRef.Create(key); string[] v = table[key] == null ? new string[] {} : Array.ConvertAll((object[])table[key], Convert.ToString); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_XenRefVM_string_array(Dictionary, string[]> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (XenRef key in table.Keys) { try { string k = (key != null) ? key : ""; string [] v = table[key]; result[k] = v; } catch { continue; } } } return result; } internal static Dictionary, Dictionary> convert_from_proxy_XenRefVM_Dictionary_string_string(Object o) { Hashtable table = (Hashtable)o; Dictionary, Dictionary> result = new Dictionary, Dictionary>(); if (table != null) { foreach (string key in table.Keys) { try { XenRef k = XenRef.Create(key); Dictionary v = table[key] == null ? null : Maps.convert_from_proxy_string_string(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_XenRefVM_Dictionary_string_string(Dictionary, Dictionary> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (XenRef key in table.Keys) { try { string k = (key != null) ? key : ""; Object v = Maps.convert_to_proxy_string_string(table[key]); result[k] = v; } catch { continue; } } } return result; } internal static Dictionary, string[]> convert_from_proxy_XenRefHost_string_array(Object o) { Hashtable table = (Hashtable)o; Dictionary, string[]> result = new Dictionary, string[]>(); if (table != null) { foreach (string key in table.Keys) { try { XenRef k = XenRef.Create(key); string[] v = table[key] == null ? new string[] {} : Array.ConvertAll((object[])table[key], Convert.ToString); result[k] = v; } catch { continue; } } } return result; } internal static Hashtable convert_to_proxy_XenRefHost_string_array(Dictionary, string[]> table) { CookComputing.XmlRpc.XmlRpcStruct result = new CookComputing.XmlRpc.XmlRpcStruct(); if (table != null) { foreach (XenRef key in table.Keys) { try { string k = (key != null) ? key : ""; string [] v = table[key]; result[k] = v; } catch { continue; } } } return result; } } }