xenadmin/XenModel/XenAPI-Extensions/Message.cs

117 lines
4.1 KiB
C#
Raw Normal View History

/* 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 XenAdmin.Core;
namespace XenAPI
{
public partial class Message
{
private string _messageTypeString;
public string MessageTypeString
{
get
{
if (string.IsNullOrEmpty(_messageTypeString))
_messageTypeString = Type.ToString();
return _messageTypeString;
}
}
public DateTime TimestampLocal
{
get
{
DateTime t = timestamp + Connection.ServerTimeOffset;
return t.ToLocalTime();
}
}
public static string FriendlyName(string type)
{
return PropertyManager.GetFriendlyName(string.Format("Message.name-{0}", type.ToLowerInvariant()));
}
public static string FriendlyBody(string type)
{
return PropertyManager.GetFriendlyName(string.Format("Message.body-{0}", type.ToLowerInvariant()));
}
public static string FriendlyHelp(string type)
{
return PropertyManager.GetFriendlyName(string.Format("Message.help-{0}", type.ToLowerInvariant()));
}
public static string FriendlyAction(string type)
{
return PropertyManager.GetFriendlyName(string.Format("Message.action-{0}", type.ToLowerInvariant()));
}
/// <summary>
/// True if this is a MessageType.ALARM. These Messages are generated by the perfmon daemon. Their Title
/// is always ALARM, and the Body contains the XML that specifies when the alert is triggered, as sent by us
/// to the server when the alert was configured.
/// </summary>
public bool IsPerfmonAlarm
{
get
{
return this.Type == XenAPI.Message.MessageType.ALARM;
}
}
public bool ShowOnGraphs
{
get
{
return this.Type == MessageType.VM_CLONED
|| this.Type == MessageType.VM_CRASHED
|| this.Type == MessageType.VM_REBOOTED
|| this.Type == MessageType.VM_RESUMED
|| this.Type == MessageType.VM_SHUTDOWN
|| this.Type == MessageType.VM_STARTED
|| this.Type == MessageType.VM_SUSPENDED;
}
}
public bool IsSquelched
{
get
{
// We don't show HA_POOL_OVERCOMMITTED because we get HA_POOL_DROP_IN_PLAN_EXISTS_FOR at the same time.
return Type == MessageType.HA_POOL_OVERCOMMITTED;
}
}
}
}