dtk-client 0.11.7 → 0.11.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/dtk-client.gemspec +2 -2
  4. data/lib/cli/command/account/add_to_group.rb +33 -0
  5. data/lib/cli/command/account/chmod.rb +33 -0
  6. data/lib/cli/command/account/create_namespace.rb +32 -0
  7. data/lib/cli/command/account/delete_namespace.rb +32 -0
  8. data/lib/cli/command/account/list_namespaces.rb +30 -0
  9. data/lib/cli/command/account/remove_from_group.rb +33 -0
  10. data/lib/cli/command/account.rb +14 -1
  11. data/lib/cli/command/module/delete_from_remote.rb +5 -3
  12. data/lib/cli/command/module/install.rb +242 -102
  13. data/lib/cli/command/module/list_remotes.rb +1 -1
  14. data/lib/cli/command/module/publish.rb +3 -2
  15. data/lib/cli/command/module/pull_dtkn.rb +2 -2
  16. data/lib/cli/command/module/push.rb +2 -1
  17. data/lib/cli/command/module/push_dtkn.rb +3 -2
  18. data/lib/cli/command/module/unpublish.rb +42 -0
  19. data/lib/cli/command/module/update.rb +33 -0
  20. data/lib/cli/command/module.rb +3 -1
  21. data/lib/cli/command/token.rb +9 -3
  22. data/lib/cli/context.rb +7 -5
  23. data/lib/cli/directory_parser/file_system.rb +76 -36
  24. data/lib/cli/processor/plugin/gli.rb +2 -0
  25. data/lib/cli/version.rb +1 -1
  26. data/lib/client/error/subclasses.rb +12 -0
  27. data/lib/client/git_repo/adapter/git_gem.rb +3 -1
  28. data/lib/client/operation/account/add_to_group.rb +29 -0
  29. data/lib/client/operation/account/chmod.rb +29 -0
  30. data/lib/client/operation/account/create_namespace.rb +29 -0
  31. data/lib/client/operation/account/delete_namespace.rb +29 -0
  32. data/lib/client/operation/account/list_namespaces.rb +29 -0
  33. data/lib/client/operation/account/remove_from_group.rb +29 -0
  34. data/lib/client/operation/account.rb +14 -1
  35. data/lib/client/operation/client_module_dir/git_repo/internal.rb +4 -22
  36. data/lib/client/operation/client_module_dir/git_repo.rb +5 -6
  37. data/lib/client/operation/client_module_dir/service_instance/internal/module_info.rb +67 -0
  38. data/lib/client/operation/client_module_dir/service_instance/internal.rb +106 -0
  39. data/lib/client/operation/client_module_dir/service_instance.rb +30 -0
  40. data/lib/client/operation/client_module_dir.rb +5 -0
  41. data/lib/client/operation/module/clone_module.rb +2 -2
  42. data/lib/client/operation/module/delete_from_remote.rb +7 -31
  43. data/lib/client/operation/module/install/dependent_modules/component_module.rb +1 -2
  44. data/lib/client/operation/module/install/dependent_modules/local_dependencies.rb +1 -1
  45. data/lib/client/operation/module/install/print_helper.rb +1 -1
  46. data/lib/client/operation/module/install.rb +25 -19
  47. data/lib/client/operation/module/install_from_catalog.rb +15 -29
  48. data/lib/client/operation/module/list_remotes.rb +4 -11
  49. data/lib/client/operation/module/publish.rb +17 -31
  50. data/lib/client/operation/module/pull_dtkn.rb +37 -28
  51. data/lib/client/operation/module/push.rb +69 -5
  52. data/lib/client/operation/module/push_dtkn.rb +25 -13
  53. data/lib/client/operation/module/stage.rb +3 -3
  54. data/lib/client/operation/module/unpublish.rb +60 -0
  55. data/lib/client/operation/module/update.rb +59 -0
  56. data/lib/client/operation/module.rb +23 -9
  57. data/lib/client/operation/service/clone_service.rb +3 -0
  58. data/lib/client/operation.rb +7 -0
  59. metadata +38 -5
@@ -67,7 +67,7 @@ module DTK::Client
67
67
 
68
68
  def pull_dtkn(opts = {})
69
69
  # TODO: DTK-2765: not sure if we need module to exist on server to do push-dtkn
70
- unless module_version_exists?(@module_ref, :type => :common_module)
70
+ unless module_version_exists?(@module_ref)
71
71
  raise Error::Usage, "Module #{@module_ref.print_form} does not exist on server"
72
72
  end
73
73
 
@@ -76,32 +76,41 @@ module DTK::Client
76
76
  raise Error::Usage, "You are not allowed to pull module version '#{ref_version}'!" unless do_not_raise
77
77
  end
78
78
 
79
- error_msg = "To allow pull-dtkn to go through, invoke 'dtk push' to push the changes to server before invoking pull-dtkn again"
80
- GitRepo.modified_with_diff?(@target_repo_dir, { :error_msg => error_msg, :command => 'pull-dtkn' })
81
-
82
- query_string_hash = QueryStringHash.new(
83
- :module_name => @module_ref.module_name,
84
- :namespace => @module_ref.namespace,
85
- :rsa_pub_key => SSHUtil.rsa_pub_key_content,
86
- :version => @version
87
- )
88
- remote_module_info = rest_get "#{BaseRoute}/remote_module_info", query_string_hash
89
-
90
-
91
- unless dependent_modules.empty?
92
- begin
93
- Install::DependentModules.install(@module_ref, dependent_modules, :update_deps => opts[:update_deps], :no_update_deps => opts[:no_update_deps] , :mode => 'pull', :do_not_print => opts[:do_not_print])
94
- # Install::DependentModules.install(@module_ref, dependent_modules, :skip_prompt => false, :mode => 'pull')
95
- rescue Install::TerminateInstall
96
- @print_helper.print_terminated_pulling
97
- return nil
98
- end
99
- end
100
-
101
- @print_helper.print_continuation_pulling_base_module unless opts[:do_not_print]
102
- LoadSource.fetch_transform_and_merge(remote_module_info, self, :stage_and_commit_steps => true, :force => opts[:force], :use_theirs => true)
103
-
104
- nil
79
+ # error_msg = "To allow pull-dtkn to go through, invoke 'dtk push' to push the changes to server before invoking pull-dtkn again"
80
+ # GitRepo.modified_with_diff?(@target_repo_dir, { :error_msg => error_msg, :command => 'pull-dtkn' })
81
+
82
+ module_info = {
83
+ name: module_ref.module_name,
84
+ namespace: module_ref.namespace,
85
+ version: ref_version,
86
+ repo_dir: target_repo_dir
87
+ }
88
+ DtkNetworkClient::Pull.run(module_info)
89
+
90
+
91
+ # query_string_hash = QueryStringHash.new(
92
+ # :module_name => @module_ref.module_name,
93
+ # :namespace => @module_ref.namespace,
94
+ # :rsa_pub_key => SSHUtil.rsa_pub_key_content,
95
+ # :version => @version
96
+ # )
97
+ # remote_module_info = rest_get "#{BaseRoute}/remote_module_info", query_string_hash
98
+
99
+
100
+ # unless dependent_modules.empty?
101
+ # begin
102
+ # Install::DependentModules.install(@module_ref, dependent_modules, :update_deps => opts[:update_deps], :no_update_deps => opts[:no_update_deps] , :mode => 'pull', :do_not_print => opts[:do_not_print])
103
+ # # Install::DependentModules.install(@module_ref, dependent_modules, :skip_prompt => false, :mode => 'pull')
104
+ # rescue Install::TerminateInstall
105
+ # @print_helper.print_terminated_pulling
106
+ # return nil
107
+ # end
108
+ # end
109
+
110
+ # @print_helper.print_continuation_pulling_base_module unless opts[:do_not_print]
111
+ # LoadSource.fetch_transform_and_merge(remote_module_info, self, :stage_and_commit_steps => true, :force => opts[:force], :use_theirs => true)
112
+
113
+ # nil
105
114
  end
106
115
 
107
116
  private
@@ -123,7 +132,7 @@ module DTK::Client
123
132
  Install::ModuleRef.new(:namespace => dep_namespace, :module_name => dep_module_name, :version => dep_version, :is_base_module => is_base_module)
124
133
  end
125
134
  unless base_component_module_found
126
- if module_version_exists?(@module_ref, :type => :component_module)
135
+ if module_version_exists?(@module_ref)
127
136
  ret << Install::ModuleRef.new(:namespace => @module_ref.namespace, :module_name => @module_ref.module_name, :version => @module_ref.version, :is_base_module => true)
128
137
  end
129
138
  end
@@ -20,15 +20,18 @@ module DTK::Client
20
20
  class Push < self
21
21
  def self.execute(args = Args.new)
22
22
  wrap_operation(args) do |args|
23
- module_ref = args.required(:module_ref)
24
- method = args[:method] || "pushed"
25
- allow_version = args[:allow_version]
23
+ module_ref = args.required(:module_ref)
24
+ method = args[:method] || "pushed"
25
+ allow_version = args[:allow_version]
26
+ base_dsl_file_obj = args.required(:base_dsl_file_obj)
27
+ update_lock_file = args[:update_lock_file]
28
+ context = args[:context]
26
29
 
27
30
  unless client_dir_path = module_ref.client_dir_path
28
31
  raise Error, "Not implemented yet; need to make sure module_ref.client_dir_path is set when client_dir_path given"
29
32
  end
30
33
 
31
- unless module_info = module_version_exists?(module_ref, :type => :common_module)
34
+ unless module_info = module_version_exists?(module_ref)
32
35
  raise Error::Usage, "DTK module '#{module_ref.print_form}' does not exist."
33
36
  end
34
37
 
@@ -41,6 +44,65 @@ module DTK::Client
41
44
  repo_url = module_info.required(:repo, :url)
42
45
  repo_name = module_info.required(:repo, :name)
43
46
 
47
+ @file_obj = base_dsl_file_obj.raise_error_if_no_content
48
+ parsed_module = @file_obj.parse_content(:common_module_summary)
49
+ repoman_client_module_info = {
50
+ name: module_ref.module_name,
51
+ namespace: module_ref.namespace,
52
+ version: module_ref.version,
53
+ repo_dir: @file_obj.parent_dir
54
+ }
55
+ dependency_tree = DtkNetworkDependencyTree.get_or_create(repoman_client_module_info, { format: :hash, parsed_module: parsed_module, save_to_file: true, update_lock_file: update_lock_file })
56
+
57
+ # TODO: need to refactor to use the same code for push and install
58
+ dependency_tree.each do |dependency|
59
+ dep_module_ref = context.module_ref_object_from_options_or_context(module_ref: "#{dependency[:namespace]}/#{dependency[:name]}", version: dependency[:version])
60
+ if Operation::Module.module_version_exists?(dep_module_ref)
61
+ p_helper = Operation::Module::Install::PrintHelper.new(:module_ref => dep_module_ref, :source => :local)
62
+ p_helper.print_using_installed_dependent_module
63
+ else
64
+ client_installed_modules = nil
65
+
66
+ if dependency[:source]
67
+ client_installed_modules = [dependency]
68
+ else
69
+ install_response = Operation::Module.install_from_catalog(module_ref: dep_module_ref, version: dep_module_ref.version, type: :dependency)
70
+ client_installed_modules = (install_response && install_response.data[:installed_modules])
71
+ end
72
+
73
+ if client_installed_modules# = (install_response && install_response.data[:installed_modules])
74
+ install_from = dependency[:source] ? :local : :remote
75
+ opts_server_install = {
76
+ has_directory_param: false,
77
+ has_remote_repo: true,
78
+ # update_deps: self.update_deps?,
79
+ install_from: install_from
80
+ }
81
+ client_installed_modules.each do |installed_module|
82
+ directory_path = installed_module[:location] || installed_module[:source]
83
+ temp_module_ref = context.module_ref_object_from_options_or_context(directory_path: directory_path, version: installed_module[:version])
84
+ # use_or_install_on_server(module_ref, directory_path, opts)
85
+ if Operation::Module.module_version_exists?(temp_module_ref)
86
+ p_helper = Operation::Module::Install::PrintHelper.new(:module_ref => temp_module_ref, :source => :local)
87
+ p_helper.print_using_installed_dependent_module
88
+ else
89
+ temp_base_dsl_file_obj = CLI::Context.base_dsl_file_obj(dir_path: directory_path)
90
+ operation_args = {
91
+ :module_ref => temp_module_ref,
92
+ :base_dsl_file_obj => temp_base_dsl_file_obj,
93
+ :has_directory_param => opts_server_install[:has_directory_param],
94
+ :has_remote_repo => opts_server_install[:has_remote_repo],
95
+ :update_deps => opts_server_install[:update_dep],
96
+ :install_from => opts_server_install[:install_from]
97
+ }
98
+ Operation::Module.install(operation_args)
99
+ end
100
+ end
101
+ # install_on_server(client_installed_modules, opts_server_install)
102
+ end
103
+ end
104
+ end
105
+
44
106
  git_repo_args = {
45
107
  :repo_dir => module_ref.client_dir_path,
46
108
  :repo_url => repo_url,
@@ -58,7 +120,9 @@ module DTK::Client
58
120
  :commit_sha => git_repo_response.data(:head_sha)
59
121
  )
60
122
 
61
- response = rest_post("#{BaseRoute}/update_from_repo", post_body)
123
+ response = handle_error @file_obj.parent_dir do
124
+ rest_post("#{BaseRoute}/update_from_repo", post_body)
125
+ end
62
126
 
63
127
  existing_diffs = nil
64
128
  print = nil
@@ -21,13 +21,14 @@ module DTK::Client
21
21
  require_relative('push_dtkn/convert_source')
22
22
 
23
23
  attr_reader :version, :module_ref, :target_repo_dir, :base_dsl_file_obj
24
- def initialize(catalog, module_ref, directory_path, version, base_dsl_file_obj)
24
+ def initialize(catalog, module_ref, directory_path, version, base_dsl_file_obj, update_lock_file)
25
25
  @catalog = catalog
26
26
  @module_ref = module_ref
27
27
  @directory_path = directory_path
28
28
  @target_repo_dir = directory_path || base_dsl_file_obj.parent_dir
29
29
  @version = version || module_ref.version || 'master'
30
30
  @base_dsl_file_obj = base_dsl_file_obj
31
+ @update_lock_file = update_lock_file
31
32
 
32
33
  @module_ref.version ||= @version
33
34
  end
@@ -39,13 +40,14 @@ module DTK::Client
39
40
  version = args[:version]
40
41
  directory_path = args[:directory_path]
41
42
  base_dsl_file_obj = args[:base_dsl_file_obj]
42
- new('dtkn', module_ref, directory_path, version, base_dsl_file_obj).push_dtkn
43
+ update_lock_file = args[:update_lock_file]
44
+ new('dtkn', module_ref, directory_path, version, base_dsl_file_obj, update_lock_file).push_dtkn
43
45
  end
44
46
  end
45
47
 
46
48
  def push_dtkn
47
49
  # TODO: DTK-2765: not sure if we need module to exist on server to do push-dtkn
48
- unless module_version_exists?(@module_ref, :type => :common_module)
50
+ unless module_version_exists?(@module_ref)
49
51
  raise Error::Usage, "Module #{@module_ref.print_form} does not exist on server"
50
52
  end
51
53
 
@@ -53,18 +55,28 @@ module DTK::Client
53
55
  raise Error::Usage, "You are not allowed to push module version '#{ref_version}'!" unless ref_version.eql?('master')
54
56
  end
55
57
 
56
- error_msg = "To allow push-dtkn to go through, invoke 'dtk push' to push the changes to server before invoking push-dtkn again"
57
- GitRepo.modified_with_diff?(@target_repo_dir, { :error_msg => error_msg, :command => 'push-dtkn' })
58
+ @file_obj = @base_dsl_file_obj.raise_error_if_no_content
59
+ parsed_module = @file_obj.parse_content(:common_module_summary)
60
+ # error_msg = "To allow push-dtkn to go through, invoke 'dtk push' to push the changes to server before invoking push-dtkn again"
61
+ # GitRepo.modified_with_diff?(target_repo_dir, { :error_msg => error_msg, :command => 'push-dtkn' })
58
62
 
59
- query_string_hash = QueryStringHash.new(
60
- :module_name => @module_ref.module_name,
61
- :namespace => @module_ref.namespace,
62
- :rsa_pub_key => SSHUtil.rsa_pub_key_content,
63
- :version => @version
64
- )
65
- remote_module_info = rest_get "#{BaseRoute}/remote_module_info", query_string_hash
63
+ module_info = {
64
+ name: module_ref.module_name,
65
+ namespace: module_ref.namespace,
66
+ version: ref_version,
67
+ repo_dir: target_repo_dir
68
+ }
69
+ DtkNetworkClient::Push.run(module_info, parsed_module: parsed_module, update_lock_file: @update_lock_file)
66
70
 
67
- ConvertSource.transform_and_commit(remote_module_info, self)
71
+ # query_string_hash = QueryStringHash.new(
72
+ # :module_name => @module_ref.module_name,
73
+ # :namespace => @module_ref.namespace,
74
+ # :rsa_pub_key => SSHUtil.rsa_pub_key_content,
75
+ # :version => @version
76
+ # )
77
+ # remote_module_info = rest_get "#{BaseRoute}/remote_module_info", query_string_hash
78
+
79
+ # ConvertSource.transform_and_commit(remote_module_info, self)
68
80
  nil
69
81
  end
70
82
 
@@ -49,12 +49,12 @@ module DTK::Client
49
49
 
50
50
  clone_args = {
51
51
  :module_ref => module_ref,
52
- :repo_url => response.required(:repo, :url),
53
- :branch => response.required(:branch, :name),
52
+ :base_module => response.required(:base_module),
53
+ :nested_modules => response.required(:nested_modules),
54
54
  :service_instance => service_instance,
55
55
  :remove_existing => remove_existing
56
56
  }
57
- message = ClientModuleDir::GitRepo.clone_service_repo(clone_args)
57
+ message = ClientModuleDir::ServiceInstance.clone(clone_args)
58
58
  target_dir = message.data(:target_repo_dir)
59
59
 
60
60
  OsUtil.print_info("Service instance '#{service_instance}' has been created. In order to work with service instance, please navigate to: #{target_dir}")
@@ -0,0 +1,60 @@
1
+ #
2
+ # Copyright (C) 2010-2016 dtk contributors
3
+ #
4
+ # This file is part of the dtk project.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module DTK::Client
19
+ class Operation::Module
20
+ class Unpublish < self
21
+ attr_reader :module_ref
22
+
23
+ def initialize(catalog, module_ref)
24
+ @catalog = catalog
25
+ @module_ref = module_ref
26
+ end
27
+ private :initialize
28
+
29
+ def self.execute(args = Args.new)
30
+ wrap_operation(args) do |args|
31
+ module_ref = args.required(:module_ref)
32
+ new('dtkn', module_ref).unpublish(:skip_prompt => args[:skip_prompt], :force => args[:force])
33
+ end
34
+ end
35
+
36
+ def unpublish(opts = {})
37
+ version = module_ref.version
38
+ raise Error::Usage, "Version is required" unless version
39
+
40
+ unless opts[:skip_prompt]
41
+ module_ref_opts = { :namespace => module_ref.namespace }
42
+ module_ref_opts.merge!(:version => version)
43
+ return unless Console.prompt_yes_no("Are you sure you want to unpublish module '#{DTK::Common::PrettyPrintForm.module_ref(module_ref.module_name, module_ref_opts)}' from dtk network?", :add_options => true)
44
+ end
45
+
46
+ module_info = {
47
+ name: module_ref.module_name,
48
+ namespace: module_ref.namespace,
49
+ version: version
50
+ }
51
+ DtkNetworkClient::Unpublish.run(module_info)
52
+
53
+ nil
54
+ end
55
+
56
+ end
57
+ end
58
+ end
59
+
60
+
@@ -0,0 +1,59 @@
1
+ #
2
+ # Copyright (C) 2010-2016 dtk contributors
3
+ #
4
+ # This file is part of the dtk project.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module DTK::Client
19
+ class Operation::Module
20
+ class Update < self
21
+ attr_reader :module_ref, :target_repo_dir, :version
22
+ def initialize(catalog, module_ref, directory_path)
23
+ @catalog = catalog
24
+ @module_ref = module_ref
25
+ @target_repo_dir = directory_path || module_ref.client_dir_path
26
+ @version = module_ref.version
27
+ end
28
+ private :initialize
29
+
30
+ def self.execute(args = Args.new)
31
+ wrap_operation(args) do |args|
32
+ module_ref = args.required(:module_ref)
33
+ base_dsl_file_obj = args.required(:base_dsl_file_obj)
34
+ directory_path = args[:directory_path]
35
+ new('dtkn', module_ref, directory_path).update({file_obj: base_dsl_file_obj})
36
+ end
37
+ end
38
+
39
+ def update(opts = {})
40
+ file_obj = opts[:file_obj]
41
+ parsed_module = file_obj.parse_content(:common_module_summary)
42
+
43
+ module_info = {
44
+ name: module_ref.module_name,
45
+ namespace: module_ref.namespace,
46
+ version: @version,
47
+ repo_dir: @target_repo_dir
48
+ }
49
+
50
+ response = DtkNetworkClient::Update.run(module_info, parsed_module: parsed_module)
51
+ OsUtil.print_info("Dependencies updated successfully")
52
+
53
+ nil
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+
@@ -31,11 +31,14 @@ module DTK::Client
31
31
  :push,
32
32
  :push_dtkn,
33
33
  :stage,
34
- :uninstall
34
+ :uninstall,
35
+ :unpublish
36
+ # :update
35
37
  ]
36
38
  OPERATIONS.each { |operation| require_relative("module/#{operation}") }
37
39
 
38
- BaseRoute = 'modules'
40
+ BaseRoute = 'modules'
41
+ MODULE_LOCK = 'dtk.module.lock'
39
42
 
40
43
  extend ModuleServiceCommon::ClassMixin
41
44
 
@@ -43,14 +46,12 @@ module DTK::Client
43
46
 
44
47
  # opts can have keys
45
48
  # :remote_info - Boolean
46
- # :type
47
49
  # :rsa_pub_key
48
50
  def module_version_exists?(module_ref, opts = {})
49
51
  self.class.module_version_exists?(module_ref, opts)
50
52
  end
51
53
  def self.module_version_exists?(module_ref, opts = {})
52
- type = opts[:type] || :common_module
53
- query_string_hash = module_ref_query_string_hash(module_ref, module_type: type)
54
+ query_string_hash = module_ref_query_string_hash(module_ref)
54
55
 
55
56
  if ret_remote_info = opts[:remote_info]
56
57
  query_string_hash = query_string_hash.merge(:remote_info => ret_remote_info, :rsa_pub_key => opts[:rsa_pub_key])
@@ -64,10 +65,8 @@ module DTK::Client
64
65
  PostBody.new(module_ref_hash(module_ref))
65
66
  end
66
67
 
67
- # opts can have keys:
68
- # :module_type
69
- def self.module_ref_query_string_hash(module_ref, opts = {})
70
- QueryStringHash.new(module_ref_hash(module_ref, opts))
68
+ def self.module_ref_query_string_hash(module_ref)
69
+ QueryStringHash.new(module_ref_hash(module_ref))
71
70
  end
72
71
 
73
72
  # opts can have keys:
@@ -82,6 +81,21 @@ module DTK::Client
82
81
  }
83
82
  end
84
83
 
84
+ def self.handle_error(base_path, &block)
85
+ begin
86
+ block.call
87
+ rescue Error::ServerNotOkResponse => ex
88
+ if response = ex.response
89
+ unless response.ok?
90
+ # If install fails, delete dtk.module.lock file
91
+ FileUtils.rm_rf("#{base_path}/#{MODULE_LOCK}")
92
+ end
93
+ end
94
+
95
+ raise ex
96
+ end
97
+ end
98
+
85
99
  end
86
100
  end
87
101
  end
@@ -27,6 +27,9 @@ module DTK::Client
27
27
  raise Error::Usage, "DTK service '#{service_ref}' does not exist on server."
28
28
  end
29
29
 
30
+ pp service_info
31
+ fail "TODO: DTK-3366: update to use ClientModuleDir::ServiceInstance.clone"
32
+
30
33
  branch = service_info.required(:branch, :name)
31
34
  repo_url = service_info.required(:repo, :url)
32
35
  repo_name = service_info.required(:repo, :name)
@@ -62,6 +62,13 @@ module DTK::Client
62
62
  raise Error::ServerNotOkResponse.new(response)
63
63
  end
64
64
  end
65
+
66
+ require 'dtk_network_client'
67
+ class DtkNetworkClient < DTK::Network::Client::Command
68
+ end
69
+
70
+ class DtkNetworkDependencyTree < DTK::Network::Client::DependencyTree
71
+ end
65
72
  end
66
73
  end
67
74
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtk-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.7
4
+ version: 0.11.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reactor8
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-26 00:00:00.000000000 Z
11
+ date: 2018-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dtk-common-core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.11.0
19
+ version: 0.11.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.11.0
26
+ version: 0.11.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: gli
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: 1.1.0
125
+ - !ruby/object:Gem::Dependency
126
+ name: dtk-network-client
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 1.0.0
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.0.0
125
139
  description: Command line tool to interact with a DTK Server and DTK Service Catalog.
126
140
  email: support@reactor8.com
127
141
  executables:
@@ -151,9 +165,15 @@ files:
151
165
  - lib/cli/command.rb
152
166
  - lib/cli/command/account.rb
153
167
  - lib/cli/command/account/add_ssh_key.rb
168
+ - lib/cli/command/account/add_to_group.rb
169
+ - lib/cli/command/account/chmod.rb
170
+ - lib/cli/command/account/create_namespace.rb
171
+ - lib/cli/command/account/delete_namespace.rb
154
172
  - lib/cli/command/account/delete_ssh_key.rb
173
+ - lib/cli/command/account/list_namespaces.rb
155
174
  - lib/cli/command/account/list_ssh_keys.rb
156
175
  - lib/cli/command/account/register_catalog_user.rb
176
+ - lib/cli/command/account/remove_from_group.rb
157
177
  - lib/cli/command/account/set_catalog_credentials.rb
158
178
  - lib/cli/command/account/set_password.rb
159
179
  - lib/cli/command/mixin.rb
@@ -170,6 +190,8 @@ files:
170
190
  - lib/cli/command/module/push_dtkn.rb
171
191
  - lib/cli/command/module/stage.rb
172
192
  - lib/cli/command/module/uninstall.rb
193
+ - lib/cli/command/module/unpublish.rb
194
+ - lib/cli/command/module/update.rb
173
195
  - lib/cli/command/options.rb
174
196
  - lib/cli/command/service.rb
175
197
  - lib/cli/command/service/cancel_task.rb
@@ -242,15 +264,24 @@ files:
242
264
  - lib/client/operation.rb
243
265
  - lib/client/operation/account.rb
244
266
  - lib/client/operation/account/add_ssh_key.rb
267
+ - lib/client/operation/account/add_to_group.rb
268
+ - lib/client/operation/account/chmod.rb
269
+ - lib/client/operation/account/create_namespace.rb
270
+ - lib/client/operation/account/delete_namespace.rb
245
271
  - lib/client/operation/account/delete_ssh_key.rb
272
+ - lib/client/operation/account/list_namespaces.rb
246
273
  - lib/client/operation/account/list_ssh_keys.rb
247
274
  - lib/client/operation/account/register_catalog_user.rb
275
+ - lib/client/operation/account/remove_from_group.rb
248
276
  - lib/client/operation/account/set_catalog_credentials.rb
249
277
  - lib/client/operation/account/set_password.rb
250
278
  - lib/client/operation/client_module_dir.rb
251
279
  - lib/client/operation/client_module_dir/git_repo.rb
252
280
  - lib/client/operation/client_module_dir/git_repo/internal.rb
253
281
  - lib/client/operation/client_module_dir/git_repo/internal/dtkn.rb
282
+ - lib/client/operation/client_module_dir/service_instance.rb
283
+ - lib/client/operation/client_module_dir/service_instance/internal.rb
284
+ - lib/client/operation/client_module_dir/service_instance/internal/module_info.rb
254
285
  - lib/client/operation/module.rb
255
286
  - lib/client/operation/module/clone_module.rb
256
287
  - lib/client/operation/module/delete_from_remote.rb
@@ -280,6 +311,8 @@ files:
280
311
  - lib/client/operation/module/push_dtkn/convert_source/service_info.rb
281
312
  - lib/client/operation/module/stage.rb
282
313
  - lib/client/operation/module/uninstall.rb
314
+ - lib/client/operation/module/unpublish.rb
315
+ - lib/client/operation/module/update.rb
283
316
  - lib/client/operation/module_service_common.rb
284
317
  - lib/client/operation/service.rb
285
318
  - lib/client/operation/service/cancel_task.rb
@@ -390,7 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
390
423
  version: '0'
391
424
  requirements: []
392
425
  rubyforge_project:
393
- rubygems_version: 2.4.1
426
+ rubygems_version: 2.4.8
394
427
  signing_key:
395
428
  specification_version: 4
396
429
  summary: DTK CLI client for DTK server interaction.