dtk-client 0.7.1.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +5 -13
  2. data/Gemfile +1 -1
  3. data/Gemfile_dev +1 -0
  4. data/bin/dtk-execute +1 -18
  5. data/dtk-client.gemspec +1 -1
  6. data/lib/client.rb +0 -5
  7. data/lib/command_helpers/git_repo.rb +43 -12
  8. data/lib/commands/common/thor/assembly_workspace.rb +3 -3
  9. data/lib/commands/common/thor/module.rb +81 -7
  10. data/lib/commands/common/thor/module/import.rb +14 -4
  11. data/lib/commands/common/thor/pull_from_remote.rb +2 -0
  12. data/lib/commands/common/thor/push_clone_changes.rb +1 -1
  13. data/lib/commands/common/thor/push_to_remote.rb +18 -4
  14. data/lib/commands/common/thor/remotes.rb +54 -0
  15. data/lib/commands/common/thor/{set_required_params.rb → set_required_attributes.rb} +1 -1
  16. data/lib/commands/thor/component.rb +2 -2
  17. data/lib/commands/thor/component_module.rb +56 -7
  18. data/lib/commands/thor/dtk.rb +7 -7
  19. data/lib/commands/thor/node.rb +4 -4
  20. data/lib/commands/thor/node_group.rb +4 -4
  21. data/lib/commands/thor/remotes.rb +32 -0
  22. data/lib/commands/thor/service.rb +9 -5
  23. data/lib/commands/thor/service_module.rb +41 -5
  24. data/lib/commands/thor/test_module.rb +43 -3
  25. data/lib/commands/thor/workspace.rb +8 -4
  26. data/lib/core.rb +3 -0
  27. data/lib/domain/git_adapter.rb +15 -8
  28. data/lib/domain/response.rb +39 -26
  29. data/lib/dtk-client/version.rb +1 -1
  30. data/lib/execute.rb +1 -1
  31. data/lib/execute/command/api_call/service.rb +1 -0
  32. data/lib/execute/script.rb +50 -0
  33. data/lib/execute/script/add_tenant.rb +91 -0
  34. data/lib/execute/script/add_tenant_without_router.rb +87 -0
  35. data/lib/shell/context.rb +15 -9
  36. data/lib/shell/domain/context_params.rb +2 -0
  37. data/lib/shell/help_monkey_patch.rb +4 -0
  38. data/lib/util/os_util.rb +2 -1
  39. metadata +27 -24
  40. data/lib/execute/examples.rb +0 -3
  41. data/lib/execute/examples/add_tenant.rb +0 -42
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YzU5NzQ4MDE1NmNlMTU2NmViZWNkODkzMzRjOTMzMWVmMDI3MmVkZQ==
5
- data.tar.gz: !binary |-
6
- NDJjZDIyMmVkYjY2ZDdlOGY2ZjY1ODljYWI2YzBhMDA1NzVjMDUyNQ==
2
+ SHA1:
3
+ metadata.gz: d7b720c50b249bbf6c309691e139bce76d5ce56a
4
+ data.tar.gz: 9decd8f03d3b2fed899f7b30f5e77c43b3934271
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NmZjOWE0YmRlZjVkY2M0YThlNDUzMzc1NTA0MGIxOTQxMDQwZTdjM2ZmNWFk
10
- MzRiMDVlZTBmZjUwODhlYjE5NjNlYTE0OTZmMGRhMDNmNDYzM2Y0YTkxMTc5
11
- NTY4MmU3NmFmNzhmNjVkYzY1NjY2MTBmZTQ0Y2M3OTlmY2IxMzM=
12
- data.tar.gz: !binary |-
13
- ZDllMmIyYjQ2NGMyY2ZlYzc4MDM2Y2M5YzM1MTI1MmE0NTYyOTljOGY2YmRl
14
- ODRlYzg5ZTM4MTVjNWNmODI3ODNlZTgxNWU2ZWJkMzQ0ODVhZGViYjYzNzE1
15
- MjUyMDAyNGViNjkyMWY1YjI2M2YwNjBmYjdjM2I1OWE3MWY0OGQ=
6
+ metadata.gz: 020f067a80f545dd864ca53b5a4cfd7b5f5dd59305f469d9c581081f2d8411db6da95e4e3246897e4ca557afb57c36f686b16fea6db497e3f02725ec6f8af96d
7
+ data.tar.gz: 9e39ec3fa3e2c5d8e06b1c4c9b5eb27e364df7f744e0a3cb028eaef3f532e72eee829a3806d39392adb4893f09be6a6b0278825424d07b25fd0309d7d35949e6
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'http://rubygems.org'
1
+ source 'https://rubygems.org'
2
2
 
3
3
  # dependcies are defined in gemspec file since to avoid duplication
4
4
  # gemspec :name => 'dtk-client'
data/Gemfile_dev CHANGED
@@ -7,6 +7,7 @@ gemspec
7
7
  # development gems which are not included in production Gemfile
8
8
  gem 'rspec','~> 2.12.0'
9
9
  gem 'awesome_print','~> 1.1.0'
10
+ gem 'looksee'
10
11
 
11
12
  gem 'ruby-debug','0.10.4' if RUBY_VERSION == '1.8.7'
12
13
  gem 'debugger','>= 1.6.5' if RUBY_VERSION == '1.9.3'
data/bin/dtk-execute CHANGED
@@ -12,21 +12,4 @@ Configurator.check_config_exists
12
12
  conn = Session.get_connection()
13
13
  exit if validate_connection(conn)
14
14
 
15
- require 'optparse'
16
- banner = "Usage: dtk-execute add-tenant TENANT-NAME"
17
- tenant_name = nil
18
- if ARGV.size == 2
19
- if ARGV[0] == 'add-tenant'
20
- tenant_name = ARGV[1]
21
- end
22
- end
23
- unless tenant_name
24
- # forces usage then exit
25
- ARGV[0] = '--help'
26
- end
27
- options = {}
28
- OptionParser.new do |opts|
29
- opts.banner = banner
30
- end.parse!
31
-
32
- Execute.add_tenant(tenant_name)
15
+ Execute::Script.execute()
data/dtk-client.gemspec CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |gem|
29
29
  gem.add_dependency 'hirb','~> 0.7.0'
30
30
  gem.add_dependency 'thor','~> 0.15.4'
31
31
  gem.add_dependency 'erubis','~> 2.7.0'
32
- gem.add_dependency 'dtk-common-core','0.7.0.1'
32
+ gem.add_dependency 'dtk-common-core','0.7.1'
33
33
  gem.add_dependency 'git','~> 1.2.6'
34
34
  gem.add_dependency 'colorize','~> 0.5.8'
35
35
  gem.add_dependency 'highline', '1.6.16'
data/lib/client.rb CHANGED
@@ -14,11 +14,6 @@ begin
14
14
  # Monkey Patching bundler to support loading specific Gemfile from dtk-client project's root - Ticket: DTK-585
15
15
  dtk_require("config/configuration")
16
16
 
17
-
18
- if DTK::Configuration.get(:debug_grit)
19
- # INSERT NEW CODE HERE
20
- end
21
-
22
17
  # we don't need Bundler.setup but will leave it commented just in case
23
18
  # TODO: This is temp solution which will not use bundler.setup when in dev mode
24
19
  # thus allowing us to use system gems and not just the ones specified in Gemfile
@@ -75,11 +75,11 @@ module DTK; module Client; class CommandHelper
75
75
  # :local_branch
76
76
  # :no_fetch
77
77
  #
78
- def push_changes(type,full_module_name,version,opts={})
78
+ def push_changes(type, full_module_name, version, opts={})
79
79
  Response.wrap_helper_actions() do
80
- repo_dir = local_repo_dir(type,full_module_name,version,opts)
80
+ repo_dir = local_repo_dir(type, full_module_name, version, opts)
81
81
  repo = create(repo_dir,opts[:local_branch])
82
- push_repo_changes_aux(repo,opts)
82
+ push_repo_changes_aux(repo, opts)
83
83
  end
84
84
  end
85
85
 
@@ -160,7 +160,7 @@ module DTK; module Client; class CommandHelper
160
160
  end
161
161
  end
162
162
 
163
- def check_local_dir_exists_with_content(type,module_name,version=nil,module_namespace=nil)
163
+ def check_local_dir_exists_with_content(type, module_name, version=nil, module_namespace=nil)
164
164
  full_module_name = ModuleUtil.join_name(module_name, module_namespace)
165
165
  Response.wrap_helper_actions() do
166
166
  ret = Hash.new
@@ -189,6 +189,28 @@ module DTK; module Client; class CommandHelper
189
189
  end
190
190
  end
191
191
 
192
+ def cp_r_to_new_namespace(type, module_name, src_namespace, dest_namespace, version = nil)
193
+ full_name_src = ModuleUtil.join_name(module_name, src_namespace)
194
+ full_name_dest = ModuleUtil.join_name(module_name, dest_namespace)
195
+
196
+ local_src_dir = local_repo_dir(type, full_name_src, version)
197
+ local_dest_dir = local_repo_dir(type, full_name_dest, version)
198
+
199
+ Response.wrap_helper_actions() do
200
+ if File.directory?(local_src_dir) && !(Dir["#{local_src_dir}/*"].empty?)
201
+ raise ErrorUsage.new("Directory (#{local_dest_dir}) already exist with content.",:log_error=>false) if File.directory?(local_dest_dir) && !(Dir["#{local_dest_dir}/*"].empty?)
202
+
203
+ # create namespace directory if does not exist, and copy source to destination module directory
204
+ namespace_dir = local_repo_dir(type, dest_namespace, version)
205
+ FileUtils.mkdir_p(namespace_dir)
206
+ FileUtils.cp_r(local_src_dir, local_dest_dir)
207
+ else
208
+ raise ErrorUsage.new("The content for module (#{full_name_src}) should be put in directory (#{local_src_dir})",:log_error=>false)
209
+ end
210
+ {"module_directory" => local_dest_dir}
211
+ end
212
+ end
213
+
192
214
  def rename_and_initialize_clone_and_push(type, module_name, new_module_name, branch, repo_url, local_repo_dir, version = nil)
193
215
  # check to see if the new dir has proper naming e.g. (~/dtk/component_modules/dtk::java)
194
216
  unless local_repo_dir.match(/\/#{new_module_name.gsub(ModuleUtil::NAMESPACE_SEPERATOR,'/')}$/)
@@ -283,7 +305,7 @@ module DTK; module Client; class CommandHelper
283
305
  #returns hash with keys
284
306
  #: diffs - hash with diffs
285
307
  # commit_sha - sha of currenet_commit
286
- def push_repo_changes_aux(repo,opts={})
308
+ def push_repo_changes_aux(repo, opts={})
287
309
  diffs = DiffSummary.new()
288
310
 
289
311
  # adding untracked files (newly added files)
@@ -308,31 +330,40 @@ module DTK; module Client; class CommandHelper
308
330
 
309
331
  #check if merge needed
310
332
  commit_shas = Hash.new
311
- merge_rel = repo.merge_relationship(:remote_branch,remote_branch_ref, :ret_commit_shas => commit_shas)
312
- commit_sha = nil
333
+ merge_rel = repo.merge_relationship(:remote_branch,remote_branch_ref, :ret_commit_shas => commit_shas)
334
+ commit_sha = nil
335
+ diffs = DiffSummary.new_version(repo)
336
+
313
337
  if merge_rel == :equal
314
338
  commit_sha = commit_shas[:other_sha]
315
339
  elsif [:branchpoint,:local_behind].include?(merge_rel)
316
- raise ErrorUsage.new("Merge needed before module (#{pp_module(repo)}) can be pushed to server")
340
+ if opts[:force]
341
+ diffs = DiffSummary.diff(repo,local_branch, remote_branch_ref)
342
+ if diffs.any_diffs?()
343
+ repo.push(remote_branch_ref, {:force => opts[:force]})
344
+ end
345
+ commit_sha = repo.find_remote_sha(remote_branch_ref)
346
+ else
347
+ where = opts[:where]||'server'
348
+ raise ErrorUsage.new("Merge needed before module (#{pp_module(repo)}) can be pushed to #{where}. If you want to force push use '--force' option.")
349
+ end
317
350
  elsif merge_rel == :no_remote_ref
318
351
  repo.push(remote_branch_ref)
319
- diffs = DiffSummary.new_version(repo)
320
352
  commit_sha = commit_shas[:local_sha]
321
353
  elsif merge_rel == :local_ahead
322
354
  # see if any diffs between fetched remote and local branch
323
355
  # this has be done after commit
324
-
325
356
  diffs = DiffSummary.diff(repo,local_branch, remote_branch_ref)
326
357
 
327
-
328
358
  if diffs.any_diffs?()
329
- repo.push(remote_branch_ref)
359
+ repo.push(remote_branch_ref, {:force => opts[:force]})
330
360
  end
331
361
 
332
362
  commit_sha = repo.find_remote_sha(remote_branch_ref)
333
363
  else
334
364
  raise Error.new("Unexpected merge_rel (#{merge_rel})")
335
365
  end
366
+
336
367
  {"diffs" => diffs, "commit_sha" => commit_sha, "repo_obj" => repo}
337
368
  end
338
369
 
@@ -5,7 +5,7 @@ dtk_require_from_base("dtk_logger")
5
5
  dtk_require_from_base("util/os_util")
6
6
  dtk_require_from_base("command_helper")
7
7
  dtk_require_common_commands('thor/task_status')
8
- dtk_require_common_commands('thor/set_required_params')
8
+ dtk_require_common_commands('thor/set_required_attributes')
9
9
  dtk_require_common_commands('thor/edit')
10
10
  dtk_require_common_commands('thor/purge_clone')
11
11
  dtk_require_common_commands('thor/list_diffs')
@@ -1022,9 +1022,9 @@ module DTK::Client
1022
1022
  response.render_table(:ps_data)
1023
1023
  end
1024
1024
 
1025
- def set_required_params(context_params)
1025
+ def set_required_attributes(context_params)
1026
1026
  assembly_or_workspace_id = context_params.retrieve_arguments([REQ_ASSEMBLY_OR_WS_ID],method_argument_names)
1027
- set_required_params_aux(assembly_or_workspace_id,:assembly,:instance)
1027
+ set_required_attributes_aux(assembly_or_workspace_id,:assembly,:instance)
1028
1028
  end
1029
1029
 
1030
1030
  def tail_aux(context_params)
@@ -9,6 +9,7 @@ dtk_require_common_commands('thor/edit')
9
9
  dtk_require_common_commands('thor/reparse')
10
10
  dtk_require_common_commands('thor/purge_clone')
11
11
  dtk_require_common_commands('thor/common')
12
+ dtk_require_common_commands('thor/remotes')
12
13
 
13
14
  dtk_require_from_base('configurator')
14
15
  dtk_require_from_base('command_helpers/service_importer')
@@ -44,14 +45,19 @@ module DTK::Client
44
45
  # TODO: when we do this for other areas we can move these things up and use as common classes
45
46
  # helpers
46
47
  def retrieve_arguments(mapping, method_info = nil)
47
- @context_params.retrieve_arguments(mapping, method_info||@command.method_argument_names)
48
+ @context_params.retrieve_arguments(mapping, method_info || @command.method_argument_names)
48
49
  end
50
+
49
51
  def get_namespace_and_name(*args)
50
52
  @command.get_namespace_and_name(*args)
51
53
  end
52
54
  end
53
55
 
54
56
  module ModuleMixin
57
+
58
+ REQ_MODULE_ID = [:service_module_id!, :component_module_id!, :test_module_id!]
59
+ REQ_MODULE_NAME = [:service_module_name!, :component_module_name!, :test_module_name!]
60
+
55
61
  include PuppetForgeMixin
56
62
  include CloneMixin
57
63
  include PushToRemoteMixin
@@ -63,9 +69,7 @@ module DTK::Client
63
69
  include ListDiffsMixin
64
70
  include ServiceImporter
65
71
  include AccessControlMixin
66
-
67
- REQ_MODULE_ID = [:service_module_id!, :component_module_id!, :test_module_id!]
68
- REQ_MODULE_NAME = [:service_module_name!, :component_module_name!, :test_module_name!]
72
+ include RemotesMixin
69
73
 
70
74
  def get_module_type(context_params)
71
75
  forwarded_type = context_params.get_forwarded_options() ? context_params.get_forwarded_options()[:module_type] : nil
@@ -427,6 +431,53 @@ module DTK::Client
427
431
  edit_aux(module_type.to_sym, module_id, module_name, version, opts)
428
432
  end
429
433
 
434
+ def push_remote_module_aux(context_params)
435
+ module_id, module_name, remote_name = context_params.retrieve_arguments([REQ_MODULE_ID, REQ_MODULE_NAME, :option_1],method_argument_names)
436
+ version = options["version"]
437
+ module_type = get_module_type(context_params)
438
+
439
+ post_body = {
440
+ "#{module_type}_id".to_sym => module_id
441
+ }
442
+
443
+ response = post rest_url("#{module_type}/info_git_remote"), post_body
444
+ remotes_list = response.data
445
+
446
+ # vital information, abort if it does not exist
447
+ raise DtkError, "There are no registered remotes, aborting action" if remotes_list.empty?
448
+
449
+ # check if there is provided remote
450
+ if remote_name
451
+ target_remote = remotes_list.find { |r| remote_name.eql?(r['display_name']) }
452
+ raise DtkError, "Not able to find remote '#{remote_name}'" unless target_remote
453
+ end
454
+
455
+ # if only one take it, else raise ambiguous error
456
+ unless target_remote
457
+ if remotes_list.size == 1
458
+ target_remote = remotes_list.first
459
+ else
460
+ remote_names = remotes_list.collect { |r| r['display_name'] }
461
+ raise DtkError, "Call is ambiguous, please provide remote name. Remotes: #{remote_names.join(', ')} "
462
+ end
463
+ end
464
+
465
+ # clone if necessry
466
+ module_location = OsUtil.module_location(resolve_module_type(), module_name, version)
467
+ unless File.directory?(module_location)
468
+ response = clone_aux(module_type.to_sym, module_id, version, true, true)
469
+ return response unless response.ok?
470
+ end
471
+
472
+
473
+ OsUtil.print("Pushing local content to remote #{target_remote['repo_url']} ... ", :yellow)
474
+ push_to_git_remote_aux(module_name, module_type.to_sym, version, {
475
+ :remote_repo_url => target_remote['repo_url'],
476
+ :remote_branch => 'master',
477
+ :remote_repo => "#{target_remote['display_name']}--remote"
478
+ }, options.force?)
479
+ end
480
+
430
481
  def push_dtkn_module_aux(context_params, internal_trigger=false)
431
482
  module_id, module_name = context_params.retrieve_arguments([REQ_MODULE_ID, REQ_MODULE_NAME],method_argument_names)
432
483
  catalog = 'dtkn'
@@ -439,8 +490,6 @@ module DTK::Client
439
490
  reparse_aux(module_location) unless internal_trigger
440
491
  local_namespace, local_module_name = get_namespace_and_name(module_name,':')
441
492
 
442
- # if catalog.to_s.eql?("origin")
443
- # push_clone_changes_aux(:component_module,component_module_id,version,options["message"]||DEFAULT_COMMIT_MSG,internal_trigger)
444
493
  if catalog.to_s.eql?("dtkn")
445
494
  module_refs_content = RemoteDependencyUtil.module_ref_content(module_location)
446
495
  remote_module_info = get_remote_module_info_aux(module_type.to_sym, module_id, options["namespace"], version, module_refs_content, local_namespace)
@@ -457,11 +506,12 @@ module DTK::Client
457
506
  return response
458
507
  end
459
508
 
460
- push_to_remote_aux(remote_module_info, module_type.to_sym)
509
+ push_to_remote_aux(remote_module_info, module_type.to_sym, options.force?)
461
510
  else
462
511
  raise DtkValidationError, "You have to provide valid catalog to push changes to! Valid catalogs: #{PushCatalogs}"
463
512
  end
464
513
  end
514
+
465
515
  PushCatalogs = ["origin", "dtkn"]
466
516
 
467
517
  def list_diffs_module_aux(context_params)
@@ -558,6 +608,30 @@ module DTK::Client
558
608
  response.render_table(:assembly)
559
609
  end
560
610
 
611
+ def fork_aux(context_params)
612
+ module_type = get_module_type(context_params)
613
+ module_id, fork_namespace = context_params.retrieve_arguments([REQ_MODULE_ID, :option_1!], method_argument_names)
614
+
615
+ raise DtkValidationError, "Namespace '#{fork_namespace}' contains invalid characters. Valid characters are letters, numbers, dash and underscore." unless fork_namespace.to_s =~ /^[0-9a-zA-Z\_\-]*$/
616
+
617
+ module_name = context_params.retrieve_arguments(["#{module_type}_name".to_sym],method_argument_names)
618
+ namespace, name = get_namespace_and_name(module_name,':')
619
+ response = Helper(:git_repo).cp_r_to_new_namespace(module_type, name, namespace, fork_namespace)
620
+ return response unless response.ok?
621
+
622
+ new_context_params = DTK::Shell::ContextParams.new
623
+ new_context_params.add_context_to_params(module_type, module_type)
624
+ new_context_params.method_arguments = ["#{fork_namespace}:#{name}"]
625
+
626
+ create_response = CommonModule::Import.new(self, new_context_params).from_file()
627
+ unless create_response.ok?
628
+ FileUtils.rm_rf("#{response['data']['module_directory']}")
629
+ return create_response
630
+ end
631
+
632
+ Response::Ok.new()
633
+ end
634
+
561
635
  def print_ambiguous(ambiguous)
562
636
  end
563
637
 
@@ -13,10 +13,10 @@ module DTK::Client
13
13
  def from_git()
14
14
  git_repo_url, module_name = retrieve_arguments([:option_1!, :option_2!])
15
15
  namespace, local_module_name = get_namespace_and_name(module_name, ModuleUtil::NAMESPACE_SEPERATOR)
16
-
16
+
17
17
  module_type = @command.get_module_type(@context_params)
18
18
  thor_options = { :git_import => true}
19
-
19
+
20
20
  unless namespace
21
21
  namespace_response = post rest_url("namespace/default_namespace_name")
22
22
  return namespace_response unless namespace_response.ok?
@@ -29,6 +29,7 @@ module DTK::Client
29
29
  :namespace => namespace,
30
30
  :branch => @options['branch']
31
31
  }
32
+
32
33
  response = Helper(:git_repo).create_clone_from_optional_branch(module_type.to_sym, local_module_name, git_repo_url, opts)
33
34
  return response unless response.ok?
34
35
 
@@ -102,11 +103,18 @@ module DTK::Client
102
103
  private
103
104
 
104
105
  def from_git_or_file()
106
+
105
107
  default_ns = @context_params.get_forwarded_options()[:default_namespace]
106
108
  git_import = @context_params.get_forwarded_options()[:git_import]
107
109
 
108
110
  name_option = git_import ? :option_2! : :option_1!
109
- module_name = @context_params.retrieve_arguments([name_option])
111
+
112
+ if git_import
113
+ module_git_url, module_name = @context_params.retrieve_arguments([:option_1!, :option_2!])
114
+ else
115
+ module_name, module_git_url = @context_params.retrieve_arguments([:option_1!, :option_2!])
116
+ end
117
+
110
118
  module_type = @command.get_module_type(@context_params)
111
119
  version = @options["version"]
112
120
 
@@ -125,8 +133,10 @@ module DTK::Client
125
133
  # first make call to server to create an empty repo
126
134
  post_body = {
127
135
  :module_name => local_module_name,
128
- :module_namespace => namespace
136
+ :module_namespace => namespace,
137
+ :module_git_url => module_git_url
129
138
  }
139
+
130
140
  response = post(rest_url("#{module_type}/create"), post_body)
131
141
  return response unless response.ok?
132
142
 
@@ -28,6 +28,8 @@ module DTK::Client
28
28
  end
29
29
 
30
30
  # check whether a local module exists to determine whether pull from local clone or try to pull from server
31
+ OsUtil.print("Pulling changes to remote: #{remote_params[:remote_repo]} @ #{remote_params[:remote_repo_url]}")
32
+
31
33
  if Helper(:git_repo).local_clone_dir_exists?(module_type,module_name,:full_module_name=>full_module_name,:version=>version)
32
34
  unless rsa_pub_key
33
35
  raise DtkError,"No File found at (#{path_to_key}). Path is wrong or it is necessary to generate the public rsa key (e.g., run ssh-keygen -t rsa)"
@@ -23,7 +23,7 @@ module DTK::Client
23
23
  end
24
24
  end
25
25
 
26
- push_opts = opts.merge(:commit_msg => commit_msg, :local_branch => branch)
26
+ push_opts = opts.merge(:commit_msg => commit_msg, :local_branch => branch, :where => 'server')
27
27
  response = Helper(:git_repo).push_changes(module_type, full_module_name, version, push_opts)
28
28
  return response unless response.ok?
29
29
 
@@ -2,7 +2,20 @@ dtk_require_common_commands('thor/common')
2
2
  module DTK::Client
3
3
  module PushToRemoteMixin
4
4
 
5
- def push_to_remote_aux(remote_module_info, module_type)
5
+ def push_to_git_remote_aux(full_module_name, module_type, version, opts, force = false)
6
+ opts.merge!(:force => force)
7
+
8
+ response = Helper(:git_repo).push_changes(module_type, full_module_name, version, opts)
9
+
10
+ return response unless response.ok?
11
+ if response.data(:diffs).empty?
12
+ raise DtkError, "No changes to push"
13
+ end
14
+
15
+ Response::Ok.new()
16
+ end
17
+
18
+ def push_to_remote_aux(remote_module_info, module_type, force = false)
6
19
  full_module_name = remote_module_info.data(:full_module_name)
7
20
  version = remote_module_info.data(:version)
8
21
 
@@ -10,10 +23,11 @@ module DTK::Client
10
23
  :remote_repo_url => remote_module_info.data(:remote_repo_url),
11
24
  :remote_repo => remote_module_info.data(:remote_repo),
12
25
  :remote_branch => remote_module_info.data(:remote_branch),
13
- :local_branch => remote_module_info.data(:workspace_branch)
26
+ :local_branch => remote_module_info.data(:workspace_branch),
27
+ :where => 'catalog',
28
+ :force => force
14
29
  }
15
-
16
- response = Helper(:git_repo).push_changes(module_type,full_module_name,version,opts)
30
+ response = Helper(:git_repo).push_changes(module_type, full_module_name, version, opts)
17
31
  return response unless response.ok?
18
32
  if response.data(:diffs).empty?
19
33
  raise DtkError, "No changes to push"