Added code for fetching license key from alternate servers if rockfish is not contactable. Alt license server domains are:
io.ayanova.com, europa.ayanova.com, callisto.ayanova.com
This commit is contained in:
@@ -28,8 +28,12 @@ namespace AyaNova.Core
|
||||
internal static class License
|
||||
{
|
||||
|
||||
//License server address
|
||||
private const string LICENSE_SERVER_URL = "https://rockfish.ayanova.com/";
|
||||
//License server addresses
|
||||
private const string LICENSE_SERVER_URL_ROCKFISH = "https://rockfish.ayanova.com/";
|
||||
private const string LICENSE_SERVER_URL_IO = "https://io.ayanova.com/";
|
||||
private const string LICENSE_SERVER_URL_EUROPA = "https://europa.ayanova.com/";
|
||||
private const string LICENSE_SERVER_URL_CALLISTO = "https://callisto.ayanova.com/";
|
||||
|
||||
|
||||
// #if (DEBUG)
|
||||
// private const string LICENSE_SERVER_URL = "http://localhost:3001/";
|
||||
@@ -186,7 +190,7 @@ namespace AyaNova.Core
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
|
||||
return (Status == LicenseStatus.ActivePurchased) || (Status == LicenseStatus.ActiveTrial);
|
||||
}
|
||||
|
||||
@@ -454,7 +458,7 @@ namespace AyaNova.Core
|
||||
trialRequest.DbId = ServerDbId;
|
||||
|
||||
log.LogDebug($"Requesting trial license for DBID {LicenseDbId}");
|
||||
string sUrl = $"{LICENSE_SERVER_URL}rvr";
|
||||
string sUrl = $"{LICENSE_SERVER_URL_ROCKFISH}rvr";
|
||||
try
|
||||
{
|
||||
var content = new StringContent(JsonConvert.SerializeObject(trialRequest), Encoding.UTF8, "application/json");
|
||||
@@ -492,7 +496,7 @@ namespace AyaNova.Core
|
||||
/// </summary>
|
||||
/// <returns>Result string</returns>
|
||||
#if (DEBUG)
|
||||
internal static async Task<string> FetchKeyAsync(AyaNova.Api.ControllerHelpers.ApiServerState apiServerState, AyContext ct, ILogger log, bool calledFromInternalJob, bool devTestTrial=false)
|
||||
internal static async Task<string> FetchKeyAsync(AyaNova.Api.ControllerHelpers.ApiServerState apiServerState, AyContext ct, ILogger log, bool calledFromInternalJob, bool devTestTrial = false)
|
||||
#else
|
||||
internal static async Task<string> FetchKeyAsync(AyaNova.Api.ControllerHelpers.ApiServerState apiServerState, AyContext ct, ILogger log, bool calledFromInternalJob)
|
||||
#endif
|
||||
@@ -504,22 +508,22 @@ namespace AyaNova.Core
|
||||
|
||||
var FetchRequest = new dtoFetchRequest() { DbId = LicenseDbId };
|
||||
#if (DEBUG)
|
||||
string sUrl = $"{LICENSE_SERVER_URL}rvf";
|
||||
string AppendToLicenseUrl = "rvf";
|
||||
if (devTestTrial)
|
||||
{
|
||||
sUrl += "?dtt=true";//signal to rockfish to provide a key immediately for dev testing
|
||||
AppendToLicenseUrl += "?dtt=true";//signal to rockfish to provide a key immediately for dev testing
|
||||
}
|
||||
#else
|
||||
string sUrl = $"{LICENSE_SERVER_URL}rvf";
|
||||
string sUrl = $"rvf";
|
||||
#endif
|
||||
|
||||
try
|
||||
{
|
||||
// string ResponseText = await ServiceProviderProvider.HttpClientFactory.CreateClient().GetStringAsync(sUrl);
|
||||
|
||||
var content = new StringContent(JsonConvert.SerializeObject(FetchRequest), Encoding.UTF8, "application/json");
|
||||
var client = ServiceProviderProvider.HttpClientFactory.CreateClient();
|
||||
var res = await client.PostAsync(sUrl, content);
|
||||
HttpResponseMessage res = null;
|
||||
|
||||
res = await DoFetchAsync(AppendToLicenseUrl, content, client);
|
||||
if (res.IsSuccessStatusCode)
|
||||
{
|
||||
var responseText = await res.Content.ReadAsStringAsync();
|
||||
@@ -587,6 +591,40 @@ namespace AyaNova.Core
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task<HttpResponseMessage> DoFetchAsync(string AppendToLicenseUrl, StringContent content, HttpClient client)
|
||||
{
|
||||
var LicenseServer = string.Empty;
|
||||
for (int x = 0; x < 4; x++)
|
||||
{
|
||||
try
|
||||
{
|
||||
switch (x)
|
||||
{
|
||||
case 0:
|
||||
LicenseServer = LICENSE_SERVER_URL_CALLISTO;
|
||||
break;
|
||||
case 1:
|
||||
LicenseServer = LICENSE_SERVER_URL_IO;
|
||||
break;
|
||||
case 2:
|
||||
LicenseServer = LICENSE_SERVER_URL_EUROPA;
|
||||
break;
|
||||
case 3:
|
||||
LicenseServer = LICENSE_SERVER_URL_ROCKFISH ;
|
||||
break;
|
||||
}
|
||||
|
||||
return await client.PostAsync($"{LicenseServer}{AppendToLicenseUrl}", content);
|
||||
|
||||
}
|
||||
catch(System.Net.Http.HttpRequestException){
|
||||
if(x==3)
|
||||
throw;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Initialize the license
|
||||
|
||||
Reference in New Issue
Block a user