Class: Cnvrg::Data

Inherits:
SubCommandBase show all
Defined in:
lib/cnvrg/data.rb

Defined Under Namespace

Modules: ConfigValidation

Instance Method Summary collapse

Methods inherited from SubCommandBase

banner, subcommand_prefix

Instance Method Details

#clone(dataset_url) ⇒ Object



152
153
154
155
156
157
158
159
160
161
# File 'lib/cnvrg/data.rb', line 152

def clone(dataset_url)
  #test
  cli = Cnvrg::CLI.new()
  only_tree =options[:only_tree]
  commit =options[:commit]
  query =options[:query]
  read = options[:read]
  remote = options[:remote]
  cli.clone_data(dataset_url, only_tree=only_tree,commit=commit, query=query, read=read, remote=remote, relative: options[:relative])
end

#clone_query(dataset_url) ⇒ Object



193
194
195
196
197
# File 'lib/cnvrg/data.rb', line 193

def clone_query(dataset_url)
  cli = Cnvrg::CLI.new()
  query =options[:query]
  cli.clone_data_query(dataset_url,query=query)
end

#commitsObject



214
215
216
217
218
# File 'lib/cnvrg/data.rb', line 214

def commits()
  cli = Cnvrg::CLI.new()
  cli.list_dataset_commits()

end

#delete(dataset_slug) ⇒ Object



200
201
202
203
204
# File 'lib/cnvrg/data.rb', line 200

def delete(dataset_slug)
  cli = Cnvrg::CLI.new()
  cli.delete_data(dataset_slug)

end

#downloadObject



135
136
137
138
139
140
141
142
143
# File 'lib/cnvrg/data.rb', line 135

def download()
  cli = Cnvrg::CLI.new()
  verbose = options["verbose"]
  sync = options["sync"]
  new_branch = options["new_branch"]
  commit = options["commit"]
  all_files = options["all_files"]
  cli.download_data_new(verbose,sync,new_branch, commit,all_files)
end

#download_tags_yamlObject



251
252
253
254
# File 'lib/cnvrg/data.rb', line 251

def download_tags_yaml
  cli = Cnvrg::CLI.new()
  cli.download_tags_yaml()
end

#files(dataset_url) ⇒ Object



225
226
227
228
229
230
231
232
233
234
235
236
# File 'lib/cnvrg/data.rb', line 225

def files(dataset_url)
  cli = Cnvrg::CLI.new()
  cli.verify_logged_in(false)
  cli.log_start(__method__, args, options)
  @dataset = Dataset.new(dataset_url: dataset_url)
  files = @dataset.list_files(
      commit_sha1: options[:commit_sha1],
      limit: options[:limit],
      expires: options[:expires],
      offset: options[:offset])
  cli.log_message(files)
end

#initObject



25
26
27
28
29
30
# File 'lib/cnvrg/data.rb', line 25

def init
  cli = Cnvrg::CLI.new()
  public = options["public"]
  bucket = options["bucket"]
  cli.init_data(public, bucket: bucket)
end


33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/cnvrg/data.rb', line 33

def link(dataset=nil)
  begin
    cli = Cnvrg::CLI.new()
    cli.verify_logged_in(false)
    cli.log_start(__method__, args, options)
    
    if dataset.include? "/"
      ## this case is to support DATASET_URL expected example: domain.com/organization_name/datasets/dataset_name
      url_parts = dataset.split("/")
      dataset_index = Cnvrg::Helpers.look_for_in_path(dataset, "datasets")
      dataset_slug = url_parts[dataset_index + 1]
      owner = url_parts[dataset_index - 1]
      raise Exception.new("Can't find all dataset information please check the URL") if dataset_slug.blank? or owner.blank?
    else
      ## this case is to support DATASET_SLUG expected example: dataset_name
      # in this case it will take the organization from the config file
      dataset_slug = dataset
      raise Exception.new("Please enter dataset name or dataset full url") if dataset_slug.blank?
      owner = CLI.get_owner
    end

    config_validation = Dataset.validate_config
    if config_validation[:validation] == Data::ConfigValidation::SUCCESS
      cli.log_message(config_validation[:message])
      return
    else
      Cnvrg::Logger.log_error_message(config_validation)
      FileUtils.rmtree(".cnvrg")
    end

    cli.log_message("Linking dataset: #{dataset_slug} to the current directory", Thor::Shell::Color::BLUE)
    success = Dataset.link_dataset(owner: owner, slug: dataset_slug)
    if success
      cli.log_message("Dataset: #{dataset_slug} linked successfully to the current directory")
    else
      cli.log_message("Linking failed\nAborting", Thor::Shell::Color::RED)
    end
  rescue => e
    Cnvrg::Logger.log_error(e)
    cli.log_message("Aborting\n#{e.message}", Thor::Shell::Color::RED)
    exit(1)
  rescue Exception => e
    Cnvrg::Logger.log_error(e)
    cli.log_message("Aborting\n#{e.message}", Thor::Shell::Color::RED)
    exit(1)
  end
end

#listObject



206
207
208
209
210
211
# File 'lib/cnvrg/data.rb', line 206

def list()
  cli = Cnvrg::CLI.new()

  cli.list_dataset()

end

#put(dataset_url, *files) ⇒ Object



185
186
187
188
189
# File 'lib/cnvrg/data.rb', line 185

def put(dataset_url, *files)
  cli = Cnvrg::CLI.new()
  dir = options[:dir]
  cli.data_put(dataset_url, files: files, dir: dir)
end

#queriesObject



239
240
241
242
# File 'lib/cnvrg/data.rb', line 239

def queries()
  cli = Cnvrg::CLI.new()
  cli.queries()
end

#query_files(query) ⇒ Object



245
246
247
248
# File 'lib/cnvrg/data.rb', line 245

def query_files(query)
  cli = Cnvrg::CLI.new()
  cli.query_files(query)
end

#setObject



174
175
176
177
178
179
180
181
# File 'lib/cnvrg/data.rb', line 174

def set
  cli = Cnvrg::CLI.new
  cli.log_start(__method__)
  cli.log_handler
  if options['url'].present?
    cli.set_data_url(options['url'])
  end
end

#sync_data_newObject



114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/cnvrg/data.rb', line 114

def sync_data_new()
  cli = Cnvrg::CLI.new()
  force = options["force"]
  new_branch = options["new_branch"]
  verbose = options["verbose"]
  commit = options["commit"]
  all_files = options["all_files"]
  tags = options["tags"]
  parallel=options["parallel"]
  chunk_size = options["chunk_size"]
  init = options["init"]
  message = options["message"]
  cli.sync_data_new(new_branch, force, verbose, commit, all_files, tags, parallel, chunk_size, init, message)
end

#test(data_url) ⇒ Object



258
259
260
261
262
263
264
265
266
267
# File 'lib/cnvrg/data.rb', line 258

def test(data_url)
  cli = Cnvrg::CLI.new
  cli.verify_logged_in(true)
  cli.log_start(__method__, args, options)
  @dataset = Dataset.new(dataset_url: data_url)
  resp = @dataset.get_storage_client
  @dataset.init_home(remote: false)
  @dataset.download_softlink

end

#uploadObject



91
92
93
94
95
96
97
98
99
100
101
# File 'lib/cnvrg/data.rb', line 91

def upload
  cli = Cnvrg::CLI.new()
  verbose = options["verbose"]
  sync = options["sync"]
  force = options["force"]
  new_branch = options["new_branch"]
  chunk_size = options["chunk_size"]
  tags = options["tags"]
  message = options["message"]
  cli.upload_data_new(new_branch, verbose, sync, force, tags, chunk_size, message:message)
end

#verify(*dataset_titles) ⇒ Object



166
167
168
169
170
# File 'lib/cnvrg/data.rb', line 166

def verify(*dataset_titles)
  cli = Cnvrg::CLI.new()
  timeout =options[:timeout]
  cli.verify_datasets(dataset_titles, timeout)
end