machinery-tool 1.14.0 → 1.14.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.git_revision +1 -1
- data/NEWS +10 -0
- data/html/assets/compare/machinery.js +1 -0
- data/html/assets/jquery.searcher.min.js +5 -0
- data/html/assets/machinery.css +3 -0
- data/html/assets/show/machinery.js +10 -4
- data/html/comparison.html.haml +18 -652
- data/html/index.html.haml +93 -431
- data/html/partials/changed_managed_files.html.haml +41 -0
- data/html/partials/compare/alert.html.haml +22 -0
- data/html/partials/compare/changed_managed_file_list.html.haml +26 -0
- data/html/partials/compare/changed_managed_files.html.haml +57 -0
- data/html/partials/compare/config_file_list.html.haml +26 -0
- data/html/partials/compare/config_files.html.haml +54 -0
- data/html/partials/compare/group_list.html.haml +14 -0
- data/html/partials/compare/groups.html.haml +52 -0
- data/html/partials/compare/os.html.haml +32 -0
- data/html/partials/compare/os_table.html.haml +10 -0
- data/html/partials/compare/package_list.html.haml +23 -0
- data/html/partials/compare/packages.html.haml +66 -0
- data/html/partials/compare/pattern_list.html.haml +12 -0
- data/html/partials/compare/patterns.html.haml +53 -0
- data/html/partials/compare/repositories.html.haml +51 -0
- data/html/partials/compare/repository_list.html.haml +28 -0
- data/html/partials/compare/service_list.html.haml +11 -0
- data/html/partials/compare/services.html.haml +56 -0
- data/html/partials/compare/unmanaged_file_list.html.haml +13 -0
- data/html/partials/compare/unmanaged_files.html.haml +59 -0
- data/html/partials/compare/user_list.html.haml +18 -0
- data/html/partials/compare/users.html.haml +52 -0
- data/html/partials/config_files.html.haml +57 -0
- data/html/partials/groups.html.haml +25 -0
- data/html/partials/os.html.haml +26 -0
- data/html/partials/packages.html.haml +30 -0
- data/html/partials/patterns.html.haml +23 -0
- data/html/partials/repositories.html.haml +35 -0
- data/html/partials/scope_header.html.haml +17 -0
- data/html/partials/services.html.haml +23 -0
- data/html/partials/unmanaged_files.html.haml +28 -0
- data/html/partials/users.html.haml +29 -0
- data/lib/cli.rb +48 -40
- data/lib/exceptions.rb +7 -0
- data/lib/helper.rb +21 -0
- data/lib/hint.rb +1 -1
- data/lib/html.rb +9 -1
- data/lib/scope_file_access_archive.rb +1 -2
- data/lib/scope_file_access_flat.rb +1 -2
- data/lib/server.rb +104 -50
- data/lib/version.rb +1 -1
- data/machinery-helper/version.go +1 -1
- data/man/generated/machinery.1.gz +0 -0
- data/man/generated/machinery.1.html +106 -16
- metadata +47 -18
- data/html/assets/angular-sanitize.min.js +0 -16
- data/html/assets/angular.min.js +0 -251
- data/html/assets/compare/machinery-compare.js +0 -100
- data/html/assets/show/machinery-show.js +0 -72
@@ -74,7 +74,6 @@ module ScopeFileAccessArchive
|
|
74
74
|
content = file_content(system_file)
|
75
75
|
return false if content.empty?
|
76
76
|
|
77
|
-
|
78
|
-
!output.include?("ASCII")
|
77
|
+
Machinery.content_is_binary?(content.slice(0, 1024))
|
79
78
|
end
|
80
79
|
end
|
@@ -30,8 +30,7 @@ module ScopeFileAccessFlat
|
|
30
30
|
path = system_file.scope.file_path(system_file)
|
31
31
|
return false if File.zero?(path)
|
32
32
|
|
33
|
-
|
34
|
-
!output.include?("ASCII")
|
33
|
+
Machinery.content_is_binary?(File.read(path))
|
35
34
|
end
|
36
35
|
|
37
36
|
def has_file?(name)
|
data/lib/server.rb
CHANGED
@@ -17,11 +17,88 @@
|
|
17
17
|
|
18
18
|
class Server < Sinatra::Base
|
19
19
|
module Helpers
|
20
|
+
def render_partial(partial, locals = {})
|
21
|
+
source = File.read(File.join(Machinery::ROOT, "html/partials/#{partial}.html.haml"))
|
22
|
+
haml source, locals: locals
|
23
|
+
end
|
24
|
+
|
25
|
+
def render_scope(scope)
|
26
|
+
render_partial scope, scope => @description[scope]
|
27
|
+
end
|
28
|
+
|
29
|
+
def scope_meta_info(scope)
|
30
|
+
return "" if !@description[scope]
|
31
|
+
|
32
|
+
" (" \
|
33
|
+
"inspected host: '#{@description[scope].meta.hostname}', " \
|
34
|
+
"at: #{DateTime.parse(@description[scope].meta.modified).strftime("%F %T")})"
|
35
|
+
end
|
36
|
+
|
20
37
|
def scope_help(scope)
|
21
38
|
text = File.read(File.join(Machinery::ROOT, "plugins", "#{scope}/#{scope}.md"))
|
22
39
|
Kramdown::Document.new(text).to_html
|
23
40
|
end
|
24
41
|
|
42
|
+
def safe_length(object, attribute)
|
43
|
+
if object && collection = object.send(attribute)
|
44
|
+
collection.length
|
45
|
+
else
|
46
|
+
0
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def only_in_a
|
51
|
+
"<h3>Only in '#{@description_a.name}':</h3>"
|
52
|
+
end
|
53
|
+
|
54
|
+
def only_in_b
|
55
|
+
"<h3>Only in '#{@description_b.name}':</h3>"
|
56
|
+
end
|
57
|
+
|
58
|
+
def in_both
|
59
|
+
"<h3>In both descriptions:</h3>"
|
60
|
+
end
|
61
|
+
|
62
|
+
def changed
|
63
|
+
"<h3>In both with different attributes:</h3>"
|
64
|
+
end
|
65
|
+
|
66
|
+
def changed_packages
|
67
|
+
changed = []
|
68
|
+
@diff["packages"].changed.each do |change|
|
69
|
+
changes = []
|
70
|
+
relevant_attributes = ["version", "vendor", "arch"]
|
71
|
+
|
72
|
+
if change[0].version == change[1].version
|
73
|
+
relevant_attributes.push("release")
|
74
|
+
if change[0].release == change[1].release
|
75
|
+
relevant_attributes.push("checksum")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
relevant_attributes.each do |attribute|
|
80
|
+
if change[0][attribute] != change[1][attribute]
|
81
|
+
changes.push(attribute + ": " + change[0][attribute] + " ↔ " + change[1][attribute])
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
changed.push(change[0].name + " (" + changes.join(", ") + ")")
|
86
|
+
end
|
87
|
+
changed
|
88
|
+
end
|
89
|
+
|
90
|
+
def diffable_unmanaged_files
|
91
|
+
return @diffable_unmanaged_files if @diffable_unmanaged_files
|
92
|
+
|
93
|
+
return [] if !@diff["unmanaged_files"] || !@diff["unmanaged_files"].only_in1 ||
|
94
|
+
!@diff["unmanaged_files"].only_in2
|
95
|
+
|
96
|
+
files_in_1 = @diff["unmanaged_files"].only_in1.files.select(&:file?).map(&:name)
|
97
|
+
files_in_2 = @diff["unmanaged_files"].only_in2.files.select(&:file?).map(&:name)
|
98
|
+
|
99
|
+
@diffable_unmanaged_files = files_in_1 & files_in_2
|
100
|
+
end
|
101
|
+
|
25
102
|
def diff_to_object(diff)
|
26
103
|
diff = Machinery.scrub(diff)
|
27
104
|
lines = diff.lines[2..-1]
|
@@ -79,29 +156,6 @@ class Server < Sinatra::Base
|
|
79
156
|
|
80
157
|
helpers Helpers
|
81
158
|
|
82
|
-
get "/descriptions/:id.js" do
|
83
|
-
description = SystemDescription.load(params[:id], settings.system_description_store)
|
84
|
-
diffs_dir = description.scope_file_store("analyze/config_file_diffs").path
|
85
|
-
if description.config_files && diffs_dir
|
86
|
-
# Enrich description with the config file diffs
|
87
|
-
description.config_files.files.each do |file|
|
88
|
-
path = File.join(diffs_dir, file.name + ".diff")
|
89
|
-
file.diff = diff_to_object(File.read(path)) if File.exists?(path)
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
# Enrich file information with downloadable flag
|
94
|
-
["config_files", "changed_managed_files", "unmanaged_files"].each do |scope|
|
95
|
-
next if !description[scope]
|
96
|
-
|
97
|
-
description[scope].files.each do |file|
|
98
|
-
file.downloadable = file.on_disk?
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
description.to_hash.to_json
|
103
|
-
end
|
104
|
-
|
105
159
|
get "/descriptions/:id/files/:scope/*" do
|
106
160
|
description = SystemDescription.load(params[:id], settings.system_description_store)
|
107
161
|
filename = File.join("/", params["splat"].first)
|
@@ -122,41 +176,31 @@ class Server < Sinatra::Base
|
|
122
176
|
content
|
123
177
|
end
|
124
178
|
|
125
|
-
get "/compare/:a/:b
|
126
|
-
description_a = SystemDescription.load(params[:a], settings.system_description_store)
|
127
|
-
description_b = SystemDescription.load(params[:b], settings.system_description_store)
|
179
|
+
get "/compare/:a/:b" do
|
180
|
+
@description_a = SystemDescription.load(params[:a], settings.system_description_store)
|
181
|
+
@description_b = SystemDescription.load(params[:b], settings.system_description_store)
|
128
182
|
|
129
|
-
|
130
|
-
|
131
|
-
description_a: description_a.name,
|
132
|
-
description_b: description_b.name,
|
133
|
-
}
|
134
|
-
}
|
183
|
+
@meta = {}
|
184
|
+
@diff = {}
|
135
185
|
|
136
186
|
Inspector.all_scopes.each do |scope|
|
137
|
-
if description_a[scope] && description_b[scope]
|
138
|
-
|
139
|
-
diff[scope] = comparison.as_json
|
187
|
+
if @description_a[scope] && @description_b[scope]
|
188
|
+
@diff[scope] = Comparison.compare_scope(@description_a, @description_b, scope)
|
140
189
|
else
|
141
|
-
|
190
|
+
@meta[:uninspected] ||= Hash.new
|
142
191
|
|
143
|
-
if
|
144
|
-
|
145
|
-
|
192
|
+
if !@description_a[scope] && @description_b[scope]
|
193
|
+
@meta[:uninspected][@description_a.name] ||= Array.new
|
194
|
+
@meta[:uninspected][@description_a.name] << scope
|
146
195
|
end
|
147
|
-
if
|
148
|
-
|
149
|
-
|
196
|
+
if !@description_b[scope] && @description_a[scope]
|
197
|
+
@meta[:uninspected][@description_b.name] ||= Array.new
|
198
|
+
@meta[:uninspected][@description_b.name] << scope
|
150
199
|
end
|
151
200
|
end
|
152
201
|
end
|
153
202
|
|
154
|
-
|
155
|
-
end
|
156
|
-
|
157
|
-
get "/compare/:a/:b" do
|
158
|
-
haml File.read(File.join(Machinery::ROOT, "html/comparison.html.haml")),
|
159
|
-
locals: { description_a: params[:a], description_b: params[:b] }
|
203
|
+
haml File.read(File.join(Machinery::ROOT, "html/comparison.html.haml"))
|
160
204
|
end
|
161
205
|
|
162
206
|
get "/compare/:a/:b/files/:scope/*" do
|
@@ -175,7 +219,17 @@ class Server < Sinatra::Base
|
|
175
219
|
end
|
176
220
|
|
177
221
|
get "/:id" do
|
178
|
-
|
179
|
-
|
222
|
+
@description = SystemDescription.load(params[:id], settings.system_description_store)
|
223
|
+
|
224
|
+
diffs_dir = @description.scope_file_store("analyze/config_file_diffs").path
|
225
|
+
if @description.config_files && diffs_dir
|
226
|
+
# Enrich description with the config file diffs
|
227
|
+
@description.config_files.files.each do |file|
|
228
|
+
path = File.join(diffs_dir, file.name + ".diff")
|
229
|
+
file.diff = diff_to_object(File.read(path)) if File.exists?(path)
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
haml File.read(File.join(Machinery::ROOT, "html/index.html.haml"))
|
180
234
|
end
|
181
235
|
end
|
data/lib/version.rb
CHANGED
data/machinery-helper/version.go
CHANGED
Binary file
|
@@ -67,6 +67,7 @@
|
|
67
67
|
<a href="#export-autoyast-Export-System-Description-as-AutoYasST-profile">export-autoyast — Export System Description as AutoYasST profile</a>
|
68
68
|
<a href="#export-kiwi-Export-System-Description-as-KIWI-Image-Description">export-kiwi — Export System Description as KIWI Image Description</a>
|
69
69
|
<a href="#inspect-Inspect-Running-System">inspect — Inspect Running System</a>
|
70
|
+
<a href="#inspect-container-Inspect-Container">inspect-container — Inspect Container</a>
|
70
71
|
<a href="#list-List-System-Descriptions">list — List System Descriptions</a>
|
71
72
|
<a href="#man-Shows-Man-Page">man — Shows Man Page</a>
|
72
73
|
<a href="#move-Move-System-Description">move — Move System Description</a>
|
@@ -900,6 +901,105 @@ configuration files are saved:</p>
|
|
900
901
|
</ul>
|
901
902
|
|
902
903
|
|
904
|
+
<h2 id="inspect-container-Inspect-Container">inspect-container — Inspect Container</h2>
|
905
|
+
|
906
|
+
<h3 id="SYNOPSIS">SYNOPSIS</h3>
|
907
|
+
|
908
|
+
<p><code>machinery inspect-container</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">OPTIONS</a> IMAGENAME</p>
|
909
|
+
|
910
|
+
<p><code>machinery inspect-container</code> <a href="#OPTIONS" title="OPTIONS" data-bare-link="true">OPTIONS</a> IMAGEID</p>
|
911
|
+
|
912
|
+
<p><code>machinery</code> help inspect-container</p>
|
913
|
+
|
914
|
+
<h3 id="DESCRIPTION">DESCRIPTION</h3>
|
915
|
+
|
916
|
+
<p>The <code>inspect-container</code> command inspects a container image. It creates and starts the container from the provided image before inspection
|
917
|
+
and generates a system description from the gathered data. After the inspection the container will be killed and removed again.
|
918
|
+
This approach ensures that no containers and images are affected by the inspection.</p>
|
919
|
+
|
920
|
+
<p>Right now we support only images from the type <code>docker</code>.</p>
|
921
|
+
|
922
|
+
<p>The system data is structured into scopes, controlled by the
|
923
|
+
<code>--scope</code> option.</p>
|
924
|
+
|
925
|
+
<p><strong>Note</strong>:
|
926
|
+
Machinery will always inspect all specified scopes, and skip scopes which
|
927
|
+
trigger errors.</p>
|
928
|
+
|
929
|
+
<h3 id="ARGUMENTS">ARGUMENTS</h3>
|
930
|
+
|
931
|
+
<dl>
|
932
|
+
<dt><code>IMAGENAME / IMAGEID</code> (required)</dt><dd>The name or id of the image to be inspected. The provided name or id will also be
|
933
|
+
used as the name of the stored system description unless another name is
|
934
|
+
provided with the <code>--name</code> option.</dd>
|
935
|
+
</dl>
|
936
|
+
|
937
|
+
|
938
|
+
<h3 id="OPTIONS">OPTIONS</h3>
|
939
|
+
|
940
|
+
<dl>
|
941
|
+
<dt><code>-n NAME</code>, <code>--name=NAME</code> (optional)</dt><dd><p>Store the system description under the specified name.</p></dd>
|
942
|
+
<dt><code>-s SCOPE</code>, <code>--scope=SCOPE</code> (optional)</dt><dd><p>Inspect image for specified scope.
|
943
|
+
See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
|
944
|
+
<dt><code>-e SCOPE</code>, <code>--exclude-scope=EXCLUDE-SCOPE</code> (optional)</dt><dd><p>Inspect image for all scopes except the specified scope.
|
945
|
+
See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more information.</p></dd>
|
946
|
+
<dt><code>-x</code>, <code>--extract-files</code> (optional)</dt><dd><p>Extract changed configuration and unmanaged files from the inspected container.
|
947
|
+
Shortcut for the combination of <code>--extract-changed-config-files</code>,
|
948
|
+
<code>--extract-unmanaged-files</code>, and <code>--extract-changed-managed-files</code></p></dd>
|
949
|
+
<dt><code>--extract-changed-config-files</code> (optional)</dt><dd><p>Extract changed configuration files from the inspected image.</p></dd>
|
950
|
+
<dt><code>--extract-unmanaged-files</code> (optional)</dt><dd><p>Extract unmanaged files from the inspected image.</p></dd>
|
951
|
+
<dt><code>--extract-changed-managed-files</code> (optional)</dt><dd><p>Extract changed managed files from inspected image.</p></dd>
|
952
|
+
<dt><code>--skip-files</code> (optional)</dt><dd><p>Do not consider given files or directories during inspection. Either provide
|
953
|
+
one file or directory name or a list of names separated by commas. You can
|
954
|
+
also point to a file which contains a list of files to filter (one per line)
|
955
|
+
by adding an '@' before the path, e.g.</p>
|
956
|
+
|
957
|
+
<p> $ <code>machinery</code> inspect-container --skip-files=@/path/to/filter_file mycontainer</p>
|
958
|
+
|
959
|
+
<p>If a filename contains a comma it needs to be escaped, e.g.</p>
|
960
|
+
|
961
|
+
<p> $ <code>machinery</code> inspect-container --skip-files=/file\,with_comma mycontainer</p>
|
962
|
+
|
963
|
+
<p><strong>Note</strong>: File or directory names are not expanded, e.g. '../path' is taken
|
964
|
+
literally and not expanded.</p></dd>
|
965
|
+
<dt><code>--verbose</code> (optional)</dt><dd><p>Display the filters which are used during inspection.</p></dd>
|
966
|
+
</dl>
|
967
|
+
|
968
|
+
|
969
|
+
<h3 id="PREREQUISITES">PREREQUISITES</h3>
|
970
|
+
|
971
|
+
<ul>
|
972
|
+
<li><p>Inspecting a container requires an image specified by the name or id.</p></li>
|
973
|
+
<li><p>The image to be inspected needs to have the following commands:</p>
|
974
|
+
|
975
|
+
<ul>
|
976
|
+
<li><code>rpm</code></li>
|
977
|
+
<li><code>zypper</code> or <code>yum</code></li>
|
978
|
+
<li><code>rsync</code></li>
|
979
|
+
<li><code>chkconfig</code></li>
|
980
|
+
<li><code>cat</code></li>
|
981
|
+
<li><code>sed</code></li>
|
982
|
+
<li><code>find</code></li>
|
983
|
+
</ul>
|
984
|
+
</li>
|
985
|
+
</ul>
|
986
|
+
|
987
|
+
|
988
|
+
<h3 id="EXAMPLES">EXAMPLES</h3>
|
989
|
+
|
990
|
+
<dl>
|
991
|
+
<dt>Inspect docker-container <code>mycontainer</code> and save system description under name 'MyContainer':</dt><dd><p></p>
|
992
|
+
|
993
|
+
<p>$ <code>machinery</code> inspect-container --name=MyContainer mycontainer</p></dd>
|
994
|
+
<dt>Inspect docker-container <code>076f46c1bef1</code> and save system description under name 'MySecondContainer':</dt><dd><p></p>
|
995
|
+
|
996
|
+
<p>$ <code>machinery</code> inspect-container --name=MySecondContainer 076f46c1bef1</p></dd>
|
997
|
+
<dt>Extracts changed managed files and saves them:</dt><dd><p></p>
|
998
|
+
|
999
|
+
<p>$ <code>machinery</code> inspect-container --scope=changed-managed-files --extract-files mycontainer</p></dd>
|
1000
|
+
</dl>
|
1001
|
+
|
1002
|
+
|
903
1003
|
<h2 id="list-List-System-Descriptions">list — List System Descriptions</h2>
|
904
1004
|
|
905
1005
|
<h3 id="SYNOPSIS">SYNOPSIS</h3>
|
@@ -1030,7 +1130,7 @@ Currently displays [HOSTNAME] and (DATE).</dd>
|
|
1030
1130
|
|
1031
1131
|
<h3 id="SYNOPSIS">SYNOPSIS</h3>
|
1032
1132
|
|
1033
|
-
<p><code>machinery serve</code> [-p PORT | --port=PORT] [
|
1133
|
+
<p><code>machinery serve</code> [-p PORT | --port=PORT] [--public] NAME</p>
|
1034
1134
|
|
1035
1135
|
<p><code>machinery</code> help serve</p>
|
1036
1136
|
|
@@ -1055,10 +1155,8 @@ IP address and the port can be configured using the according options.</p>
|
|
1055
1155
|
|
1056
1156
|
<p>Ports can be selected in a range between 2-65535. Ports between 2 and 1023 can only be
|
1057
1157
|
chosen when <code>machinery</code> will be executed as <code>root</code> user.</p></dd>
|
1058
|
-
<dt><code
|
1059
|
-
|
1060
|
-
<p>It's only possible to use an IP address (or hostnames resolving to an IP address) which
|
1061
|
-
is assigned to a network interface on the local machine.</p></dd>
|
1158
|
+
<dt><code>--public</code> (optional)</dt><dd><p>Specifying this option, lets the server listen on each configured IP address. By default
|
1159
|
+
the server will only listen on the localhost IP address 127.0.0.1</p></dd>
|
1062
1160
|
</dl>
|
1063
1161
|
|
1064
1162
|
|
@@ -1068,9 +1166,9 @@ is assigned to a network interface on the local machine.</p></dd>
|
|
1068
1166
|
<dt>Serve the system description taken from the last inspection, saved as <code>earth</code>:</dt><dd><p></p>
|
1069
1167
|
|
1070
1168
|
<p>$ <code>machinery</code> serve earth</p></dd>
|
1071
|
-
<dt>Make the system description available to other machines on the network:</dt><dd><p></p>
|
1169
|
+
<dt>Make the system description available to other machines on the network on port 3000:</dt><dd><p></p>
|
1072
1170
|
|
1073
|
-
<p>$ <code>machinery</code> serve earth
|
1171
|
+
<p>$ <code>machinery</code> serve earth --public --port 3000</p></dd>
|
1074
1172
|
</dl>
|
1075
1173
|
|
1076
1174
|
|
@@ -1078,7 +1176,7 @@ is assigned to a network interface on the local machine.</p></dd>
|
|
1078
1176
|
|
1079
1177
|
<h3 id="SYNOPSIS">SYNOPSIS</h3>
|
1080
1178
|
|
1081
|
-
<p><code>machinery show</code> [-s SCOPE | --scope=SCOPE] [-e EXCLUDE-SCOPE | --exclude-scope=EXCLUDE-SCOPE] [--no-pager] [--show-diffs] [--html]
|
1179
|
+
<p><code>machinery show</code> [-s SCOPE | --scope=SCOPE] [-e EXCLUDE-SCOPE | --exclude-scope=EXCLUDE-SCOPE] [--no-pager] [--show-diffs] [--html] NAME</p>
|
1082
1180
|
|
1083
1181
|
<p><code>machinery</code> help show</p>
|
1084
1182
|
|
@@ -1110,14 +1208,6 @@ See the <a href="#Scopes" data-bare-link="true">Scope section</a> for more infor
|
|
1110
1208
|
for more information).</p></dd>
|
1111
1209
|
<dt><code>--html</code> (optional)</dt><dd><p>Run a web server and open the system description in HTML format in your web browser using the
|
1112
1210
|
<code>xdg-open</code> command.</p></dd>
|
1113
|
-
<dt><code>-p PORT</code>, <code>--port=PORT</code> (optional)</dt><dd><p>Specify the port on which the web server will serve the system description: Default: 7585</p>
|
1114
|
-
|
1115
|
-
<p>Ports can be selected in a range between 2-65535. Ports between 2 and 1023 can only be
|
1116
|
-
chosen when <code>machinery</code> will be executed as <code>root</code> user.</p></dd>
|
1117
|
-
<dt><code>-i IP</code>, <code>--ip=IP</code> (optional)</dt><dd><p>Specify the IP address on which the web server will be made available. Default: 127.0.0.1</p>
|
1118
|
-
|
1119
|
-
<p>It's only possible to use an IP address (or hostnames resolving to an IP address) which
|
1120
|
-
is assigned to a network interface on the local machine.</p></dd>
|
1121
1211
|
<dt><code>--verbose</code> (optional)</dt><dd><p>Display the filters which were applied before showing the system description.</p></dd>
|
1122
1212
|
</dl>
|
1123
1213
|
|
metadata
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: machinery-tool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.14.
|
4
|
+
version: 1.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SUSE
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cheetah
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.4.0
|
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
26
|
version: 0.4.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: json
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.8.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.8.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: abstract_method
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 1.2.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.2.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: nokogiri
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.6.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.6.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.11
|
75
|
+
version: '2.11'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.11
|
82
|
+
version: '2.11'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: json-schema
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -126,14 +126,14 @@ dependencies:
|
|
126
126
|
name: tilt
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '2.0'
|
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
138
|
version: '2.0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
@@ -243,18 +243,16 @@ files:
|
|
243
243
|
- export_helpers/unmanaged_files_kiwi_excludes
|
244
244
|
- filters/default_filters.json
|
245
245
|
- filters/filter-packages-for-build.yaml
|
246
|
-
- html/assets/angular-sanitize.min.js
|
247
|
-
- html/assets/angular.min.js
|
248
246
|
- html/assets/arrow_down.png
|
249
247
|
- html/assets/arrow_up.png
|
250
248
|
- html/assets/bootstrap-popover.js
|
251
249
|
- html/assets/bootstrap-tooltip.js
|
252
250
|
- html/assets/bootstrap.min.css
|
253
251
|
- html/assets/collapse.js
|
254
|
-
- html/assets/compare/machinery-compare.js
|
255
252
|
- html/assets/compare/machinery.js
|
256
253
|
- html/assets/cross.png
|
257
254
|
- html/assets/jquery-2.1.1.min.js
|
255
|
+
- html/assets/jquery.searcher.min.js
|
258
256
|
- html/assets/logo-changed-managed-files-small.png
|
259
257
|
- html/assets/logo-changed-managed-files.png
|
260
258
|
- html/assets/logo-config-files-small.png
|
@@ -279,12 +277,43 @@ files:
|
|
279
277
|
- html/assets/machinery.css
|
280
278
|
- html/assets/modal.js
|
281
279
|
- html/assets/reset.png
|
282
|
-
- html/assets/show/machinery-show.js
|
283
280
|
- html/assets/show/machinery.js
|
284
281
|
- html/assets/transition.js
|
285
282
|
- html/assets/wheels_horizontal.png
|
286
283
|
- html/comparison.html.haml
|
287
284
|
- html/index.html.haml
|
285
|
+
- html/partials/changed_managed_files.html.haml
|
286
|
+
- html/partials/compare/alert.html.haml
|
287
|
+
- html/partials/compare/changed_managed_file_list.html.haml
|
288
|
+
- html/partials/compare/changed_managed_files.html.haml
|
289
|
+
- html/partials/compare/config_file_list.html.haml
|
290
|
+
- html/partials/compare/config_files.html.haml
|
291
|
+
- html/partials/compare/group_list.html.haml
|
292
|
+
- html/partials/compare/groups.html.haml
|
293
|
+
- html/partials/compare/os.html.haml
|
294
|
+
- html/partials/compare/os_table.html.haml
|
295
|
+
- html/partials/compare/package_list.html.haml
|
296
|
+
- html/partials/compare/packages.html.haml
|
297
|
+
- html/partials/compare/pattern_list.html.haml
|
298
|
+
- html/partials/compare/patterns.html.haml
|
299
|
+
- html/partials/compare/repositories.html.haml
|
300
|
+
- html/partials/compare/repository_list.html.haml
|
301
|
+
- html/partials/compare/service_list.html.haml
|
302
|
+
- html/partials/compare/services.html.haml
|
303
|
+
- html/partials/compare/unmanaged_file_list.html.haml
|
304
|
+
- html/partials/compare/unmanaged_files.html.haml
|
305
|
+
- html/partials/compare/user_list.html.haml
|
306
|
+
- html/partials/compare/users.html.haml
|
307
|
+
- html/partials/config_files.html.haml
|
308
|
+
- html/partials/groups.html.haml
|
309
|
+
- html/partials/os.html.haml
|
310
|
+
- html/partials/packages.html.haml
|
311
|
+
- html/partials/patterns.html.haml
|
312
|
+
- html/partials/repositories.html.haml
|
313
|
+
- html/partials/scope_header.html.haml
|
314
|
+
- html/partials/services.html.haml
|
315
|
+
- html/partials/unmanaged_files.html.haml
|
316
|
+
- html/partials/users.html.haml
|
288
317
|
- inspect_helpers/changed_files.sh
|
289
318
|
- inspect_helpers/yum_repositories.py
|
290
319
|
- lib/analyze_config_file_diffs_task.rb
|