puppet-lint-use_ensure_packages-check 0.0.1 → 0.0.2

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: 429d64b939da27bc66f50a566fd01afbc3a0822a
4
- data.tar.gz: 7f06639bcb642f4ad70590b2de8d486ce64970cf
3
+ metadata.gz: e86e5c8317c917d5b961274644c11b1d77d2ad1e
4
+ data.tar.gz: 02df872a3f35342b5403328eaf8ca8b3eafd932d
5
5
  SHA512:
6
- metadata.gz: 13062a56166ba14cea81eac802baf04104c1af6d8bce6cffb489ef85b89ba3fe06906b01c830df7ad5c880a1c78fa4b8b38b5c2800a4695b83869a05b8bba78b
7
- data.tar.gz: 06a37b1250c9c3d13570b9bd886698aa475111dc5a5131e2d8d0bb89d6fa19d76b5d53d5b76d1f0fd289781813e6b5c52d7d3ba3db61e5fc7e4e8b0331f993fe
6
+ metadata.gz: 5b9ac063a2e50fe41924edc4559605fe3a4fd28ca22324b59c9151af0506fb608084baac18b074ee5aa9370323b01f9238024d5873837000b7ad5ecdd3c91b7e
7
+ data.tar.gz: 2dff02cdc2cbb9b141f2c36890e4e2b6ec85fa1dfed6301ac40c6e545e4023381744c3dbe35d389536dc9b5c3f6e85437a74c867498a059438ac843a342e233a
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # puppet-lint use ensure_packages check
2
2
 
3
3
  [![Build Status](https://travis-ci.org/ninech/puppet-lint-use_ensure_packages-check.svg?branch=master)](https://travis-ci.org/ninech/puppet-lint-use_ensure_packages-check)
4
+ [![Gem Version](https://badge.fury.io/rb/puppet-lint-use_ensure_packages-check.svg)](https://badge.fury.io/rb/puppet-lint-use_ensure_packages-check)
4
5
 
5
6
  ## Installation
6
7
 
@@ -35,6 +35,7 @@ PuppetLint.new_check(:use_ensure_packages) do
35
35
 
36
36
  def check
37
37
  if_indexes.each do |cond|
38
+ next if check_if_else(cond)
38
39
  next if check_if(cond)
39
40
 
40
41
  notify :warning,
@@ -44,6 +45,15 @@ PuppetLint.new_check(:use_ensure_packages) do
44
45
  end
45
46
  end
46
47
 
48
+ def check_if_else(cond)
49
+ tokens = filter_code_tokens(cond[:tokens])
50
+
51
+ return true if tokens.last.next_code_token &&
52
+ [:ELSE, :ELSIF].include?(tokens.last.next_code_token.type)
53
+
54
+ false
55
+ end
56
+
47
57
  def check_if(cond)
48
58
  tokens = filter_code_tokens(cond[:tokens])
49
59
 
@@ -59,6 +69,7 @@ PuppetLint.new_check(:use_ensure_packages) do
59
69
  return false if tokens.empty?
60
70
 
61
71
  return true unless OPTINAL_CONTENT.index do |c|
72
+ next unless tokens.length == c[:sequence].length
62
73
  match_tokens(tokens, c[:sequence], c[:values])
63
74
  end
64
75
 
@@ -62,6 +62,46 @@ describe 'use_ensure_packages' do
62
62
  end
63
63
  end
64
64
 
65
+ context 'if not defined package w/ notify' do
66
+ let(:code) do
67
+ "if ! defined (Package['foo']) {
68
+ package {'foo': ensure => present, notify => Service['apache2'];}
69
+ }"
70
+ end
71
+
72
+ it 'should not detect any problem' do
73
+ expect(problems).to have(0).problems
74
+ end
75
+ end
76
+
77
+ context 'if not defined package w/ else' do
78
+ let(:code) do
79
+ "if ! defined (Package['foo']) {
80
+ package {'foo': ensure => present; }
81
+ } else {
82
+ package {'bar': ensure => present; }
83
+ }"
84
+ end
85
+
86
+ it 'should not detect any problem' do
87
+ expect(problems).to have(0).problems
88
+ end
89
+ end
90
+
91
+ context 'if not defined package w/ elsis' do
92
+ let(:code) do
93
+ "if ! defined (Package['foo']) {
94
+ package {'foo': ensure => present; }
95
+ } elsif ! defined (Package['bar']) {
96
+ package {'bar': ensure => present; }
97
+ }"
98
+ end
99
+
100
+ it 'should not detect any problem' do
101
+ expect(problems).to have(0).problems
102
+ end
103
+ end
104
+
65
105
  context 'if not defined package twice' do
66
106
  let(:code) do
67
107
  "if ! defined (Package['foo']) {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-lint-use_ensure_packages-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marius Rieder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-10 00:00:00.000000000 Z
11
+ date: 2017-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: puppet-lint