dtk-client 0.11.8 → 0.11.8.1
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.
- checksums.yaml +4 -4
- data/dtk-client.gemspec +3 -3
- data/lib/cli/version.rb +1 -1
- data/lib/client/operation/client_module_dir/git_repo/internal.rb +29 -10
- data/lib/client/operation/client_module_dir/git_repo.rb +6 -0
- data/lib/client/operation/client_module_dir/service_instance/internal.rb +24 -1
- data/lib/client/operation/client_module_dir/service_instance.rb +6 -0
- data/lib/client/operation/service/clone_service.rb +9 -14
- data/lib/client/operation/service/commit_and_push.rb +27 -6
- data/lib/client/operation/service.rb +1 -1
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c1243437980492193969d331349b58e87d20f6c
|
4
|
+
data.tar.gz: '08e0afe0380f0d2eee56edf002005fb098850c94'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b23957da3a9aa6347e43ed156956fc51773a9deb15b6b8bd45b57c6a4504740a4e0a6afc80e999dbf0a307b40cf5ee9952e9065f0fe4a53186854d879938d3f
|
7
|
+
data.tar.gz: 8dbbc1ebfba62af5cf4d85815cf62e7c926152ba27eca693d625c858508fd51cc24451ddf258847d8d9d8d6cb6dc2bae1247117dbda4e8d5bdef68315bc06ce3
|
data/dtk-client.gemspec
CHANGED
@@ -17,13 +17,13 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
|
20
|
-
spec.add_dependency 'dtk-common-core','0.11.1'
|
20
|
+
spec.add_dependency 'dtk-common-core','0.11.1.1'
|
21
21
|
spec.add_dependency 'gli', '2.13.4'
|
22
22
|
spec.add_dependency 'highline', '1.7.8'
|
23
23
|
spec.add_dependency 'colorize', '0.7.7'
|
24
24
|
spec.add_dependency 'git', '1.2.9'
|
25
25
|
spec.add_dependency 'hirb', '0.7.3'
|
26
26
|
spec.add_dependency 'mime-types', '~> 2.99.3'
|
27
|
-
spec.add_dependency 'dtk-dsl', '
|
28
|
-
spec.add_dependency 'dtk-network-client', '
|
27
|
+
spec.add_dependency 'dtk-dsl', '1.1.3'
|
28
|
+
spec.add_dependency 'dtk-network-client', '1.0.1.1'
|
29
29
|
end
|
data/lib/cli/version.rb
CHANGED
@@ -95,6 +95,22 @@ module DTK::Client
|
|
95
95
|
repo.head_commit_sha
|
96
96
|
end
|
97
97
|
|
98
|
+
def self.commit_and_push_to_nested_module_repo(args)
|
99
|
+
target_repo_dir = args.required(:target_repo_dir)
|
100
|
+
repo = git_repo.new(target_repo_dir)
|
101
|
+
branch = args[:branch] || repo.current_branch
|
102
|
+
remote_branch = args[:remote_branch] || branch
|
103
|
+
|
104
|
+
if repo.changed?
|
105
|
+
repo.stage_and_commit
|
106
|
+
dtk_server_remote = 'origin'
|
107
|
+
repo.push(dtk_server_remote, branch)
|
108
|
+
return repo.head_commit_sha
|
109
|
+
end
|
110
|
+
|
111
|
+
nil
|
112
|
+
end
|
113
|
+
|
98
114
|
def self.clone(repo_url, target_repo_dir, branch)
|
99
115
|
begin
|
100
116
|
git_repo.clone(repo_url, target_repo_dir, branch)
|
@@ -162,13 +178,14 @@ module DTK::Client
|
|
162
178
|
# For this and other methods in Internal that use Dtk_Server::GIT_REMOTE
|
163
179
|
# put a version in Internal taht takes remote_name as param and then have
|
164
180
|
# method with same name in Dtk, that calss this with appropriate remote name
|
165
|
-
def self.init_and_push_from_existing_repo(repo_dir, repo_url, remote_branch)
|
181
|
+
def self.init_and_push_from_existing_repo(repo_dir, repo_url, remote_branch, opts = {})
|
166
182
|
repo = git_repo.new(repo_dir)
|
183
|
+
remote = opts[:remote] || Dtk_Server::GIT_REMOTE
|
167
184
|
|
168
|
-
if repo.is_there_remote?(
|
169
|
-
push_when_there_is_dtk_remote(repo, repo_dir, repo_url, remote_branch)
|
185
|
+
if repo.is_there_remote?(remote)
|
186
|
+
push_when_there_is_dtk_remote(repo, repo_dir, repo_url, remote_branch, opts)
|
170
187
|
else
|
171
|
-
add_remote_and_push(repo, repo_url, remote_branch)
|
188
|
+
add_remote_and_push(repo, repo_url, remote_branch, opts)
|
172
189
|
end
|
173
190
|
|
174
191
|
repo.head_commit_sha
|
@@ -197,15 +214,16 @@ module DTK::Client
|
|
197
214
|
repo
|
198
215
|
end
|
199
216
|
|
200
|
-
def self.push_when_there_is_dtk_remote(repo, repo_dir, repo_url, remote_branch)
|
217
|
+
def self.push_when_there_is_dtk_remote(repo, repo_dir, repo_url, remote_branch, opts = {})
|
201
218
|
# if there is only one remote and it is dtk-server; remove .git and initialize and push as new repo to dtk-server remote
|
202
219
|
# else if multiple remotes and dtk-server being one of them; remove dtk-server; add new dtk-server remote and push
|
203
220
|
if repo.remotes.size == 1
|
204
221
|
git_repo.unlink_local_clone?(repo_dir)
|
205
222
|
create_repo_from_remote_and_push(repo_dir, repo_url, remote_branch)
|
206
223
|
else
|
207
|
-
|
208
|
-
|
224
|
+
remote = opts[:remote] || Dtk_Server::GIT_REMOTE
|
225
|
+
repo.remove_remote(remote)
|
226
|
+
add_remote_and_push(repo, repo_url, remote_branch, opts)
|
209
227
|
end
|
210
228
|
end
|
211
229
|
|
@@ -226,10 +244,11 @@ module DTK::Client
|
|
226
244
|
repo.head_commit_sha
|
227
245
|
end
|
228
246
|
|
229
|
-
def self.add_remote_and_push(repo, repo_url, remote_branch)
|
230
|
-
|
247
|
+
def self.add_remote_and_push(repo, repo_url, remote_branch, opts = {})
|
248
|
+
remote = opts[:remote] || Dtk_Server::GIT_REMOTE
|
249
|
+
repo.add_remote(remote, repo_url)
|
231
250
|
repo.stage_and_commit
|
232
|
-
repo.push(
|
251
|
+
repo.push(remote, remote_branch, { :force => true })
|
233
252
|
end
|
234
253
|
|
235
254
|
def self.add_service_repo_file(args)
|
@@ -27,6 +27,12 @@ module DTK::Client
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
def self.commit_and_push_to_nested_module_repo(args)
|
31
|
+
wrap_operation(args) do |args|
|
32
|
+
response_data_hash(:head_sha => Internal.commit_and_push_to_nested_module_repo(args))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
30
36
|
def self.clone_exists?(args)
|
31
37
|
wrap_operation(args) do |args|
|
32
38
|
type = args.required(:type)
|
@@ -41,7 +41,26 @@ module DTK::Client
|
|
41
41
|
self.nested_modules.each { |nested_module| clone_nested_module(nested_module) }
|
42
42
|
self.target_repo_dir
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
|
+
def self.commit_and_push_nested_modules(args)
|
46
|
+
service_instance = args[:service_instance]
|
47
|
+
service_instance_dir = args[:service_instance_dir] || ret_base_path(:service, service_instance)
|
48
|
+
|
49
|
+
nested_modules_dir = find_nested_modules_dir(service_instance_dir)
|
50
|
+
nested_modules = Dir.glob("#{nested_modules_dir}/*")
|
51
|
+
|
52
|
+
nested_modules_with_sha = []
|
53
|
+
nested_modules.each do |nested_module|
|
54
|
+
nested_module_name = nested_module.split('/').last
|
55
|
+
response = ClientModuleDir::GitRepo.commit_and_push_to_nested_module_repo({target_repo_dir: nested_module})
|
56
|
+
if head_sha = response.data(:head_sha)
|
57
|
+
nested_modules_with_sha << { nested_module_name => head_sha }
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
nested_modules_with_sha
|
62
|
+
end
|
63
|
+
|
45
64
|
protected
|
46
65
|
|
47
66
|
attr_reader :base_module, :nested_modules, :service_instance, :remove_existing, :repo_dir
|
@@ -85,6 +104,10 @@ module DTK::Client
|
|
85
104
|
dirs.map { |dir| "#{self.target_repo_dir}/#{dir}" }.find { |full_path| ! File.exists?(full_path) }
|
86
105
|
end
|
87
106
|
|
107
|
+
def self.find_nested_modules_dir(service_instance_dir)
|
108
|
+
self.possible_nested_module_base_dirs.map { |dir| "#{service_instance_dir}/#{dir}" }.find { |full_path| File.exists?(full_path) }
|
109
|
+
end
|
110
|
+
|
88
111
|
def clone_repo(module_info, target_repo_dir)
|
89
112
|
clone_args = {
|
90
113
|
:repo_url => module_info.repo_url,
|
@@ -25,6 +25,12 @@ module DTK::Client
|
|
25
25
|
response_data_hash(:target_repo_dir => Internal.clone(args))
|
26
26
|
end
|
27
27
|
end
|
28
|
+
|
29
|
+
def self.commit_and_push_nested_modules(args)
|
30
|
+
wrap_operation(args) do |args|
|
31
|
+
response_data_hash(:nested_modules => Internal.commit_and_push_nested_modules(args))
|
32
|
+
end
|
33
|
+
end
|
28
34
|
end
|
29
35
|
end
|
30
36
|
end
|
@@ -23,27 +23,22 @@ module DTK::Client
|
|
23
23
|
service_ref = args.required(:service_ref)
|
24
24
|
service_name = args.required(:service_name)
|
25
25
|
target_directory = args[:target_directory]
|
26
|
+
|
26
27
|
unless service_info = service_exists?(service_ref)
|
27
28
|
raise Error::Usage, "DTK service '#{service_ref}' does not exist on server."
|
28
29
|
end
|
29
30
|
|
30
|
-
|
31
|
-
fail "TODO: DTK-3366: update to use ClientModuleDir::ServiceInstance.clone"
|
32
|
-
|
33
|
-
branch = service_info.required(:branch, :name)
|
34
|
-
repo_url = service_info.required(:repo, :url)
|
35
|
-
repo_name = service_info.required(:repo, :name)
|
36
|
-
|
31
|
+
service_instance = service_info.required(:service, :name)
|
37
32
|
clone_args = {
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:service_instance =>
|
41
|
-
|
42
|
-
:repo_dir => target_directory || ClientModuleDir.ret_path_with_current_dir(service_name)
|
33
|
+
:base_module => service_info.required(:base_module),
|
34
|
+
:nested_modules => service_info.required(:nested_modules),
|
35
|
+
:service_instance => service_instance,
|
36
|
+
:repo_dir => target_directory
|
43
37
|
}
|
38
|
+
message = ClientModuleDir::ServiceInstance.clone(clone_args)
|
39
|
+
target_dir = message.data(:target_repo_dir)
|
44
40
|
|
45
|
-
|
46
|
-
OsUtil.print_info("DTK service '#{service_ref}' has been successfully cloned into '#{ret.required(:target_repo_dir)}'")
|
41
|
+
OsUtil.print_info("DTK service '#{service_instance}' has been successfully cloned into '#{target_dir}'")
|
47
42
|
end
|
48
43
|
end
|
49
44
|
end
|
@@ -25,18 +25,39 @@ module DTK::Client
|
|
25
25
|
|
26
26
|
response = rest_get("#{BaseRoute}/#{service_instance}/repo_info")
|
27
27
|
|
28
|
-
|
29
|
-
:service_instance
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:repo_url => response.required(:repo, :url),
|
28
|
+
nested_module_args = Args.new(
|
29
|
+
:service_instance => service_instance,
|
30
|
+
:base_module => nil,
|
31
|
+
:nested_modules => nil,
|
33
32
|
:service_instance_dir => args[:service_instance_dir]
|
34
33
|
)
|
34
|
+
nested_modules_response = ClientModuleDir::ServiceInstance.commit_and_push_nested_modules(nested_module_args)
|
35
|
+
updated_nested_modules = nested_modules_response.data(:nested_modules)
|
36
|
+
|
37
|
+
unless updated_nested_modules.empty?
|
38
|
+
repo_dir = (args[:service_instance_dir] || ClientModuleDir.ret_base_path(:service, service_instance))
|
39
|
+
empty_commit_args = Args.new(
|
40
|
+
:repo_dir => repo_dir,
|
41
|
+
:commit_msg => "Nested modules changed"
|
42
|
+
)
|
43
|
+
ClientModuleDir::GitRepo.create_repo_with_empty_commit(empty_commit_args)
|
44
|
+
|
45
|
+
# this is used to pick up changes made in nested modules
|
46
|
+
Dir.glob("#{repo_dir}/.nested_modules_changed_*").each { |file| File.delete(file)}
|
47
|
+
Operation::ClientModuleDir.create_file_with_content("#{repo_dir}/.nested_modules_changed_#{Time.now.to_i}", Time.now.to_i)
|
48
|
+
end
|
35
49
|
|
50
|
+
repo_info_args = Args.new(
|
51
|
+
:service_instance => service_instance,
|
52
|
+
:commit_message => args[:commit_message] || default_commit_message(service_instance),
|
53
|
+
:branch => response.required(:branch, :name),
|
54
|
+
:repo_url => response.required(:repo, :url),
|
55
|
+
:service_instance_dir => args[:service_instance_dir]
|
56
|
+
)
|
36
57
|
response = ClientModuleDir::GitRepo.commit_and_push_to_service_repo(repo_info_args)
|
37
58
|
commit_sha = response.required(:head_sha)
|
38
59
|
|
39
|
-
response = rest_post("#{BaseRoute}/#{service_instance}/update_from_repo", :commit_sha => commit_sha)
|
60
|
+
response = rest_post("#{BaseRoute}/#{service_instance}/update_from_repo", { :commit_sha => commit_sha, :updated_nested_modules => updated_nested_modules })
|
40
61
|
print_msgs_of_type(:error_msgs, response)
|
41
62
|
print_msgs_of_type(:warning_msgs, response)
|
42
63
|
print_msgs_of_type(:info_msgs, response)
|
@@ -57,7 +57,7 @@ module DTK::Client
|
|
57
57
|
private
|
58
58
|
|
59
59
|
def self.service_exists?(service_ref, opts = {})
|
60
|
-
response = rest_get("#{BaseRoute}/#{service_ref}/
|
60
|
+
response = rest_get("#{BaseRoute}/#{service_ref}/base_and_nested_repo_info")
|
61
61
|
response.data.empty? ? nil : response
|
62
62
|
end
|
63
63
|
end
|
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.8
|
4
|
+
version: 0.11.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reactor8
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-23 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.1
|
19
|
+
version: 0.11.1.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.1
|
26
|
+
version: 0.11.1.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: gli
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,30 +112,30 @@ dependencies:
|
|
112
112
|
name: dtk-dsl
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '='
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.1.
|
117
|
+
version: 1.1.3
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '='
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.1.
|
124
|
+
version: 1.1.3
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: dtk-network-client
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - '='
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.0.
|
131
|
+
version: 1.0.1.1
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - '='
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.0.
|
138
|
+
version: 1.0.1.1
|
139
139
|
description: Command line tool to interact with a DTK Server and DTK Service Catalog.
|
140
140
|
email: support@reactor8.com
|
141
141
|
executables:
|
@@ -423,7 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
423
423
|
version: '0'
|
424
424
|
requirements: []
|
425
425
|
rubyforge_project:
|
426
|
-
rubygems_version: 2.
|
426
|
+
rubygems_version: 2.6.11
|
427
427
|
signing_key:
|
428
428
|
specification_version: 4
|
429
429
|
summary: DTK CLI client for DTK server interaction.
|