Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • coscine/backend/libraries/database
1 result
Select Git revision
Loading items
Show changes

Commits on Source 3

<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<RootNamespace>Coscine.Database.Actions</RootNamespace> <RootNamespace>Coscine.Database.Actions</RootNamespace>
<AssemblyName>Coscine.Database.Actions</AssemblyName> <AssemblyName>Coscine.Database.Actions</AssemblyName>
<TargetFramework>net6.0</TargetFramework> <TargetFramework>net6.0</TargetFramework>
</PropertyGroup> <Version>2.11.0</Version></PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Coscine.Database.Helpers" Version="2.*-*" /> <PackageReference Include="Coscine.Database.Helpers" Version="2.*-*" />
<PackageReference Include="Coscine.Migrations" Version="2.*-*" /> <PackageReference Include="Coscine.Migrations" Version="2.*-*" />
......
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>Library</OutputType> <OutputType>Library</OutputType>
<RootNamespace>Coscine.Database.Tests</RootNamespace> <RootNamespace>Coscine.Database.Tests</RootNamespace>
<AssemblyName>Coscine.Database.Tests</AssemblyName> <AssemblyName>Coscine.Database.Tests</AssemblyName>
<TargetFrameworks>net6.0;net461</TargetFrameworks> <TargetFrameworks>net6.0;net461</TargetFrameworks>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo> <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup> <Version>2.11.0</Version></PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Database\Database.csproj" /> <ProjectReference Include="..\Database\Database.csproj" />
</ItemGroup> </ItemGroup>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<RootNamespace>Coscine.Database</RootNamespace> <RootNamespace>Coscine.Database</RootNamespace>
<AssemblyName>Coscine.Database</AssemblyName> <AssemblyName>Coscine.Database</AssemblyName>
<TargetFrameworks>net6.0;net461</TargetFrameworks> <TargetFrameworks>net6.0;net461</TargetFrameworks>
<Version>2.10.1</Version> <Version>2.11.0</Version>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<Authors>RWTH Aachen University</Authors> <Authors>RWTH Aachen University</Authors>
......
using Coscine.Database.DataModel;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Coscine.Database.Models
{
public class RdsS3WormResourceTypeModel : DatabaseModel<RdsS3wormResourceType>
{
public override Expression<Func<RdsS3wormResourceType, Guid>> GetIdFromObject()
{
return (rdsResourceType) => rdsResourceType.Id;
}
public override Microsoft.EntityFrameworkCore.DbSet<RdsS3wormResourceType> GetITableFromDatabase(CoscineDB db)
{
return db.RdsS3wormResourceTypes;
}
public override void SetObjectId(RdsS3wormResourceType databaseObject, Guid id)
{
databaseObject.Id = id;
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{
var resourceType = GetById(id);
var dictionary = new Dictionary<string, string>
{
{ "accessKey", resourceType.AccessKey },
{ "secretKey", resourceType.SecretKey },
{ "accessKeyRead", resourceType.AccessKeyRead },
{ "secretKeyRead", resourceType.SecretKeyRead },
{ "accessKeyWrite", resourceType.AccessKeyWrite },
{ "secretKeyWrite", resourceType.SecretKeyWrite },
{ "bucketname", resourceType.BucketName },
{ "endpoint", resourceType.Endpoint },
{ "size", $"{resourceType.Size}" }
};
return dictionary;
}
}
}
\ No newline at end of file
...@@ -13,22 +13,6 @@ namespace Coscine.Database.Models ...@@ -13,22 +13,6 @@ namespace Coscine.Database.Models
{ {
public class ResourceModel : DatabaseModel<Resource> public class ResourceModel : DatabaseModel<Resource>
{ {
private readonly IConfiguration _configuration = new ConsulConfiguration();
private static readonly Dictionary<string, string> _configs = new Dictionary<string, string>
{
// RDS-Web
{ "rds", "coscine/global/rds/ecs-rwth/rds" },
{ "rdsude", "coscine/global/rds/ecs-ude/rds" },
{ "rdsnrw", "coscine/global/rds/ecs-nrw/rds" },
{ "rdstudo", "coscine/global/rds/ecs-tudo/rds" },
// RDS-S3
{ "rdss3", "coscine/global/rds/ecs-rwth/rds-s3" },
{ "rdss3ude", "coscine/global/rds/ecs-ude/rds-s3" },
{ "rdss3nrw", "coscine/global/rds/ecs-nrw/rds-s3" },
{ "rdss3tudo", "coscine/global/rds/ecs-tudo/rds-s3" }
};
public Resource StoreFromObject(ResourceObject resourceObject) public Resource StoreFromObject(ResourceObject resourceObject)
{ {
if (!resourceObject.Disciplines.Any() || resourceObject.ResourceTypeOption == null) if (!resourceObject.Disciplines.Any() || resourceObject.ResourceTypeOption == null)
...@@ -59,7 +43,6 @@ namespace Coscine.Database.Models ...@@ -59,7 +43,6 @@ namespace Coscine.Database.Models
try try
{ {
SetDisciplines(resource, resourceObject.Disciplines); SetDisciplines(resource, resourceObject.Disciplines);
SetResourceTypeObject(resource, resourceObject.ResourceTypeOption);
} }
catch (Exception) catch (Exception)
{ {
...@@ -116,161 +99,34 @@ namespace Coscine.Database.Models ...@@ -116,161 +99,34 @@ namespace Coscine.Database.Models
from jrt in joinedRt.DefaultIfEmpty() from jrt in joinedRt.DefaultIfEmpty()
where !jp.Deleted && where !jp.Deleted &&
IsLikeRds(jrt.DisplayName) jrt.Type == "rds"
group r by jpi.OrganizationUrl into g group r by jpi.OrganizationUrl into g
select new OrganizationResourceListObject(g.Key, g.ToList())).ToList(); select new OrganizationResourceListObject(g.Key, g.ToList())).ToList();
}); });
} }
private void SetResourceTypeObject(Resource resource, JObject resourceTypeOption)
{
if (IsLikeRds(resource.Type.DisplayName))
{
RDSResourceTypeObject rdsResourceTypeObject = resourceTypeOption.ToObject<RDSResourceTypeObject>();
RDSResourceTypeModel rdsResourceTypeModel = new RDSResourceTypeModel();
if (resource.ResourceTypeOptionId != null)
{
RdsresourceType rdsResourceType = rdsResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
rdsResourceTypeModel.Update(rdsResourceType);
}
else
{
var prefix = _configs[resource.Type.DisplayName];
RdsresourceType rdsResourceType = new RdsresourceType()
{
BucketName = resource.Id.ToString(),
Size = rdsResourceTypeObject.Size,
AccessKey = _configuration.GetString($"{prefix}/object_user_name"),
SecretKey = _configuration.GetString($"{prefix}/object_user_secretkey"),
Endpoint = _configuration.GetString($"{prefix}/s3_endpoint"),
};
rdsResourceTypeModel.Insert(rdsResourceType);
resource.ResourceTypeOptionId = rdsResourceType.Id;
Update(resource);
}
}
else if (resource.Type.DisplayName == "s3")
{
S3ResourceTypeObject s3ResourceTypeObject = resourceTypeOption.ToObject<S3ResourceTypeObject>();
S3ResourceTypeModel s3ResourceTypeModel = new S3ResourceTypeModel();
if (resource.ResourceTypeOptionId != null)
{
S3resourceType s3ResourceType = s3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
s3ResourceType.BucketName = s3ResourceTypeObject.BucketName;
s3ResourceType.AccessKey = s3ResourceTypeObject.AccessKey ?? s3ResourceType.AccessKey;
s3ResourceType.SecretKey = s3ResourceTypeObject.SecretKey ?? s3ResourceType.SecretKey;
s3ResourceTypeModel.Update(s3ResourceType);
}
else
{
S3resourceType s3ResourceType = new S3resourceType()
{
BucketName = s3ResourceTypeObject.BucketName,
AccessKey = s3ResourceTypeObject.AccessKey,
SecretKey = s3ResourceTypeObject.SecretKey
};
s3ResourceTypeModel.Insert(s3ResourceType);
resource.ResourceTypeOptionId = s3ResourceType.Id;
Update(resource);
}
}
else if (resource.Type.DisplayName == "gitlab")
{
GitlabResourceTypeObject gitlabResourceTypeObject = resourceTypeOption.ToObject<GitlabResourceTypeObject>();
GitlabResourceTypeModel gitlabResourceTypeModel = new GitlabResourceTypeModel();
if (resource.ResourceTypeOptionId != null)
{
GitlabResourceType gitlabResourceType = gitlabResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
gitlabResourceType.RepositoryNumber = gitlabResourceTypeObject.RepositoryNumber;
gitlabResourceType.RepositoryUrl = gitlabResourceTypeObject.RepositoryUrl;
gitlabResourceType.Token = gitlabResourceTypeObject.Token ?? gitlabResourceType.Token;
gitlabResourceTypeModel.Update(gitlabResourceType);
}
else
{
GitlabResourceType gitlabResourceType = new GitlabResourceType()
{
RepositoryNumber = gitlabResourceTypeObject.RepositoryNumber,
RepositoryUrl = gitlabResourceTypeObject.RepositoryUrl,
Token = gitlabResourceTypeObject.Token
};
gitlabResourceTypeModel.Insert(gitlabResourceType);
resource.ResourceTypeOptionId = gitlabResourceType.Id;
Update(resource);
}
}
else if (resource.Type.DisplayName == "linked")
{
LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel();
if (resource.ResourceTypeOptionId == null)
{
LinkedResourceType linkedResourceType = new LinkedResourceType();
linkedResourceTypeModel.Insert(linkedResourceType);
resource.ResourceTypeOptionId = linkedResourceType.Id;
Update(resource);
}
}
else if (IsLikeRdsS3(resource.Type.DisplayName))
{
var rdsS3ResourceTypeObject = resourceTypeOption.ToObject<RdsS3ResourceTypeObject>();
var rdsS3ResourceTypeModel = new RdsS3ResourceTypeModel();
if (resource.ResourceTypeOptionId != null)
{
var rdsS3ResourceType = rdsS3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
rdsS3ResourceTypeModel.Update(rdsS3ResourceType);
}
else
{
var prefix = _configs[resource.Type.DisplayName];
var rdsS3ResourceType = new RdsS3resourceType()
{
BucketName = resource.Id.ToString(),
AccessKey = _configuration.GetString($"{prefix}/object_user_name"),
SecretKey = _configuration.GetString($"{prefix}/object_user_secretkey"),
AccessKeyRead = $"read_{resource.Id}",
SecretKeyRead = RandomHelper.GenerateRandomChunk(32),
AccessKeyWrite = $"write_{resource.Id}",
SecretKeyWrite = RandomHelper.GenerateRandomChunk(32),
Endpoint = _configuration.GetString($"{prefix}/s3_endpoint"),
Size = rdsS3ResourceTypeObject.Size,
};
rdsS3ResourceTypeModel.Insert(rdsS3ResourceType);
resource.ResourceTypeOptionId = rdsS3ResourceType.Id;
Update(resource);
}
}
else
{
throw new ArgumentException("Not supported resource type!");
}
}
public Dictionary<string, string> GetResourceTypeOptions(Guid id) public Dictionary<string, string> GetResourceTypeOptions(Guid id)
{ {
var resource = GetById(id); var resource = GetById(id);
var resourceType = new ResourceTypeModel().GetById((Guid)resource.TypeId); var resourceType = new ResourceTypeModel().GetById(resource.TypeId);
var resourceTypeOptionId = (Guid)resource.ResourceTypeOptionId; var resourceTypeOptionId = (Guid)resource.ResourceTypeOptionId;
if (resourceType.DisplayName == "gitlab") if (resourceType.Type == "gitlab")
{ {
return new GitlabResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId); return new GitlabResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
} }
else if (IsLikeRds(resourceType.DisplayName)) else if (resourceType.Type == "rds")
{ {
return new RDSResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId); return new RDSResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
} }
else if (resourceType.DisplayName == "s3") else if (resourceType.Type == "s3")
{ {
return new S3ResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId); return new S3ResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
} }
else if (resourceType.DisplayName == "linked") else if (resourceType.Type == "linked")
{ {
return new LinkedResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId); return new LinkedResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
} }
else if (IsLikeRdsS3(resourceType.DisplayName)) else if (resourceType.Type == "rdss3")
{ {
return new RdsS3ResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId); return new RdsS3ResourceTypeModel().GetResourceTypeOptions(resourceTypeOptionId);
} }
...@@ -347,12 +203,10 @@ namespace Coscine.Database.Models ...@@ -347,12 +203,10 @@ namespace Coscine.Database.Models
// resource.Creator = resourceObject.Creator; // resource.Creator = resourceObject.Creator;
SetDisciplines(resource, resourceObject.Disciplines); SetDisciplines(resource, resourceObject.Disciplines);
SetResourceTypeObject(resource, resourceObject.ResourceTypeOption);
return Update(resource); return Update(resource);
} }
// TODO: Find out why resource.Type is not set
public void SetType(Resource resource) public void SetType(Resource resource)
{ {
if (resource.Type == null) if (resource.Type == null)
...@@ -365,27 +219,27 @@ namespace Coscine.Database.Models ...@@ -365,27 +219,27 @@ namespace Coscine.Database.Models
public void DeleteResourceTypeObject(Resource resource) public void DeleteResourceTypeObject(Resource resource)
{ {
SetType(resource); SetType(resource);
if (IsLikeRds(resource.Type.DisplayName) && resource.ResourceTypeOptionId != null) if (resource.Type.Type == "rds" && resource.ResourceTypeOptionId != null)
{ {
RDSResourceTypeModel rdsResourceTypeModel = new RDSResourceTypeModel(); RDSResourceTypeModel rdsResourceTypeModel = new RDSResourceTypeModel();
rdsResourceTypeModel.Delete(rdsResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value)); rdsResourceTypeModel.Delete(rdsResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value));
} }
else if (resource.Type.DisplayName == "s3" && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "s3" && resource.ResourceTypeOptionId != null)
{ {
S3ResourceTypeModel s3ResourceTypeModel = new S3ResourceTypeModel(); S3ResourceTypeModel s3ResourceTypeModel = new S3ResourceTypeModel();
s3ResourceTypeModel.Delete(s3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value)); s3ResourceTypeModel.Delete(s3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value));
} }
else if (resource.Type.DisplayName == "gitlab" && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "gitlab" && resource.ResourceTypeOptionId != null)
{ {
GitlabResourceTypeModel gitlabResourceTypeModel = new GitlabResourceTypeModel(); GitlabResourceTypeModel gitlabResourceTypeModel = new GitlabResourceTypeModel();
gitlabResourceTypeModel.Delete(gitlabResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value)); gitlabResourceTypeModel.Delete(gitlabResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value));
} }
else if (resource.Type.DisplayName == "linked" && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "linked" && resource.ResourceTypeOptionId != null)
{ {
LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel(); LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel();
linkedResourceTypeModel.Delete(linkedResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value)); linkedResourceTypeModel.Delete(linkedResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value));
} }
else if (IsLikeRdsS3(resource.Type.DisplayName) && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "rdss3" && resource.ResourceTypeOptionId != null)
{ {
var rdsS3ResourceTypeModel = new RdsS3ResourceTypeModel(); var rdsS3ResourceTypeModel = new RdsS3ResourceTypeModel();
rdsS3ResourceTypeModel.Delete(rdsS3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value)); rdsS3ResourceTypeModel.Delete(rdsS3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value));
...@@ -396,7 +250,7 @@ namespace Coscine.Database.Models ...@@ -396,7 +250,7 @@ namespace Coscine.Database.Models
{ {
SetType(resource); SetType(resource);
DisciplineModel disciplineModel = new DisciplineModel(); var disciplineModel = new DisciplineModel();
var disciplines = disciplineModel.GetAllWhere((discipline) => var disciplines = disciplineModel.GetAllWhere((discipline) =>
(from relation in discipline.ResourceDisciplines//ResourceDisciplineDisciplineIdIds (from relation in discipline.ResourceDisciplines//ResourceDisciplineDisciplineIdIds
where relation.ResourceId == resource.Id where relation.ResourceId == resource.Id
...@@ -416,31 +270,31 @@ namespace Coscine.Database.Models ...@@ -416,31 +270,31 @@ namespace Coscine.Database.Models
} }
ResourceTypeOptionObject resourceTypeOptionObject = null; ResourceTypeOptionObject resourceTypeOptionObject = null;
if (IsLikeRds(resource.Type.DisplayName) && resource.ResourceTypeOptionId != null) if (resource.Type.Type == "rds" && resource.ResourceTypeOptionId != null)
{ {
RDSResourceTypeModel rdsResourceTypeModel = new RDSResourceTypeModel(); RDSResourceTypeModel rdsResourceTypeModel = new RDSResourceTypeModel();
var rdsResourceType = rdsResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value); var rdsResourceType = rdsResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
resourceTypeOptionObject = new RDSResourceTypeObject(rdsResourceType.Id, rdsResourceType.BucketName, (int)rdsResourceType.Size); resourceTypeOptionObject = new RDSResourceTypeObject(rdsResourceType.Id, rdsResourceType.BucketName, (int)rdsResourceType.Size);
} }
else if (resource.Type.DisplayName == "s3" && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "s3" && resource.ResourceTypeOptionId != null)
{ {
S3ResourceTypeModel s3ResourceTypeModel = new S3ResourceTypeModel(); S3ResourceTypeModel s3ResourceTypeModel = new S3ResourceTypeModel();
var s3ResourceType = s3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value); var s3ResourceType = s3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
resourceTypeOptionObject = new S3ResourceTypeObject(s3ResourceType.Id, s3ResourceType.BucketName, null, null, s3ResourceType.ResourceUrl); resourceTypeOptionObject = new S3ResourceTypeObject(s3ResourceType.Id, s3ResourceType.BucketName, null, null, s3ResourceType.ResourceUrl);
} }
else if (resource.Type.DisplayName == "gitlab" && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "gitlab" && resource.ResourceTypeOptionId != null)
{ {
GitlabResourceTypeModel gitlabResourceTypeModel = new GitlabResourceTypeModel(); GitlabResourceTypeModel gitlabResourceTypeModel = new GitlabResourceTypeModel();
var gitlabResourceType = gitlabResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value); var gitlabResourceType = gitlabResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
resourceTypeOptionObject = new GitlabResourceTypeObject(gitlabResourceType.Id, gitlabResourceType.RepositoryNumber, gitlabResourceType.RepositoryUrl, null); resourceTypeOptionObject = new GitlabResourceTypeObject(gitlabResourceType.Id, gitlabResourceType.RepositoryNumber, gitlabResourceType.RepositoryUrl, null);
} }
else if (resource.Type.DisplayName == "linked" && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "linked" && resource.ResourceTypeOptionId != null)
{ {
LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel(); LinkedResourceTypeModel linkedResourceTypeModel = new LinkedResourceTypeModel();
var linkedResourceType = linkedResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value); var linkedResourceType = linkedResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
resourceTypeOptionObject = new LinkedResourceTypeObject(linkedResourceType.Id); resourceTypeOptionObject = new LinkedResourceTypeObject(linkedResourceType.Id);
} }
else if (IsLikeRdsS3(resource.Type.DisplayName) && resource.ResourceTypeOptionId != null) else if (resource.Type.Type == "rdss3" && resource.ResourceTypeOptionId != null)
{ {
var rdsS3ResourceTypeModel = new RdsS3ResourceTypeModel(); var rdsS3ResourceTypeModel = new RdsS3ResourceTypeModel();
var rdsS3ResourceType = rdsS3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value); var rdsS3ResourceType = rdsS3ResourceTypeModel.GetById(resource.ResourceTypeOptionId.Value);
...@@ -464,7 +318,7 @@ namespace Coscine.Database.Models ...@@ -464,7 +318,7 @@ namespace Coscine.Database.Models
resource.Description, resource.Description,
resource.Keywords, resource.Keywords,
resource.UsageRights, resource.UsageRights,
new ResourceTypeObject(resource.Type.Id, resource.Type.DisplayName), new ResourceTypeObject(resource.Type.Id, resource.Type.SpecificType),
disciplines, disciplines,
(resource.Visibility != null) ? new VisibilityObject(resource.Visibility.Id, resource.Visibility.DisplayName) : null, (resource.Visibility != null) ? new VisibilityObject(resource.Visibility.Id, resource.Visibility.DisplayName) : null,
(resource.License != null) ? new LicenseObject(resource.License.Id, resource.License.DisplayName) : null, (resource.License != null) ? new LicenseObject(resource.License.Id, resource.License.DisplayName) : null,
...@@ -558,15 +412,5 @@ namespace Coscine.Database.Models ...@@ -558,15 +412,5 @@ namespace Coscine.Database.Models
return $"{counted}/{maxCount}"; return $"{counted}/{maxCount}";
} }
private bool IsLikeRds(string compare)
{
return compare == "rds" || compare == "rdsude" || compare == "rdsnrw" || compare == "rdstudo";
}
private bool IsLikeRdsS3(string compare)
{
return compare == "rdss3" || compare == "rdss3ude" || compare == "rdss3nrw" || compare == "rdss3tudo";
}
} }
} }
\ No newline at end of file
...@@ -42,6 +42,7 @@ namespace Coscine.Database.DataModel ...@@ -42,6 +42,7 @@ namespace Coscine.Database.DataModel
public virtual DbSet<ProjectResource> ProjectResources { get; set; } public virtual DbSet<ProjectResource> ProjectResources { get; set; }
public virtual DbSet<ProjectRole> ProjectRoles { get; set; } public virtual DbSet<ProjectRole> ProjectRoles { get; set; }
public virtual DbSet<RdsS3resourceType> RdsS3resourceTypes { get; set; } public virtual DbSet<RdsS3resourceType> RdsS3resourceTypes { get; set; }
public virtual DbSet<RdsS3wormResourceType> RdsS3wormResourceTypes { get; set; }
public virtual DbSet<RdsresourceType> RdsresourceTypes { get; set; } public virtual DbSet<RdsresourceType> RdsresourceTypes { get; set; }
public virtual DbSet<Resource> Resources { get; set; } public virtual DbSet<Resource> Resources { get; set; }
public virtual DbSet<ResourceDiscipline> ResourceDisciplines { get; set; } public virtual DbSet<ResourceDiscipline> ResourceDisciplines { get; set; }
...@@ -543,6 +544,45 @@ namespace Coscine.Database.DataModel ...@@ -543,6 +544,45 @@ namespace Coscine.Database.DataModel
.HasMaxLength(200); .HasMaxLength(200);
}); });
modelBuilder.Entity<RdsS3wormResourceType>(entity =>
{
entity.ToTable("RdsS3WormResourceType");
entity.Property(e => e.Id).HasDefaultValueSql("(newid())");
entity.Property(e => e.AccessKey)
.IsRequired()
.HasMaxLength(200);
entity.Property(e => e.AccessKeyRead)
.IsRequired()
.HasMaxLength(200);
entity.Property(e => e.AccessKeyWrite)
.IsRequired()
.HasMaxLength(200);
entity.Property(e => e.BucketName)
.IsRequired()
.HasMaxLength(63);
entity.Property(e => e.Endpoint)
.IsRequired()
.HasMaxLength(200);
entity.Property(e => e.SecretKey)
.IsRequired()
.HasMaxLength(200);
entity.Property(e => e.SecretKeyRead)
.IsRequired()
.HasMaxLength(200);
entity.Property(e => e.SecretKeyWrite)
.IsRequired()
.HasMaxLength(200);
});
modelBuilder.Entity<RdsresourceType>(entity => modelBuilder.Entity<RdsresourceType>(entity =>
{ {
entity.ToTable("RDSResourceType"); entity.ToTable("RDSResourceType");
...@@ -634,6 +674,10 @@ namespace Coscine.Database.DataModel ...@@ -634,6 +674,10 @@ namespace Coscine.Database.DataModel
entity.Property(e => e.Enabled) entity.Property(e => e.Enabled)
.IsRequired() .IsRequired()
.HasDefaultValueSql("((1))"); .HasDefaultValueSql("((1))");
entity.Property(e => e.SpecificType).HasMaxLength(200);
entity.Property(e => e.Type).HasMaxLength(200);
}); });
modelBuilder.Entity<Role>(entity => modelBuilder.Entity<Role>(entity =>
......
using System;
using System.Collections.Generic;
// Code scaffolded by EF Core assumes nullable reference types (NRTs) are not used or disabled.
// If you have enabled NRTs for your project, then un-comment the following line:
// #nullable disable
namespace Coscine.Database.DataModel
{
public partial class RdsS3wormResourceType
{
public Guid Id { get; set; }
public string BucketName { get; set; }
public string AccessKey { get; set; }
public string SecretKey { get; set; }
public string AccessKeyRead { get; set; }
public string SecretKeyRead { get; set; }
public string AccessKeyWrite { get; set; }
public string SecretKeyWrite { get; set; }
public string Endpoint { get; set; }
public int Size { get; set; }
}
}
...@@ -18,6 +18,8 @@ namespace Coscine.Database.DataModel ...@@ -18,6 +18,8 @@ namespace Coscine.Database.DataModel
public Guid Id { get; set; } public Guid Id { get; set; }
public string DisplayName { get; set; } public string DisplayName { get; set; }
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
public string Type { get; set; }
public string SpecificType { get; set; }
public virtual ICollection<ProjectQuota> ProjectQuotas { get; set; } public virtual ICollection<ProjectQuota> ProjectQuotas { get; set; }
public virtual ICollection<Resource> Resources { get; set; } public virtual ICollection<Resource> Resources { get; set; }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<RootNamespace>Coscine.Database</RootNamespace> <RootNamespace>Coscine.Database</RootNamespace>
<TargetFrameworks>net6.0;net461</TargetFrameworks> <TargetFrameworks>net6.0;net461</TargetFrameworks>
</PropertyGroup> <Version>2.11.0</Version></PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Inflector.NetStandard" Version="1.2.2" /> <PackageReference Include="Inflector.NetStandard" Version="1.2.2" />
<!-- Note: use Microsoft.EntityFrameworkCore Version 3.x.x for compatibility with net461 --> <!-- Note: use Microsoft.EntityFrameworkCore Version 3.x.x for compatibility with net461 -->
......