machinery-tool 1.2.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS +16 -0
  3. data/bin/machinery +1 -1
  4. data/export_helpers/merge_users_and_groups.pl.erb +1 -1
  5. data/export_helpers/unmanaged_files_autoyast_excludes +10 -0
  6. data/export_helpers/{unmanaged_files_build_excludes → unmanaged_files_kiwi_excludes} +1 -0
  7. data/helpers/changed_managed_files.sh +1 -1
  8. data/helpers/yum_repositories.py +37 -0
  9. data/html/assets/machinery.js +76 -57
  10. data/html/assets/reset.png +0 -0
  11. data/html/index.html.haml +6 -2
  12. data/lib/analyze_config_file_diffs_task.rb +5 -4
  13. data/lib/array.rb +1 -1
  14. data/lib/autoyast.rb +16 -8
  15. data/lib/build_task.rb +2 -1
  16. data/lib/changed_rpm_files_helper.rb +1 -1
  17. data/lib/cli.rb +13 -9
  18. data/lib/compare_task.rb +1 -1
  19. data/lib/config.rb +1 -1
  20. data/lib/config_base.rb +1 -1
  21. data/lib/config_task.rb +1 -1
  22. data/lib/constants.rb +1 -1
  23. data/lib/copy_task.rb +1 -1
  24. data/lib/current_user.rb +1 -1
  25. data/lib/deploy_task.rb +4 -1
  26. data/lib/exceptions.rb +5 -2
  27. data/lib/export_task.rb +8 -2
  28. data/lib/exporter.rb +1 -1
  29. data/lib/file_validator.rb +107 -0
  30. data/lib/generate_html_task.rb +1 -1
  31. data/lib/helper.rb +18 -1
  32. data/lib/hint.rb +1 -1
  33. data/lib/html.rb +8 -3
  34. data/lib/inspect_task.rb +3 -4
  35. data/lib/inspector.rb +1 -1
  36. data/lib/json_validation_error_cleaner.rb +78 -0
  37. data/lib/json_validator.rb +86 -0
  38. data/lib/kiwi_config.rb +6 -4
  39. data/lib/list_task.rb +33 -39
  40. data/lib/local_system.rb +20 -27
  41. data/lib/logged_cheetah.rb +1 -1
  42. data/lib/machinery.rb +5 -2
  43. data/lib/machinery_logger.rb +1 -1
  44. data/lib/manifest.rb +16 -5
  45. data/lib/migration.rb +40 -10
  46. data/lib/mountpoints.rb +1 -1
  47. data/lib/object.rb +10 -11
  48. data/lib/remote_system.rb +1 -1
  49. data/lib/remove_task.rb +19 -14
  50. data/lib/renderer.rb +6 -5
  51. data/lib/renderer_helper.rb +1 -1
  52. data/lib/rpm.rb +1 -1
  53. data/lib/scope_file_store.rb +1 -1
  54. data/lib/scope_mixin.rb +1 -1
  55. data/lib/show_task.rb +1 -1
  56. data/lib/system.rb +9 -2
  57. data/lib/system_description.rb +45 -55
  58. data/lib/system_description_memory_store.rb +1 -1
  59. data/lib/system_description_store.rb +29 -58
  60. data/lib/tarball.rb +18 -12
  61. data/lib/ui.rb +1 -1
  62. data/lib/upgrade_format_task.rb +12 -11
  63. data/lib/validate_task.rb +5 -2
  64. data/lib/version.rb +2 -2
  65. data/lib/zypper.rb +15 -11
  66. data/man/generated/machinery.1.gz +0 -0
  67. data/man/generated/machinery.1.html +20 -10
  68. data/plugins/inspect/changed_managed_files_inspector.rb +1 -1
  69. data/plugins/inspect/config_files_inspector.rb +1 -1
  70. data/plugins/inspect/groups_inspector.rb +1 -1
  71. data/plugins/inspect/os_inspector.rb +19 -1
  72. data/plugins/inspect/packages_inspector.rb +1 -1
  73. data/plugins/inspect/patterns_inspector.rb +14 -30
  74. data/plugins/inspect/repositories_inspector.rb +137 -77
  75. data/plugins/inspect/services_inspector.rb +42 -19
  76. data/plugins/inspect/unmanaged_files_inspector.rb +1 -1
  77. data/plugins/inspect/users_inspector.rb +1 -1
  78. data/plugins/model/changed_managed_files_model.rb +1 -1
  79. data/plugins/model/config_files_model.rb +1 -1
  80. data/plugins/model/file_scope.rb +2 -2
  81. data/plugins/model/groups_model.rb +1 -1
  82. data/plugins/model/os_model.rb +60 -8
  83. data/plugins/model/packages_model.rb +1 -1
  84. data/plugins/model/patterns_model.rb +1 -1
  85. data/plugins/model/repositories_model.rb +1 -1
  86. data/plugins/model/services_model.rb +1 -1
  87. data/plugins/model/unmanaged_files_model.rb +1 -1
  88. data/plugins/model/users_model.rb +1 -1
  89. data/plugins/schema/v3/system-description-changed-managed-files.schema.json +92 -0
  90. data/plugins/schema/v3/system-description-config-files.schema.json +92 -0
  91. data/plugins/schema/v3/system-description-groups.schema.json +30 -0
  92. data/plugins/schema/v3/system-description-os.schema.json +21 -0
  93. data/plugins/schema/v3/system-description-packages.schema.json +34 -0
  94. data/plugins/schema/v3/system-description-patterns.schema.json +24 -0
  95. data/plugins/schema/v3/system-description-repositories.schema.json +45 -0
  96. data/plugins/schema/v3/system-description-services.schema.json +30 -0
  97. data/plugins/schema/v3/system-description-unmanaged-files.schema.json +138 -0
  98. data/plugins/schema/v3/system-description-users.schema.json +61 -0
  99. data/plugins/show/changed_managed_files_renderer.rb +1 -1
  100. data/plugins/show/config_files_renderer.rb +2 -2
  101. data/plugins/show/groups_renderer.rb +1 -1
  102. data/plugins/show/os_renderer.rb +1 -1
  103. data/plugins/show/packages_renderer.rb +1 -1
  104. data/plugins/show/patterns_renderer.rb +1 -1
  105. data/plugins/show/repositories_renderer.rb +8 -3
  106. data/plugins/show/services_renderer.rb +1 -1
  107. data/plugins/show/unmanaged_files_renderer.rb +1 -1
  108. data/plugins/show/users_renderer.rb +1 -1
  109. data/schema/migrations/migrate1to2.rb +1 -1
  110. data/schema/migrations/migrate2to3.rb +42 -0
  111. data/schema/v3/system-description-global.schema.json +31 -0
  112. metadata +147 -130
  113. data/lib/system_description_validator.rb +0 -216
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f3e26096068d827b9178938a39eead5000562a09
4
- data.tar.gz: 78c08edb97fc7993b173cf477821f6eee75bb27c
3
+ metadata.gz: 53f3e1829f050fd550e3440debba26aa7a809d02
4
+ data.tar.gz: 5826ca3868fbadec1b75b6ecd43b179653818abd
5
5
  SHA512:
6
- metadata.gz: 370cb5832ee25886ade589381967014b8bb8d746d9b3451fcd52e30d08ff32ce4a71670ab2c2debfa451d8c2673f5dc7fd5e7fbf66db76e616af7e1753d2fbfa
7
- data.tar.gz: 74487bdaf7324bc54bf8b1a62f0437d69086570a1f61de8f7517c7c6c7d2c6debfdd8f83c60954432be28c40fa2505831bf910a80aecdcb1db879157aac582f5
6
+ metadata.gz: 63953c2f507e6191a4c7bced722aeb749469d4c549efabb1d60709fca0162bb09a807501e001c8ee38167c530cc0095a980f0b8ba8b635d5f82b5ed0fca1b88f
7
+ data.tar.gz: d5ea80efa210b5a35ac2d696e065f52fd2749636949ddef90f64fe8ff39ec30e79fe51555a197176d5ea38b619547e7d6176b86bfb8e41e650ed4836e281c67a
data/NEWS CHANGED
@@ -1,6 +1,22 @@
1
1
  # Machinery Release Notes
2
2
 
3
3
 
4
+ ## Version 1.4.0 - Wed Feb 18 16:51:43 CET 2015 - thardeck@suse.de
5
+
6
+ * Support inspection of Red Hat Enterprise Linux 6 systems
7
+ * Introduce system description format version 3 (see https://github.com/SUSE/machinery/wiki/System-Description-Format#version-3)
8
+ * Usability improvements of the HTML view (gh#SUSE/machinery#359)
9
+ * Speed up `machinery list` command
10
+
11
+ ## Version 1.3.0 - Mon Jan 26 16:00:08 CET 2015 - chuller@novell.com
12
+
13
+ * Added support for inspecting System z systems
14
+ * Added support for inspecting POWER LE systems
15
+ * Added support to run Machinery on System z
16
+ * Added support to run Machinery on POWER LE
17
+ * Handle system description errors as warnings
18
+ * Added `machinery upgrade-format --force` command
19
+
4
20
  ## Version 1.2.0 - Mon Dec 22 15:06:20 CET 2014 - aduffeck@suse.de
5
21
 
6
22
  * Added AutoYaST export for system descriptions
data/bin/machinery CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Copyright (c) 2013-2014 SUSE LLC
3
+ # Copyright (c) 2013-2015 SUSE LLC
4
4
  #
5
5
  # This program is free software; you can redistribute it and/or
6
6
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env perl
2
2
 
3
- # Copyright (c) 2013-2014 SUSE LLC
3
+ # Copyright (c) 2013-2015 SUSE LLC
4
4
  #
5
5
  # This program is free software; you can redistribute it and/or
6
6
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -0,0 +1,10 @@
1
+ var/lib/rpm/*
2
+ etc/passwd*
3
+ etc/shadow*
4
+ etc/group*
5
+ etc/fstab
6
+ lib/mkinitrd
7
+ etc/udev/rules.d/70-persistent-net.rules
8
+ var/log/*
9
+ etc/default/grub*
10
+ etc/zypp/repos.d/*
@@ -5,3 +5,4 @@ etc/group*
5
5
  etc/fstab
6
6
  lib/mkinitrd
7
7
  etc/udev/rules.d/70-persistent-net.rules
8
+ etc/zypp/repos.d/*
@@ -1,5 +1,5 @@
1
1
  #!/bin/bash
2
- # Copyright (c) 2013-2014 SUSE LLC
2
+ # Copyright (c) 2013-2015 SUSE LLC
3
3
  #
4
4
  # This program is free software; you can redistribute it and/or
5
5
  # modify it under the terms of version 3 of the GNU General Public License as
@@ -0,0 +1,37 @@
1
+ #!/usr/bin/python
2
+ # Copyright (c) 2013-2015 SUSE LLC
3
+ #
4
+ # This program is free software; you can redistribute it and/or
5
+ # modify it under the terms of version 3 of the GNU General Public License as
6
+ # published by the Free Software Foundation.
7
+ #
8
+ # This program is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ # GNU General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU General Public License
14
+ # along with this program; if not, contact SUSE LLC.
15
+ #
16
+ # To contact SUSE about this file by physical or electronic mail,
17
+ # you may find current contact information at www.suse.com
18
+
19
+ import yum
20
+ import json
21
+
22
+ yb = yum.YumBase()
23
+
24
+ repositories = []
25
+
26
+ for repo in yb.repos.sort():
27
+ repo_dict = dict()
28
+ repo_dict["alias"] = repo.id
29
+ repo_dict["name"] = repo.name
30
+ repo_dict["type"] = "rpm-md"
31
+ repo_dict["url"] = repo.baseurl[0] if repo.baseurl else ""
32
+ repo_dict["enabled"] = repo.enabled
33
+ repo_dict["gpgcheck"] = repo.gpgcheck
34
+ repo_dict["package_manager"] = "yum"
35
+ repositories.append(repo_dict)
36
+
37
+ print(json.dumps(repositories))
@@ -1,8 +1,8 @@
1
1
  $(document).ready(function () {
2
2
  // Render the system description
3
- var description = getDescription()
3
+ var description = getDescription();
4
4
 
5
- templates = {}
5
+ templates = {};
6
6
  scopes = [
7
7
  "os",
8
8
  "changed_managed_files",
@@ -14,26 +14,26 @@ $(document).ready(function () {
14
14
  "patterns",
15
15
  "repositories",
16
16
  "services"
17
- ]
17
+ ];
18
18
 
19
19
 
20
20
  // Enrich description with meta information summaries
21
- description.meta_info = {}
21
+ description.meta_info = {};
22
22
  $.each(scopes, function(index, scope) {
23
23
  if(description.meta[scope]) {
24
24
  description.meta_info[scope] = " (" +
25
25
  "inspected host: '" + description.meta[scope].hostname + "', " +
26
- "at: " + new Date(description.meta[scope].modified).toLocaleString() + ")"
26
+ "at: " + new Date(description.meta[scope].modified).toLocaleString() + ")";
27
27
  }
28
- })
28
+ });
29
29
 
30
30
  $.each(scopes, function(index, scope) {
31
- templates[scope] = Hogan.compile($("#scope_" + scope).html())
32
- })
33
- template = Hogan.compile($('#content').html())
31
+ templates[scope] = Hogan.compile($("#scope_" + scope).html());
32
+ });
33
+ template = Hogan.compile($('#content').html());
34
34
  $("#content_container").html(
35
35
  template.render(description, templates)
36
- )
36
+ );
37
37
 
38
38
  // Implement filter functionality
39
39
  var run_when_done_typing = (function(){
@@ -42,74 +42,82 @@ $(document).ready(function () {
42
42
  clearTimeout(timer);
43
43
  timer = setTimeout(callback, timeout);
44
44
  };
45
- })()
45
+ })();
46
46
 
47
- $("#filter").keyup(function() {
48
- run_when_done_typing(function() {
49
- window.scrollTo(0, 0)
50
- var rows = $("body").find("tr");
51
- if($("#filter").val() == "") {
52
- rows.show();
53
- return;
54
- }
47
+ var filterdocument = function() {
48
+ window.scrollTo(0, 0);
49
+ var rows = $("body").find("tr");
50
+ if($("#filter").val() == "") {
51
+ rows.show();
52
+ return;
53
+ }
55
54
 
56
- var filters = $("#filter").val().split(" ");
55
+ var filters = $("#filter").val().split(" ");
57
56
 
58
- rows
59
- .hide()
60
- .filter(function() {
61
- var $t = $(this);
62
- for(var i = 0; i < filters.length; ++i) {
63
- if($t.is(":contains('" + filters[i] + "')")) {
64
- return true;
65
- }
57
+ rows
58
+ .hide()
59
+ .filter(function() {
60
+ var $t = $(this);
61
+ for(var i = 0; i < filters.length; ++i) {
62
+ if($t.is(":contains('" + filters[i] + "')")) {
63
+ return true;
66
64
  }
67
- return false;
68
- })
69
- .show();
65
+ }
66
+ return false;
67
+ })
68
+ .show();
69
+ };
70
+
71
+ $("#filter").keyup(function() {
72
+ run_when_done_typing(function() {
73
+ filterdocument();
70
74
  }, 500)
71
- })
75
+ });
76
+
77
+ clearFilter = function() {
78
+ $("#filter").val("");
79
+ filterdocument();
80
+ };
72
81
 
73
82
  // Align content below floating menu
74
- var header_height = $("#nav-bar").height() + 20
75
- $("#content_container").css("margin-top", header_height)
76
- $("a.scope_anchor").css("height", header_height)
77
- $("a.scope_anchor").css("margin-top", -header_height)
83
+ var header_height = $("#nav-bar").height() + 20;
84
+ $("#content_container").css("margin-top", header_height);
85
+ $("a.scope_anchor").css("height", header_height);
86
+ $("a.scope_anchor").css("margin-top", -header_height);
78
87
 
79
88
  $('.scope_logo_big').each(function(){
80
- var icon = $(this)
89
+ var icon = $(this);
81
90
  $(window).scroll(function() {
82
91
  icon.removeClass('fixed');
83
- var pos = icon.offset()
92
+ var pos = icon.offset();
84
93
  var top_pos = $(this).scrollTop() + header_height;
85
- console.log(pos, top_pos)
86
94
  if(top_pos >= pos.top && icon.css('position') == 'static') {
87
95
  icon.addClass('fixed').css("top", header_height);
88
96
  } else if(top_pos <= pos.top && icon.hasClass('fixed')) {
89
97
  icon.removeClass('fixed');
90
98
  }
91
99
  })
92
- })
100
+ });
93
101
 
94
102
  // Hook up the toggle links
95
103
  $('.toggle').click(function(){
96
- $(this).closest('.scope').find('.scope_content').collapse('toggle')
97
- $(this).toggleClass("collapsed")
98
- })
104
+ $(this).closest('.scope').find('.scope_content').collapse('toggle');
105
+ $(this).toggleClass("collapsed");
106
+ });
99
107
 
100
108
  $("#collapse-all").click(function(){
101
- $(".scope_content").collapse('hide')
102
- $(".toggle").addClass("collapsed")
103
- $(this).hide()
104
- $("#expand-all").show()
105
- })
109
+ $(".scope_content").collapse('hide');
110
+ $(".toggle").addClass("collapsed");
111
+ $(this).hide();
112
+ $("#expand-all").show();
113
+ });
106
114
 
107
115
  $("#expand-all").click(function(){
108
- $(".scope_content").collapse('show')
109
- $(".toggle").removeClass("collapsed")
110
- $(this).hide()
111
- $("#collapse-all").show()
112
- })
116
+ $(".scope_content").collapse('show');
117
+ $(".toggle").removeClass("collapsed");
118
+ $(this).hide();
119
+ $("#collapse-all").show();
120
+ });
113
121
 
114
122
  $("img").popover({
115
123
  trigger: "hover",
@@ -121,11 +129,11 @@ $(document).ready(function () {
121
129
  html: true,
122
130
  template: '<div class="popover diff-popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
123
131
  content: function() {
124
- file = $(this).data("config-file")
125
- return $('*[data-config-file-diff="' + file + '"]').html()
132
+ file = $(this).data("config-file");
133
+ return $('*[data-config-file-diff="' + file + '"]').html();
126
134
  },
127
135
  title: function() {
128
- return "Changes for '" + $(this).data("config-file") + "'"
136
+ return "Changes for '" + $(this).data("config-file") + "'";
129
137
  }
130
138
  }).on("mouseenter",function () {
131
139
  clearTimeout(counter);
@@ -145,4 +153,15 @@ $(document).ready(function () {
145
153
  }
146
154
  }, 500);
147
155
  });
148
- })
156
+
157
+ // Tooltips for service states
158
+ $("td.systemd_enabled, td.systemd_enabled-runtime").attr("title", 'Enabled through a symlink in .wants directory (permanently or just in /run).')
159
+ $("td.systemd_linked, td.systemd_linked-runtime").attr("title", 'Made available through a symlink to the unit file (permanently or just in /run).')
160
+ $("td.systemd_masked, td.systemd_masked-runtime").attr("title", 'Disabled entirely (permanently or just in /run).')
161
+ $("td.systemd_static").attr("title", 'Unit file is not enabled, and has no provisions for enabling in the "[Install]" section.')
162
+ $("td.systemd_indirect").attr("title", 'Unit file itself is not enabled, but it has a non-empty Also= setting in the "[Install]" section, listing other unit files that might be enabled.')
163
+ $("td.systemd_disabled").attr("title", 'Unit file is not enabled.')
164
+ $("td.sysvinit_on").attr("title", 'Service is enabled')
165
+ $("td.sysvinit_off").attr("title", 'Service is disabled')
166
+
167
+ });
Binary file
data/html/index.html.haml CHANGED
@@ -263,7 +263,8 @@
263
263
  %td {{name}}
264
264
  %td {{alias}}
265
265
  %td {{type}}
266
- %td {{url}}
266
+ %td
267
+ %a{:href => "{{url}}" } {{url}}
267
268
  %td {{enabled}}
268
269
  %td {{autorefresh}}
269
270
  %td {{gpgcheck}}
@@ -414,7 +415,8 @@
414
415
  {{#services.services}}
415
416
  %tr
416
417
  %td {{name}}
417
- %td {{state}}
418
+ %td{:class=>"{{services.init_system}}_{{state}}"}
419
+ {{state}}
418
420
  {{/services.services}}
419
421
  {{/services.services.length}}
420
422
 
@@ -466,4 +468,6 @@
466
468
  Machinery
467
469
  .filter-input
468
470
  %input#filter{:placeholder => "Type To Filter"}/
471
+ %img{:src => "assets/reset.png", :titel => "Reset Filter", :onclick=>"clearFilter()" }
472
+
469
473
  #content_container
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2014 SUSE LLC
1
+ # Copyright (c) 2013-2015 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
@@ -17,17 +17,18 @@
17
17
 
18
18
  class AnalyzeConfigFileDiffsTask
19
19
  def analyze(description)
20
+ description.assert_scopes("os")
21
+ description.validate_analysis_compatibility
20
22
  description.assert_scopes(
21
23
  "repositories",
22
- "config_files",
23
- "os"
24
+ "config_files"
24
25
  )
25
26
  if !description.scope_extracted?("config_files")
26
27
  raise Machinery::Errors::MissingExtractedFiles.new(description, ["config_files"])
27
28
  end
28
29
 
29
30
  with_repositories(description) do |zypper|
30
- file_store = description.scope_file_store("config-file-diffs")
31
+ file_store = description.scope_file_store("analyze/config_file_diffs")
31
32
  file_store.create
32
33
  diffs_path = file_store.path
33
34
  extracted_files_path = description.scope_file_store("config_files").path
data/lib/array.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2014 SUSE LLC
1
+ # Copyright (c) 2013-2015 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
data/lib/autoyast.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2014 SUSE LLC
1
+ # Copyright (c) 2013-2015 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
@@ -16,25 +16,33 @@
16
16
  # you may find current contact information at www.suse.com
17
17
 
18
18
  class Autoyast < Exporter
19
+ attr_accessor :name
20
+
19
21
  def initialize(description)
22
+ @name = "autoyast"
20
23
  @chroot_scripts = []
21
24
  @system_description = description
22
25
  @system_description.assert_scopes(
23
26
  "repositories",
24
27
  "packages"
25
28
  )
29
+ if !description.users
30
+ Machinery::Ui.puts(
31
+ "\nWarning: Exporting a description without the scope 'users' as AutoYaST" \
32
+ " profile will result in a root account without a password which prevents" \
33
+ " logging in.\n" \
34
+ "So either inspect or add the scope 'users' before the export or" \
35
+ " add a section for the root user to the AutoYaST profile."
36
+ )
37
+ end
26
38
  end
27
39
 
28
40
  def write(output_dir)
29
41
  FileUtils.cp(
30
- File.join(Machinery::ROOT, "export_helpers/unmanaged_files_build_excludes"),
42
+ File.join(Machinery::ROOT, "export_helpers/unmanaged_files_#{@name}_excludes"),
31
43
  output_dir
32
44
  )
33
- # Filter log files to prevent an issue with hanging gzip during installation
34
- File.open(File.join(output_dir, "unmanaged_files_build_excludes"), "a") do |file|
35
- file.puts "var/log/*"
36
- end
37
- FileUtils.chmod(0600, File.join(output_dir, "unmanaged_files_build_excludes"))
45
+ FileUtils.chmod(0600, File.join(output_dir, "unmanaged_files_#{@name}_excludes"))
38
46
  FileUtils.cp(
39
47
  File.join(Machinery::ROOT, "export_helpers/autoyast_export_readme.md"),
40
48
  File.join(output_dir, "README.md")
@@ -279,7 +287,7 @@ class Autoyast < Exporter
279
287
 
280
288
  base = Pathname(@system_description.scope_file_store("unmanaged_files").path)
281
289
  @chroot_scripts << <<-EOF
282
- curl -o '/mnt/tmp/filter' "`cat /tmp/description_url`/unmanaged_files_build_excludes"
290
+ curl -o '/mnt/tmp/filter' "`cat /tmp/description_url`/unmanaged_files_#{@name}_excludes"
283
291
  EOF
284
292
 
285
293
  Dir["#{base}/**/*.tgz"].sort.each do |path|
data/lib/build_task.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2013-2014 SUSE LLC
1
+ # Copyright (c) 2013-2015 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
@@ -17,6 +17,7 @@
17
17
 
18
18
  class BuildTask
19
19
  def build(system_description, output_path, options = {})
20
+ LocalSystem.validate_architecture("x86_64")
20
21
  LocalSystem.validate_build_compatibility(system_description)
21
22
  LocalSystem.validate_existence_of_package("kiwi")
22
23
  LocalSystem.validate_existence_of_package("kiwi-desc-vmxboot")