Skip to content

Commit 180286b

Browse files
committed
WIP
1 parent 4f9663b commit 180286b

File tree

4 files changed

+51
-23
lines changed

4 files changed

+51
-23
lines changed

api/app/models/database/dra.rb

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -92,28 +92,12 @@ def submit(submission)
9292
submitter_id:
9393
)
9494

95-
host, user, key_data = ENV.fetch_values('DRA_SSH_HOST', 'DRA_SSH_USER', 'DRA_SSH_KEY_DATA')
95+
host, user, key_data = ENV.values_at('DRA_SSH_HOST', 'DRA_SSH_USER', 'DRA_SSH_KEY_DATA')
9696

9797
Net::SSH.start host, user, key_data: [key_data] do |ssh|
9898
ssh.exec! "sudo /usr/local/sbin/chroot-createdir.sh #{submitter_id} #{submission_id}"
9999
end
100100
end
101-
102-
private
103-
104-
def mkdir_p!(sftp, path)
105-
components = path.split('/')
106-
107-
components.size.times.map {|i|
108-
components[0..i].join('/')
109-
}.each do |sub_path|
110-
begin
111-
sftp.mkdir! sub_path
112-
rescue Net::SFTP::StatusException => e
113-
raise unless e.code == 4
114-
end
115-
end
116-
end
117101
end
118102
end
119103
end

api/db/dway/submitter_db/migrations/001_init.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
create_table :login do
44
primary_key :usr_id, type: :bigint
55

6-
text :submitter_id, null: false
7-
text :password, null: false
8-
integer :role, null: false, default: 0
9-
boolean :usable, null: false, default: true
10-
boolean :need_chgpasswd, default: true
11-
timestamp :create_date, default: Sequel.lit("date_trunc('second'::text, now())")
6+
text :submitter_id, null: false
7+
text :password, null: false
8+
integer :role, null: false, default: 0
9+
boolean :usable, null: false, default: true
10+
boolean :need_chgpasswd, default: true
11+
timestamp :create_date, default: Sequel.lit("date_trunc('second'::text, now())")
1212
end
1313
end
1414
end
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
require 'rails_helper'
2+
3+
RSpec.describe Database::DRA::Submitter, type: :model do
4+
example do
5+
submission = create(:submission)
6+
submitter_db = Sequel.connect(ENV.fetch('SUBMITTER_DB_DATABASE_URL'))
7+
8+
user_id = submitter_db[:login].insert(
9+
submitter_id: submission.validation.user.uid,
10+
password: 'password',
11+
)
12+
13+
expect(Net::SSH).to receive(:start)
14+
15+
Database::DRA::Submitter.new.submit submission
16+
17+
drmdb = Sequel.connect(ENV.fetch('DRMDB_DATABASE_URL'))
18+
19+
expect(drmdb[:submission].first).to include(usr_id: user_id, submitter_id: submission.validation.user.uid, serial: 1)
20+
21+
pp drmdb[:status_history]
22+
end
23+
end

api/spec/support/dway.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
require 'sequel/core'
2+
3+
ENV['DRMDB_DATABASE_URL'] = 'postgres://localhost/drmdb_test'
4+
ENV['SUBMITTER_DB_DATABASE_URL'] = 'postgres://localhost/submitter_db_test'
5+
ENV['DRA_SSH_HOST'] = 'localhost'
6+
ENV['DRA_SSH_USER'] = 'alice'
7+
ENV['DRA_SSH_KEY_DATA'] = 'KEY_DATA'
8+
9+
RSpec.configure do |config|
10+
config.before :suite do
11+
Sequel.extension :migration
12+
13+
Sequel.connect ENV.fetch('DRMDB_DATABASE_URL') do |db|
14+
Sequel::Migrator.run db, 'db/dway/drmdb/migrations'
15+
end
16+
17+
Sequel.connect ENV.fetch('SUBMITTER_DB_DATABASE_URL') do |db|
18+
Sequel::Migrator.run db, 'db/dway/submitter_db/migrations'
19+
end
20+
end
21+
end

0 commit comments

Comments
 (0)