dtk-shell 0.10.0
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 +7 -0
- data/Gemfile +5 -0
- data/Gemfile_dev +13 -0
- data/README.md +121 -0
- data/bin/dtk-execute +32 -0
- data/bin/dtk-run +92 -0
- data/bin/dtk-shell +31 -0
- data/dtk-shell.gemspec +50 -0
- data/lib/auxiliary.rb +61 -0
- data/lib/bundler_monkey_patch.rb +26 -0
- data/lib/client.rb +58 -0
- data/lib/command_helper.rb +33 -0
- data/lib/command_helpers/git_repo.rb +589 -0
- data/lib/command_helpers/git_repo/merge.rb +153 -0
- data/lib/command_helpers/jenkins_client.rb +106 -0
- data/lib/command_helpers/jenkins_client/config_xml.rb +288 -0
- data/lib/command_helpers/service_importer.rb +251 -0
- data/lib/command_helpers/service_link.rb +33 -0
- data/lib/command_helpers/test_module_creator.rb +69 -0
- data/lib/command_helpers/test_module_templates/dtk.model.yaml.eruby +10 -0
- data/lib/command_helpers/test_module_templates/spec_helper.rb.eruby +10 -0
- data/lib/command_helpers/test_module_templates/temp_component_spec.rb.eruby +5 -0
- data/lib/commands.rb +57 -0
- data/lib/commands/common/thor/access_control.rb +133 -0
- data/lib/commands/common/thor/action_result_handler.rb +74 -0
- data/lib/commands/common/thor/assembly_template.rb +92 -0
- data/lib/commands/common/thor/assembly_workspace.rb +1801 -0
- data/lib/commands/common/thor/base_command_helper.rb +59 -0
- data/lib/commands/common/thor/clone.rb +82 -0
- data/lib/commands/common/thor/common.rb +88 -0
- data/lib/commands/common/thor/common_base.rb +49 -0
- data/lib/commands/common/thor/create_target.rb +70 -0
- data/lib/commands/common/thor/edit.rb +255 -0
- data/lib/commands/common/thor/inventory_parser.rb +98 -0
- data/lib/commands/common/thor/list_diffs.rb +128 -0
- data/lib/commands/common/thor/module.rb +1011 -0
- data/lib/commands/common/thor/module/import.rb +210 -0
- data/lib/commands/common/thor/node.rb +53 -0
- data/lib/commands/common/thor/poller.rb +65 -0
- data/lib/commands/common/thor/pull_clone_changes.rb +28 -0
- data/lib/commands/common/thor/pull_from_remote.rb +152 -0
- data/lib/commands/common/thor/puppet_forge.rb +72 -0
- data/lib/commands/common/thor/purge_clone.rb +101 -0
- data/lib/commands/common/thor/push_clone_changes.rb +162 -0
- data/lib/commands/common/thor/push_to_remote.rb +94 -0
- data/lib/commands/common/thor/remotes.rb +71 -0
- data/lib/commands/common/thor/reparse.rb +40 -0
- data/lib/commands/common/thor/set_required_attributes.rb +46 -0
- data/lib/commands/thor/account.rb +239 -0
- data/lib/commands/thor/assembly.rb +356 -0
- data/lib/commands/thor/attribute.rb +79 -0
- data/lib/commands/thor/component.rb +70 -0
- data/lib/commands/thor/component_module.rb +501 -0
- data/lib/commands/thor/component_template.rb +174 -0
- data/lib/commands/thor/dependency.rb +34 -0
- data/lib/commands/thor/developer.rb +144 -0
- data/lib/commands/thor/dtk.rb +152 -0
- data/lib/commands/thor/library.rb +125 -0
- data/lib/commands/thor/node.rb +504 -0
- data/lib/commands/thor/node_template.rb +94 -0
- data/lib/commands/thor/project.rb +34 -0
- data/lib/commands/thor/provider.rb +233 -0
- data/lib/commands/thor/remotes.rb +49 -0
- data/lib/commands/thor/service.rb +941 -0
- data/lib/commands/thor/service_module.rb +914 -0
- data/lib/commands/thor/state_change.rb +25 -0
- data/lib/commands/thor/target.rb +250 -0
- data/lib/commands/thor/task.rb +116 -0
- data/lib/commands/thor/test_module.rb +310 -0
- data/lib/commands/thor/utils.rb +21 -0
- data/lib/commands/thor/workspace.rb +685 -0
- data/lib/config/cacert.pem +3785 -0
- data/lib/config/client.conf.header +20 -0
- data/lib/config/configuration.rb +99 -0
- data/lib/config/default.conf +16 -0
- data/lib/config/disk_cacher.rb +80 -0
- data/lib/configurator.rb +176 -0
- data/lib/context_router.rb +44 -0
- data/lib/core.rb +497 -0
- data/lib/domain/git_adapter.rb +412 -0
- data/lib/domain/git_error_handler.rb +64 -0
- data/lib/domain/response.rb +285 -0
- data/lib/domain/response/error_handler.rb +86 -0
- data/lib/dtk-shell/version.rb +20 -0
- data/lib/dtk_constants.rb +40 -0
- data/lib/dtk_error.rb +114 -0
- data/lib/dtk_logger.rb +126 -0
- data/lib/dtk_shell.rb +31 -0
- data/lib/error.rb +85 -0
- data/lib/execute.rb +29 -0
- data/lib/execute/cli_pure/cli_rerouter.rb +102 -0
- data/lib/execute/command.rb +40 -0
- data/lib/execute/command/api_call.rb +60 -0
- data/lib/execute/command/api_call/map.rb +60 -0
- data/lib/execute/command/api_call/service.rb +91 -0
- data/lib/execute/command/api_call/translation_term.rb +119 -0
- data/lib/execute/command/rest_call.rb +37 -0
- data/lib/execute/command_processor.rb +30 -0
- data/lib/execute/command_processor/rest_call.rb +59 -0
- data/lib/execute/error_usage.rb +21 -0
- data/lib/execute/execute_context.rb +86 -0
- data/lib/execute/execute_context/result_store.rb +37 -0
- data/lib/execute/script.rb +64 -0
- data/lib/execute/script/add_tenant.rb +121 -0
- data/lib/git-logs/git.log +0 -0
- data/lib/parser/adapters/option_parser.rb +70 -0
- data/lib/parser/adapters/thor.rb +555 -0
- data/lib/parser/adapters/thor/common_option_defs.rb +40 -0
- data/lib/require_first.rb +104 -0
- data/lib/search_hash.rb +44 -0
- data/lib/shell.rb +261 -0
- data/lib/shell/context.rb +1065 -0
- data/lib/shell/context_aux.rb +46 -0
- data/lib/shell/domain/active_context.rb +186 -0
- data/lib/shell/domain/context_entity.rb +89 -0
- data/lib/shell/domain/context_params.rb +223 -0
- data/lib/shell/domain/override_tasks.rb +88 -0
- data/lib/shell/domain/shadow_entity.rb +76 -0
- data/lib/shell/header_shell.rb +44 -0
- data/lib/shell/help_monkey_patch.rb +283 -0
- data/lib/shell/interactive_wizard.rb +225 -0
- data/lib/shell/message_queue.rb +63 -0
- data/lib/shell/parse_monkey_patch.rb +39 -0
- data/lib/shell/status_monitor.rb +124 -0
- data/lib/task_status.rb +83 -0
- data/lib/task_status/refresh_mode.rb +77 -0
- data/lib/task_status/snapshot_mode.rb +28 -0
- data/lib/task_status/stream_mode.rb +48 -0
- data/lib/task_status/stream_mode/element.rb +101 -0
- data/lib/task_status/stream_mode/element/format.rb +101 -0
- data/lib/task_status/stream_mode/element/hierarchical_task.rb +100 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/result.rb +72 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/result/action.rb +93 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/result/components.rb +26 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/result/node_level.rb +26 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/steps.rb +34 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/steps/action.rb +53 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/steps/components.rb +53 -0
- data/lib/task_status/stream_mode/element/hierarchical_task/steps/node_level.rb +42 -0
- data/lib/task_status/stream_mode/element/no_results.rb +26 -0
- data/lib/task_status/stream_mode/element/render.rb +59 -0
- data/lib/task_status/stream_mode/element/stage.rb +84 -0
- data/lib/task_status/stream_mode/element/stage/render.rb +76 -0
- data/lib/task_status/stream_mode/element/task_end.rb +35 -0
- data/lib/task_status/stream_mode/element/task_start.rb +37 -0
- data/lib/util/common_util.rb +37 -0
- data/lib/util/console.rb +235 -0
- data/lib/util/dtk_puppet.rb +65 -0
- data/lib/util/module_util.rb +66 -0
- data/lib/util/os_util.rb +385 -0
- data/lib/util/permission_util.rb +31 -0
- data/lib/util/remote_dependency_util.rb +84 -0
- data/lib/util/ssh_util.rb +94 -0
- data/lib/view_processor.rb +129 -0
- data/lib/view_processor/augmented_simple_list.rb +44 -0
- data/lib/view_processor/hash_pretty_print.rb +123 -0
- data/lib/view_processor/simple_list.rb +156 -0
- data/lib/view_processor/table_print.rb +309 -0
- data/lib/violation.rb +86 -0
- data/lib/violation/attribute.rb +76 -0
- data/lib/violation/fix.rb +26 -0
- data/lib/violation/fix/result.rb +73 -0
- data/lib/violation/fix/result/error.rb +34 -0
- data/lib/violation/fix/set_attribute.rb +41 -0
- data/lib/violation/sub_classes.rb +60 -0
- data/puppet/manifests/init.pp +72 -0
- data/puppet/manifests/params.pp +16 -0
- data/puppet/r8meta.puppet.yml +35 -0
- data/puppet/templates/bash_profile.erb +2 -0
- data/puppet/templates/client.conf.erb +1 -0
- data/puppet/templates/dtkclient.erb +2 -0
- data/spec/component_module_spec.rb +34 -0
- data/spec/dependency_spec.rb +6 -0
- data/spec/dtk_shell_spec.rb +13 -0
- data/spec/dtk_spec.rb +33 -0
- data/spec/lib/spec_helper.rb +10 -0
- data/spec/lib/spec_thor.rb +108 -0
- data/spec/node_template_spec.rb +24 -0
- data/spec/project_spec.rb +6 -0
- data/spec/repo_spec.rb +7 -0
- data/spec/response_spec.rb +52 -0
- data/spec/service_module_spec.rb +38 -0
- data/spec/service_spec.rb +50 -0
- data/spec/state_change_spec.rb +7 -0
- data/spec/table_print_spec.rb +48 -0
- data/spec/target_spec.rb +57 -0
- data/spec/task_spec.rb +28 -0
- data/views/assembly/augmented_simple_list.rb +12 -0
- data/views/assembly_template/augmented_simple_list.rb +12 -0
- data/views/list_task/augmented_simple_list.rb +12 -0
- metadata +421 -0
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
|
|
19
|
+
module DTK::Client
|
|
20
|
+
class Attribute < CommandBaseThor
|
|
21
|
+
|
|
22
|
+
no_tasks do
|
|
23
|
+
|
|
24
|
+
def self.assembly_validation_list(context_params)
|
|
25
|
+
assembly_or_worspace_id, node_id, component_id = context_params.retrieve_arguments([[:service_id!, :workspace_id!], :node_id!, :component_id!])
|
|
26
|
+
|
|
27
|
+
post_body = {
|
|
28
|
+
:assembly_id => assembly_or_worspace_id,
|
|
29
|
+
:node_id => node_id,
|
|
30
|
+
:component_id => component_id,
|
|
31
|
+
:subtype => 'instance',
|
|
32
|
+
:about => 'attributes',
|
|
33
|
+
:filter => nil
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
response = get_cached_response(:service_node_component_attribute, "assembly/info_about", post_body)
|
|
37
|
+
modified_response = response.clone_me()
|
|
38
|
+
|
|
39
|
+
modified_response['data'].each { |e| e['display_name'] = e['display_name'].split('/').last }
|
|
40
|
+
|
|
41
|
+
return modified_response
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def self.module_validation_list(context_params)
|
|
45
|
+
component_module_id = context_params.retrieve_arguments([:module_id!])
|
|
46
|
+
|
|
47
|
+
post_body = {
|
|
48
|
+
:component_module_id => component_module_id,
|
|
49
|
+
:about => :attributes
|
|
50
|
+
}
|
|
51
|
+
response = post rest_url("component_module/info_about"), post_body
|
|
52
|
+
|
|
53
|
+
modified_response = response.clone_me()
|
|
54
|
+
modified_response['data'].each { |e| e['display_name'] = e['display_name'].split('/').last }
|
|
55
|
+
#modified_response['data'].each { |e| e['display_name'] = e['display_name'].match(/.+\[.+::(.*)\]/)[1] }
|
|
56
|
+
|
|
57
|
+
return modified_response
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def self.validation_list(context_params)
|
|
63
|
+
command_name = context_params.root_command_name
|
|
64
|
+
|
|
65
|
+
case command_name
|
|
66
|
+
when 'service'
|
|
67
|
+
return assembly_validation_list(context_params)
|
|
68
|
+
when 'workspace'
|
|
69
|
+
return assembly_validation_list(context_params)
|
|
70
|
+
when 'module'
|
|
71
|
+
return module_validation_list(context_params)
|
|
72
|
+
else
|
|
73
|
+
raise DTK::Client::DtkError,"Attribute 'validation_list' not supported for #{command_name}, implementation nedeed."
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
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 Component < CommandBaseThor
|
|
20
|
+
|
|
21
|
+
def self.valid_children()
|
|
22
|
+
# [:attribute]
|
|
23
|
+
[]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def self.valid_child?(name_of_sub_context)
|
|
27
|
+
return Component.valid_children().include?(name_of_sub_context.to_sym)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def self.validation_list(context_params)
|
|
31
|
+
if context_params.is_there_identifier?("component-module")
|
|
32
|
+
component_module_id = context_params.retrieve_arguments([:component_module_id!])
|
|
33
|
+
res = get_cached_response(:component_template, "component_module/info_about", { :component_module_id => component_module_id, :about => :components})
|
|
34
|
+
else
|
|
35
|
+
assembly_or_worspace_id, node_id, node_name = context_params.retrieve_arguments([[:service_id, :workspace_id], :node_id!, :node_name!])
|
|
36
|
+
|
|
37
|
+
post_body = {
|
|
38
|
+
:assembly_id => assembly_or_worspace_id,
|
|
39
|
+
:node_id => node_id,
|
|
40
|
+
:subtype => 'instance',
|
|
41
|
+
:about => 'components',
|
|
42
|
+
:filter => nil
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if assembly_or_worspace_id
|
|
46
|
+
response = get_cached_response(:service_node_component, "assembly/info_about", post_body)
|
|
47
|
+
else
|
|
48
|
+
response = get_cached_response(:node_component, "node/info_about", post_body)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
modified_response = response.clone_me()
|
|
52
|
+
modified_response['data'].each { |e| e['display_name'] = e['display_name'].split('/').last }
|
|
53
|
+
|
|
54
|
+
return modified_response
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
desc "SERVICE-NAME/ID set ATTRIBUTE-PATTERN VALUE", "Set target component attributes"
|
|
59
|
+
def set(context_params)
|
|
60
|
+
assembly_id, node_id, component_id, pattern, value = context_params.retrieve_arguments([:service_id, :node_id, :component_id, :option_1,:option_2],method_argument_names)
|
|
61
|
+
post_body = {
|
|
62
|
+
:assembly_id => assembly_id,
|
|
63
|
+
:pattern => pattern,
|
|
64
|
+
:value => value
|
|
65
|
+
}
|
|
66
|
+
post rest_url("assembly/set_attributes"), post_body
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,501 @@
|
|
|
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
|
+
dtk_require_common_commands('thor/module')
|
|
19
|
+
require 'fileutils'
|
|
20
|
+
|
|
21
|
+
module DTK::Client
|
|
22
|
+
class ComponentModule < CommandBaseThor
|
|
23
|
+
|
|
24
|
+
no_tasks do
|
|
25
|
+
include ModuleMixin
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.valid_children()
|
|
29
|
+
[:component, :remotes]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# this includes children of children - has to be sorted by n-level access
|
|
33
|
+
def self.all_children()
|
|
34
|
+
[:component]
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def self.multi_context_children()
|
|
38
|
+
[[:component], [:remotes], [:component, :remotes]]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def self.valid_child?(name_of_sub_context)
|
|
42
|
+
return ComponentModule.valid_children().include?(name_of_sub_context.to_sym)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def self.validation_list(context_params)
|
|
46
|
+
get_cached_response(:component_module, "component_module/list", {})
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def self.override_allowed_methods()
|
|
50
|
+
return DTK::Shell::OverrideTasks.new(
|
|
51
|
+
{
|
|
52
|
+
:command_only => {
|
|
53
|
+
:self => [
|
|
54
|
+
["list"," list [--remote] [--diff] [-n NAMESPACE]","# List loaded or remote component modules. Use --diff to compare loaded and remote component modules."]
|
|
55
|
+
],
|
|
56
|
+
:component => [
|
|
57
|
+
["list","list","# List all component templates."],
|
|
58
|
+
["list-attributes","list-attributes", "# List all attributes for given component."]
|
|
59
|
+
],
|
|
60
|
+
:remotes => [
|
|
61
|
+
["push-remote", "push-remote [REMOTE-NAME] [--force]", "# Push local changes to remote git repository"],
|
|
62
|
+
["list-remotes", "list-remotes", "# List git remotes for given module"],
|
|
63
|
+
["add-remote", "add-remote REMOTE-NAME REMOTE-URL", "# Add git remote for given module"],
|
|
64
|
+
["remove-remote", "remove-remote REPO-NAME [-y]", "# Remove git remote for given module"]
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
:identifier_only => {
|
|
68
|
+
:component => [
|
|
69
|
+
["list-attributes","list-attributes", "# List all attributes for given component."]
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
})
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def self.whoami()
|
|
77
|
+
return :component_module, "component_module/list", nil
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
desc "delete-version COMPONENT-MODULE-NAME [-y] [-p] [-v VERSION]", "Delete component module version and all items contained in it. Optional parameter [-p] is to delete local directory."
|
|
81
|
+
method_option :force, :aliases => '-y', :type => :boolean, :default => false
|
|
82
|
+
method_option :purge, :aliases => '-p', :type => :boolean, :default => false
|
|
83
|
+
version_method_option
|
|
84
|
+
def delete_version(context_params, method_opts = {})
|
|
85
|
+
response = delete_module_aux(context_params, method_opts)
|
|
86
|
+
@@invalidate_map << :component_module if response && response.ok?
|
|
87
|
+
|
|
88
|
+
response
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
desc "delete COMPONENT-MODULE-NAME [-y] [-p]", "Delete component module and all items contained in it. Optional parameter [-p] is to delete local directory."
|
|
92
|
+
method_option :force, :aliases => '-y', :type => :boolean, :default => false
|
|
93
|
+
method_option :purge, :aliases => '-p', :type => :boolean, :default => false
|
|
94
|
+
# version_method_option
|
|
95
|
+
def delete(context_params, method_opts = {})
|
|
96
|
+
response = delete_module_aux(context_params, method_opts.merge!(:delete_all => true))
|
|
97
|
+
@@invalidate_map << :component_module if response && response.ok?
|
|
98
|
+
|
|
99
|
+
response
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
desc "COMPONENT-MODULE-NAME/ID set-attribute ATTRIBUTE-ID VALUE", "Set value of component module attributes"
|
|
103
|
+
def set_attribute(context_params)
|
|
104
|
+
set_attribute_module_aux(context_params)
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
desc "list [--remote] [--diffs] [-n NAMESPACE]", "List loaded or remote component modules. Use --diff to compare loaded and remote component modules."
|
|
108
|
+
method_option :remote, :type => :boolean, :default => false
|
|
109
|
+
method_option :diffs, :type => :boolean, :default => false, :aliases => "--diff"
|
|
110
|
+
method_option :namespace, :aliases => "-n" ,
|
|
111
|
+
:type => :string,
|
|
112
|
+
:banner => "NAMESPACE",
|
|
113
|
+
:desc => "List modules only in specific namespace."
|
|
114
|
+
# method_option :with_versions, :type => :boolean, :default => false, :aliases => "with-versions"
|
|
115
|
+
def list(context_params)
|
|
116
|
+
return module_info_about(context_params, :components, :component) if context_params.is_there_command?(:"component")
|
|
117
|
+
|
|
118
|
+
forwarded_remote = context_params.get_forwarded_options()["remote"] if context_params.get_forwarded_options()
|
|
119
|
+
remote = options.remote? || forwarded_remote
|
|
120
|
+
action = (remote ? "list_remote" : "list")
|
|
121
|
+
|
|
122
|
+
post_body = (remote ? { :rsa_pub_key => SSHUtil.rsa_pub_key_content() } : {:detail_to_include => ["remotes"]})
|
|
123
|
+
post_body[:diff] = options.diffs? ? options.diffs : {}
|
|
124
|
+
|
|
125
|
+
if post_body[:detail_to_include]
|
|
126
|
+
post_body[:detail_to_include] << 'versions' # if options.with_versions?
|
|
127
|
+
else
|
|
128
|
+
post_body[:detail_to_include]
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
post_body.merge!(:module_namespace => options.namespace) if options.namespace
|
|
132
|
+
|
|
133
|
+
response = post rest_url("component_module/#{action}"), post_body
|
|
134
|
+
|
|
135
|
+
return response unless response.ok?
|
|
136
|
+
|
|
137
|
+
if options.with_versions?
|
|
138
|
+
response.render_table(:module_with_versions, true)
|
|
139
|
+
else
|
|
140
|
+
response.render_table()
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
desc "COMPONENT-MODULE-NAME/ID list-components", "List all components for given component module."
|
|
145
|
+
def list_components(context_params)
|
|
146
|
+
module_info_about(context_params, :components, :component)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
desc "COMPONENT-MODULE-NAME/ID list-attributes", "List all attributes for given component module."
|
|
150
|
+
def list_attributes(context_params)
|
|
151
|
+
module_info_about(context_params, :attributes, :attribute_without_link)
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
desc "COMPONENT-MODULE-NAME/ID list-instances", "List all instances for given component module."
|
|
155
|
+
def list_instances(context_params)
|
|
156
|
+
module_info_about(context_params, :instances, :component_instances)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
desc "COMPONENT-MODULE-NAME/ID list-versions","List all versions associated with this component module."
|
|
160
|
+
def list_versions(context_params)
|
|
161
|
+
response = list_versions_aux(context_params)
|
|
162
|
+
return response unless response.ok?
|
|
163
|
+
response.render_table(:list_versions, true)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
desc "COMPONENT-MODULE-NAME/ID list-remote-versions","List all remote versions associated with this component module."
|
|
167
|
+
def list_remote_versions(context_params)
|
|
168
|
+
response = list_remote_versions_aux(context_params)
|
|
169
|
+
return response unless response.ok?
|
|
170
|
+
response.render_table(:list_versions, true)
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
desc "import [NAMESPACE:]COMPONENT-MODULE-NAME", "Create new component module from local clone"
|
|
174
|
+
def import(context_params)
|
|
175
|
+
response = import_module_aux(context_params)
|
|
176
|
+
@@invalidate_map << :component_module
|
|
177
|
+
response
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
desc "import-puppet-forge PUPPET-MODULE-NAME [[NAMESPACE:]COMPONENT-MODULE-NAME]", "Install puppet module from puppet forge"
|
|
181
|
+
def import_puppet_forge(context_params)
|
|
182
|
+
pf_module_name, full_module_name = context_params.retrieve_arguments([:option_1!, :option_2],method_argument_names)
|
|
183
|
+
namespace, module_name = get_namespace_and_name(full_module_name, ModuleUtil::NAMESPACE_SEPERATOR)
|
|
184
|
+
module_type = get_module_type(context_params)
|
|
185
|
+
|
|
186
|
+
OsUtil.print('Retrieving puppet module metadata, please wait ...')
|
|
187
|
+
response = puppet_forge_install_aux(context_params, pf_module_name, module_name, namespace, nil, module_type)
|
|
188
|
+
|
|
189
|
+
@@invalidate_map << :component_module
|
|
190
|
+
response
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
#
|
|
194
|
+
# Creates component module from input git repo, removing .git dir to rid of pointing to user github, and creates component module
|
|
195
|
+
#
|
|
196
|
+
method_option :branch, :aliases => '-b'
|
|
197
|
+
desc "import-git GIT-SSH-REPO-URL [NAMESPACE:]COMPONENT-MODULE-NAME [-b BRANCH/TAG]", "Create new local component module by importing from provided git repo URL"
|
|
198
|
+
def import_git(context_params)
|
|
199
|
+
response = import_git_module_aux(context_params)
|
|
200
|
+
@@invalidate_map << :component_module
|
|
201
|
+
response
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
=begin
|
|
205
|
+
# desc "COMPONENT-MODULE-NAME/ID validate-model [-v VERSION]", "Check the DSL model for errors"
|
|
206
|
+
# version_method_option
|
|
207
|
+
desc "COMPONENT-MODULE-NAME/ID validate-model", "Check the DSL model for errors"
|
|
208
|
+
def validate_model(context_params)
|
|
209
|
+
module_id, module_name = context_params.retrieve_arguments([:component_module_id!, :component_module_name],method_argument_names)
|
|
210
|
+
version = options["version"]
|
|
211
|
+
|
|
212
|
+
if module_name.to_s =~ /^[0-9]+$/
|
|
213
|
+
module_id = module_name
|
|
214
|
+
module_name = get_module_name(module_id)
|
|
215
|
+
end
|
|
216
|
+
|
|
217
|
+
modules_path = OsUtil.component_clone_location()
|
|
218
|
+
module_location = "#{modules_path}/#{module_name}#{version && "-#{version}"}"
|
|
219
|
+
|
|
220
|
+
raise DTK::Client::DtkValidationError, "Unable to parse module '#{module_name}#{version && "-#{version}"}' that doesn't exist on your local machine!" unless File.directory?(module_location)
|
|
221
|
+
|
|
222
|
+
reparse_aux(module_location)
|
|
223
|
+
end
|
|
224
|
+
=end
|
|
225
|
+
|
|
226
|
+
# TODO: put in back support for:desc "import REMOTE-MODULE[,...] [LIBRARY-NAME/ID]", "Import remote component module(s) into library"
|
|
227
|
+
# TODO: put in doc REMOTE-MODULE havs namespace and optionally version information; e.g. r8/hdp or r8/hdp/v1.1
|
|
228
|
+
# if multiple items and failire; stops on first failure
|
|
229
|
+
# desc "install [NAMESPACE/]REMOTE-COMPONENT-MODULE-NAME [-r DTK-REPO-MANAGER]","Install remote component module into local environment"
|
|
230
|
+
desc "install NAMESPACE/REMOTE-COMPONENT-MODULE-NAME [-v VERSION]","Install remote component module into local environment"
|
|
231
|
+
method_option "repo-manager",:aliases => "-r" ,
|
|
232
|
+
:type => :string,
|
|
233
|
+
:banner => "REPO-MANAGER",
|
|
234
|
+
:desc => "DTK Repo Manager from which to resolve requested module."
|
|
235
|
+
version_method_option
|
|
236
|
+
def install(context_params)
|
|
237
|
+
response = install_module_aux(context_params)
|
|
238
|
+
if response && response.ok?
|
|
239
|
+
@@invalidate_map << :component_module
|
|
240
|
+
# TODO: hack before clean up way to indicate to better format what is passed as hash; these lines print the created module,
|
|
241
|
+
# not the module_directory
|
|
242
|
+
if module_directory = response.data(:module_directory)
|
|
243
|
+
split = module_directory.split('/')
|
|
244
|
+
if split.size > 2
|
|
245
|
+
installed_module = split[split.size-2..split.size-1].join(':')
|
|
246
|
+
response = Response::Ok.new('installed_module' => installed_module)
|
|
247
|
+
end
|
|
248
|
+
end
|
|
249
|
+
end
|
|
250
|
+
response
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
=begin
|
|
255
|
+
=> DUE TO DEPENDENCY TO PUPPET GEM WE OMIT THIS <=
|
|
256
|
+
desc "import-puppet-forge PUPPET-FORGE-MODULE-NAME", "Imports puppet module from puppet forge via puppet gem"
|
|
257
|
+
def import_puppet_forge(context_params)
|
|
258
|
+
module_name = context_params.retrieve_arguments([:option_1!],method_argument_names)
|
|
259
|
+
# this call will throw exception if error occurs
|
|
260
|
+
module_dir_name = DtkPuppet.install_module(module_name)
|
|
261
|
+
|
|
262
|
+
# we change module name to be dir name
|
|
263
|
+
context_params.override_method_argument!(:option_1, module_dir_name)
|
|
264
|
+
|
|
265
|
+
# process will take some time adding friendly message
|
|
266
|
+
puts "Cloning to remote repo, please wait ..."
|
|
267
|
+
|
|
268
|
+
# rest of reponsabilty is given to import method
|
|
269
|
+
import(context_params)
|
|
270
|
+
end
|
|
271
|
+
=end
|
|
272
|
+
=begin
|
|
273
|
+
desc "COMPONENT-MODULE-NAME/ID import-version VERSION", "Import a specfic version from a linked component module"
|
|
274
|
+
def import_version(context_params)
|
|
275
|
+
component_module_id,version = context_params.retrieve_arguments([:component_module_id!,:option_1!],method_argument_names)
|
|
276
|
+
post_body = {
|
|
277
|
+
:component_module_id => component_module_id,
|
|
278
|
+
:version => version
|
|
279
|
+
}
|
|
280
|
+
response = post rest_url("component_module/import_version"), post_body
|
|
281
|
+
@@invalidate_map << :component_module
|
|
282
|
+
|
|
283
|
+
return response unless response.ok?
|
|
284
|
+
module_name,repo_url,branch,version = response.data(:module_name,:repo_url,:workspace_branch,:version)
|
|
285
|
+
|
|
286
|
+
if error = response.data(:dsl_parse_error)
|
|
287
|
+
dsl_parsed_message = ServiceImporter.error_message(module_name, error)
|
|
288
|
+
DTK::Client::OsUtil.print(dsl_parsed_message, :red)
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
#TODO: need to check if local clone directory exists
|
|
292
|
+
Helper(:git_repo).create_clone_with_branch(:component_module,module_name,repo_url,branch,version)
|
|
293
|
+
end
|
|
294
|
+
=end
|
|
295
|
+
|
|
296
|
+
desc "delete-from-catalog NAMESPACE/REMOTE-COMPONENT-MODULE-NAME [-y] [--force] [-v VERSION]", "Delete the component module from the DTK Network catalog"
|
|
297
|
+
method_option :confirmed, :aliases => '-y', :type => :boolean, :default => false
|
|
298
|
+
method_option :force, :type => :boolean, :default => false
|
|
299
|
+
version_method_option
|
|
300
|
+
def delete_from_catalog(context_params)
|
|
301
|
+
delete_from_catalog_aux(context_params)
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
# renamed to 'publish' but didn't delete this in case we run into issues with 'publish'
|
|
305
|
+
# desc "COMPONENT-MODULE-NAME/ID create-on-dtkn [[NAMESPACE/]REMOTE-COMPONENT-MODULE-NAME]", "Export component module to remote repository."
|
|
306
|
+
# def create_on_dtkn(context_params)
|
|
307
|
+
# component_module_id, input_remote_name = context_params.retrieve_arguments([:component_module_id!, :option_1],method_argument_names)
|
|
308
|
+
|
|
309
|
+
# post_body = {
|
|
310
|
+
# :component_module_id => component_module_id,
|
|
311
|
+
# :remote_component_name => input_remote_name,
|
|
312
|
+
# :rsa_pub_key => SSHUtil.rsa_pub_key_content()
|
|
313
|
+
# }
|
|
314
|
+
|
|
315
|
+
# response = post rest_url("component_module/export"), post_body
|
|
316
|
+
|
|
317
|
+
# return response
|
|
318
|
+
# end
|
|
319
|
+
|
|
320
|
+
desc "COMPONENT-MODULE-NAME/ID publish [[NAMESPACE/]REMOTE-COMPONENT-MODULE-NAME] -v VERSION [--force]", "Publish component module to remote repository."
|
|
321
|
+
version_method_option
|
|
322
|
+
method_option :force, :type => :boolean, :default => false, :aliases => '-f'
|
|
323
|
+
def publish(context_params)
|
|
324
|
+
publish_module_aux(context_params)
|
|
325
|
+
end
|
|
326
|
+
|
|
327
|
+
desc "COMPONENT-MODULE-NAME/ID pull-dtkn [-n NAMESPACE] [--force]", "Update local component module from remote repository."
|
|
328
|
+
method_option :namespace,:aliases => '-n',
|
|
329
|
+
:type => :string,
|
|
330
|
+
:banner => "NAMESPACE",
|
|
331
|
+
:desc => "Remote namespace"
|
|
332
|
+
method_option :force,:aliases => '-f',
|
|
333
|
+
:type => :boolean,
|
|
334
|
+
:desc => "Force pull",
|
|
335
|
+
:default => false
|
|
336
|
+
def pull_dtkn(context_params)
|
|
337
|
+
pull_dtkn_aux(context_params)
|
|
338
|
+
end
|
|
339
|
+
|
|
340
|
+
=begin
|
|
341
|
+
desc "COMPONENT-MODULE-NAME/ID chown REMOTE-USER", "Set remote module owner"
|
|
342
|
+
method_option "namespace", :aliases => "-n", :type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
343
|
+
def chown(context_params)
|
|
344
|
+
component_module_id, remote_user = context_params.retrieve_arguments([:component_module_id!,:option_1!],method_argument_names)
|
|
345
|
+
chown_aux(component_module_id, remote_user, options.namespace)
|
|
346
|
+
end
|
|
347
|
+
=end
|
|
348
|
+
|
|
349
|
+
desc "COMPONENT-MODULE-NAME/ID chmod PERMISSION-SELECTOR", "Update remote permissions e.g. ug+rw , user and group get RW permissions"
|
|
350
|
+
method_option "namespace", :aliases => "-n", :type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
351
|
+
def chmod(context_params)
|
|
352
|
+
chmod_module_aux(context_params)
|
|
353
|
+
end
|
|
354
|
+
|
|
355
|
+
desc "COMPONENT-MODULE-NAME/ID make-public", "Make this module public"
|
|
356
|
+
method_option "namespace", :aliases => "-n", :type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
357
|
+
def make_public(context_params)
|
|
358
|
+
make_public_module_aux(context_params)
|
|
359
|
+
end
|
|
360
|
+
|
|
361
|
+
desc "COMPONENT-MODULE-NAME/ID make-private", "Make this module private"
|
|
362
|
+
method_option "namespace", :aliases => "-n", :type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
363
|
+
def make_private(context_params)
|
|
364
|
+
make_private_module_aux(context_params)
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
desc "COMPONENT-MODULE-NAME/ID add-collaborators", "Add collabrators users or groups comma seperated (--users or --groups)"
|
|
368
|
+
method_option "namespace", :aliases => "-n", :type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
369
|
+
method_option "users", :aliases => "-u", :type => :string, :banner => "USERS", :desc => "User collabrators"
|
|
370
|
+
method_option "groups", :aliases => "-g", :type => :string, :banner => "GROUPS", :desc => "Group collabrators"
|
|
371
|
+
def add_collaborators(context_params)
|
|
372
|
+
add_collaborators_module_aux(context_params)
|
|
373
|
+
end
|
|
374
|
+
|
|
375
|
+
desc "COMPONENT-MODULE-NAME/ID remove-collaborators", "Remove collabrators users or groups comma seperated (--users or --groups)"
|
|
376
|
+
method_option "namespace",:aliases => "-n",:type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
377
|
+
method_option "users",:aliases => "-u", :type => :string, :banner => "USERS", :desc => "User collabrators"
|
|
378
|
+
method_option "groups",:aliases => "-g", :type => :string, :banner => "GROUPS", :desc => "Group collabrators"
|
|
379
|
+
def remove_collaborators(context_params)
|
|
380
|
+
remove_collaborators_module_aux(context_params)
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
desc "COMPONENT-MODULE-NAME/ID list-collaborators", "List collaborators for given module"
|
|
384
|
+
method_option "namespace",:aliases => "-n",:type => :string, :banner => "NAMESPACE", :desc => "Remote namespace"
|
|
385
|
+
def list_collaborators(context_params)
|
|
386
|
+
list_collaborators_module_aux(context_params)
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
##
|
|
390
|
+
#
|
|
391
|
+
# internal_trigger: this flag means that other method (internal) has trigger this.
|
|
392
|
+
# This will change behaviour of method in such way that edit will not be
|
|
393
|
+
# triggered after it.
|
|
394
|
+
#
|
|
395
|
+
desc "COMPONENT-MODULE-NAME/ID clone [-n] [-v VERSION]", "Locally clone component module and component files. Use -n to skip edit prompt"
|
|
396
|
+
method_option :skip_edit, :aliases => '-n', :type => :boolean, :default => false
|
|
397
|
+
version_method_option
|
|
398
|
+
def clone(context_params, internal_trigger=true)
|
|
399
|
+
clone_module_aux(context_params, internal_trigger)
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
# desc "COMPONENT-MODULE-NAME/ID edit [-v VERSION]","Switch to unix editing for given component module."
|
|
403
|
+
# version_method_option
|
|
404
|
+
desc "COMPONENT-MODULE-NAME/ID edit","Switch to unix editing for given component module."
|
|
405
|
+
def edit(context_params)
|
|
406
|
+
edit_module_aux(context_params)
|
|
407
|
+
end
|
|
408
|
+
|
|
409
|
+
desc "COMPONENT-MODULE-NAME/ID push [--force] [--docs]", "Push changes from local copy of component module to server"
|
|
410
|
+
method_option "message",:aliases => "-m" ,
|
|
411
|
+
:type => :string,
|
|
412
|
+
:banner => "COMMIT-MSG",
|
|
413
|
+
:desc => "Commit message"
|
|
414
|
+
# hidden option for dev
|
|
415
|
+
method_option :force, :type => :boolean, :default => false, :aliases => '-f'
|
|
416
|
+
method_option :docs, :type => :boolean, :default => false, :aliases => '-d'
|
|
417
|
+
def push(context_params, internal_trigger=false)
|
|
418
|
+
push_module_aux(context_params, internal_trigger)
|
|
419
|
+
end
|
|
420
|
+
|
|
421
|
+
# desc "COMPONENT-MODULE-NAME/ID push-dtkn [-n NAMESPACE] [-m COMMIT-MSG]", "Push changes from local copy of component module to remote repository (dtkn)."
|
|
422
|
+
desc "COMPONENT-MODULE-NAME/ID push-dtkn [-n NAMESPACE] [--force]", "Push changes from local copy of component module to remote repository (dtkn)."
|
|
423
|
+
method_option "message",:aliases => "-m" ,
|
|
424
|
+
:type => :string,
|
|
425
|
+
:banner => "COMMIT-MSG",
|
|
426
|
+
:desc => "Commit message"
|
|
427
|
+
method_option "namespace",:aliases => "-n",
|
|
428
|
+
:type => :string,
|
|
429
|
+
:banner => "NAMESPACE",
|
|
430
|
+
:desc => "Remote namespace"
|
|
431
|
+
#hidden option for dev
|
|
432
|
+
method_option :force, :type => :boolean, :default => false, :aliases => '-f'
|
|
433
|
+
def push_dtkn(context_params, internal_trigger=false)
|
|
434
|
+
push_dtkn_module_aux(context_params, internal_trigger)
|
|
435
|
+
end
|
|
436
|
+
PushCatalogs = ["origin", "dtkn"]
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
# desc "COMPONENT-MODULE-NAME/ID list-diffs [-v VERSION] [--remote]", "List diffs"
|
|
440
|
+
# version_method_option
|
|
441
|
+
desc "COMPONENT-MODULE-NAME/ID list-diffs", "List diffs between module on server and remote repo"
|
|
442
|
+
method_option :remote, :type => :boolean, :default => false
|
|
443
|
+
def list_diffs(context_params)
|
|
444
|
+
list_remote_module_diffs(context_params)
|
|
445
|
+
# list_diffs_module_aux(context_params)
|
|
446
|
+
end
|
|
447
|
+
|
|
448
|
+
# REMOTE INTERACTION
|
|
449
|
+
|
|
450
|
+
desc "HIDE_FROM_BASE push-remote [REMOTE-NAME] [--force]", "Push local changes to remote git repository"
|
|
451
|
+
method_option :force, :type => :boolean, :default => false
|
|
452
|
+
def push_remote(context_params)
|
|
453
|
+
push_remote_module_aux(context_params)
|
|
454
|
+
end
|
|
455
|
+
|
|
456
|
+
desc "HIDE_FROM_BASE list-remotes", "List git remotes for given module"
|
|
457
|
+
def list_remotes(context_params)
|
|
458
|
+
remote_list_aux(context_params)
|
|
459
|
+
end
|
|
460
|
+
|
|
461
|
+
desc "HIDE_FROM_BASE add-remote REMOTE-NAME REMOTE-URL", "Add git remote for given module"
|
|
462
|
+
def add_remote(context_params)
|
|
463
|
+
remote_add_aux(context_params)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
desc "HIDE_FROM_BASE remove-remote REPO-NAME [-y]", "Remove git remote for given module"
|
|
467
|
+
method_option :force, :aliases => '-y', :type => :boolean, :default => false
|
|
468
|
+
def remove_remote(context_params)
|
|
469
|
+
remote_remove_aux(context_params)
|
|
470
|
+
end
|
|
471
|
+
|
|
472
|
+
desc "COMPONENT-MODULE-NAME/ID fork NAMESPACE", "Fork component module to new namespace"
|
|
473
|
+
def fork(context_params)
|
|
474
|
+
fork_aux(context_params)
|
|
475
|
+
end
|
|
476
|
+
|
|
477
|
+
desc "COMPONENT-MODULE-NAME/ID create-new-version VERSION", "Create new component module version"
|
|
478
|
+
def create_new_version(context_params)
|
|
479
|
+
create_new_version_aux(context_params)
|
|
480
|
+
end
|
|
481
|
+
|
|
482
|
+
#
|
|
483
|
+
# DEVELOPMENT MODE METHODS
|
|
484
|
+
#
|
|
485
|
+
if DTK::Configuration.get(:development_mode)
|
|
486
|
+
|
|
487
|
+
desc "delete-all","Delete all service modules"
|
|
488
|
+
def delete_all(context_params)
|
|
489
|
+
return unless Console.confirmation_prompt("This will DELETE ALL component modules, are you sure"+'?')
|
|
490
|
+
response = list(context_params)
|
|
491
|
+
|
|
492
|
+
response.data().each do |e|
|
|
493
|
+
run_shell_command("delete #{e['display_name']} -y -p")
|
|
494
|
+
end
|
|
495
|
+
end
|
|
496
|
+
|
|
497
|
+
end
|
|
498
|
+
|
|
499
|
+
#### end: commands related to cloning to and pushing from local clone
|
|
500
|
+
end
|
|
501
|
+
end
|