Skip to content
Snippets Groups Projects
Commit db5fcbc2 authored by Petar Hristov's avatar Petar Hristov :speech_balloon:
Browse files

Fix: Missing quota implementation

parent d4d2fec1
No related branches found
No related tags found
1 merge request!37Fix: Missing quota implementation
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 17
VisualStudioVersion = 16.0.30320.27 VisualStudioVersion = 17.0.32112.339
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Admin", "Admin\Admin.csproj", "{04914153-8D29-4252-A3C2-24C887840C69}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Admin", "Admin\Admin.csproj", "{04914153-8D29-4252-A3C2-24C887840C69}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
......
...@@ -3,7 +3,6 @@ using Coscine.Action.EventArgs; ...@@ -3,7 +3,6 @@ using Coscine.Action.EventArgs;
using Coscine.Api.Admin.ParameterObjects; using Coscine.Api.Admin.ParameterObjects;
using Coscine.Api.Admin.ReturnObjects; using Coscine.Api.Admin.ReturnObjects;
using Coscine.ApiCommons; using Coscine.ApiCommons;
using Coscine.Configuration;
using Coscine.Database.DataModel; using Coscine.Database.DataModel;
using Coscine.Database.Models; using Coscine.Database.Models;
using Coscine.Logging; using Coscine.Logging;
...@@ -98,11 +97,19 @@ namespace Coscine.Api.Admin.Controllers ...@@ -98,11 +97,19 @@ namespace Coscine.Api.Admin.Controllers
select projectResource).Any() && select projectResource).Any() &&
resource.TypeId == resourceType.Id); resource.TypeId == resourceType.Id);
var allocated = resources.Sum(resource => ResourceTypeFactory var allocated = resources.Sum(resource =>
.Instance {
.GetResourceType(resource) // Linked has no quota.
.GetResourceQuotaAvailable(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id)) var rt = ResourceTypeFactory.Instance.GetResourceType(resource);
.Result); if (rt.GetResourceTypeInformation().Result.IsQuotaAvailable)
{
return rt.GetResourceQuotaAvailable(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id)).Result;
}
else
{
return 0;
}
});
return (int)allocated; return (int)allocated;
} }
...@@ -121,11 +128,23 @@ namespace Coscine.Api.Admin.Controllers ...@@ -121,11 +128,23 @@ namespace Coscine.Api.Admin.Controllers
select projectResource).Any() && select projectResource).Any() &&
resource.TypeId == resourceType.Id); resource.TypeId == resourceType.Id);
var used = Math.Ceiling(resources.Sum(resource => ResourceTypeFactory var used = Math.Ceiling(
.Instance resources.Sum(
.GetResourceType(resource) resource =>
.GetResourceQuotaUsed(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id)) {
.Result / _oneGb)); // Linked has no quota.
var rt = ResourceTypeFactory.Instance.GetResourceType(resource);
if (rt.GetResourceTypeInformation().Result.IsQuotaAvailable)
{
return rt.GetResourceQuotaUsed(resource.Id.ToString(), _resourceModel.GetResourceTypeOptions(resource.Id)).Result / _oneGb;
}
else
{
return 0;
}
}
)
);
return (int)used; return (int)used;
} }
...@@ -170,7 +189,7 @@ namespace Coscine.Api.Admin.Controllers ...@@ -170,7 +189,7 @@ namespace Coscine.Api.Admin.Controllers
Quotas = quotas.Select(x => new ProjectQuotaObject Quotas = quotas.Select(x => new ProjectQuotaObject
{ {
QuotaId = x.RelationId, QuotaId = x.RelationId,
ResourceType = _resourceTypeModel.GetById(x.ResourceTypeId).DisplayName, ResourceType = _resourceTypeModel.GetById(x.ResourceTypeId).SpecificType,
Quota = x.Quota, Quota = x.Quota,
MaxQuota = x.MaxQuota, MaxQuota = x.MaxQuota,
Used = CalculateUsedForAll(_resourceTypeModel.GetById(x.ResourceTypeId), project.Id), Used = CalculateUsedForAll(_resourceTypeModel.GetById(x.ResourceTypeId), project.Id),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment