Skip to content

Commit

Permalink
Rename directory to project_directory to match with xml schema (#682)
Browse files Browse the repository at this point in the history
  • Loading branch information
carolyncole authored May 7, 2024
1 parent 06439df commit 3bbb903
Show file tree
Hide file tree
Showing 27 changed files with 72 additions and 71 deletions.
2 changes: 1 addition & 1 deletion app/controllers/projects_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ def update
project_metadata = ProjectMetadata.new(project: project, current_user:)
project_params = params.dup
metadata_params = project_params.merge({
directory: project_params["project_directory"],
project_directory: project_params["project_directory"],
storage_capacity: {"size"=>{"approved"=>project_params["storage_capacity"].to_i,
"requested"=>project.metadata[:storage_capacity][:size][:requested]},
"unit"=>{"approved"=>"GB", "requested"=>"GB"}},
Expand Down
4 changes: 2 additions & 2 deletions app/models/project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ def departments
unsorted.sort
end

def directory
metadata[:directory]
def project_directory
metadata[:project_directory]
end

def status
Expand Down
8 changes: 4 additions & 4 deletions app/models/project_mediaflux.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ def self.create!(project:, session_id:, xml_namespace: nil)
create_root_ns(session_id: session_id)

# Create a namespace for the project
# The namespace is directly under our root namespace
project_name = safe_name(project.directory)
# The namespace is directly under our root namespace'
project_name = safe_name(project.project_directory)
project_namespace = "#{Rails.configuration.mediaflux['api_root_ns']}/#{project_name}NS"
namespace = Mediaflux::Http::NamespaceCreateRequest.new(namespace: project_namespace, description: "Namespace for project #{project.title}", store: store_name, session_token: session_id)
if namespace.error?
Expand Down Expand Up @@ -69,7 +69,7 @@ def self.format_date_for_mediaflux(iso8601_date)
def self.project_values(project:)
split_capacity = project.metadata[:storage_capacity_requested]&.split(" ") || []
values = {
project_directory: project.directory,
project_directory: project.project_directory,
title: project.metadata[:title],
description: project.metadata[:description],
status: project.metadata[:status],
Expand All @@ -91,7 +91,7 @@ def self.project_values(project:)
end

def self.xml_payload(project:, xml_namespace: nil)
project_name = safe_name(project.directory)
project_name = safe_name(project.project_directory)
project_namespace = "#{Rails.configuration.mediaflux['api_root_ns']}/#{project_name}NS"
project_parent = Rails.configuration.mediaflux["api_root_collection"]

Expand Down
4 changes: 2 additions & 2 deletions app/models/project_metadata.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def approve_project(params:)
# approve a project by recording the mediaflux id & setting the status to 'approved'
project.mediaflux_id = params[:mediaflux_id]
project.metadata_json["status"] = Project::APPROVED_STATUS
project.metadata_json["directory"] = params[:directory]
project.metadata_json["project_directory"] = params[:project_directory]
project.metadata_json["storage_capacity"] = params[:storage_capacity]

project.save!
Expand All @@ -59,7 +59,7 @@ def attributes
data_sponsor: params[:data_sponsor],
data_manager: params[:data_manager],
departments: params[:departments],
directory: params[:directory],
project_directory: params[:project_directory],
title: params[:title],
description: params[:description],
status: params[:status] || project.metadata[:status],
Expand Down
2 changes: 1 addition & 1 deletion app/services/test_asset_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ def initialize(user:, project_id:, levels: 5, directory_per_level: 100, file_cou
@levels = levels
@directory_per_level = directory_per_level
@file_count_per_directory = file_count_per_directory
@base_name = @project.directory
@base_name = @project.project_directory
@mediaflux_session = @user.mediaflux_session
end

Expand Down
2 changes: 1 addition & 1 deletion app/services/test_project_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def create_project
data_sponsor: sponsor.uid,
data_manager: sponsor.uid,
departments: departments,
directory: "#{project_prefix}-#{sequence}",
project_directory: "#{project_prefix}-#{sequence}",
title: "Project #{project_prefix} #{sequence}",
description: "Description of project #{project_prefix} #{sequence}",
data_user_read_only: [],
Expand Down
2 changes: 1 addition & 1 deletion app/views/projects/_approve_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<div class="field">
<label for="project_directory" class="form-label">Confirm Project Directory</label>
<input class="form-directory" type="text" name="project_directory-prefix" disabled readonly value= <%= Rails.configuration.mediaflux["api_root_ns"] %>></input> /
<input class="form-directory-confirm" type="text" name="project_directory" required placeholder=<%= "#{@project.metadata[:directory]}"%>></input>
<input class="form-directory-confirm" type="text" name="project_directory" required placeholder=<%= "#{@project.metadata[:project_directory]}"%>></input>
</div>
<div class="field">
<label for="storage_capacity" class="form-label">Confirm Storage Capacity</label>
Expand Down
6 changes: 3 additions & 3 deletions app/views/projects/_edit_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@
Make the field readonly so the user cannot change it, but leave it as an HTML INPUT so that it is
send back to the controller (we don't want to lose this value)
-->
<p>Project Directory: <%= Rails.configuration.mediaflux["api_root_ns"] %>/<input type="text" id="directory" name="directory" readonly value="<%= @project.metadata[:directory] %>" />
<p>Project Directory: <%= Rails.configuration.mediaflux["api_root_ns"] %>/<input type="text" id="project_directory" name="project_directory" readonly value="<%= @project.metadata[:project_directory] %>" />
(MediaFlux id: <%= @project.mediaflux_id %>)<br/>
This project has already been saved to Mediaflux and the directory cannot be changed</p>
This project has already been saved to Mediaflux and the project_directory cannot be changed</p>
<% else %>
<!-- Unicode alphanumeric, minus-dash, and/or underscore characters -->
<p>Project Directory: <%= Rails.configuration.mediaflux["api_root_ns"] %>/<input type="text" id="directory" name="directory" required value="<%= @project.metadata[:directory] %>" pattern="[\w\p{L}\-]{1,64}" /></p>
<p>Project Directory: <%= Rails.configuration.mediaflux["api_root_ns"] %>/<input type="text" id="project_directory" name="project_directory" required value="<%= @project.metadata[:project_directory] %>" pattern="[\w\p{L}\-]{1,64}" /></p>
<% end %>

<p>Title: <input type="text" id="title" name="title" required value="<%= @project.metadata[:title] %>" /></p>
Expand Down
2 changes: 1 addition & 1 deletion app/views/projects/approve.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<dl>
<dt>Data Sponsor</dt> <dd><%= @data_sponsor.display_name_safe %></dd>
<dt>Affiliated Department(s)</dt> <dd><%= @departments %></dd>
<dt>Project Directory</dt> <dd><%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:directory] %></dd>
<dt>Project Directory</dt> <dd><%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:project_directory] %></dd>
<dt>Title</dt> <dd><%=@project.metadata[:title] %></dd>
<dt>Project ID</dt> <dd><%= @project.metadata[:project_id] %></dd>
<dt>Storage Capacity - Request</dt> <dd><%= "#{@project.metadata[:storage_capacity][:size][:requested]} #{@project.metadata[:storage_capacity][:unit][:requested]}" %></dd>
Expand Down
2 changes: 1 addition & 1 deletion app/views/projects/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Project Details:
<dd><%= @departments %></dd>
<% end %>
<dt>Project Directory</dt>
<dd><%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:directory] %></dd>
<dd><%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:project_directory] %></dd>
<dt>Title</dt>
<dd><%= @project.metadata[:title] %></dd>
<dt>Description:<dt/> <dd><%= @project.metadata[:description] %></dd>
Expand Down
2 changes: 1 addition & 1 deletion app/views/tigerdata_mailer/project_creation.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<dt>Departments</dt>
<dd><%= @project.departments.join(", ") %></dd>
<dt>Project Directory</dt>
<dd><%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:directory] %> </dd>
<dd><%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:project_directory] %> </dd>
<dt>Title</dt>
<dd><%= @project.metadata[:title] %></dd>
<dt>Description</dt>
Expand Down
2 changes: 1 addition & 1 deletion app/views/tigerdata_mailer/project_creation.text.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Requesting User Name: <%= @project.created_by_user.display_name %>
Data Sponsor: <%= @project.metadata[:data_sponsor] %>
Data Manager: <%= @project.metadata[:data_manager] %>
Departments: <%= @project.departments.join(", ") %>
Project Directory: <%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:directory] %>
Project Directory: <%= Rails.configuration.mediaflux["api_root_ns"] %>/<%= @project.metadata[:project_directory] %>
Title: <%= @project.metadata[:title] %>
Description: <%= @project.metadata[:description] %>
Status: <%= @project.metadata[:status] %>
Expand Down
2 changes: 1 addition & 1 deletion docs/aterm_101.md
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ For example:
```
session_id = User.first.mediaflux_session
project = Project.first
project_name = ProjectMediaflux.safe_name(project.directory)
project_name = ProjectMediaflux.safe_name(project.project_directory)
project_namespace = "#{Rails.configuration.mediaflux['api_root_ns']}/#{project_name}NS"
store_name = Store.default(session_id: session_id).name
namespace = Mediaflux::Http::NamespaceCreateRequest.new(namespace: project_namespace, description: "Namespace for project #{project.title}", store: store_name, session_token: session_id)
Expand Down
4 changes: 2 additions & 2 deletions lib/tasks/projects.rake
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ namespace :projects do
project_id = args[:project_id]
project = Project.find(project_id)

project_directory = project.metadata_json["directory"]
project_directory = project.metadata_json["project_directory"]
project_parent = Rails.configuration.mediaflux['api_root_collection']
path_id = "#{project_parent}/#{project_directory}"
project_namespace = "#{Rails.configuration.mediaflux['api_root_ns']}/#{project_directory}NS"
Expand All @@ -95,7 +95,7 @@ namespace :projects do
asset.create
:pid #{project_parent}
:namespace #{project_namespace}
:name #{project.metadata_json["directory"]}
:name #{project.metadata_json["project_directory"]}
:collection -unique-name-index true -contained-asset-index true -cascade-contained-asset-index true true
:type "application/arc-asset-collection"
:meta <
Expand Down
8 changes: 4 additions & 4 deletions spec/controllers/projects_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,11 @@
"<request xmlns:tigerdata=\"http://tigerdata.princeton.edu\">\n" \
" <service name=\"asset.create\">\n" \
" <args>\n" \
" <name>#{project.directory}</name>\n" \
" <namespace>/td-test-001/tigerdataNS/#{project.directory}NS</namespace>\n" \
" <name>#{project.project_directory}</name>\n" \
" <namespace>/td-test-001/tigerdataNS/#{project.project_directory}NS</namespace>\n" \
" <meta>\n" \
" <tigerdata:project>\n" \
" <ProjectDirectory>#{project.directory}</ProjectDirectory>\n" \
" <ProjectDirectory>#{project.project_directory}</ProjectDirectory>\n" \
" <Title>#{project.metadata[:title]}</Title>\n" \
" <Description>#{project.metadata[:description]}</Description>\n" \
" <Status>#{project.metadata[:status]}</Status>\n" \
Expand Down Expand Up @@ -78,7 +78,7 @@
it "creates one provenance event only" do
post :create, params: {
"data_sponsor" => user.uid, "data_manager" => user.uid, "departments" => ["RDSS"],
"directory" => "testparams", "title" => "Params",
"project_directory" => "testparams", "title" => "Params",
"description" => "testing controller params", "ro_user_counter" => "0",
"rw_user_counter" => "0", "controller" => "projects", "action" => "create"
}
Expand Down
6 changes: 3 additions & 3 deletions spec/factories/project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
storage_capacity { { size: { requested: 500 }, unit: { requested: "GB" } } }
storage_performance { { requested: "standard" } }
project_purpose { "research" }
directory { "big-data" }
project_directory { "big-data" }
schema_version { "0.6.1" }
end
mediaflux_id { nil }
Expand All @@ -26,7 +26,7 @@
data_user_read_only: data_user_read_only,
data_user_read_write: data_user_read_write,
departments: ["RDSS", "PRDS"],
directory: directory,
project_directory: project_directory,
title: title,
description: "a random description",
created_on: created_on,
Expand All @@ -43,7 +43,7 @@
end
factory :project_with_dynamic_directory, class: "Project" do
transient do
sequence :directory do |n|
sequence :project_directory do |n|
"#{FFaker::Food.fruit}#{n}"
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/jobs/list_project_contents_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
{
data_sponsor: sponsor_user.uid,
data_manager: sponsor_user.uid,
directory: "project-123",
project_directory: "project-123",
title: "project 123",
departments: ["RDSS"],
description: "hello world",
Expand Down
4 changes: 2 additions & 2 deletions spec/models/mediaflux/http/asset_create_request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
" <name>testasset</name>\n" \
" <meta>\n" \
" <tigerdata:project>\n" \
" <ProjectDirectory>#{project.directory}</ProjectDirectory>\n" \
" <ProjectDirectory>#{project.project_directory}</ProjectDirectory>\n" \
" <Title>#{project.metadata[:title]}</Title>\n" \
" <Description>#{project.metadata[:description]}</Description>\n" \
" <Status>#{project.metadata[:status]}</Status>\n" \
Expand Down Expand Up @@ -145,7 +145,7 @@
tigerdata_values = ProjectMediaflux.project_values(project:)
create_request = described_class.new(session_token: nil, name: "testasset", collection: false, tigerdata_values: tigerdata_values)
expected_xml = "<request xmlns:tigerdata='http://tigerdata.princeton.edu'><service name='asset.create'><name>testasset</name>" \
"<meta><tigerdata:project><ProjectDirectory>#{project.directory}</ProjectDirectory><Title>#{project.metadata[:title]}</Title>" \
"<meta><tigerdata:project><ProjectDirectory>#{project.project_directory}</ProjectDirectory><Title>#{project.metadata[:title]}</Title>" \
"<Description>#{project.metadata[:description]}</Description><Status>#{project.metadata[:status]}</Status>" \
"<DataSponsor>#{project.metadata[:data_sponsor]}</DataSponsor><DataManager>#{project.metadata[:data_manager]}</DataManager>" \
"<Department>RDSS</Department><Department>PRDS</Department><CreatedOn>#{ProjectMediaflux.format_date_for_mediaflux(project.metadata[:created_on])}</CreatedOn>" \
Expand Down
4 changes: 2 additions & 2 deletions spec/models/mediaflux/http/asset_metadata_request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,13 @@
expect(metadata[:creator]).to eq("manager")
expect(metadata[:description]).to eq("")
expect(metadata[:collection]).to be_truthy
expect(metadata[:path].include?(valid_project.metadata_json["directory"])).to be_truthy
expect(metadata[:path].include?(valid_project.metadata_json["project_directory"])).to be_truthy
expect(metadata[:type]).to eq("application/arc-asset-collection")
expect(metadata[:size]).to eq("") # accumulators are not added to project when created
expect(metadata[:total_file_count]).to eq("") # accumulators are not added to project when created
expect(metadata[:quota_allocation]).to eq("") # quotas are not added to project when created
expect(metadata[:project_id]).to eq("10.34770/tbd")
expect(metadata[:project_directory]).to eq(valid_project.metadata_json["directory"])
expect(metadata[:project_directory]).to eq(valid_project.metadata_json["project_directory"])
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/models/mediaflux/http/asset_update_request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
" <id>1234</id>\n" \
" <meta>\n" \
" <tigerdata:project>\n" \
" <ProjectDirectory>#{project.directory}</ProjectDirectory>\n" \
" <ProjectDirectory>#{project.project_directory}</ProjectDirectory>\n" \
" <Title>#{project.metadata[:title]}</Title>\n" \
" <Description>#{project.metadata[:description]}</Description>\n" \
" <DataSponsor>#{project.metadata[:data_sponsor]}</DataSponsor>\n" \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

RSpec.describe Mediaflux::Http::NamespaceDestroyRequest, type: :model, connect_to_mediaflux: true do
let(:valid_project) { FactoryBot.create(:project_with_dynamic_directory, project_id: "10.34770/tbd") }
let(:namespace) { "#{valid_project.directory}NS".strip.gsub(/[^A-Za-z\d]/, "-") }
let(:namespace) { "#{valid_project.project_directory}NS".strip.gsub(/[^A-Za-z\d]/, "-") }
let(:sponsor_user) { FactoryBot.create(:project_sponsor) }
let(:session_id) { sponsor_user.mediaflux_session }
it "deletes a namespace and everything inside of it" do
Expand Down
4 changes: 2 additions & 2 deletions spec/models/project_mediaflux_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
end
it "should raise a MetadataError if any required is missing" do
params = {mediaflux_id: 001,
directory: incomplete_project.metadata[:directory],
project_directory: incomplete_project.metadata[:project_directory],
storage_capacity: {"size"=>{"approved"=>600,
"requested"=>project.metadata[:storage_capacity][:size][:requested]},
"unit"=>{"approved"=>"GB", "requested"=>"GB"}},
Expand All @@ -112,7 +112,7 @@

it "should raise a error if any error occurs in mediaflux" do
params = {mediaflux_id: 001,
directory: incomplete_project.metadata[:directory],
project_directory: incomplete_project.metadata[:project_directory],
storage_capacity: {"size"=>{"approved"=>600,
"requested"=>project.metadata[:storage_capacity][:size][:requested]},
"unit"=>{"approved"=>"GB", "requested"=>"GB"}},
Expand Down
Loading

0 comments on commit 3bbb903

Please sign in to comment.