foreman_openscap 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e0b2635b4110d762e082b3b0deea79656f308712
4
- data.tar.gz: 6488a4c319870ff0347bfedf2d1ad27659dab5a9
3
+ metadata.gz: dc23a893a6f93d33f710ee464f998add2a5e1498
4
+ data.tar.gz: fcf1e51452a94983844f42a62d198bc0f95240d7
5
5
  SHA512:
6
- metadata.gz: 257acb224a1ffaeed43d9cba4216038920357ea2fed6c493d52b8d0efa0b639f58021cd159681d4eef6970de6067bfdbc358cd5cebf8d60af5b28c6627269797
7
- data.tar.gz: 351b39d8450200c2884d63a419741a93900600b229c7fa492db305b74c9bfd7b74701ed206705472842490d17b0d1932925e34a1c718e0dd6403a99a47042e0b
6
+ metadata.gz: 68084f2791991b42c7e1eb313a892f892b5a16e10f1fe14e2ac6ab45cc1c00684b587a218cf0b9ea81a7ce28fc9d73598606e962bfb0189d1b35a63ae7d464c4
7
+ data.tar.gz: 930e20cabae6c401715cf968d438b87afcb0b2de32364f9e72a2e51c2dfb29fa5071164ee9edf763e901e62e26e1331e8d98c99dfc2bc83ffd68459f3bf68688
@@ -27,7 +27,7 @@ module Api
27
27
  param :date, :identifier, :required => true
28
28
 
29
29
  def create
30
- asset = ForemanOpenscap::Helper::get_asset(params[:cname])
30
+ asset = ForemanOpenscap::Helper::get_asset(params[:cname], params[:policy_id])
31
31
  arf_bzip2 = request.body.read
32
32
  arf_bzip2_size = request.body.size
33
33
  Scaptimony::ArfReportsHelper.create_arf(asset, params, arf_bzip2, arf_bzip2_size)
@@ -22,7 +22,12 @@ module ForemanOpenscap
22
22
  end
23
23
 
24
24
  def policies_enc
25
- self.policies.map(&:to_enc).to_json
25
+ combined_policies.map(&:to_enc).to_json
26
+ end
27
+
28
+ def combined_policies
29
+ combined = self.policies + self.hostgroup.policies
30
+ combined.uniq
26
31
  end
27
32
 
28
33
  module ClassMethods
@@ -0,0 +1,13 @@
1
+ require 'scaptimony/asset'
2
+
3
+ module ForemanOpenscap
4
+ module HostgroupExtensions
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ has_one :asset, :as => :assetable, :class_name => "::Scaptimony::Asset"
9
+ has_many :asset_policies, :through => :asset, :class_name => "::Scaptimony::AssetPolicy"
10
+ has_many :policies, :through => :asset_policies, :class_name => "::Scaptimony::Policy"
11
+ end
12
+ end
13
+ end
@@ -29,9 +29,9 @@ module ForemanOpenscap
29
29
  validates :period, :inclusion => {:in => %w[weekly monthly custom]},
30
30
  :if => Proc.new { | policy | policy.new_record? ? policy.step_index > 3 : !policy.id.blank? }
31
31
  validates :weekday, :inclusion => {:in => Date::DAYNAMES.map(&:downcase)},
32
- :if => Proc.new { | policy | policy.new_record? ? policy.step_index > 3 && policy.period == 'weekly' : !policy.id.blank? }
32
+ :if => Proc.new { | policy | policy.period == 'weekly' && (policy.new_record? ? policy.step_index > 3 : !policy.id.blank?) }
33
33
  validates :day_of_month, :numericality => {:greater_than => 0, :less_than => 32},
34
- :if => Proc.new { | policy | policy.new_record? ? policy.step_index > 3 && policy.period == 'monthly' : !policy.id.blank? }
34
+ :if => Proc.new { | policy | policy.period == 'monthly'&& (policy.new_record? ? policy.step_index > 3 : !policy.id.blank?) }
35
35
  validate :valid_cron_line
36
36
  validate :ensure_period_specification_present
37
37
 
@@ -7,6 +7,11 @@
7
7
  </span>
8
8
  <div class="alert alert-info">
9
9
  <%= icon_text("info-sign", _('Notice: Ensure the selected SCAP content exists on your hosts.')) %>
10
+ <div id="file-location">
11
+ <% if @policy.scap_content %>
12
+ <b><%= _('SCAP content file should be /var/lib/openscap/content/%s.xml on your clients.') % @policy.scap_content.digest %></b>
13
+ <% end %>
14
+ </div>
10
15
  </div>
11
16
  </div>
12
17
 
@@ -72,6 +72,7 @@ module ForemanOpenscap
72
72
  config.to_prepare do
73
73
  Host::Managed.send(:include, ForemanOpenscap::HostExtensions)
74
74
  HostsHelper.send(:include, ForemanOpenscap::HostsHelperExtensions)
75
+ Hostgroup.send(:include, ForemanOpenscap::HostgroupExtensions)
75
76
  ::Scaptimony::ArfReport.send(:include, ForemanOpenscap::ArfReportExtensions)
76
77
  ::Scaptimony::Asset.send(:include, ForemanOpenscap::AssetExtensions)
77
78
  ::Scaptimony::Policy.send(:include, ForemanOpenscap::PolicyExtensions)
@@ -9,7 +9,9 @@
9
9
  #
10
10
 
11
11
  module ForemanOpenscap::Helper
12
- def self.get_asset(cname)
13
- Host.find_by_name!(cname).get_asset
12
+ def self.get_asset(cname, policy_id)
13
+ asset = Host.find_by_name!(cname).get_asset
14
+ asset.policy_ids += [policy_id]
15
+ asset
14
16
  end
15
17
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanOpenscap
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -0,0 +1,28 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class OpenscapHostTest < ActiveSupport::TestCase
4
+ setup do
5
+ disable_orchestration
6
+ User.current = users :admin
7
+ Setting[:token_duration] = 0
8
+ Scaptimony::Policy.any_instance.stubs(:ensure_needed_puppetclasses).returns(true)
9
+ end
10
+
11
+ test 'Host has policy' do
12
+ host = FactoryGirl.create(:host)
13
+ assert_empty(host.policies)
14
+ policy = FactoryGirl.create(:policy)
15
+
16
+ assert(policy.assign_hosts([host]), 'Host policies should be assigned')
17
+ assert_includes(host.policies, policy)
18
+ end
19
+
20
+ test 'Host has policies via its hostgroup' do
21
+ host = FactoryGirl.create(:host, :with_hostgroup)
22
+ hostgroup = host.hostgroup
23
+ policy = FactoryGirl.create(:policy)
24
+ assert(policy.hostgroup_ids = ["#{hostgroup.id}"])
25
+ refute_empty(host.combined_policies)
26
+ assert_includes(host.combined_policies, policy)
27
+ end
28
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_openscap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Šimon Lukašík"
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-02 00:00:00.000000000 Z
11
+ date: 2015-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -65,6 +65,7 @@ files:
65
65
  - app/models/concerns/foreman_openscap/arf_report_extensions.rb
66
66
  - app/models/concerns/foreman_openscap/asset_extensions.rb
67
67
  - app/models/concerns/foreman_openscap/host_extensions.rb
68
+ - app/models/concerns/foreman_openscap/hostgroup_extensions.rb
68
69
  - app/models/concerns/foreman_openscap/policy_extensions.rb
69
70
  - app/models/concerns/foreman_openscap/scap_content_extensions.rb
70
71
  - app/overrides/hosts/index/host_arf_report.rb
@@ -114,7 +115,7 @@ files:
114
115
  - lib/tasks/foreman_openscap_tasks.rake
115
116
  - test/factories/foreman_openscap_factories.rb
116
117
  - test/test_plugin_helper.rb
117
- - test/unit/foreman_openscap_test.rb
118
+ - test/unit/openscap_host_test.rb
118
119
  homepage: https://github.com/OpenSCAP/foreman_openscap
119
120
  licenses:
120
121
  - GPL-3.0
@@ -140,7 +141,7 @@ signing_key:
140
141
  specification_version: 4
141
142
  summary: Foreman plug-in for displaying OpenSCAP audit reports
142
143
  test_files:
143
- - test/unit/foreman_openscap_test.rb
144
+ - test/unit/openscap_host_test.rb
144
145
  - test/test_plugin_helper.rb
145
146
  - test/factories/foreman_openscap_factories.rb
146
147
  has_rdoc:
@@ -1,12 +0,0 @@
1
- require 'test_plugin_helper'
2
-
3
- class ForemanOpenscapTest < ActiveSupport::TestCase
4
- setup do
5
- User.current = User.find_by_login "admin"
6
- end
7
-
8
- test "the truth" do
9
- assert true
10
- end
11
-
12
- end