machinery-tool 1.17.0 → 1.18.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) hide show
  1. checksums.yaml +4 -4
  2. data/.git_revision +1 -1
  3. data/NEWS +17 -1
  4. data/bin/machinery +1 -1
  5. data/export_helpers/merge_users_and_groups.pl.erb +1 -1
  6. data/html/comparison.html.haml +14 -9
  7. data/html/index.html.haml +5 -2
  8. data/html/landing_page.html.haml +4 -1
  9. data/html/partials/changed_managed_files.html.haml +2 -0
  10. data/html/partials/compare/alert.html.haml +1 -1
  11. data/html/partials/compare/unmanaged_file_list.html.haml +12 -0
  12. data/html/partials/config_files.html.haml +2 -0
  13. data/html/partials/landing_page/alert.html.haml +1 -1
  14. data/html/partials/unmanaged_files.html.haml +14 -0
  15. data/inspect_helpers/changed_files.sh +1 -1
  16. data/inspect_helpers/dpkg_unmanaged_files.sh +1 -1
  17. data/inspect_helpers/yum_repositories.py +1 -1
  18. data/lib/analyze_config_file_diffs_task.rb +1 -1
  19. data/lib/array.rb +1 -1
  20. data/lib/autoyast.rb +34 -34
  21. data/lib/build_task.rb +1 -1
  22. data/lib/cli.rb +21 -6
  23. data/lib/compare_task.rb +1 -1
  24. data/lib/comparison.rb +1 -1
  25. data/lib/config.rb +1 -1
  26. data/lib/config_base.rb +1 -1
  27. data/lib/config_task.rb +1 -1
  28. data/lib/constants.rb +2 -2
  29. data/lib/containerize_task.rb +1 -1
  30. data/lib/containerized_app.rb +1 -1
  31. data/lib/copy_task.rb +1 -1
  32. data/lib/current_user.rb +1 -1
  33. data/lib/deploy_task.rb +1 -1
  34. data/lib/docker_system.rb +4 -5
  35. data/lib/dpkg_database.rb +2 -2
  36. data/lib/element_filter.rb +1 -1
  37. data/lib/exceptions.rb +2 -2
  38. data/lib/export_task.rb +1 -1
  39. data/lib/exporter.rb +1 -1
  40. data/lib/file_diff.rb +1 -1
  41. data/lib/file_scope.rb +1 -1
  42. data/lib/file_validator.rb +1 -1
  43. data/lib/filter.rb +1 -1
  44. data/lib/filter_option_parser.rb +1 -1
  45. data/lib/helper.rb +1 -1
  46. data/lib/hint.rb +1 -1
  47. data/lib/html.rb +1 -1
  48. data/lib/inspect_task.rb +1 -1
  49. data/lib/inspector.rb +1 -1
  50. data/lib/json_schema_monkey_patch.rb +35 -0
  51. data/lib/json_validation_error_cleaner.rb +1 -1
  52. data/lib/json_validator.rb +1 -1
  53. data/lib/kiwi_config.rb +69 -67
  54. data/lib/list_task.rb +1 -1
  55. data/lib/local_system.rb +1 -1
  56. data/lib/logged_cheetah.rb +1 -1
  57. data/lib/machinery.rb +6 -2
  58. data/lib/machinery_helper.rb +28 -8
  59. data/lib/machinery_logger.rb +1 -1
  60. data/lib/man_task.rb +50 -5
  61. data/lib/managed_files_database.rb +24 -17
  62. data/lib/manifest.rb +3 -2
  63. data/lib/migration.rb +1 -1
  64. data/lib/mountpoints.rb +1 -1
  65. data/lib/move_task.rb +1 -1
  66. data/lib/object.rb +1 -1
  67. data/lib/remote_system.rb +2 -2
  68. data/lib/remove_task.rb +1 -1
  69. data/lib/renderer.rb +1 -1
  70. data/lib/renderer_helper.rb +1 -1
  71. data/lib/rpm.rb +1 -1
  72. data/lib/rpm_database.rb +1 -1
  73. data/lib/scope.rb +1 -1
  74. data/lib/scope_file_store.rb +1 -1
  75. data/lib/serve_html_task.rb +1 -1
  76. data/lib/server.rb +32 -2
  77. data/lib/show_task.rb +1 -1
  78. data/lib/system.rb +1 -1
  79. data/lib/system_description.rb +2 -2
  80. data/lib/system_description_memory_store.rb +1 -1
  81. data/lib/system_description_store.rb +1 -1
  82. data/lib/system_file.rb +1 -1
  83. data/lib/tarball.rb +1 -1
  84. data/lib/tee_io.rb +39 -0
  85. data/lib/try.rb +1 -1
  86. data/lib/ui.rb +1 -1
  87. data/lib/upgrade_format_task.rb +1 -1
  88. data/lib/validate_task.rb +1 -1
  89. data/lib/version.rb +2 -2
  90. data/lib/workload_mapper.rb +1 -1
  91. data/lib/workload_mapper_dsl.rb +1 -1
  92. data/lib/zypper.rb +3 -3
  93. data/machinery-helper/Rakefile +2 -8
  94. data/machinery-helper/file_utils.go +28 -0
  95. data/machinery-helper/file_utils_test.go +21 -0
  96. data/machinery-helper/machinery_helper.go +121 -8
  97. data/machinery-helper/machinery_helper_test.go +102 -0
  98. data/machinery-helper/mountpoints_test.go +33 -33
  99. data/machinery-helper/version.go +1 -1
  100. data/man/generated/machinery.1.gz +0 -0
  101. data/manual/custom_theme/base.html +42 -0
  102. data/manual/docs/CNAME +1 -0
  103. data/manual/docs/README.md +128 -0
  104. data/manual/docs/css/bootstrap.min.css +7 -0
  105. data/manual/docs/css/custom.css +788 -0
  106. data/manual/docs/css/fixed-positioning.css +45 -0
  107. data/manual/docs/custom.css +804 -0
  108. data/manual/docs/docs.md +7 -0
  109. data/manual/docs/favicon.png +0 -0
  110. data/manual/docs/hand3.png +0 -0
  111. data/manual/docs/img/arrow.png +0 -0
  112. data/manual/docs/img/background/1.png +0 -0
  113. data/manual/docs/img/background/2.png +0 -0
  114. data/manual/docs/img/background/3.png +0 -0
  115. data/manual/docs/img/background/4.png +0 -0
  116. data/manual/docs/img/background/5.png +0 -0
  117. data/manual/docs/img/background/6.png +0 -0
  118. data/manual/docs/img/background/7.png +0 -0
  119. data/manual/docs/img/bk-cloud.png +0 -0
  120. data/manual/docs/img/bk-sec-15.png +0 -0
  121. data/manual/docs/img/book.png +0 -0
  122. data/manual/docs/img/configuration-discovery.png +0 -0
  123. data/manual/docs/img/dot-line-left.png +0 -0
  124. data/manual/docs/img/dot-line-right.png +0 -0
  125. data/manual/docs/img/gear.png +0 -0
  126. data/manual/docs/img/gear2.png +0 -0
  127. data/manual/docs/img/gear3.png +0 -0
  128. data/manual/docs/img/hand.png +0 -0
  129. data/manual/docs/img/hand2.png +0 -0
  130. data/manual/docs/img/hand3.png +0 -0
  131. data/manual/docs/img/home2.png +0 -0
  132. data/manual/docs/img/moustache.png +0 -0
  133. data/manual/docs/img/navig.png +0 -0
  134. data/manual/docs/img/philo.png +0 -0
  135. data/manual/docs/img/service-migration.png +0 -0
  136. data/manual/docs/img/system-validation.png +0 -0
  137. data/manual/docs/img/ticket2.png +0 -0
  138. data/manual/docs/img/usecase-default.png +0 -0
  139. data/manual/docs/img/usecase1.png +0 -0
  140. data/manual/docs/img/usecase2.png +0 -0
  141. data/manual/docs/img/usecase3.png +0 -0
  142. data/manual/docs/img/usecase4.png +0 -0
  143. data/manual/docs/img/wheels.png +0 -0
  144. data/manual/docs/index.html +402 -0
  145. data/manual/docs/js/bootstrap.min.js +6 -0
  146. data/manual/docs/js/custom.js +148 -0
  147. data/manual/docs/js/jquery.js +4 -0
  148. data/manual/docs/js/jquery.nicescroll.min.js +116 -0
  149. data/manual/docs/js/jquery.pageslide.min.js +11 -0
  150. data/manual/docs/js/parallaxImg.js +146 -0
  151. data/manual/docs/js/skrollr.min.js +2 -0
  152. data/manual/docs/machinery-analyze.1.md +37 -0
  153. data/manual/docs/machinery-build.1.md +62 -0
  154. data/manual/docs/machinery-compare.1.md +63 -0
  155. data/manual/docs/machinery-config.1.md +45 -0
  156. data/manual/docs/machinery-copy.1.md +31 -0
  157. data/manual/docs/machinery-deploy.1.md +71 -0
  158. data/manual/docs/machinery-export-autoyast.1.md +58 -0
  159. data/manual/docs/machinery-export-kiwi.1.md +38 -0
  160. data/manual/docs/machinery-inspect-docker.1.md +108 -0
  161. data/manual/docs/machinery-inspect.1.md +145 -0
  162. data/manual/docs/machinery-list.1.md +51 -0
  163. data/manual/docs/machinery-man.1.md +16 -0
  164. data/manual/docs/machinery-move.1.md +29 -0
  165. data/manual/docs/machinery-remove.1.md +44 -0
  166. data/manual/docs/machinery-serve.1.md +45 -0
  167. data/manual/docs/machinery-show.1.md +63 -0
  168. data/manual/docs/machinery-upgrade-format.1.md +47 -0
  169. data/manual/docs/machinery-validate.1.md +34 -0
  170. data/manual/docs/machinery.ymp +114 -0
  171. data/manual/docs/machinery_main_general.1.md +139 -0
  172. data/manual/docs/machinery_main_scopes.1.md +98 -0
  173. data/manual/docs/machinery_main_usecases.1.md +49 -0
  174. data/manual/docs/machinery_security_implications.1.md +89 -0
  175. data/manual/docs/subcommand-template.1.md +46 -0
  176. data/manual/docs/wheels.png +0 -0
  177. data/manual/mkdocs.yml +30 -0
  178. data/manual/site/CNAME +1 -0
  179. data/manual/site/base.html +42 -0
  180. data/manual/site/css/bootstrap.min.css +7 -0
  181. data/manual/site/css/custom.css +788 -0
  182. data/manual/site/css/fixed-positioning.css +45 -0
  183. data/manual/site/custom.css +804 -0
  184. data/manual/site/docs/index.html +144 -0
  185. data/manual/site/favicon.png +0 -0
  186. data/manual/site/hand3.png +0 -0
  187. data/manual/site/img/arrow.png +0 -0
  188. data/manual/site/img/background/1.png +0 -0
  189. data/manual/site/img/background/2.png +0 -0
  190. data/manual/site/img/background/3.png +0 -0
  191. data/manual/site/img/background/4.png +0 -0
  192. data/manual/site/img/background/5.png +0 -0
  193. data/manual/site/img/background/6.png +0 -0
  194. data/manual/site/img/background/7.png +0 -0
  195. data/manual/site/img/bk-cloud.png +0 -0
  196. data/manual/site/img/bk-sec-15.png +0 -0
  197. data/manual/site/img/book.png +0 -0
  198. data/manual/site/img/configuration-discovery.png +0 -0
  199. data/manual/site/img/dot-line-left.png +0 -0
  200. data/manual/site/img/dot-line-right.png +0 -0
  201. data/manual/site/img/gear.png +0 -0
  202. data/manual/site/img/gear2.png +0 -0
  203. data/manual/site/img/gear3.png +0 -0
  204. data/manual/site/img/hand.png +0 -0
  205. data/manual/site/img/hand2.png +0 -0
  206. data/manual/site/img/hand3.png +0 -0
  207. data/manual/site/img/home2.png +0 -0
  208. data/manual/site/img/moustache.png +0 -0
  209. data/manual/site/img/navig.png +0 -0
  210. data/manual/site/img/philo.png +0 -0
  211. data/manual/site/img/service-migration.png +0 -0
  212. data/manual/site/img/system-validation.png +0 -0
  213. data/manual/site/img/ticket2.png +0 -0
  214. data/manual/site/img/usecase-default.png +0 -0
  215. data/manual/site/img/usecase1.png +0 -0
  216. data/manual/site/img/usecase2.png +0 -0
  217. data/manual/site/img/usecase3.png +0 -0
  218. data/manual/site/img/usecase4.png +0 -0
  219. data/manual/site/img/wheels.png +0 -0
  220. data/manual/site/index.html +402 -0
  221. data/manual/site/js/bootstrap.min.js +6 -0
  222. data/manual/site/js/custom.js +148 -0
  223. data/manual/site/js/jquery.js +4 -0
  224. data/manual/site/js/jquery.nicescroll.min.js +116 -0
  225. data/manual/site/js/jquery.pageslide.min.js +11 -0
  226. data/manual/site/js/parallaxImg.js +146 -0
  227. data/manual/site/js/skrollr.min.js +2 -0
  228. data/manual/site/machinery-analyze.1/index.html +167 -0
  229. data/manual/site/machinery-build.1/index.html +198 -0
  230. data/manual/site/machinery-compare.1/index.html +200 -0
  231. data/manual/site/machinery-config.1/index.html +175 -0
  232. data/manual/site/machinery-copy.1/index.html +164 -0
  233. data/manual/site/machinery-deploy.1/index.html +200 -0
  234. data/manual/site/machinery-export-autoyast.1/index.html +188 -0
  235. data/manual/site/machinery-export-kiwi.1/index.html +169 -0
  236. data/manual/site/machinery-inspect-docker.1/index.html +242 -0
  237. data/manual/site/machinery-inspect.1/index.html +283 -0
  238. data/manual/site/machinery-list.1/index.html +180 -0
  239. data/manual/site/machinery-man.1/index.html +148 -0
  240. data/manual/site/machinery-move.1/index.html +162 -0
  241. data/manual/site/machinery-remove.1/index.html +175 -0
  242. data/manual/site/machinery-serve.1/index.html +174 -0
  243. data/manual/site/machinery-show.1/index.html +199 -0
  244. data/manual/site/machinery-upgrade-format.1/index.html +173 -0
  245. data/manual/site/machinery-validate.1/index.html +161 -0
  246. data/manual/site/machinery.ymp +114 -0
  247. data/manual/site/machinery_main_general.1/index.html +260 -0
  248. data/manual/site/machinery_main_scopes.1/index.html +242 -0
  249. data/manual/site/machinery_main_usecases.1/index.html +182 -0
  250. data/manual/site/machinery_security_implications.1/index.html +223 -0
  251. data/manual/site/mkdocs/js/lunr-0.5.7.min.js +7 -0
  252. data/manual/site/mkdocs/js/mustache.min.js +1 -0
  253. data/manual/site/mkdocs/js/require.js +36 -0
  254. data/manual/site/mkdocs/js/search-results-template.mustache +4 -0
  255. data/manual/site/mkdocs/js/search.js +88 -0
  256. data/manual/site/mkdocs/js/text.js +390 -0
  257. data/manual/site/mkdocs/search_index.json +824 -0
  258. data/manual/site/sitemap.xml +152 -0
  259. data/manual/site/wheels.png +0 -0
  260. data/plugins/changed_managed_files/changed_managed_files_inspector.rb +1 -1
  261. data/plugins/changed_managed_files/changed_managed_files_model.rb +1 -1
  262. data/plugins/changed_managed_files/changed_managed_files_renderer.rb +1 -1
  263. data/plugins/changed_managed_files/schema/system-description-changed-managed-files.schema-v7.json +160 -0
  264. data/plugins/config_files/config_files_inspector.rb +1 -1
  265. data/plugins/config_files/config_files_model.rb +1 -1
  266. data/plugins/config_files/config_files_renderer.rb +1 -1
  267. data/plugins/config_files/schema/system-description-config-files.schema-v7.json +160 -0
  268. data/plugins/environment/environment_inspector.rb +1 -1
  269. data/plugins/environment/environment_model.rb +1 -1
  270. data/plugins/environment/schema/system-description-environment.schema-v7.json +17 -0
  271. data/plugins/groups/groups_inspector.rb +1 -1
  272. data/plugins/groups/groups_model.rb +1 -1
  273. data/plugins/groups/groups_renderer.rb +1 -1
  274. data/plugins/groups/schema/system-description-groups.schema-v7.json +49 -0
  275. data/plugins/os/os_inspector.rb +1 -1
  276. data/plugins/os/os_model.rb +1 -1
  277. data/plugins/os/os_renderer.rb +1 -1
  278. data/plugins/os/schema/system-description-os.schema-v7.json +21 -0
  279. data/plugins/packages/packages_inspector.rb +1 -1
  280. data/plugins/packages/packages_model.rb +1 -1
  281. data/plugins/packages/packages_renderer.rb +1 -1
  282. data/plugins/packages/schema/system-description-packages.schema-v7.json +115 -0
  283. data/plugins/patterns/patterns_inspector.rb +6 -6
  284. data/plugins/patterns/patterns_model.rb +1 -1
  285. data/plugins/patterns/patterns_renderer.rb +1 -1
  286. data/plugins/patterns/schema/system-description-patterns.schema-v7.json +58 -0
  287. data/plugins/repositories/repositories_inspector.rb +16 -16
  288. data/plugins/repositories/repositories_model.rb +1 -1
  289. data/plugins/repositories/repositories_renderer.rb +1 -1
  290. data/plugins/repositories/schema/system-description-repositories.schema-v7.json +165 -0
  291. data/plugins/services/schema/system-description-services.schema-v7.json +93 -0
  292. data/plugins/services/services_inspector.rb +1 -1
  293. data/plugins/services/services_model.rb +1 -1
  294. data/plugins/services/services_renderer.rb +1 -1
  295. data/plugins/unmanaged_files/schema/system-description-unmanaged-files.schema-v6.json +19 -61
  296. data/plugins/unmanaged_files/schema/system-description-unmanaged-files.schema-v7.json +124 -0
  297. data/plugins/unmanaged_files/unmanaged_files_inspector.rb +21 -436
  298. data/plugins/unmanaged_files/unmanaged_files_model.rb +2 -2
  299. data/plugins/unmanaged_files/unmanaged_files_renderer.rb +2 -2
  300. data/plugins/users/schema/system-description-users.schema-v7.json +86 -0
  301. data/plugins/users/users_inspector.rb +1 -1
  302. data/plugins/users/users_model.rb +1 -1
  303. data/plugins/users/users_renderer.rb +1 -1
  304. data/schema/migrations/migrate1to2.rb +1 -1
  305. data/schema/migrations/migrate6to7.rb +38 -0
  306. data/schema/system-description-global.schema-v7.json +43 -0
  307. data/tools/go.rb +92 -0
  308. data/tools/helper_builder.rb +16 -49
  309. metadata +182 -6
  310. data/man/generated/machinery.1.html +0 -1399
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2015 SUSE LLC
1
+ # Copyright (c) 2013-2016 SUSE LLC
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or
4
4
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2015 SUSE LLC
1
+ # Copyright (c) 2013-2016 SUSE LLC
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or
4
4
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -0,0 +1,165 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+ "type": "object",
4
+ "required": [
5
+ "_elements"
6
+ ],
7
+ "oneOf": [
8
+ {
9
+ "properties": {
10
+ "_attributes": {
11
+ "type": "object",
12
+ "required": [
13
+ "repository_system"
14
+ ],
15
+ "properties": {
16
+ "repository_system": {
17
+ "enum": ["zypp"]
18
+ }
19
+ }
20
+ },
21
+ "_elements": {
22
+ "type": "array",
23
+ "items": {
24
+ "type": "object",
25
+ "required": ["alias", "name", "url", "type", "enabled", "gpgcheck", "autorefresh", "priority"],
26
+ "properties": {
27
+ "alias": {
28
+ "type": "string",
29
+ "minLength": 1
30
+ },
31
+ "name": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "type": {
36
+ "enum": ["yast2", "rpm-md", "plaindir", null]
37
+ },
38
+ "url": {
39
+ "type": "string",
40
+ "format": "uri",
41
+ "minLength": 1
42
+ },
43
+ "enabled": {
44
+ "type": "boolean"
45
+ },
46
+ "autorefresh": {
47
+ "type": "boolean"
48
+ },
49
+ "gpgcheck": {
50
+ "type": "boolean"
51
+ },
52
+ "priority": {
53
+ "type": "integer",
54
+ "minimum": 1
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ },
61
+ {
62
+ "properties": {
63
+ "_attributes": {
64
+ "type": "object",
65
+ "required": [
66
+ "repository_system"
67
+ ],
68
+ "properties": {
69
+ "repository_system": {
70
+ "enum": ["yum"]
71
+ }
72
+ }
73
+ },
74
+ "_elements": {
75
+ "type": "array",
76
+ "items": {
77
+ "type": "object",
78
+ "required": ["alias", "name", "url", "type", "enabled", "gpgcheck", "gpgkey", "mirrorlist"],
79
+ "properties": {
80
+ "alias": {
81
+ "type": "string",
82
+ "minLength": 1
83
+ },
84
+ "mirrorlist": {
85
+ "type": "string"
86
+ },
87
+ "name": {
88
+ "type": "string",
89
+ "minLength": 1
90
+ },
91
+ "type": {
92
+ "enum": ["rpm-md", null]
93
+ },
94
+ "url": {
95
+ "type": "array",
96
+ "items": {
97
+ "type": "string",
98
+ "format": "url",
99
+ "minLength": 1
100
+ }
101
+ },
102
+ "enabled": {
103
+ "type": "boolean"
104
+ },
105
+ "gpgcheck": {
106
+ "type": "boolean"
107
+ },
108
+ "gpgkey": {
109
+ "type": "array",
110
+ "items": {
111
+ "type": "string",
112
+ "format": "url",
113
+ "minLength": 1
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ },
121
+ {
122
+ "properties": {
123
+ "_attributes": {
124
+ "type": "object",
125
+ "required": [
126
+ "repository_system"
127
+ ],
128
+ "properties": {
129
+ "repository_system": {
130
+ "enum": ["apt"]
131
+ }
132
+ }
133
+ },
134
+ "_elements": {
135
+ "type": "array",
136
+ "items": {
137
+ "type": "object",
138
+ "required": ["url", "type", "distribution", "components"],
139
+ "properties": {
140
+ "distribution": {
141
+ "type": "string",
142
+ "minLength": 1
143
+ },
144
+ "type": {
145
+ "enum": ["deb", "deb-src"]
146
+ },
147
+ "url": {
148
+ "type": "string",
149
+ "format": "uri",
150
+ "minLength": 1
151
+ },
152
+ "components": {
153
+ "type": "array",
154
+ "items": {
155
+ "type": "string",
156
+ "minLength": 1
157
+ }
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ }
164
+ ]
165
+ }
@@ -0,0 +1,93 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-04/schema#",
3
+
4
+ "type": "object",
5
+ "required": [
6
+ "_elements"
7
+ ],
8
+ "oneOf": [
9
+ {
10
+ "properties": {
11
+ "_attributes": {
12
+ "type": "object",
13
+ "required": [
14
+ "init_system"
15
+ ],
16
+ "properties": {
17
+ "init_system": {
18
+ "not": {
19
+ "enum": [
20
+ "upstart"
21
+ ]
22
+ },
23
+ "type": "string",
24
+ "minLength": 1
25
+ }
26
+ }
27
+ },
28
+ "_elements": {
29
+ "type": "array",
30
+ "items": {
31
+ "type": "object",
32
+ "required": [
33
+ "name",
34
+ "state"
35
+ ],
36
+ "properties": {
37
+ "name": {
38
+ "type": "string",
39
+ "minLength": 1
40
+ },
41
+ "state": {
42
+ "type": "string",
43
+ "minLength": 1
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+ },
50
+ {
51
+ "properties": {
52
+ "_attributes": {
53
+ "type": "object",
54
+ "required": [
55
+ "init_system"
56
+ ],
57
+ "properties": {
58
+ "init_system": {
59
+ "enum": [
60
+ "upstart"
61
+ ]
62
+ }
63
+ }
64
+ },
65
+ "_elements": {
66
+ "type": "array",
67
+ "items": {
68
+ "type": "object",
69
+ "required": [
70
+ "name",
71
+ "state",
72
+ "legacy_sysv"
73
+ ],
74
+ "properties": {
75
+ "name": {
76
+ "type": "string",
77
+ "minLength": 1
78
+ },
79
+ "state": {
80
+ "type": "string",
81
+ "minLength": 1
82
+ },
83
+ "legacy_sysv": {
84
+ "type": "boolean"
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ ]
92
+ }
93
+
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2015 SUSE LLC
1
+ # Copyright (c) 2013-2016 SUSE LLC
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or
4
4
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2015 SUSE LLC
1
+ # Copyright (c) 2013-2016 SUSE LLC
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or
4
4
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2015 SUSE LLC
1
+ # Copyright (c) 2013-2016 SUSE LLC
2
2
  #
3
3
  # This program is free software; you can redistribute it and/or
4
4
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -18,71 +18,33 @@
18
18
  }
19
19
  },
20
20
  "_elements": {
21
- "oneOf": [
22
- {
23
- "type": "array",
24
- "maxItems": 0
25
- },
26
- {
27
- "type": "array",
28
- "minItems": 1,
29
- "items": {
30
- "anyOf": [
31
- {
32
- "$ref": "#/definitions/file_extracted"
33
- },
34
- {
35
- "$ref": "#/definitions/file_remote_dir"
36
- }
37
- ]
38
- }
39
- },
40
- {
41
- "type": "array",
42
- "minItems": 1,
43
- "items": {
44
- "anyOf": [
45
- {
46
- "$ref": "#/definitions/file_not_extracted"
47
- },
48
- {
49
- "$ref": "#/definitions/file_remote_dir"
50
- }
51
- ]
21
+ "type": "array",
22
+ "items": {
23
+ "anyOf": [
24
+ {
25
+ "$ref": "#/definitions/file"
26
+ },
27
+ {
28
+ "$ref": "#/definitions/file_remote_dir"
52
29
  }
53
- }
54
- ]
30
+ ]
31
+ }
55
32
  }
56
33
  },
57
34
  "definitions": {
58
35
  "file_common": {
59
36
  "type": "object",
60
- "required": ["name"],
37
+ "required": ["name", "type"],
61
38
  "properties": {
62
39
  "name": {
63
40
  "type": "string"
64
41
  }
65
42
  }
66
43
  },
67
- "file_not_extracted": {
44
+ "file": {
68
45
  "allOf": [
69
46
  { "$ref": "#/definitions/file_common" },
70
47
  {
71
- "required": ["type"],
72
- "properties": {
73
- "type": {
74
- "enum": ["file", "dir", "link", "remote_dir"]
75
- }
76
- },
77
- "not": { "$ref": "#/definitions/file_extracted" }
78
- }
79
- ]
80
- },
81
- "file_extracted": {
82
- "allOf": [
83
- { "$ref": "#/definitions/file_common" },
84
- {
85
- "required": ["user", "group"],
86
48
  "properties": {
87
49
  "user": {
88
50
  "type": "string",
@@ -94,15 +56,14 @@
94
56
  }
95
57
  },
96
58
  "oneOf": [
97
- { "$ref": "#/definitions/file_extracted_file" },
98
- { "$ref": "#/definitions/file_extracted_dir" },
99
- { "$ref": "#/definitions/file_extracted_link" }
59
+ { "$ref": "#/definitions/file_file" },
60
+ { "$ref": "#/definitions/file_dir" },
61
+ { "$ref": "#/definitions/file_link" }
100
62
  ]
101
63
  }
102
64
  ]
103
65
  },
104
- "file_extracted_file": {
105
- "required": ["type", "size", "mode"],
66
+ "file_file": {
106
67
  "properties": {
107
68
  "type": {
108
69
  "enum": ["file"]
@@ -117,8 +78,7 @@
117
78
  }
118
79
  }
119
80
  },
120
- "file_extracted_dir": {
121
- "required": ["type", "size", "mode", "files"],
81
+ "file_dir": {
122
82
  "properties": {
123
83
  "type": {
124
84
  "enum": ["dir"]
@@ -133,12 +93,11 @@
133
93
  },
134
94
  "files": {
135
95
  "type": "integer",
136
- "minimum": 1
96
+ "minimum": 0
137
97
  }
138
98
  }
139
99
  },
140
- "file_extracted_link": {
141
- "required": ["type"],
100
+ "file_link": {
142
101
  "properties": {
143
102
  "type": {
144
103
  "enum": ["link"]
@@ -149,7 +108,6 @@
149
108
  "allOf": [
150
109
  { "$ref": "#/definitions/file_common" },
151
110
  {
152
- "required": ["type"],
153
111
  "properties": {
154
112
  "type": {
155
113
  "enum": ["remote_dir"]
@@ -0,0 +1,124 @@
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
+ "has_metadata"
14
+ ],
15
+ "properties": {
16
+ "extracted": {
17
+ "type": "boolean"
18
+ },
19
+ "has_metadata": {
20
+ "type": "boolean"
21
+ }
22
+ }
23
+ },
24
+ "_elements": {
25
+ "type": "array",
26
+ "items": {
27
+ "anyOf": [
28
+ {
29
+ "$ref": "#/definitions/file"
30
+ },
31
+ {
32
+ "$ref": "#/definitions/file_remote_dir"
33
+ }
34
+ ]
35
+ }
36
+ }
37
+ },
38
+ "definitions": {
39
+ "file_common": {
40
+ "type": "object",
41
+ "required": ["name", "type"],
42
+ "properties": {
43
+ "name": {
44
+ "type": "string"
45
+ }
46
+ }
47
+ },
48
+ "file": {
49
+ "allOf": [
50
+ { "$ref": "#/definitions/file_common" },
51
+ {
52
+ "properties": {
53
+ "user": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "group": {
58
+ "type": "string",
59
+ "minLength": 1
60
+ }
61
+ },
62
+ "oneOf": [
63
+ { "$ref": "#/definitions/file_file" },
64
+ { "$ref": "#/definitions/file_dir" },
65
+ { "$ref": "#/definitions/file_link" }
66
+ ]
67
+ }
68
+ ]
69
+ },
70
+ "file_file": {
71
+ "properties": {
72
+ "type": {
73
+ "enum": ["file"]
74
+ },
75
+ "size": {
76
+ "type": "integer",
77
+ "minimum": 0
78
+ },
79
+ "mode": {
80
+ "type": "string",
81
+ "pattern": "^[0-7]{3,4}$"
82
+ }
83
+ }
84
+ },
85
+ "file_dir": {
86
+ "properties": {
87
+ "type": {
88
+ "enum": ["dir"]
89
+ },
90
+ "size": {
91
+ "type": "integer",
92
+ "minimum": 0
93
+ },
94
+ "mode": {
95
+ "type": "string",
96
+ "pattern": "^[0-4]?[0-7]{3}$"
97
+ },
98
+ "files": {
99
+ "type": "integer",
100
+ "minimum": 0
101
+ }
102
+ }
103
+ },
104
+ "file_link": {
105
+ "properties": {
106
+ "type": {
107
+ "enum": ["link"]
108
+ }
109
+ }
110
+ },
111
+ "file_remote_dir": {
112
+ "allOf": [
113
+ { "$ref": "#/definitions/file_common" },
114
+ {
115
+ "properties": {
116
+ "type": {
117
+ "enum": ["remote_dir"]
118
+ }
119
+ }
120
+ }
121
+ ]
122
+ }
123
+ }
124
+ }