dtk-client 0.11.1 → 0.11.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.
- checksums.yaml +4 -4
- data/lib/cli/command/module/clone.rb +27 -3
- data/lib/cli/command/module/stage.rb +5 -4
- data/lib/cli/command/service/link.rb +3 -2
- data/lib/cli/command/service/list_components.rb +1 -1
- data/lib/cli/command/service/pull.rb +3 -1
- data/lib/cli/command/service/push.rb +4 -1
- data/lib/cli/command/service/set_attribute.rb +5 -2
- data/lib/cli/command/service/set_default_target.rb +2 -2
- data/lib/cli/command/token.rb +5 -2
- data/lib/cli/version.rb +1 -1
- data/lib/client/load_source/component_info.rb +8 -1
- data/lib/client/load_source.rb +2 -2
- data/lib/client/operation/client_module_dir/git_repo/internal.rb +5 -3
- data/lib/client/operation/module/clone_module.rb +20 -1
- data/lib/client/operation/module/install/dependent_modules/component_dependency_tree/resolve_modules.rb +5 -4
- data/lib/client/operation/module/install/dependent_modules/component_dependency_tree.rb +2 -2
- data/lib/client/operation/module/install/dependent_modules.rb +1 -1
- data/lib/client/operation/module/pull_dtkn.rb +4 -3
- data/lib/client/operation/module/push.rb +9 -6
- data/lib/client/operation/module/push_dtkn/convert_source.rb +10 -0
- data/lib/client/operation/module/stage.rb +1 -1
- data/lib/client/operation/service/commit_and_push.rb +3 -2
- data/lib/client/operation/service/link.rb +2 -1
- data/lib/client/operation/service/list.rb +1 -1
- data/lib/client/operation/service/pull.rb +2 -1
- data/lib/client/operation/service/set_attribute.rb +4 -3
- data/lib/client/operation/service/ssh.rb +1 -1
- data/lib/client/operation/service/task_status/refresh_mode.rb +12 -5
- data/lib/client/operation/service/task_status/snapshot_mode.rb +2 -1
- data/lib/client/operation/service/task_status.rb +25 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3981a13565726d82ae34679577877df68accfcab
|
4
|
+
data.tar.gz: 4dc01e0e0f1dce4285d4a8dc6faa445d1df0f66c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0a443fccb5533b633aeee895ead2c43c05292a2eaebf4936fc688ee2cb50a5e2b25a0a8b61199321cd29f12269f2959984bbc7ab1c86d4da6f4e4d04c95e418
|
7
|
+
data.tar.gz: 706bcf1c39b99602dc3409ebfb7cc0614dce6ebc693c95dd73f52ae6922d7e0f45d15fd1fc645a2dfc3e2d4cb7a6af8db44d810c16304b790b7c36a11d039d2c
|
@@ -25,12 +25,36 @@ module DTK::Client
|
|
25
25
|
sc.flag Token.version
|
26
26
|
sc.action do |_global_options, options, args|
|
27
27
|
module_name = args[0]
|
28
|
-
|
28
|
+
version = options[:version]
|
29
|
+
module_ref = module_ref_object_from_options_or_context(:module_ref => module_name, :version => version)
|
30
|
+
|
29
31
|
arg = {
|
30
|
-
:module_ref
|
32
|
+
:module_ref => module_ref,
|
31
33
|
:target_directory => args[1]
|
32
34
|
}
|
33
|
-
Operation::Module.clone_module(arg)
|
35
|
+
repo_dir_info = Operation::Module.clone_module(arg).data
|
36
|
+
repo_dir = repo_dir_info[:target_repo_dir]
|
37
|
+
|
38
|
+
# DTK-3088 - need this to pull service info for dependency module on clone
|
39
|
+
if repo_dir_info[:pull_service_info] && (version.nil? || version.eql?('master'))
|
40
|
+
repo_dir = repo_dir_info[:target_repo_dir]
|
41
|
+
module_ref = module_ref_object_from_options_or_context(:directory_path => repo_dir)
|
42
|
+
|
43
|
+
operation_args = {
|
44
|
+
:module_ref => module_ref,
|
45
|
+
:base_dsl_file_obj => @base_dsl_file_obj,
|
46
|
+
:has_directory_param => true,
|
47
|
+
:directory_path => repo_dir,
|
48
|
+
:update_deps => false,
|
49
|
+
:do_not_print => true,
|
50
|
+
:force => true
|
51
|
+
}
|
52
|
+
|
53
|
+
Operation::Module.pull_dtkn(operation_args)
|
54
|
+
Operation::Module.push(operation_args.merge(:method => "pulled"))
|
55
|
+
end
|
56
|
+
|
57
|
+
OsUtil.print_info("DTK module '#{module_ref.pretty_print}' has been successfully cloned into '#{repo_dir}'")
|
34
58
|
end
|
35
59
|
end
|
36
60
|
end
|
@@ -23,9 +23,10 @@ module DTK::Client
|
|
23
23
|
command_body c, :stage, 'Create a new service instance to refer to staged infrastructure that then can be deployed' do |sc|
|
24
24
|
sc.flag Token.directory_path, :desc => 'Path to module directory where assembly is being staged from; not needed if in the module directory'
|
25
25
|
sc.flag Token.service_name, :desc => 'If specified, name to use for new service instance; otherwise service instance name is auto-generated'
|
26
|
-
sc.flag Token.
|
26
|
+
sc.flag Token.context_service_instance
|
27
27
|
sc.switch Token.force
|
28
|
-
sc.switch Token.
|
28
|
+
sc.switch Token.base
|
29
|
+
#sc.switch Token.target
|
29
30
|
# on useful for testing in dev mode
|
30
31
|
# sc.switch Token.purge, :desc => 'Overwrite any content that presently exists in the service instance directory to be created'
|
31
32
|
# sc.flag Token.version
|
@@ -44,9 +45,9 @@ module DTK::Client
|
|
44
45
|
:assembly_name => assembly_name,
|
45
46
|
:service_name => service_name,
|
46
47
|
:version => version,
|
47
|
-
:
|
48
|
+
:context_service => options[:context_service_instance],
|
48
49
|
:remove_existing => options[:purge],
|
49
|
-
:is_target => options[:
|
50
|
+
:is_target => options[:base],
|
50
51
|
:force => force,
|
51
52
|
:directory_path => directory_path
|
52
53
|
}
|
@@ -24,7 +24,6 @@ module DTK::Client; module CLI
|
|
24
24
|
c.arg Token::Arg.service, :optional => true
|
25
25
|
command_body c, 'link', 'List component links in the service instance.' do |sc|
|
26
26
|
sc.flag Token.directory_path, :desc => 'Absolute or relative path to service instance directory containing updates to pull; not need if in the service instance directory'
|
27
|
-
sc.flag Token.link_name
|
28
27
|
sc.switch Token.unlink
|
29
28
|
|
30
29
|
sc.action do |_global_options, options, _args|
|
@@ -33,6 +32,7 @@ module DTK::Client; module CLI
|
|
33
32
|
service = _args[2]
|
34
33
|
service_instance = service_instance_in_options_or_context(options)
|
35
34
|
link_name = options[:l] unless options[:l].nil?
|
35
|
+
options[:d].nil? ? service_instance_dir = @base_dsl_file_obj.parent_dir : service_instance_dir = options[:d]
|
36
36
|
|
37
37
|
args = {
|
38
38
|
:service_instance => service_instance,
|
@@ -40,7 +40,8 @@ module DTK::Client; module CLI
|
|
40
40
|
:base_component => base_component,
|
41
41
|
:dependent_component => dependent_component,
|
42
42
|
:service => service,
|
43
|
-
:link_name => link_name
|
43
|
+
:link_name => link_name,
|
44
|
+
:service_instance_dir => service_instance_dir
|
44
45
|
}
|
45
46
|
|
46
47
|
Operation::Service.link(args)
|
@@ -21,7 +21,7 @@ module DTK::Client; module CLI
|
|
21
21
|
subcommand_def 'list-components' do |c|
|
22
22
|
command_body c, 'components', 'List components associated with the service instance.' do |sc|
|
23
23
|
sc.flag Token.directory_path, :desc => 'Absolute or relative path to service instance directory containing updates to pull; not need if in the service instance directory'
|
24
|
-
sc.switch Token.dependencies, :desc => 'Show dependencies'
|
24
|
+
#sc.switch Token.dependencies, :desc => 'Show dependencies'
|
25
25
|
|
26
26
|
sc.action do |_global_options, options, _args|
|
27
27
|
service_instance = service_instance_in_options_or_context(options)
|
@@ -22,8 +22,10 @@ module DTK::Client; module CLI
|
|
22
22
|
command_body c, :pull, 'Pulls any updates server made to service instance on to client directory' do |sc|
|
23
23
|
sc.flag Token.directory_path, :desc => 'Absolute or relative path to service instance directory containing updates to pull; not need if in the service instance directory'
|
24
24
|
sc.action do |_global_options, options, _args|
|
25
|
+
options[:d].nil? ? service_instance_dir = @base_dsl_file_obj.parent_dir : service_instance_dir = options[:d]
|
26
|
+
|
25
27
|
service_instance = service_instance_in_options_or_context(options)
|
26
|
-
Operation::Service.pull(:service_instance => service_instance)
|
28
|
+
Operation::Service.pull(:service_instance => service_instance, :service_instance_dir => service_instance_dir)
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
@@ -24,9 +24,12 @@ module DTK::Client; module CLI
|
|
24
24
|
sc.flag Token.commit_message
|
25
25
|
sc.action do |_global_options, options, _args|
|
26
26
|
service_instance = service_instance_in_options_or_context(options)
|
27
|
+
options[:d].nil? ? service_instance_dir = @base_dsl_file_obj.parent_dir : service_instance_dir = options[:d]
|
28
|
+
|
27
29
|
args = {
|
28
30
|
:service_instance => service_instance,
|
29
|
-
:commit_message => options[:commit_message]
|
31
|
+
:commit_message => options[:commit_message],
|
32
|
+
:service_instance_dir => service_instance_dir
|
30
33
|
}
|
31
34
|
Operation::Service.commit_and_push(args)
|
32
35
|
end
|
@@ -30,11 +30,14 @@ module DTK::Client; module CLI
|
|
30
30
|
|
31
31
|
attribute_name = _args[0]
|
32
32
|
options[:u] ? attribute_value = nil : attribute_value = _args[1]
|
33
|
-
|
33
|
+
|
34
|
+
options[:d].nil? ? service_instance_dir = @base_dsl_file_obj.parent_dir : service_instance_dir = options[:d]
|
35
|
+
|
34
36
|
args = {
|
35
37
|
:attribute_name => attribute_name,
|
36
38
|
:service_instance => service_instance,
|
37
|
-
:attribute_value => attribute_value
|
39
|
+
:attribute_value => attribute_value,
|
40
|
+
:service_instance_dir => @base_dsl_file_obj.parent_dir
|
38
41
|
}
|
39
42
|
|
40
43
|
Operation::Service.set_attribute(args)
|
@@ -19,8 +19,8 @@ module DTK::Client
|
|
19
19
|
module CLI::Command
|
20
20
|
module Service
|
21
21
|
subcommand_def 'set-default-target' do |c|
|
22
|
-
c.arg Token::Arg.
|
23
|
-
command_body c, 'set-default-
|
22
|
+
c.arg Token::Arg.service_name
|
23
|
+
command_body c, 'set-default-context', 'Create a new service instance to refer to staged infrastructure that then can be deployed' do |sc|
|
24
24
|
sc.action do |_global_options, options, args|
|
25
25
|
Operation::Service.set_default_target(:service_instance => args[0])
|
26
26
|
end
|
data/lib/cli/command/token.rb
CHANGED
@@ -34,7 +34,8 @@ module DTK::Client
|
|
34
34
|
# Flag constructor args order: key, arg_name, desc, opts={}
|
35
35
|
:commit_message => Flag.new(:m, 'COMMIT-MSG', 'Commit message'),
|
36
36
|
:directory_path => Flag.new(:d, 'DIRECTORY-PATH', 'Directory path'),
|
37
|
-
:parent_service_instance => Flag.new(:parent, 'PARENT', 'Parent service instance; if not
|
37
|
+
:parent_service_instance => Flag.new(:parent, 'PARENT', 'Parent service instance; if not specified, the default context service instance serves as parent'),
|
38
|
+
:context_service_instance => Flag.new(:context, 'CONTEXT' ,'Context service instance; if not specified, the default service instance serves as context'),
|
38
39
|
:module_ref => Flag.new(:m, ModuleRef::NamespaceModuleName.legal_form, 'Module name with namespace; not needed if command is executed from within the module directory'),
|
39
40
|
:relative_path => Flag.new(:f, 'RELATIVE-FILE-PATH', 'Relative file path'),
|
40
41
|
:service_instance => Flag.new(:s, 'SERVICE-INSTANCE', 'Service instance name'),
|
@@ -54,6 +55,7 @@ module DTK::Client
|
|
54
55
|
# switches
|
55
56
|
# Switch constructor args order: key, desc, opts={}
|
56
57
|
:all => Switch.new(:all, 'All'),
|
58
|
+
:base => Switch.new(:base, 'Create base service instance'),
|
57
59
|
:delete => Switch.new(:delete, 'Delete'),
|
58
60
|
:force => Switch.new([:f, :force], 'Force'),
|
59
61
|
:purge => Switch.new(:purge, 'Purge'),
|
@@ -85,7 +87,8 @@ module DTK::Client
|
|
85
87
|
:format => 'FORMAT',
|
86
88
|
:base_cmp => 'BASE-COMPONENT',
|
87
89
|
:deps_on_cmp => 'DEPENDS-ON-COMPONENT',
|
88
|
-
:service => 'SERVICE'
|
90
|
+
:service => 'SERVICE',
|
91
|
+
:service_name => 'SERVICE-NAME'
|
89
92
|
}
|
90
93
|
|
91
94
|
end
|
data/lib/cli/version.rb
CHANGED
@@ -19,8 +19,15 @@ module DTK::Client
|
|
19
19
|
class LoadSource
|
20
20
|
class ComponentInfo < self
|
21
21
|
def fetch_and_cache_info
|
22
|
+
updated = false
|
22
23
|
fetch_remote
|
23
|
-
|
24
|
+
|
25
|
+
if merge_from_remote
|
26
|
+
transform_from_component_info
|
27
|
+
updated = true
|
28
|
+
end
|
29
|
+
|
30
|
+
updated
|
24
31
|
end
|
25
32
|
|
26
33
|
def fetch_info
|
data/lib/client/load_source.rb
CHANGED
@@ -48,10 +48,10 @@ module DTK::Client
|
|
48
48
|
|
49
49
|
if component_info = remote_module_info.data(:component_info)
|
50
50
|
begin
|
51
|
-
ComponentInfo.fetch_and_cache_info(transform_helper, component_info['remote_repo_url'], parent, force, use_theirs)
|
51
|
+
updated = ComponentInfo.fetch_and_cache_info(transform_helper, component_info['remote_repo_url'], parent, force, use_theirs)
|
52
52
|
info_types_processed << ComponentInfo.info_type
|
53
53
|
|
54
|
-
if parent.is_a?(Operation::Module::PullDtkn)
|
54
|
+
if parent.is_a?(Operation::Module::PullDtkn) && updated
|
55
55
|
stage_and_commit(target_repo_dir, commit_msg([ComponentInfo.info_type]))
|
56
56
|
delete_diffs(target_repo_dir)
|
57
57
|
end
|
@@ -85,7 +85,8 @@ module DTK::Client
|
|
85
85
|
service_instance = args.required(:service_instance)
|
86
86
|
commit_message = args[:commit_message]
|
87
87
|
|
88
|
-
repo_dir = ret_base_path(:service, service_instance)
|
88
|
+
#repo_dir = ret_base_path(:service, service_instance)
|
89
|
+
repo_dir = args[:service_instance_dir] || ret_base_path(:service, service_instance)
|
89
90
|
repo = git_repo.new(repo_dir, :branch => branch)
|
90
91
|
repo.stage_and_commit
|
91
92
|
# TODO: want to switch over to using Dtk_Server::GIT_REMOTE rather than 'origin'
|
@@ -205,8 +206,9 @@ module DTK::Client
|
|
205
206
|
repo_url = args.required(:repo_url)
|
206
207
|
remote_branch = args.required(:branch)
|
207
208
|
service_instance = args.required(:service_instance)
|
208
|
-
|
209
|
-
repo_dir = ret_base_path(:service, service_instance)
|
209
|
+
|
210
|
+
#repo_dir = ret_base_path(:service, service_instance)
|
211
|
+
repo_dir = args[:service_instance_dir] || ret_base_path(:service, service_instance)
|
210
212
|
repo = git_repo.new(repo_dir, :branch => remote_branch)
|
211
213
|
|
212
214
|
repo.pull(repo.remotes.first, remote_branch)
|
@@ -62,7 +62,13 @@ module DTK::Client
|
|
62
62
|
LoadSource.fetch_from_remote(module_info, self)
|
63
63
|
end
|
64
64
|
|
65
|
-
OsUtil.print_info("DTK module '#{@module_ref.pretty_print}' has been successfully cloned into '#{ret.required(:target_repo_dir)}'")
|
65
|
+
# OsUtil.print_info("DTK module '#{@module_ref.pretty_print}' has been successfully cloned into '#{ret.required(:target_repo_dir)}'")
|
66
|
+
target_repo_dir = ret.required(:target_repo_dir)
|
67
|
+
pull_service_info = check_if_pull_needed
|
68
|
+
{
|
69
|
+
target_repo_dir: target_repo_dir,
|
70
|
+
pull_service_info: pull_service_info
|
71
|
+
}
|
66
72
|
end
|
67
73
|
|
68
74
|
def version
|
@@ -79,6 +85,19 @@ module DTK::Client
|
|
79
85
|
self.class.module_ref_post_body(@module_ref)
|
80
86
|
end
|
81
87
|
|
88
|
+
def check_if_pull_needed
|
89
|
+
query_string_hash = QueryStringHash.new(
|
90
|
+
:module_name => @module_ref.module_name,
|
91
|
+
:namespace => @module_ref.namespace,
|
92
|
+
:rsa_pub_key => SSHUtil.rsa_pub_key_content,
|
93
|
+
:version => version||'master'
|
94
|
+
)
|
95
|
+
remote_module_info = rest_get "#{BaseRoute}/remote_module_info", query_string_hash
|
96
|
+
if remote_module_info.data(:service_info)
|
97
|
+
!module_version_exists?(@module_ref, :type => :service_module)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
82
101
|
end
|
83
102
|
end
|
84
103
|
end
|
@@ -18,15 +18,16 @@
|
|
18
18
|
module DTK::Client; class Operation::Module
|
19
19
|
class Install::DependentModules::ComponentDependencyTree
|
20
20
|
class ResolveModules
|
21
|
-
def initialize(parent)
|
21
|
+
def initialize(parent, opts = {})
|
22
22
|
@print_helper = parent.print_helper
|
23
23
|
@base_module_ref = parent.module_ref
|
24
24
|
@cache = parent.cache
|
25
|
+
@opts = opts
|
25
26
|
end
|
26
27
|
private :initialize
|
27
28
|
|
28
|
-
def self.resolve_conflicts(parent)
|
29
|
-
new(parent).resolve_conflicts
|
29
|
+
def self.resolve_conflicts(parent, opts = {})
|
30
|
+
new(parent, opts).resolve_conflicts
|
30
31
|
end
|
31
32
|
def resolve_conflicts
|
32
33
|
# TODO: change this simplistic method which does not take into accunt the nested structure.
|
@@ -46,7 +47,7 @@ module DTK::Client; class Operation::Module
|
|
46
47
|
|
47
48
|
def process_when_base_module(module_ref)
|
48
49
|
if @base_module_ref.exact_match?(module_ref)
|
49
|
-
@print_helper.print_warning("Removing dependency '#{module_ref.pretty_print}' that referred to base module")
|
50
|
+
@print_helper.print_warning("Removing dependency '#{module_ref.pretty_print}' that referred to base module") unless @opts[:do_not_print]
|
50
51
|
else
|
51
52
|
@print_helper.print_warning("Removing conflicting dependency '#{module_ref.pretty_print}' that referred to base module '#{@base_module_ref.pretty_print}'")
|
52
53
|
end
|
@@ -53,10 +53,10 @@ module DTK::Client; class Operation::Module
|
|
53
53
|
end
|
54
54
|
|
55
55
|
# resolves conflicts and returns an array of unified module_refs
|
56
|
-
def resolve_conflicts_and_versions
|
56
|
+
def resolve_conflicts_and_versions(opts = {})
|
57
57
|
# TODO: currently module refs al nailed as opposed to version contraints; when there are
|
58
58
|
# version contraints; this methdo will take care of them
|
59
|
-
ResolveModules.resolve_conflicts(self)
|
59
|
+
ResolveModules.resolve_conflicts(self, opts)
|
60
60
|
end
|
61
61
|
|
62
62
|
attr_reader :module_ref, :cache
|
@@ -136,7 +136,7 @@ module DTK::Client
|
|
136
136
|
def get_unified_dependent_module_refs
|
137
137
|
component_dependency_tree = ComponentDependencyTree.create(@base_module_ref, @component_module_refs, @print_helper)
|
138
138
|
# returns an array of module_refs that have been unified so only one version and namespace per module name
|
139
|
-
component_dependency_tree.resolve_conflicts_and_versions
|
139
|
+
component_dependency_tree.resolve_conflicts_and_versions(@opts)
|
140
140
|
end
|
141
141
|
|
142
142
|
def get_local_modules_info
|
@@ -44,6 +44,7 @@ module DTK::Client
|
|
44
44
|
skip_prompt = args[:skip_prompt]
|
45
45
|
force = args[:force]
|
46
46
|
update_deps = args[:update_deps]
|
47
|
+
do_not_print = args[:do_not_print]
|
47
48
|
|
48
49
|
case update_deps
|
49
50
|
when "prompt"
|
@@ -58,7 +59,7 @@ module DTK::Client
|
|
58
59
|
file_obj = base_dsl_file_obj.raise_error_if_no_content
|
59
60
|
end
|
60
61
|
|
61
|
-
new('dtkn', module_ref, directory_path, version, file_obj).pull_dtkn(:update_deps => update_deps, :no_update_deps => no_update_deps, :force => force)
|
62
|
+
new('dtkn', module_ref, directory_path, version, file_obj).pull_dtkn(:update_deps => update_deps, :no_update_deps => no_update_deps, :force => force, :do_not_print => do_not_print)
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
@@ -86,7 +87,7 @@ module DTK::Client
|
|
86
87
|
|
87
88
|
unless dependent_modules.empty?
|
88
89
|
begin
|
89
|
-
Install::DependentModules.install(@module_ref, dependent_modules, :update_deps => opts[:update_deps], :no_update_deps => opts[:no_update_deps] , :mode => 'pull')
|
90
|
+
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])
|
90
91
|
# Install::DependentModules.install(@module_ref, dependent_modules, :skip_prompt => false, :mode => 'pull')
|
91
92
|
rescue Install::TerminateInstall
|
92
93
|
@print_helper.print_terminated_pulling
|
@@ -94,7 +95,7 @@ module DTK::Client
|
|
94
95
|
end
|
95
96
|
end
|
96
97
|
|
97
|
-
@print_helper.print_continuation_pulling_base_module
|
98
|
+
@print_helper.print_continuation_pulling_base_module unless opts[:do_not_print]
|
98
99
|
LoadSource.fetch_transform_and_merge(remote_module_info, self, :stage_and_commit_steps => true, :force => opts[:force], :use_theirs => true)
|
99
100
|
|
100
101
|
nil
|
@@ -73,14 +73,17 @@ module DTK::Client
|
|
73
73
|
end
|
74
74
|
|
75
75
|
diffs = response.data(:diffs)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
76
|
+
unless args[:do_not_print]
|
77
|
+
if diffs && !diffs.empty?
|
78
|
+
print = process_semantic_diffs(diffs, method)
|
79
|
+
else
|
80
|
+
print = process_semantic_diffs(existing_diffs, method)
|
81
|
+
end
|
82
|
+
|
83
|
+
# if diffs is nil then indicate no diffs, otherwise render diffs in yaml
|
84
|
+
OsUtil.print_info("No Diffs to be #{method}.") if response.data(:diffs).nil? || !print
|
80
85
|
end
|
81
86
|
|
82
|
-
# if diffs is nil then indicate no diffs, otherwise render diffs in yaml
|
83
|
-
OsUtil.print_info("No Diffs to be #{method}.") if response.data(:diffs).nil? || !print
|
84
87
|
nil
|
85
88
|
end
|
86
89
|
end
|
@@ -58,6 +58,8 @@ module DTK::Client; class Operation::Module
|
|
58
58
|
args = [transform_helper, ServiceInfo.info_type, service_info['remote_repo_url'], parent]
|
59
59
|
service_file_path__content_array.each { |file| Operation::ClientModuleDir.create_file_with_content("#{service_file_path(target_repo_dir, file, *args)}", file[:content]) }
|
60
60
|
|
61
|
+
delete_assemblies?(service_file_path__content_array, target_repo_dir)
|
62
|
+
|
61
63
|
commit_and_push_to_remote(repo, target_repo_dir, "master", "dtkn")
|
62
64
|
end
|
63
65
|
end
|
@@ -173,6 +175,14 @@ module DTK::Client; class Operation::Module
|
|
173
175
|
msg
|
174
176
|
end
|
175
177
|
|
178
|
+
def self.delete_assemblies?(service_file_path__content_array, target_repo_dir)
|
179
|
+
assembly_regex = Regexp.new("\.dtk\.assembly\.(yml|yaml)$")
|
180
|
+
assemblies = Dir.entries("#{target_repo_dir}/assemblies/").select { |file| file.match(assembly_regex) }
|
181
|
+
current_assemblies = assemblies.map { |assembly| "assemblies/#{assembly}" }
|
182
|
+
to_delete = current_assemblies - service_file_path__content_array.map { |file| file[:path] }
|
183
|
+
to_delete.each { |file| Operation::ClientModuleDir.rm_f("#{target_repo_dir}/#{file}") }
|
184
|
+
end
|
185
|
+
|
176
186
|
def self.git_repo_operation
|
177
187
|
Operation::ClientModuleDir::GitRepo
|
178
188
|
end
|
@@ -31,7 +31,7 @@ module DTK::Client
|
|
31
31
|
:module_name => module_ref.module_name,
|
32
32
|
:assembly_name? => args.required(:assembly_name),
|
33
33
|
:version? => args[:version],
|
34
|
-
:target_service? => args[:
|
34
|
+
:target_service? => args[:context_service],
|
35
35
|
:is_target? => args[:is_target]
|
36
36
|
)
|
37
37
|
|
@@ -22,14 +22,15 @@ module DTK::Client
|
|
22
22
|
def self.execute(args = Args.new)
|
23
23
|
wrap_operation(args) do |args|
|
24
24
|
service_instance = args.required(:service_instance)
|
25
|
-
|
25
|
+
|
26
26
|
response = rest_get("#{BaseRoute}/#{service_instance}/repo_info")
|
27
27
|
|
28
28
|
repo_info_args = Args.new(
|
29
29
|
:service_instance => service_instance,
|
30
30
|
:commit_message => args[:commit_message] || default_commit_message(service_instance),
|
31
31
|
:branch => response.required(:branch, :name),
|
32
|
-
:repo_url => response.required(:repo, :url)
|
32
|
+
:repo_url => response.required(:repo, :url),
|
33
|
+
:service_instance_dir => args[:service_instance_dir]
|
33
34
|
)
|
34
35
|
|
35
36
|
response = ClientModuleDir::GitRepo.commit_and_push_to_service_repo(repo_info_args)
|
@@ -40,7 +40,8 @@ module DTK::Client
|
|
40
40
|
repo_info_args = Args.new(
|
41
41
|
:service_instance => service_instance,
|
42
42
|
:branch => response.required(:branch, :name),
|
43
|
-
:repo_url => response.required(:repo, :url)
|
43
|
+
:repo_url => response.required(:repo, :url),
|
44
|
+
:service_instance_dir => args[:service_instance_dir]
|
44
45
|
)
|
45
46
|
ClientModuleDir::GitRepo.pull_from_service_repo(repo_info_args)
|
46
47
|
nil
|
@@ -26,7 +26,8 @@ module DTK::Client
|
|
26
26
|
pull_args = {
|
27
27
|
:service_instance => service_instance,
|
28
28
|
:repo_url => response.required(:repo, :url),
|
29
|
-
:branch => response.required(:branch, :name)
|
29
|
+
:branch => response.required(:branch, :name),
|
30
|
+
:service_instance_dir => args[:service_instance_dir]
|
30
31
|
}
|
31
32
|
ClientModuleDir::GitRepo.pull_from_service_repo(pull_args)
|
32
33
|
end
|
@@ -23,7 +23,7 @@ module DTK::Client
|
|
23
23
|
service_instance = args.required(:service_instance)
|
24
24
|
attribute_name = args[:attribute_name]
|
25
25
|
attribute_value = args[:attribute_value]
|
26
|
-
|
26
|
+
|
27
27
|
query_string_hash = QueryStringHash.new(
|
28
28
|
:pattern? => attribute_name,
|
29
29
|
:value? => attribute_value
|
@@ -34,9 +34,10 @@ module DTK::Client
|
|
34
34
|
repo_info_args = Args.new(
|
35
35
|
:service_instance => service_instance,
|
36
36
|
:branch => response.required(:branch, :name),
|
37
|
-
:repo_url => response.required(:repo, :url)
|
37
|
+
:repo_url => response.required(:repo, :url),
|
38
|
+
:service_instance_dir => args[:service_instance_dir]
|
38
39
|
)
|
39
|
-
|
40
|
+
|
40
41
|
ClientModuleDir::GitRepo.pull_from_service_repo(repo_info_args)
|
41
42
|
end
|
42
43
|
nil
|
@@ -88,7 +88,7 @@ pp info_hash
|
|
88
88
|
end
|
89
89
|
|
90
90
|
unless remote_user ||= node_info[:default_login_user]
|
91
|
-
raise Error::Usage, "
|
91
|
+
raise Error::Usage, "A default Linux login user could not be computed. Retry the command with a specified login using the '-u LINUX-USER' option."
|
92
92
|
end
|
93
93
|
|
94
94
|
connection_string = "#{remote_user}@#{dns_address}"
|
@@ -27,13 +27,20 @@ module DTK::Client
|
|
27
27
|
response = rest_call(opts)
|
28
28
|
return response unless response.ok?
|
29
29
|
|
30
|
-
#
|
30
|
+
# TODO: clean this up
|
31
|
+
# stop polling when top level task succeeds, fails or timeout
|
31
32
|
if response and response.data and response.data.first
|
33
|
+
if debug_mode?(response)
|
34
|
+
response.print_error_table!(true)
|
35
|
+
add_info_if_debug_mode!(response)
|
36
|
+
return response
|
37
|
+
end
|
38
|
+
|
32
39
|
top_task_failed = response.data.first['status'].eql?('failed')
|
33
|
-
is_pending
|
34
|
-
is_executing
|
35
|
-
is_failed
|
36
|
-
is_cancelled
|
40
|
+
is_pending = (response.data.select {|r|r['status'].nil? }).size > 0
|
41
|
+
is_executing = (response.data.select {|r|r['status'].eql? 'executing'}).size > 0
|
42
|
+
is_failed = (response.data.select {|r|r['status'].eql? 'failed'}).size > 0
|
43
|
+
is_cancelled = response.data.first['status'].eql?('cancelled')
|
37
44
|
|
38
45
|
is_cancelled = true if top_task_failed
|
39
46
|
|
@@ -31,24 +31,21 @@ module DTK::Client
|
|
31
31
|
wrap_operation(args) do |args|
|
32
32
|
service_instance = args.required(:service_instance)
|
33
33
|
task_status_mode = args[:mode]
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
response = rest_call(service_instance)
|
39
|
-
response.print_error_table!(true)
|
40
|
-
response.set_render_as_table!
|
41
|
-
end
|
34
|
+
info = nil
|
35
|
+
|
36
|
+
task_status_mode ||= DEFAULT_MODE
|
37
|
+
task_status_with_mode(task_status_mode.to_sym, service_instance)
|
42
38
|
end
|
43
39
|
end
|
44
40
|
|
45
41
|
def rest_call(opts = {})
|
46
42
|
self.class.rest_call(@service_instance, opts)
|
47
43
|
end
|
48
|
-
|
44
|
+
|
49
45
|
private
|
50
46
|
|
51
|
-
|
47
|
+
DEFAULT_MODE = :snapshot
|
48
|
+
LEGAL_MODES = [:refresh, :snapshot, :stream]
|
52
49
|
def self.task_status_with_mode(mode, service_instance, opts = {})
|
53
50
|
case mode
|
54
51
|
when :refresh
|
@@ -74,6 +71,24 @@ module DTK::Client
|
|
74
71
|
)
|
75
72
|
end
|
76
73
|
|
74
|
+
def add_info_if_debug_mode!(response)
|
75
|
+
debug_info_rows = debug_mode_rows(response).select { |row| (row['info'] || {})['message'] }
|
76
|
+
if debug_info_rows.size > 0
|
77
|
+
info_message = debug_info_rows.last['info']['message']
|
78
|
+
response.set_render_as_table!(nil, info_message)
|
79
|
+
else
|
80
|
+
response.set_render_as_table!
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def debug_mode?(response)
|
85
|
+
debug_mode_rows(response).size > 0
|
86
|
+
end
|
87
|
+
|
88
|
+
def debug_mode_rows(response)
|
89
|
+
response['data'].select { |data_row| data_row['status'] == 'debugging' }
|
90
|
+
end
|
91
|
+
|
77
92
|
end
|
78
93
|
end
|
79
94
|
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.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reactor8
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dtk-common-core
|