machinery-tool 1.18.0 → 1.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/.git_revision +1 -1
  3. data/NEWS +17 -0
  4. data/bin/machinery +10 -2
  5. data/html/comparison.html.haml +1 -1
  6. data/html/index.html.haml +2 -2
  7. data/html/partials/{config_files.html.haml → changed_config_files.html.haml} +10 -10
  8. data/html/partials/compare/changed_config_files.html.haml +48 -0
  9. data/html/partials/compare/{config_file_list.html.haml → changed_config_files_list.html.haml} +0 -0
  10. data/html/partials/compare/unmanaged_file_list.html.haml +1 -1
  11. data/html/partials/compare/unmanaged_files.html.haml +2 -2
  12. data/html/partials/patterns.html.haml +5 -0
  13. data/html/upgrade.html.haml +49 -0
  14. data/lib/{analyze_config_file_diffs_task.rb → analyze_changed_config_files_diffs_task.rb} +8 -8
  15. data/lib/autoyast.rb +12 -13
  16. data/lib/build_task.rb +2 -2
  17. data/lib/cli.rb +39 -32
  18. data/lib/compare_task.rb +1 -1
  19. data/lib/config_base.rb +1 -1
  20. data/lib/deploy_task.rb +4 -4
  21. data/lib/docker_system.rb +1 -1
  22. data/lib/element_filter.rb +3 -3
  23. data/lib/export_task.rb +3 -3
  24. data/lib/file_validator.rb +8 -5
  25. data/lib/filter.rb +5 -5
  26. data/lib/filter_option_parser.rb +3 -3
  27. data/lib/hint.rb +9 -4
  28. data/lib/html.rb +3 -3
  29. data/lib/inspect_task.rb +3 -3
  30. data/lib/json_schema_monkey_patch.rb +2 -2
  31. data/lib/json_validation_error_cleaner.rb +1 -1
  32. data/lib/json_validator.rb +2 -2
  33. data/lib/kiwi_config.rb +39 -14
  34. data/lib/list_task.rb +1 -1
  35. data/lib/local_system.rb +4 -4
  36. data/lib/machinery.rb +1 -1
  37. data/lib/machinery_logger.rb +4 -4
  38. data/lib/manifest.rb +5 -5
  39. data/lib/migration.rb +4 -4
  40. data/lib/object.rb +6 -10
  41. data/lib/remove_task.rb +1 -1
  42. data/lib/renderer.rb +5 -5
  43. data/lib/scope_file_access_archive.rb +2 -2
  44. data/lib/scope_file_access_flat.rb +3 -3
  45. data/lib/scope_file_store.rb +3 -3
  46. data/lib/serve_html_task.rb +15 -2
  47. data/lib/server.rb +32 -12
  48. data/lib/system.rb +1 -1
  49. data/lib/system_description.rb +16 -14
  50. data/lib/system_description_store.rb +5 -6
  51. data/lib/ui.rb +1 -1
  52. data/lib/upgrade_format_task.rb +2 -2
  53. data/lib/version.rb +1 -1
  54. data/lib/workload_mapper.rb +11 -11
  55. data/lib/zypper.rb +1 -1
  56. data/machinery-helper/Rakefile +1 -1
  57. data/machinery-helper/version.go +1 -1
  58. data/man/generated/machinery.1.gz +0 -0
  59. data/manual/docs/machinery-analyze.1.md +3 -3
  60. data/manual/docs/machinery-compare.1.md +2 -2
  61. data/manual/docs/machinery-inspect-docker.1.md +1 -1
  62. data/manual/docs/machinery-inspect.1.md +4 -1
  63. data/manual/docs/machinery-show.1.md +2 -2
  64. data/manual/docs/machinery_main_general.1.md +1 -1
  65. data/manual/docs/machinery_main_scopes.1.md +8 -6
  66. data/manual/site/machinery-analyze.1/index.html +3 -3
  67. data/manual/site/machinery-compare.1/index.html +2 -2
  68. data/manual/site/machinery-inspect-docker.1/index.html +1 -1
  69. data/manual/site/machinery-inspect.1/index.html +3 -1
  70. data/manual/site/machinery-show.1/index.html +2 -2
  71. data/manual/site/machinery_main_general.1/index.html +1 -1
  72. data/manual/site/machinery_main_scopes.1/index.html +8 -6
  73. data/manual/site/mkdocs/search_index.json +17 -17
  74. data/manual/site/sitemap.xml +23 -23
  75. data/plugins/{config_files/config_files.yml → changed_config_files/changed_config_files.yml} +3 -3
  76. data/plugins/{config_files/config_files_inspector.rb → changed_config_files/changed_config_files_inspector.rb} +14 -10
  77. data/plugins/{config_files/config_files_model.rb → changed_config_files/changed_config_files_model.rb} +1 -1
  78. data/plugins/{config_files/config_files_renderer.rb → changed_config_files/changed_config_files_renderer.rb} +9 -9
  79. data/plugins/{config_files/schema/system-description-config-files.schema-v1.json → changed_config_files/schema/system-description-changed-config-files.schema-v1.json} +0 -0
  80. data/plugins/{config_files/schema/system-description-config-files.schema-v2.json → changed_config_files/schema/system-description-changed-config-files.schema-v2.json} +0 -0
  81. data/plugins/{config_files/schema/system-description-config-files.schema-v3.json → changed_config_files/schema/system-description-changed-config-files.schema-v3.json} +0 -0
  82. data/plugins/{config_files/schema/system-description-config-files.schema-v4.json → changed_config_files/schema/system-description-changed-config-files.schema-v4.json} +0 -0
  83. data/plugins/{config_files/schema/system-description-config-files.schema-v5.json → changed_config_files/schema/system-description-changed-config-files.schema-v5.json} +0 -0
  84. data/plugins/{config_files/schema/system-description-config-files.schema-v6.json → changed_config_files/schema/system-description-changed-config-files.schema-v6.json} +0 -0
  85. data/plugins/{config_files/schema/system-description-config-files.schema-v7.json → changed_config_files/schema/system-description-changed-config-files.schema-v7.json} +0 -0
  86. data/plugins/changed_config_files/schema/system-description-changed-config-files.schema-v8.json +160 -0
  87. data/plugins/changed_managed_files/changed_managed_files_inspector.rb +6 -2
  88. data/plugins/changed_managed_files/changed_managed_files_renderer.rb +1 -1
  89. data/plugins/changed_managed_files/schema/system-description-changed-managed-files.schema-v8.json +160 -0
  90. data/plugins/environment/schema/system-description-environment.schema-v8.json +17 -0
  91. data/plugins/groups/groups_inspector.rb +1 -1
  92. data/plugins/groups/groups_renderer.rb +1 -1
  93. data/plugins/groups/schema/system-description-groups.schema-v8.json +49 -0
  94. data/plugins/os/os_inspector.rb +6 -6
  95. data/plugins/os/os_renderer.rb +1 -1
  96. data/plugins/os/schema/system-description-os.schema-v8.json +21 -0
  97. data/plugins/packages/packages_inspector.rb +1 -1
  98. data/plugins/packages/schema/system-description-packages.schema-v8.json +115 -0
  99. data/plugins/patterns/patterns.yml +5 -3
  100. data/plugins/patterns/patterns_inspector.rb +4 -3
  101. data/plugins/patterns/patterns_renderer.rb +5 -1
  102. data/plugins/patterns/schema/system-description-patterns.schema-v8.json +58 -0
  103. data/plugins/repositories/repositories_inspector.rb +2 -1
  104. data/plugins/repositories/schema/system-description-repositories.schema-v8.json +165 -0
  105. data/plugins/services/schema/system-description-services.schema-v8.json +93 -0
  106. data/plugins/services/services.yml +1 -1
  107. data/plugins/services/services_inspector.rb +1 -1
  108. data/plugins/unmanaged_files/schema/system-description-unmanaged-files.schema-v8.json +124 -0
  109. data/plugins/unmanaged_files/unmanaged_files_inspector.rb +9 -4
  110. data/plugins/unmanaged_files/unmanaged_files_model.rb +12 -5
  111. data/plugins/unmanaged_files/unmanaged_files_renderer.rb +1 -1
  112. data/plugins/users/schema/system-description-users.schema-v8.json +86 -0
  113. data/plugins/users/users_inspector.rb +7 -7
  114. data/schema/migrations/migrate1to2.rb +4 -4
  115. data/schema/migrations/migrate2to3.rb +1 -1
  116. data/schema/migrations/migrate3to4.rb +9 -9
  117. data/schema/migrations/migrate7to8.rb +47 -0
  118. data/schema/system-description-global.schema-v8.json +43 -0
  119. data/workload_mapper/rails/setup/setup.rb.erb +1 -1
  120. data/workload_mapper/wordpress/setup/setup.rb.erb +1 -1
  121. metadata +31 -17
  122. data/html/partials/compare/config_files.html.haml +0 -48
@@ -1,10 +1,10 @@
1
1
  ---
2
- :name: Config Files
3
- :initials: cf
2
+ :name: Changed Configuration Files
3
+ :initials: ccf
4
4
  :description: |
5
5
  Contains all configuration files which have been changed since they were
6
6
  installed.
7
- Configuration files are all those files which are marked as such in the
7
+ Changed configuration files are all those files which are marked as such in the
8
8
  package which has installed them. A configuration file change is reported
9
9
  if its content or its attributes like Linux permission bits or ownership
10
10
  have changed.
@@ -15,10 +15,10 @@
15
15
  # To contact SUSE about this file by physical or electronic mail,
16
16
  # you may find current contact information at www.suse.com
17
17
 
18
- class ConfigFilesInspector < Inspector
18
+ class ChangedConfigFilesInspector < Inspector
19
19
  has_priority 80
20
20
 
21
- # returns a hash with entries for changed config files
21
+ # returns a hash with entries for changed configuration files
22
22
  def config_file_changes(pkg)
23
23
  @system.changed_files.select(&:config_file?).map do |file|
24
24
  ConfigFile.new(
@@ -37,25 +37,27 @@ class ConfigFilesInspector < Inspector
37
37
  end
38
38
 
39
39
  def inspect(filter, options = {})
40
- do_extract = options[:extract_changed_config_files]
40
+ do_extract = options[:extract_changed_changed_config_files]
41
41
  system.check_retrieve_files_dependencies if do_extract
42
42
 
43
43
  count = 0
44
44
  files = @system.managed_files_database.changed_files do |chunk|
45
45
  count += chunk.lines.count { |l| !l.chomp.end_with?(":") && l.split(" ")[1] == "c" }
46
- Machinery::Ui.progress(" -> Found #{count} config #{Machinery::pluralize(count, "file")}...")
46
+ Machinery::Ui.progress(
47
+ " -> Found #{Machinery.pluralize(count, "%d changed configuration file")}..."
48
+ )
47
49
  end
48
50
  result = files.select(&:config_file?).map do |file|
49
51
  ConfigFile.new(file.attributes)
50
52
  end
51
53
 
52
54
  if filter
53
- file_filter = filter.element_filter_for("/config_files/files/name")
55
+ file_filter = filter.element_filter_for("/changed_config_files/files/name")
54
56
  result.delete_if { |e| file_filter.matches?(e.name) } if file_filter
55
57
  end
56
58
 
57
- scope = ConfigFilesScope.new
58
- file_store = @description.scope_file_store("config_files")
59
+ scope = ChangedConfigFilesScope.new
60
+ file_store = @description.scope_file_store("changed_config_files")
59
61
  scope.scope_file_store = file_store
60
62
 
61
63
  file_store.remove
@@ -71,11 +73,13 @@ class ConfigFilesInspector < Inspector
71
73
  scope.extracted = !!do_extract
72
74
  scope += result.sort_by(&:name)
73
75
 
74
- @description["config_files"] = scope
76
+ @description["changed_config_files"] = scope
75
77
  end
76
78
 
77
79
  def summary
78
- "#{@description.config_files.extracted ? "Extracted" : "Found"} " +
79
- "#{@description.config_files.count} changed configuration files."
80
+ "#{@description.changed_config_files.extracted ? "Extracted" : "Found"} " +
81
+ Machinery.pluralize(
82
+ @description.changed_config_files.count, "%d changed configuration file"
83
+ ) + "."
80
84
  end
81
85
  end
@@ -36,7 +36,7 @@ class ConfigFileList < Machinery::Array
36
36
  end
37
37
  end
38
38
 
39
- class ConfigFilesScope < FileScope
39
+ class ChangedConfigFilesScope < FileScope
40
40
  include Machinery::Scope
41
41
  include ScopeFileAccessFlat
42
42
 
@@ -15,26 +15,26 @@
15
15
  # To contact SUSE about this file by physical or electronic mail,
16
16
  # you may find current contact information at www.suse.com
17
17
 
18
- class ConfigFilesRenderer < Renderer
18
+ class ChangedConfigFilesRenderer < Renderer
19
19
  def content(description)
20
- return unless description["config_files"]
20
+ return unless description["changed_config_files"]
21
21
 
22
- diffs_dir = description.scope_file_store("analyze/config_file_diffs").path
22
+ diffs_dir = description.scope_file_store("analyze/changed_config_files_diffs").path
23
23
 
24
24
  if !diffs_dir && @options[:show_diffs]
25
25
  raise Machinery::Errors::SystemDescriptionError.new(
26
26
  "Diffs can not be shown because they were not generated yet.\n" \
27
27
  "You can generate them with `#{Hint.program_name} analyze" \
28
- " --operation=config-file-diffs #{description.name}`."
28
+ " --operation=changed-config-files-diffs #{description.name}`."
29
29
  )
30
30
  end
31
31
 
32
32
  list do
33
- file_status = description["config_files"].extracted
34
- files = description["config_files"]
33
+ file_status = description["changed_config_files"].extracted
34
+ files = description["changed_config_files"]
35
35
 
36
36
  if files.elements.empty?
37
- puts "There are no config files."
37
+ puts "There are no changed configuration files."
38
38
  elsif !file_status.nil?
39
39
  puts "Files extracted: #{file_status ? "yes" : "no"}"
40
40
  end
@@ -56,7 +56,7 @@ class ConfigFilesRenderer < Renderer
56
56
  end
57
57
 
58
58
  def display_name
59
- "Changed configuration files"
59
+ "Changed Configuration Files"
60
60
  end
61
61
 
62
62
  def compare_content_changed(changed_elements)
@@ -81,7 +81,7 @@ class ConfigFilesRenderer < Renderer
81
81
  def render_diff_file(diffs_dir, name)
82
82
  path = File.join(diffs_dir, name + ".diff")
83
83
 
84
- if File.exists?(path)
84
+ if File.exist?(path)
85
85
  puts "Diff:\n#{File.read(path).chomp}"
86
86
  else
87
87
  Machinery::Ui.warn "Diff for #{name} was not found on disk."
@@ -0,0 +1,160 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+
4
+ "type": "object",
5
+ "required": [
6
+ "_elements"
7
+ ],
8
+ "properties": {
9
+ "_attributes": {
10
+ "type": "object",
11
+ "required": [
12
+ "extracted"
13
+ ],
14
+ "properties": {
15
+ "extracted": {
16
+ "type": "boolean"
17
+ }
18
+ }
19
+ },
20
+ "_elements": {
21
+ "type": "array",
22
+ "items" : {
23
+ "type": "object",
24
+ "required": ["name", "package_name", "package_version"],
25
+ "properties": {
26
+ "name": {
27
+ "type": "string"
28
+ },
29
+ "package_name": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "package_version": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ }
37
+ },
38
+ "oneOf": [
39
+ { "$ref": "#/definitions/file_changed" },
40
+ { "$ref": "#/definitions/file_error" }
41
+ ]
42
+ }
43
+ }
44
+ },
45
+ "definitions": {
46
+ "file_changed": {
47
+ "required": ["status"],
48
+ "properties": {
49
+ "status": {
50
+ "enum": ["changed"]
51
+ }
52
+ },
53
+ "oneOf": [
54
+ { "$ref": "#/definitions/file_changed_modified" },
55
+ { "$ref": "#/definitions/link_changed_modified" },
56
+ { "$ref": "#/definitions/file_changed_deleted" }
57
+ ]
58
+ },
59
+ "file_changed_modified": {
60
+ "required": ["changes", "mode", "user", "group", "type"],
61
+ "properties": {
62
+ "changes": {
63
+ "type": "array",
64
+ "items": {
65
+ "enum": [
66
+ "size",
67
+ "mode",
68
+ "md5",
69
+ "device_number",
70
+ "link_path",
71
+ "user",
72
+ "group",
73
+ "time",
74
+ "capabilities",
75
+ "replaced",
76
+ "other_rpm_changes"
77
+ ]
78
+ },
79
+ "minItems": 1
80
+ },
81
+ "mode": {
82
+ "type": "string",
83
+ "pattern": "^[0-7]{3,4}$"
84
+ },
85
+ "user": {
86
+ "type": "string",
87
+ "minLength": 1
88
+ },
89
+ "group": {
90
+ "type": "string",
91
+ "minLength": 1
92
+ },
93
+ "type": {
94
+ "enum": ["file", "dir"]
95
+ }
96
+ }
97
+ },
98
+ "link_changed_modified": {
99
+ "required": ["target", "changes", "mode", "user", "group", "type"],
100
+ "properties": {
101
+ "changes": {
102
+ "type": "array",
103
+ "items": {
104
+ "enum": [
105
+ "size",
106
+ "mode",
107
+ "md5",
108
+ "device_number",
109
+ "link_path",
110
+ "user",
111
+ "group",
112
+ "time",
113
+ "capabilities",
114
+ "replaced",
115
+ "other_rpm_changes"
116
+ ]
117
+ },
118
+ "minItems": 1
119
+ },
120
+ "mode": {
121
+ "type": "string",
122
+ "pattern": "^[0-7]{3,4}$"
123
+ },
124
+ "user": {
125
+ "type": "string",
126
+ "minLength": 1
127
+ },
128
+ "group": {
129
+ "type": "string",
130
+ "minLength": 1
131
+ },
132
+ "type": {
133
+ "enum": ["link"]
134
+ },
135
+ "target": {
136
+ "type": "string"
137
+ }
138
+ }
139
+ },
140
+ "file_changed_deleted": {
141
+ "required": ["changes"],
142
+ "properties": {
143
+ "changes": {
144
+ "enum": [["deleted"]]
145
+ }
146
+ }
147
+ },
148
+ "file_error": {
149
+ "required": ["status", "error_message"],
150
+ "properties": {
151
+ "status": {
152
+ "enum": ["error"]
153
+ },
154
+ "error_message": {
155
+ "type": "string"
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
@@ -62,7 +62,9 @@ class ChangedManagedFilesInspector < Inspector
62
62
 
63
63
  def summary
64
64
  "#{@description.changed_managed_files.extracted ? "Extracted" : "Found"} " +
65
- "#{@description.changed_managed_files.count} changed files."
65
+ Machinery.pluralize(
66
+ @description.changed_managed_files.count, "%d changed managed file"
67
+ ) + "."
66
68
  end
67
69
 
68
70
  private
@@ -71,7 +73,9 @@ class ChangedManagedFilesInspector < Inspector
71
73
  count = 0
72
74
  files = @system.managed_files_database.changed_files do |chunk|
73
75
  count += chunk.lines.reject { |l| l.chomp.end_with?(":") || l.split(" ")[1] == "c" }.count
74
- Machinery::Ui.progress(" -> Found #{count} changed #{Machinery::pluralize(count, "file")}...")
76
+ Machinery::Ui.progress(
77
+ " -> Found #{Machinery.pluralize(count, "%d changed managed file")}..."
78
+ )
75
79
  end
76
80
  files.reject(&:config_file?).map do |file|
77
81
  ChangedManagedFile.new(file.attributes)
@@ -51,7 +51,7 @@ class ChangedManagedFilesRenderer < Renderer
51
51
  end
52
52
 
53
53
  def display_name
54
- "Changed managed files"
54
+ "Changed Managed Files"
55
55
  end
56
56
 
57
57
  def compare_content_changed(changed_elements)
@@ -0,0 +1,160 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+
4
+ "type": "object",
5
+ "required": [
6
+ "_elements"
7
+ ],
8
+ "properties": {
9
+ "_attributes": {
10
+ "type": "object",
11
+ "required": [
12
+ "extracted"
13
+ ],
14
+ "properties": {
15
+ "extracted": {
16
+ "type": "boolean"
17
+ }
18
+ }
19
+ },
20
+ "_elements": {
21
+ "type": "array",
22
+ "items": {
23
+ "type": "object",
24
+ "required": [
25
+ "name",
26
+ "package_name",
27
+ "package_version"
28
+ ],
29
+ "properties": {
30
+ "name": {
31
+ "type": "string"
32
+ },
33
+ "package_name": {
34
+ "type": "string",
35
+ "minLength": 1
36
+ },
37
+ "package_version": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ }
41
+ },
42
+ "oneOf": [
43
+ {
44
+ "$ref": "#/definitions/file_changed"
45
+ },
46
+ {
47
+ "$ref": "#/definitions/file_error"
48
+ }
49
+ ]
50
+ }
51
+ }
52
+ },
53
+ "definitions": {
54
+ "file_changed": {
55
+ "required": ["status"],
56
+ "properties": {
57
+ "status": {
58
+ "enum": ["changed"]
59
+ }
60
+ },
61
+ "oneOf": [
62
+ { "$ref": "#/definitions/file_changed_modified" },
63
+ { "$ref": "#/definitions/link_changed_modified" }
64
+ ]
65
+ },
66
+ "file_changed_modified": {
67
+ "required": ["changes"],
68
+ "properties": {
69
+ "changes": {
70
+ "type": "array",
71
+ "items": {
72
+ "enum": [
73
+ "size",
74
+ "mode",
75
+ "md5",
76
+ "device_number",
77
+ "link_path",
78
+ "user",
79
+ "group",
80
+ "time",
81
+ "capabilities",
82
+ "replaced",
83
+ "other_rpm_changes",
84
+ "deleted"
85
+ ]
86
+ },
87
+ "minItems": 1
88
+ },
89
+ "mode": {
90
+ "type": "string",
91
+ "pattern": "^[0-7]{3,4}$"
92
+ },
93
+ "user": {
94
+ "type": "string",
95
+ "minLength": 1
96
+ },
97
+ "group": {
98
+ "type": "string",
99
+ "minLength": 1
100
+ },
101
+ "type": {
102
+ "enum": ["file", "dir"]
103
+ }
104
+ }
105
+ },
106
+ "link_changed_modified": {
107
+ "required": ["target", "changes", "mode", "user", "group", "type"],
108
+ "properties": {
109
+ "changes": {
110
+ "type": "array",
111
+ "items": {
112
+ "enum": [
113
+ "size",
114
+ "mode",
115
+ "md5",
116
+ "device_number",
117
+ "link_path",
118
+ "user",
119
+ "group",
120
+ "time",
121
+ "capabilities",
122
+ "replaced",
123
+ "other_rpm_changes"
124
+ ]
125
+ },
126
+ "minItems": 1
127
+ },
128
+ "mode": {
129
+ "type": "string",
130
+ "pattern": "^[0-7]{3,4}$"
131
+ },
132
+ "user": {
133
+ "type": "string",
134
+ "minLength": 1
135
+ },
136
+ "group": {
137
+ "type": "string",
138
+ "minLength": 1
139
+ },
140
+ "type": {
141
+ "enum": ["link"]
142
+ },
143
+ "target": {
144
+ "type": "string"
145
+ }
146
+ }
147
+ },
148
+ "file_error": {
149
+ "required": ["status", "error_message"],
150
+ "properties": {
151
+ "status": {
152
+ "enum": ["error"]
153
+ },
154
+ "error_message": {
155
+ "type": "string"
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }