mirror of
https://github.com/xcp-ng/xenadmin.git
synced 2025-01-20 07:19:18 +01:00
CP-12769: Using uniform format of time to string and string to time
Signed-off-by: Cheng Zhang <cheng.zhang@citrix.com>
This commit is contained in:
parent
d8b8ff96c5
commit
c0585f0681
@ -313,8 +313,7 @@ namespace XenAdmin.Dialogs.CallHome
|
||||
var callHomeSettings = poolRow.Pool.CallHomeSettings;
|
||||
if (callHomeSettings.CanRequestNewUpload)
|
||||
{
|
||||
System.Globalization.CultureInfo enUs = new System.Globalization.CultureInfo("en-us");
|
||||
callHomeSettings.NewUploadRequest = DateTime.UtcNow.ToString(enUs);
|
||||
callHomeSettings.NewUploadRequest = CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
new SaveCallHomeSettingsAction(poolRow.Pool, callHomeSettings, null, null, null, false).RunAsync();
|
||||
}
|
||||
}
|
||||
|
@ -36,6 +36,7 @@ using System.Net;
|
||||
using XenAdmin;
|
||||
using XenAdmin.Core;
|
||||
using XenAdmin.Network;
|
||||
using System.Globalization;
|
||||
|
||||
namespace XenAPI
|
||||
{
|
||||
@ -559,6 +560,21 @@ namespace XenAPI
|
||||
{
|
||||
return new Random().Next(1, 5);
|
||||
}
|
||||
|
||||
public static string DateTimeToString(DateTime dateTime)
|
||||
{
|
||||
// Round-trip format time
|
||||
DateTime rtime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
|
||||
return rtime.ToString("o");
|
||||
}
|
||||
|
||||
public static DateTime StringToDateTime(string dateTimeString)
|
||||
{
|
||||
// Round-trip format time
|
||||
DateTime dateTime = DateTime.ParseExact(dateTimeString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind);
|
||||
return dateTime;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public string GetSecretyInfo(IXenConnection connection, string secretType)
|
||||
|
@ -85,7 +85,7 @@ namespace XenServerHealthCheck
|
||||
{
|
||||
Dictionary<string, string> config = Pool.get_health_check_config(session, connection.Cache.Pools[0].opaque_ref);
|
||||
string newUploadLock = Properties.Settings.Default.UUID;
|
||||
newUploadLock += "|" + DateTime.UtcNow.ToString();
|
||||
newUploadLock += "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = newUploadLock;
|
||||
Pool.set_health_check_config(session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
System.Threading.Thread.Sleep(SleepForLockConfirm);
|
||||
@ -118,7 +118,8 @@ namespace XenServerHealthCheck
|
||||
{
|
||||
try
|
||||
{
|
||||
lastSuccessfulUpload = DateTime.Parse(Get(config, CallHomeSettings.LAST_SUCCESSFUL_UPLOAD));
|
||||
|
||||
lastSuccessfulUpload = CallHomeSettings.StringToDateTime(Get(config, CallHomeSettings.LAST_SUCCESSFUL_UPLOAD));
|
||||
haveSuccessfulUpload = true;
|
||||
}
|
||||
catch (Exception exn)
|
||||
@ -140,7 +141,7 @@ namespace XenServerHealthCheck
|
||||
{
|
||||
try
|
||||
{
|
||||
DateTime LastFailedUpload = DateTime.Parse(Get(config, CallHomeSettings.LAST_FAILED_UPLOAD));
|
||||
DateTime LastFailedUpload = CallHomeSettings.StringToDateTime(Get(config, CallHomeSettings.LAST_FAILED_UPLOAD));
|
||||
|
||||
if (haveSuccessfulUpload)
|
||||
{
|
||||
@ -210,8 +211,8 @@ namespace XenServerHealthCheck
|
||||
|
||||
if (config.ContainsKey(CallHomeSettings.NEW_UPLOAD_REQUEST))
|
||||
{
|
||||
System.Globalization.CultureInfo enUs = new System.Globalization.CultureInfo("en-us");
|
||||
DateTime newUploadRequestDueTime = DateTime.Parse(Get(config, CallHomeSettings.NEW_UPLOAD_REQUEST), enUs).AddMinutes(DemandTimeOutMinutes);
|
||||
|
||||
DateTime newUploadRequestDueTime = CallHomeSettings.StringToDateTime(Get(config, CallHomeSettings.NEW_UPLOAD_REQUEST)).AddMinutes(DemandTimeOutMinutes);;
|
||||
if (DateTime.Compare(newUploadRequestDueTime, DateTime.UtcNow) >= 0)
|
||||
{
|
||||
return getLock(connection, session);
|
||||
|
@ -191,7 +191,7 @@ namespace XenServerHealthCheck
|
||||
|
||||
// Round-trip format time
|
||||
DateTime rtime = DateTime.SpecifyKind(time, DateTimeKind.Utc);
|
||||
string stime = rtime.ToString("o");
|
||||
string stime = CallHomeSettings.DateTimeToString(rtime);
|
||||
|
||||
// record upload_uuid,
|
||||
// release the lock,
|
||||
|
@ -90,20 +90,20 @@ namespace XenServerHealthCheckTests
|
||||
|
||||
//2.If the lock has already set by current service and not due, the lock should not been set again.
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + DateTime.UtcNow.ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
|
||||
//3. If the lock already due or no one set the lock, but current schedule DayOfWeek and TimeOfDay is not correct, the lock should not been set.
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
//4. For lock due or not set by others and schedule meet, lock should be set.
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
config[CallHomeSettings.DAY_OF_WEEK] = DateTime.UtcNow.DayOfWeek.ToString();
|
||||
config[CallHomeSettings.TIME_OF_DAY] = DateTime.UtcNow.Hour.ToString();
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
@ -111,13 +111,13 @@ namespace XenServerHealthCheckTests
|
||||
|
||||
//5. For Lock set by other service and not due, the lock should not been set by us.
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + DateTime.UtcNow.ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
//6. For Lock set by other service but already due, the lock can be set by current service
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
config[CallHomeSettings.DAY_OF_WEEK] = DateTime.UtcNow.DayOfWeek.ToString();
|
||||
config[CallHomeSettings.TIME_OF_DAY] = DateTime.UtcNow.Hour.ToString();
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
@ -125,27 +125,27 @@ namespace XenServerHealthCheckTests
|
||||
|
||||
//7 Check LastFailedUpload is not empty and > LastSuccessfulUpload && INTERVAL_IN_DAYS using default, lock can be set
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(8)).ToString();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(8)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsTrue(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
//8 For not due uploading, lock should not been set
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(6)).ToString();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(6)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
//9 For failed upload, retry was needed but not meet RetryIntervalInDays, lock should not been set
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(5)).ToString();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(5)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
//10 For failed upload, retry was needed and meet RetryIntervalInDays, lock should be set
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(7)).ToString();
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(7)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsTrue(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
@ -153,13 +153,13 @@ namespace XenServerHealthCheckTests
|
||||
//11 Retry needed because no LAST_SUCCESSFUL_UPLOAD but not meet RetryIntervalInDays, lock should not be set
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = "";
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(8)).ToString();
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(8)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsTrue(RequestUploadTask.Request(connection, _session));
|
||||
|
||||
//12 For no LAST_FAILED_UPLOAD or invalid LAST_FAILED_UPLOAD, lock should not be set if not due
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = DateTime.UtcNow.Subtract(TimeSpan.FromDays(13)).ToString();
|
||||
config[CallHomeSettings.LAST_SUCCESSFUL_UPLOAD] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(13)));
|
||||
config[CallHomeSettings.LAST_FAILED_UPLOAD] = "asd";
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse (RequestUploadTask.Request(connection, _session));
|
||||
@ -180,29 +180,29 @@ namespace XenServerHealthCheckTests
|
||||
connection.LoadCache(_session);
|
||||
//1 Uploading is inprocess by current service, demand will be ignore
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + DateTime.UtcNow.ToString();
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = DateTime.UtcNow.ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = UUID + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.OnDemandRequest(connection, _session));
|
||||
|
||||
//2 Uploading is inprocess by other service, demand will be ignore
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + DateTime.UtcNow.ToString();
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = DateTime.UtcNow.ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = CallHomeSettings.DateTimeToString(DateTime.UtcNow);
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.OnDemandRequest(connection, _session));
|
||||
|
||||
//3 Uploading is not due and demand due, demand will be ignore
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(31)).ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(31)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsFalse(RequestUploadTask.OnDemandRequest(connection, _session));
|
||||
|
||||
//4 Uploading is due and demand not due, lock will be set
|
||||
config = cleanStack();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)).ToString();
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(28)).ToString();
|
||||
config[CallHomeSettings.UPLOAD_LOCK] = "test2-test2" + "|" + CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromDays(14)));
|
||||
config[CallHomeSettings.NEW_UPLOAD_REQUEST] = CallHomeSettings.DateTimeToString(DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(28)));
|
||||
Pool.set_health_check_config(_session, connection.Cache.Pools[0].opaque_ref, config);
|
||||
Assert.IsTrue(RequestUploadTask.OnDemandRequest(connection, _session));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user