etna 0.1.22 → 0.1.23
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/etna.completion +63 -1
- data/lib/commands.rb +46 -2
- data/lib/etna/clients/magma/workflows/materialize_magma_record_files_workflow.rb +0 -0
- data/lib/etna/spec/vcr.rb +7 -0
- data/lib/helpers.rb +9 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ae7868eeaa6de2a8701602929e642d381ccab2115c71cb18c216a362217645c
|
4
|
+
data.tar.gz: 9183c39484f21c330f1c0e14f4c9e355e8302805f71dbdbb5889f1e3eeb58bb4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20ae9fdf11e4da6e000be9308e5c3f8b5309d219aa5820b4a855ee43b80d2f4c6bc7f33e52e1844ab3bfe02ee67968cbb91f53737a0a6515ba870b08dffe854e
|
7
|
+
data.tar.gz: a43573a1a801e9d4be0aee3390997b68507b6bdcb626fc185264eb8cb884b7e14d92a4485df5ec494527bd8609d761a7f7e1ca5c9064181789506e756f8d4157
|
data/etna.completion
CHANGED
@@ -136,7 +136,7 @@ all_flag_completion_names="$all_flag_completion_names "
|
|
136
136
|
string_flag_completion_names="$string_flag_completion_names "
|
137
137
|
while [[ "$#" != "0" ]]; do
|
138
138
|
if [[ "$#" == "1" ]]; then
|
139
|
-
all_completion_names="create_file_linking_csv help update_from_csv"
|
139
|
+
all_completion_names="create_file_linking_csv help load_table_from_csv update_from_csv"
|
140
140
|
all_completion_names="$all_completion_names $all_flag_completion_names"
|
141
141
|
if [[ -z "$(echo $all_completion_names | xargs)" ]]; then
|
142
142
|
return
|
@@ -252,6 +252,68 @@ return
|
|
252
252
|
fi
|
253
253
|
done
|
254
254
|
return
|
255
|
+
elif [[ "$1" == "load_table_from_csv" ]]; then
|
256
|
+
shift
|
257
|
+
if [[ "$#" == "1" ]]; then
|
258
|
+
all_completion_names="__project_name__"
|
259
|
+
if [[ -z "$(echo $all_completion_names | xargs)" ]]; then
|
260
|
+
return
|
261
|
+
fi
|
262
|
+
COMPREPLY=($(compgen -W "$all_completion_names" -- "$1"))
|
263
|
+
return
|
264
|
+
fi
|
265
|
+
shift
|
266
|
+
if [[ "$#" == "1" ]]; then
|
267
|
+
all_completion_names="__model_name__"
|
268
|
+
if [[ -z "$(echo $all_completion_names | xargs)" ]]; then
|
269
|
+
return
|
270
|
+
fi
|
271
|
+
COMPREPLY=($(compgen -W "$all_completion_names" -- "$1"))
|
272
|
+
return
|
273
|
+
fi
|
274
|
+
shift
|
275
|
+
if [[ "$#" == "1" ]]; then
|
276
|
+
all_completion_names="__file_path__"
|
277
|
+
if [[ -z "$(echo $all_completion_names | xargs)" ]]; then
|
278
|
+
return
|
279
|
+
fi
|
280
|
+
COMPREPLY=($(compgen -W "$all_completion_names" -- "$1"))
|
281
|
+
return
|
282
|
+
fi
|
283
|
+
shift
|
284
|
+
all_flag_completion_names="$all_flag_completion_names --execute "
|
285
|
+
string_flag_completion_names="$string_flag_completion_names "
|
286
|
+
while [[ "$#" != "0" ]]; do
|
287
|
+
if [[ "$#" == "1" ]]; then
|
288
|
+
all_completion_names=""
|
289
|
+
all_completion_names="$all_completion_names $all_flag_completion_names"
|
290
|
+
if [[ -z "$(echo $all_completion_names | xargs)" ]]; then
|
291
|
+
return
|
292
|
+
fi
|
293
|
+
COMPREPLY=($(compgen -W "$all_completion_names" -- "$1"))
|
294
|
+
return
|
295
|
+
elif [[ -z "$(echo $all_flag_completion_names | xargs)" ]]; then
|
296
|
+
return
|
297
|
+
elif [[ "$all_flag_completion_names" =~ $1\ ]]; then
|
298
|
+
all_flag_completion_names="${all_flag_completion_names//$1\ /}"
|
299
|
+
a=$1
|
300
|
+
shift
|
301
|
+
if [[ "$string_flag_completion_names" =~ $a\ ]]; then
|
302
|
+
if [[ "$#" == "1" ]]; then
|
303
|
+
a="${a//--/}"
|
304
|
+
a="${a//-/_}"
|
305
|
+
i="_completions_for_$a"
|
306
|
+
all_completion_names="${!i}"
|
307
|
+
COMPREPLY=($(compgen -W "$all_completion_names" -- "$1"))
|
308
|
+
return
|
309
|
+
fi
|
310
|
+
shift
|
311
|
+
fi
|
312
|
+
else
|
313
|
+
return
|
314
|
+
fi
|
315
|
+
done
|
316
|
+
return
|
255
317
|
elif [[ "$1" == "update_from_csv" ]]; then
|
256
318
|
shift
|
257
319
|
if [[ "$#" == "1" ]]; then
|
data/lib/commands.rb
CHANGED
@@ -54,15 +54,16 @@ class EtnaApp
|
|
54
54
|
boolean_flags << '--ignore-ssl'
|
55
55
|
|
56
56
|
def execute(host, ignore_ssl: false)
|
57
|
-
polyphemus_client
|
57
|
+
polyphemus_client = Etna::Clients::Polyphemus.new(
|
58
58
|
host: host,
|
59
59
|
token: token(ignore_environment: true),
|
60
|
+
persistent: false,
|
60
61
|
ignore_ssl: ignore_ssl)
|
61
62
|
workflow = Etna::Clients::Polyphemus::SetConfigurationWorkflow.new(
|
62
63
|
polyphemus_client: polyphemus_client,
|
63
64
|
config_file: EtnaApp.config_file_path)
|
64
65
|
config = workflow.update_configuration_file(ignore_ssl: ignore_ssl)
|
65
|
-
logger
|
66
|
+
logger&.info("Updated #{config.environment} configuration from #{host}.")
|
66
67
|
end
|
67
68
|
|
68
69
|
def setup(config)
|
@@ -299,6 +300,49 @@ class EtnaApp
|
|
299
300
|
workflow.write_csv_io(filename: file)
|
300
301
|
end
|
301
302
|
end
|
303
|
+
|
304
|
+
class LoadTableFromCsv < Etna::Command
|
305
|
+
include WithEtnaClients
|
306
|
+
|
307
|
+
boolean_flags << '--execute'
|
308
|
+
|
309
|
+
def execute(project_name, model_name, file_path, execute: false)
|
310
|
+
request = Etna::Clients::Magma::RetrievalRequest.new(project_name: project_name)
|
311
|
+
request.model_name = model_name
|
312
|
+
request.attribute_names = 'all'
|
313
|
+
request.record_names = 'all'
|
314
|
+
model = magma_client.retrieve(request).models.model(model_name)
|
315
|
+
model_parent_name = model.template.attributes.all.select do |attribute|
|
316
|
+
attribute.attribute_type == Etna::Clients::Magma::AttributeType::PARENT
|
317
|
+
end.first.name
|
318
|
+
|
319
|
+
other_attribute_names = model.template.attributes.all.reject do |attribute|
|
320
|
+
attribute.attribute_type == Etna::Clients::Magma::AttributeType::PARENT
|
321
|
+
end.map do |attribute|
|
322
|
+
attribute.name
|
323
|
+
end
|
324
|
+
|
325
|
+
# NOTE: This does not call ensure_parent currently because of MVIR1 consent--
|
326
|
+
# if the timepoint doesn't exist, the patient may be no study? (one example, at least)
|
327
|
+
update_request = Etna::Clients::Magma::UpdateRequest.new(project_name: project_name)
|
328
|
+
|
329
|
+
data = CSV.parse(File.read(file_path), headers: true)
|
330
|
+
|
331
|
+
data.by_row.each do |row|
|
332
|
+
revision = {}
|
333
|
+
other_attribute_names.each do |attribute_name|
|
334
|
+
revision[attribute_name] = row[attribute_name] unless row[attribute_name].nil?
|
335
|
+
end
|
336
|
+
update_request.append_table(model_parent_name, row[model_parent_name], model_name, revision)
|
337
|
+
end
|
338
|
+
|
339
|
+
puts update_request
|
340
|
+
|
341
|
+
if execute
|
342
|
+
magma_client.update_json(update_request)
|
343
|
+
end
|
344
|
+
end
|
345
|
+
end
|
302
346
|
end
|
303
347
|
end
|
304
348
|
end
|
File without changes
|
data/lib/etna/spec/vcr.rb
CHANGED
@@ -30,6 +30,8 @@ def setup_base_vcr(spec_helper_dir)
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
# c.debug_logger = File.open('log/vcr_debug.log', 'w')
|
34
|
+
|
33
35
|
c.default_cassette_options = {
|
34
36
|
serialize_with: :compressed,
|
35
37
|
record: if ENV['IS_CI'] == '1'
|
@@ -82,6 +84,11 @@ def setup_base_vcr(spec_helper_dir)
|
|
82
84
|
end
|
83
85
|
end
|
84
86
|
end
|
87
|
+
|
88
|
+
require 'multipartable'
|
89
|
+
def Multipartable.secure_boundary
|
90
|
+
"--THIS-IS-STABLE-FOR-TESTING"
|
91
|
+
end
|
85
92
|
end
|
86
93
|
|
87
94
|
def prepare_vcr_secret
|
data/lib/helpers.rb
CHANGED
@@ -6,6 +6,15 @@ module WithEtnaClients
|
|
6
6
|
EtnaApp.instance.environment
|
7
7
|
end
|
8
8
|
|
9
|
+
def exit(status=true)
|
10
|
+
WithEtnaClients.exit(status)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Abstraction used to prevent accidental exist in specs.
|
14
|
+
def self.exit(status)
|
15
|
+
Kernel.exit(status)
|
16
|
+
end
|
17
|
+
|
9
18
|
def token(ignore_environment: false)
|
10
19
|
unless ignore_environment
|
11
20
|
if environment == :many
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: etna
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Saurabh Asthana
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/etna/clients/magma/workflows/file_linking_workflow.rb
|
118
118
|
- lib/etna/clients/magma/workflows/json_converters.rb
|
119
119
|
- lib/etna/clients/magma/workflows/json_validators.rb
|
120
|
+
- lib/etna/clients/magma/workflows/materialize_magma_record_files_workflow.rb
|
120
121
|
- lib/etna/clients/magma/workflows/model_synchronization_workflow.rb
|
121
122
|
- lib/etna/clients/magma/workflows/record_synchronization_workflow.rb
|
122
123
|
- lib/etna/clients/magma/workflows/update_attributes_from_csv_workflow.rb
|