machinery-tool 1.12.0 → 1.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/NEWS +20 -0
- data/export_helpers/containerize_readme.md +28 -11
- data/html/comparison.html.haml +3 -3
- data/lib/build_task.rb +8 -6
- data/lib/cli.rb +69 -17
- data/lib/compare_task.rb +1 -1
- data/lib/config_base.rb +1 -1
- data/lib/config_task.rb +4 -1
- data/lib/containerize_task.rb +15 -1
- data/lib/containerized_app.rb +27 -0
- data/lib/hint.rb +18 -6
- data/lib/html.rb +17 -0
- data/lib/inspect_task.rb +6 -0
- data/lib/inspector.rb +2 -1
- data/lib/kiwi_config.rb +14 -1
- data/lib/logged_cheetah.rb +1 -20
- data/lib/machinery.rb +1 -0
- data/lib/remote_system.rb +2 -1
- data/lib/scope.rb +22 -2
- data/lib/serve_html_task.rb +1 -1
- data/lib/show_task.rb +1 -1
- data/lib/system.rb +6 -0
- data/lib/system_description.rb +4 -3
- data/lib/version.rb +1 -1
- data/lib/workload_mapper.rb +1 -0
- data/man/generated/machinery.1.gz +0 -0
- data/man/generated/machinery.1.html +16 -4
- data/plugins/changed_managed_files/schema/system-description-changed-managed-files.schema-v5.json +126 -0
- data/plugins/config_files/schema/system-description-config-files.schema-v5.json +126 -0
- data/plugins/environment/environment.md +1 -0
- data/plugins/environment/environment_inspector.rb +50 -0
- data/plugins/environment/environment_model.rb +22 -0
- data/plugins/environment/schema/system-description-environment.schema-v5.json +13 -0
- data/plugins/groups/schema/system-description-groups.schema-v5.json +30 -0
- data/plugins/os/os_model.rb +4 -0
- data/plugins/os/schema/system-description-os.schema-v5.json +21 -0
- data/plugins/packages/schema/system-description-packages.schema-v5.json +34 -0
- data/plugins/patterns/schema/system-description-patterns.schema-v5.json +24 -0
- data/plugins/repositories/schema/system-description-repositories.schema-v5.json +45 -0
- data/plugins/services/schema/system-description-services.schema-v5.json +30 -0
- data/plugins/unmanaged_files/schema/system-description-unmanaged-files.schema-v5.json +144 -0
- data/plugins/unmanaged_files/unmanaged_files_inspector.rb +45 -23
- data/plugins/users/schema/system-description-users.schema-v5.json +61 -0
- data/schema/migrations/migrate4to5.rb +28 -0
- data/schema/system-description-global.schema-v5.json +43 -0
- data/workload_mapper/docker-registry/clue.rb +14 -0
- data/workload_mapper/docker-registry/compose-template.yml +5 -0
- data/workload_mapper/docker-registry/container/Dockerfile +12 -0
- data/workload_mapper/mariadb/clue.rb +5 -0
- data/workload_mapper/mariadb/compose-template.yml +9 -0
- data/workload_mapper/mariadb/container/Dockerfile +13 -0
- data/workload_mapper/mariadb/container/scripts/config_mariadb.sh +49 -0
- data/workload_mapper/mariadb/container/scripts/start.sh +11 -0
- data/workload_mapper/rails/clue.rb +16 -0
- data/workload_mapper/rails/compose-template.yml +5 -0
- data/workload_mapper/rails/config/config/database.yml +7 -0
- data/workload_mapper/rails/container/Dockerfile +48 -0
- data/workload_mapper/rails/container/apache2/httpd.conf.local +5 -0
- data/workload_mapper/rails/container/apache2/listen.conf +1 -0
- data/workload_mapper/rails/container/apache2/rails_app_vhost.conf +13 -0
- data/workload_mapper/rails/container/apache2/sysconfig_apache2 +280 -0
- data/workload_mapper/rails/setup/setup.rb.erb +72 -0
- metadata +248 -214
@@ -0,0 +1,126 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "object",
|
5
|
+
"required": ["extracted", "files"],
|
6
|
+
"properties": {
|
7
|
+
"extracted": {
|
8
|
+
"type": "boolean"
|
9
|
+
},
|
10
|
+
"files": {
|
11
|
+
"type": "array",
|
12
|
+
"items" : {
|
13
|
+
"type": "object",
|
14
|
+
"required": ["name", "package_name", "package_version"],
|
15
|
+
"properties": {
|
16
|
+
"name": {
|
17
|
+
"type": "string"
|
18
|
+
},
|
19
|
+
"package_name": {
|
20
|
+
"type": "string",
|
21
|
+
"minLength": 1
|
22
|
+
},
|
23
|
+
"package_version": {
|
24
|
+
"type": "string",
|
25
|
+
"minLength": 1
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"oneOf": [
|
29
|
+
{ "$ref": "#/definitions/file_changed" },
|
30
|
+
{ "$ref": "#/definitions/file_error" }
|
31
|
+
]
|
32
|
+
}
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"definitions": {
|
36
|
+
"file_changed": {
|
37
|
+
"required": ["status"],
|
38
|
+
"properties": {
|
39
|
+
"status": {
|
40
|
+
"enum": ["changed"]
|
41
|
+
}
|
42
|
+
},
|
43
|
+
"oneOf": [
|
44
|
+
{ "$ref": "#/definitions/file_changed_modified" },
|
45
|
+
{ "$ref": "#/definitions/link_changed_modified" },
|
46
|
+
{ "$ref": "#/definitions/file_changed_deleted" }
|
47
|
+
]
|
48
|
+
},
|
49
|
+
"file_changed_modified": {
|
50
|
+
"required": ["changes", "mode", "user", "group", "type"],
|
51
|
+
"properties": {
|
52
|
+
"changes": {
|
53
|
+
"type": "array",
|
54
|
+
"items": {
|
55
|
+
"enum": ["size", "mode", "md5", "device_number", "link_path", "user", "group", "time", "capabilities", "replaced", "other_rpm_changes"]
|
56
|
+
},
|
57
|
+
"minItems": 1
|
58
|
+
},
|
59
|
+
"mode": {
|
60
|
+
"type": "string",
|
61
|
+
"pattern": "^[0-7]{3,4}$"
|
62
|
+
},
|
63
|
+
"user": {
|
64
|
+
"type": "string",
|
65
|
+
"minLength": 1
|
66
|
+
},
|
67
|
+
"group": {
|
68
|
+
"type": "string",
|
69
|
+
"minLength": 1
|
70
|
+
},
|
71
|
+
"type": {
|
72
|
+
"enum": ["file", "dir"]
|
73
|
+
}
|
74
|
+
}
|
75
|
+
},
|
76
|
+
"link_changed_modified": {
|
77
|
+
"required": ["target", "changes", "mode", "user", "group", "type"],
|
78
|
+
"properties": {
|
79
|
+
"changes": {
|
80
|
+
"type": "array",
|
81
|
+
"items": {
|
82
|
+
"enum": ["size", "mode", "md5", "device_number", "link_path", "user", "group", "time", "capabilities", "replaced", "other_rpm_changes"]
|
83
|
+
},
|
84
|
+
"minItems": 1
|
85
|
+
},
|
86
|
+
"mode": {
|
87
|
+
"type": "string",
|
88
|
+
"pattern": "^[0-7]{3,4}$"
|
89
|
+
},
|
90
|
+
"user": {
|
91
|
+
"type": "string",
|
92
|
+
"minLength": 1
|
93
|
+
},
|
94
|
+
"group": {
|
95
|
+
"type": "string",
|
96
|
+
"minLength": 1
|
97
|
+
},
|
98
|
+
"type": {
|
99
|
+
"enum": ["link"]
|
100
|
+
},
|
101
|
+
"target": {
|
102
|
+
"type": "string"
|
103
|
+
}
|
104
|
+
}
|
105
|
+
},
|
106
|
+
"file_changed_deleted": {
|
107
|
+
"required": ["changes"],
|
108
|
+
"properties": {
|
109
|
+
"changes": {
|
110
|
+
"enum": [["deleted"]]
|
111
|
+
}
|
112
|
+
}
|
113
|
+
},
|
114
|
+
"file_error": {
|
115
|
+
"required": ["status", "error_message"],
|
116
|
+
"properties": {
|
117
|
+
"status": {
|
118
|
+
"enum": ["error"]
|
119
|
+
},
|
120
|
+
"error_message": {
|
121
|
+
"type": "string"
|
122
|
+
}
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
Encapsulates information about the environment found on the inspected system.
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Copyright (c) 2013-2015 SUSE LLC
|
2
|
+
#
|
3
|
+
# This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of version 3 of the GNU General Public License as
|
5
|
+
# published by the Free Software Foundation.
|
6
|
+
#
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
#
|
12
|
+
# You should have received a copy of the GNU General Public License
|
13
|
+
# along with this program; if not, contact SUSE LLC.
|
14
|
+
#
|
15
|
+
# To contact SUSE about this file by physical or electronic mail,
|
16
|
+
# you may find current contact information at www.suse.com
|
17
|
+
|
18
|
+
class EnvironmentInspector < Inspector
|
19
|
+
has_priority 5
|
20
|
+
|
21
|
+
def initialize(system, description)
|
22
|
+
@system = system
|
23
|
+
@description = description
|
24
|
+
end
|
25
|
+
|
26
|
+
def inspect(_filter = nil, _options = {})
|
27
|
+
environment = EnvironmentScope.new
|
28
|
+
|
29
|
+
environment.locale = get_locale
|
30
|
+
|
31
|
+
@description.environment = environment
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
def get_locale
|
37
|
+
output = nil
|
38
|
+
begin
|
39
|
+
output = @system.run_command("locale", "-a", stdout: :capture)
|
40
|
+
output.encode!("UTF-16be", invalid: :replace, undef: :replace, replace: "?").encode!("UTF-8")
|
41
|
+
rescue
|
42
|
+
return "C"
|
43
|
+
end
|
44
|
+
|
45
|
+
all_locales = output.split
|
46
|
+
locale = ["en_US.utf8"].find { |l| all_locales.include?(l) }
|
47
|
+
|
48
|
+
locale || "C"
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Copyright (c) 2013-2015 SUSE LLC
|
2
|
+
#
|
3
|
+
# This program is free software; you can redistribute it and/or
|
4
|
+
# modify it under the terms of version 3 of the GNU General Public License as
|
5
|
+
# published by the Free Software Foundation.
|
6
|
+
#
|
7
|
+
# This program is distributed in the hope that it will be useful,
|
8
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
9
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
10
|
+
# GNU General Public License for more details.
|
11
|
+
#
|
12
|
+
# You should have received a copy of the GNU General Public License
|
13
|
+
# along with this program; if not, contact SUSE LLC.
|
14
|
+
#
|
15
|
+
# To contact SUSE about this file by physical or electronic mail,
|
16
|
+
# you may find current contact information at www.suse.com
|
17
|
+
|
18
|
+
class EnvironmentScope < Machinery::Object
|
19
|
+
include Machinery::Scope
|
20
|
+
|
21
|
+
hidden_scope
|
22
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "array",
|
5
|
+
"items": {
|
6
|
+
"type": "object",
|
7
|
+
"required": ["name", "password", "gid", "users"],
|
8
|
+
"properties": {
|
9
|
+
"name": {
|
10
|
+
"type": "string",
|
11
|
+
"minLength": 1
|
12
|
+
},
|
13
|
+
"password": {
|
14
|
+
"type": "string"
|
15
|
+
},
|
16
|
+
"gid": {
|
17
|
+
"type": ["integer", "null"],
|
18
|
+
"minimum": 0
|
19
|
+
},
|
20
|
+
"users": {
|
21
|
+
"type": "array",
|
22
|
+
"items": {
|
23
|
+
"type": "string",
|
24
|
+
"minLength": 1
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
data/plugins/os/os_model.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "object",
|
5
|
+
"required": ["name", "version", "architecture"],
|
6
|
+
"properties": {
|
7
|
+
"name": {
|
8
|
+
"type": ["string", "null"],
|
9
|
+
"minLength": 1
|
10
|
+
},
|
11
|
+
"version": {
|
12
|
+
"type": ["string", "null"],
|
13
|
+
"minLength": 1
|
14
|
+
},
|
15
|
+
"architecture": {
|
16
|
+
"type": ["string", "null"],
|
17
|
+
"minLength": 1
|
18
|
+
}
|
19
|
+
}
|
20
|
+
}
|
21
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "array",
|
5
|
+
"items": {
|
6
|
+
"type": "object",
|
7
|
+
"required": ["name", "version", "release", "arch", "vendor", "checksum"],
|
8
|
+
"properties": {
|
9
|
+
"name": {
|
10
|
+
"type": "string",
|
11
|
+
"minLength": 1
|
12
|
+
},
|
13
|
+
"version": {
|
14
|
+
"type": "string",
|
15
|
+
"minLength": 1
|
16
|
+
},
|
17
|
+
"release": {
|
18
|
+
"type": "string",
|
19
|
+
"minLength": 1
|
20
|
+
},
|
21
|
+
"arch": {
|
22
|
+
"type": "string",
|
23
|
+
"minLength": 1
|
24
|
+
},
|
25
|
+
"vendor": {
|
26
|
+
"type": "string"
|
27
|
+
},
|
28
|
+
"checksum": {
|
29
|
+
"type": "string",
|
30
|
+
"pattern": "^[a-f0-9]+$"
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "array",
|
5
|
+
"items" : {
|
6
|
+
"type" : "object",
|
7
|
+
"required": ["name", "version", "release"],
|
8
|
+
"properties": {
|
9
|
+
"name": {
|
10
|
+
"type": "string",
|
11
|
+
"minLength": 1
|
12
|
+
},
|
13
|
+
"version": {
|
14
|
+
"type": "string",
|
15
|
+
"minLength": 1
|
16
|
+
},
|
17
|
+
"release": {
|
18
|
+
"type": "string",
|
19
|
+
"minLength": 1
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "array",
|
5
|
+
"items" : {
|
6
|
+
"type" : "object",
|
7
|
+
"required": ["alias", "name", "url", "type", "enabled", "gpgcheck", "package_manager"],
|
8
|
+
"properties": {
|
9
|
+
"alias": {
|
10
|
+
"type": "string",
|
11
|
+
"minLength": 1
|
12
|
+
},
|
13
|
+
"name": {
|
14
|
+
"type": "string",
|
15
|
+
"minLength": 1
|
16
|
+
},
|
17
|
+
"type": {
|
18
|
+
"enum": ["yast2", "rpm-md", "plaindir", null]
|
19
|
+
},
|
20
|
+
"url": {
|
21
|
+
"type": "string",
|
22
|
+
"format": "uri",
|
23
|
+
"minLength": 1
|
24
|
+
},
|
25
|
+
"enabled": {
|
26
|
+
"type": "boolean"
|
27
|
+
},
|
28
|
+
"autorefresh": {
|
29
|
+
"type": "boolean"
|
30
|
+
},
|
31
|
+
"gpgcheck": {
|
32
|
+
"type": "boolean"
|
33
|
+
},
|
34
|
+
"priority": {
|
35
|
+
"type": "integer",
|
36
|
+
"minimum": 1
|
37
|
+
},
|
38
|
+
"package_manager": {
|
39
|
+
"type": "string",
|
40
|
+
"minLength": 1
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "object",
|
5
|
+
"required": ["init_system", "services"],
|
6
|
+
"properties": {
|
7
|
+
"init_system": {
|
8
|
+
"type": "string",
|
9
|
+
"minLength": 1
|
10
|
+
},
|
11
|
+
"services": {
|
12
|
+
"type": "array",
|
13
|
+
"items": {
|
14
|
+
"type": "object",
|
15
|
+
"required": ["name", "state"],
|
16
|
+
"properties": {
|
17
|
+
"name": {
|
18
|
+
"type": "string",
|
19
|
+
"minLength": 1
|
20
|
+
},
|
21
|
+
"state": {
|
22
|
+
"type": "string",
|
23
|
+
"minLength": 1
|
24
|
+
}
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
@@ -0,0 +1,144 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/draft-04/schema#",
|
3
|
+
|
4
|
+
"type": "object",
|
5
|
+
"required": ["extracted", "files"],
|
6
|
+
"properties": {
|
7
|
+
"extracted": {
|
8
|
+
"type": "boolean"
|
9
|
+
},
|
10
|
+
"files": {
|
11
|
+
"oneOf": [
|
12
|
+
{
|
13
|
+
"type": "array",
|
14
|
+
"maxItems": 0
|
15
|
+
},
|
16
|
+
{
|
17
|
+
"type": "array",
|
18
|
+
"minItems": 1,
|
19
|
+
"items": {
|
20
|
+
"anyOf": [
|
21
|
+
{ "$ref": "#/definitions/file_extracted" },
|
22
|
+
{ "$ref": "#/definitions/file_remote_dir" }
|
23
|
+
]
|
24
|
+
}
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"type": "array",
|
28
|
+
"minItems": 1,
|
29
|
+
"items": {
|
30
|
+
"anyOf": [
|
31
|
+
{ "$ref": "#/definitions/file_not_extracted" },
|
32
|
+
{ "$ref": "#/definitions/file_remote_dir" }
|
33
|
+
]
|
34
|
+
}
|
35
|
+
}
|
36
|
+
]
|
37
|
+
}
|
38
|
+
},
|
39
|
+
"definitions": {
|
40
|
+
"file_common": {
|
41
|
+
"type": "object",
|
42
|
+
"required": ["name"],
|
43
|
+
"properties": {
|
44
|
+
"name": {
|
45
|
+
"type": "string"
|
46
|
+
}
|
47
|
+
}
|
48
|
+
},
|
49
|
+
"file_not_extracted": {
|
50
|
+
"allOf": [
|
51
|
+
{ "$ref": "#/definitions/file_common" },
|
52
|
+
{
|
53
|
+
"required": ["type"],
|
54
|
+
"properties": {
|
55
|
+
"type": {
|
56
|
+
"enum": ["file", "dir", "link", "remote_dir"]
|
57
|
+
}
|
58
|
+
},
|
59
|
+
"not": { "$ref": "#/definitions/file_extracted" }
|
60
|
+
}
|
61
|
+
]
|
62
|
+
},
|
63
|
+
"file_extracted": {
|
64
|
+
"allOf": [
|
65
|
+
{ "$ref": "#/definitions/file_common" },
|
66
|
+
{
|
67
|
+
"required": ["user", "group"],
|
68
|
+
"properties": {
|
69
|
+
"user": {
|
70
|
+
"type": "string",
|
71
|
+
"minLength": 1
|
72
|
+
},
|
73
|
+
"group": {
|
74
|
+
"type": "string",
|
75
|
+
"minLength": 1
|
76
|
+
}
|
77
|
+
},
|
78
|
+
"oneOf": [
|
79
|
+
{ "$ref": "#/definitions/file_extracted_file" },
|
80
|
+
{ "$ref": "#/definitions/file_extracted_dir" },
|
81
|
+
{ "$ref": "#/definitions/file_extracted_link" }
|
82
|
+
]
|
83
|
+
}
|
84
|
+
]
|
85
|
+
},
|
86
|
+
"file_extracted_file": {
|
87
|
+
"required": ["type", "size", "mode"],
|
88
|
+
"properties": {
|
89
|
+
"type": {
|
90
|
+
"enum": ["file"]
|
91
|
+
},
|
92
|
+
"size": {
|
93
|
+
"type": "integer",
|
94
|
+
"minimum": 0
|
95
|
+
},
|
96
|
+
"mode": {
|
97
|
+
"type": "string",
|
98
|
+
"pattern": "^[0-7]{3,4}$"
|
99
|
+
}
|
100
|
+
}
|
101
|
+
},
|
102
|
+
"file_extracted_dir": {
|
103
|
+
"required": ["type", "size", "mode", "files"],
|
104
|
+
"properties": {
|
105
|
+
"type": {
|
106
|
+
"enum": ["dir"]
|
107
|
+
},
|
108
|
+
"size": {
|
109
|
+
"type": "integer",
|
110
|
+
"minimum": 0
|
111
|
+
},
|
112
|
+
"mode": {
|
113
|
+
"type": "string",
|
114
|
+
"pattern": "^[0-4]?[0-7]{3}$"
|
115
|
+
},
|
116
|
+
"files": {
|
117
|
+
"type": "integer",
|
118
|
+
"minimum": 1
|
119
|
+
}
|
120
|
+
}
|
121
|
+
},
|
122
|
+
"file_extracted_link": {
|
123
|
+
"required": ["type"],
|
124
|
+
"properties": {
|
125
|
+
"type": {
|
126
|
+
"enum": ["link"]
|
127
|
+
}
|
128
|
+
}
|
129
|
+
},
|
130
|
+
"file_remote_dir": {
|
131
|
+
"allOf": [
|
132
|
+
{ "$ref": "#/definitions/file_common" },
|
133
|
+
{
|
134
|
+
"required": ["type"],
|
135
|
+
"properties": {
|
136
|
+
"type": {
|
137
|
+
"enum": ["remote_dir"]
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
]
|
142
|
+
}
|
143
|
+
}
|
144
|
+
}
|