puppet-sec-lint 0.1.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +4 -2
- data/.idea/puppet-sec-lint.iml +7 -4
- data/Gemfile +3 -1
- data/Gemfile.lock +7 -1
- data/README.md +35 -18
- data/_config.yml +1 -0
- data/docs/404.html +24 -0
- data/docs/Gemfile +30 -0
- data/docs/Gemfile.lock +275 -0
- data/docs/_config.yml +41 -0
- data/docs/_posts/2021-05-03-welcome-to-jekyll.markdown +25 -0
- data/docs/_site/404.html +71 -0
- data/docs/_site/feed.xml +13 -0
- data/docs/_site/index.html +1 -0
- data/docs/_site/jekyll/update/2021/05/03/welcome-to-jekyll.html +77 -0
- data/docs/hard-coded-credentials.md +17 -0
- data/docs/index.md +6 -0
- data/exe/puppet-sec-lint +69 -15
- data/lib/configurations/configuration.rb +2 -1
- data/lib/configurations/regex_configuration.rb +9 -0
- data/lib/facades/configuration_file_facade.rb +3 -1
- data/lib/facades/configuration_page_facade.rb +6 -0
- data/lib/lol.pp +6 -6
- data/lib/puppet-sec-lint/version.rb +3 -1
- data/lib/rule_engine.rb +15 -3
- data/lib/rules/admin_by_default_rule.rb +33 -0
- data/lib/rules/cyrillic_homograph_attack.rb +27 -0
- data/lib/rules/empty_password_rule.rb +35 -0
- data/lib/rules/hard_coded_credentials_rule.rb +22 -31
- data/lib/rules/invalid_ip_addr_binding_rule.rb +37 -0
- data/lib/rules/no_http_rule.rb +26 -9
- data/lib/rules/rule.rb +72 -0
- data/lib/rules/suspicious_comment_rule.rb +28 -0
- data/lib/rules/use_weak_crypto_algorithms_rule.rb +28 -0
- data/lib/servers/language_server.rb +100 -0
- data/lib/servers/linter_server.rb +50 -0
- data/lib/{sin.rb → sin/sin.rb} +6 -1
- data/lib/sin/sin_type.rb +44 -0
- data/lib/test.txt +15 -0
- data/lib/test2.rb +16 -0
- data/lib/test3.rb +32 -0
- data/lib/test_new.rb +19 -0
- data/lol2.pp +83 -0
- metadata +30 -5
- data/lib/language_server.rb +0 -78
- data/lib/sin_type.rb +0 -12
data/docs/_config.yml
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Welcome to Jekyll!
|
2
|
+
#
|
3
|
+
# This config file is meant for settings that affect your whole blog, values
|
4
|
+
# which you are expected to set up once and rarely edit after that. If you find
|
5
|
+
# yourself editing this file very often, consider using Jekyll's data files
|
6
|
+
# feature for the data you need to update frequently.
|
7
|
+
#
|
8
|
+
# For technical reasons, this file is *NOT* reloaded automatically when you use
|
9
|
+
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
|
10
|
+
|
11
|
+
# Site settings
|
12
|
+
# These are used to personalize your new site. If you look in the HTML files,
|
13
|
+
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
|
14
|
+
# You can create any custom variable you would like, and they will be accessible
|
15
|
+
# in the templates via {{ site.myvariable }}.
|
16
|
+
title: Puppet Securtiy Linter
|
17
|
+
email: tiago7b27@gmail.com
|
18
|
+
description: >- # this means to ignore newlines until "baseurl:"
|
19
|
+
Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts
|
20
|
+
baseurl: "" # the subpath of your site, e.g. /blog
|
21
|
+
url: "" # the base hostname & protocol for your site, e.g. http://example.com
|
22
|
+
twitter_username: jekyllrb
|
23
|
+
github_username: jekyll
|
24
|
+
|
25
|
+
# Build settings
|
26
|
+
markdown: kramdown
|
27
|
+
theme: jekyll-theme-hacker
|
28
|
+
plugins:
|
29
|
+
- jekyll-feed
|
30
|
+
|
31
|
+
# Exclude from processing.
|
32
|
+
# The following items will not be processed, by default. Create a custom list
|
33
|
+
# to override the default setting.
|
34
|
+
# exclude:
|
35
|
+
# - Gemfile
|
36
|
+
# - Gemfile.lock
|
37
|
+
# - node_modules
|
38
|
+
# - vendor/bundle/
|
39
|
+
# - vendor/cache/
|
40
|
+
# - vendor/gems/
|
41
|
+
# - vendor/ruby/
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
layout: post
|
3
|
+
title: "Welcome to Jekyll!"
|
4
|
+
date: 2021-05-03 21:09:12 +0100
|
5
|
+
categories: jekyll update
|
6
|
+
---
|
7
|
+
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
|
8
|
+
|
9
|
+
To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
|
10
|
+
|
11
|
+
Jekyll also offers powerful support for code snippets:
|
12
|
+
|
13
|
+
{% highlight ruby %}
|
14
|
+
def print_hi(name)
|
15
|
+
puts "Hi, #{name}"
|
16
|
+
end
|
17
|
+
print_hi('Tom')
|
18
|
+
#=> prints 'Hi, Tom' to STDOUT.
|
19
|
+
{% endhighlight %}
|
20
|
+
|
21
|
+
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
|
22
|
+
|
23
|
+
[jekyll-docs]: https://jekyllrb.com/docs/home
|
24
|
+
[jekyll-gh]: https://github.com/jekyll/jekyll
|
25
|
+
[jekyll-talk]: https://talk.jekyllrb.com/
|
data/docs/_site/404.html
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en-US">
|
3
|
+
<head>
|
4
|
+
<meta charset='utf-8'>
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=451ab93a01ea7ba9ec933d2a6c0ad3f1555b70e0">
|
8
|
+
|
9
|
+
<!-- Begin Jekyll SEO tag v2.7.1 -->
|
10
|
+
<title>Puppet Securtiy Linter | Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts</title>
|
11
|
+
<meta name="generator" content="Jekyll v3.9.0" />
|
12
|
+
<meta property="og:title" content="Puppet Securtiy Linter" />
|
13
|
+
<meta property="og:locale" content="en_US" />
|
14
|
+
<meta name="description" content="Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts" />
|
15
|
+
<meta property="og:description" content="Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts" />
|
16
|
+
<link rel="canonical" href="http://localhost:4000/404.html" />
|
17
|
+
<meta property="og:url" content="http://localhost:4000/404.html" />
|
18
|
+
<meta property="og:site_name" content="Puppet Securtiy Linter" />
|
19
|
+
<meta name="twitter:card" content="summary" />
|
20
|
+
<meta property="twitter:title" content="Puppet Securtiy Linter" />
|
21
|
+
<script type="application/ld+json">
|
22
|
+
{"@type":"WebPage","headline":"Puppet Securtiy Linter","description":"Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts","url":"http://localhost:4000/404.html","@context":"https://schema.org"}</script>
|
23
|
+
<!-- End Jekyll SEO tag -->
|
24
|
+
|
25
|
+
</head>
|
26
|
+
|
27
|
+
<body>
|
28
|
+
|
29
|
+
<header>
|
30
|
+
<div class="container">
|
31
|
+
<a id="a-title" href="/">
|
32
|
+
<h1>Puppet Securtiy Linter</h1>
|
33
|
+
</a>
|
34
|
+
<h2>Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts</h2>
|
35
|
+
|
36
|
+
<section id="downloads">
|
37
|
+
|
38
|
+
<a href="https://github.com/TiagoR98/puppet-sec-lint" class="btn btn-github"><span class="icon"></span>View on GitHub</a>
|
39
|
+
</section>
|
40
|
+
</div>
|
41
|
+
</header>
|
42
|
+
|
43
|
+
<div class="container">
|
44
|
+
<section id="main_content">
|
45
|
+
<style type="text/css" media="screen">
|
46
|
+
.container {
|
47
|
+
margin: 10px auto;
|
48
|
+
max-width: 600px;
|
49
|
+
text-align: center;
|
50
|
+
}
|
51
|
+
h1 {
|
52
|
+
margin: 30px 0;
|
53
|
+
font-size: 4em;
|
54
|
+
line-height: 1;
|
55
|
+
letter-spacing: -1px;
|
56
|
+
}
|
57
|
+
</style>
|
58
|
+
|
59
|
+
<div class="container">
|
60
|
+
<h1>404</h1>
|
61
|
+
|
62
|
+
<p><strong>Page not found :(</strong></p>
|
63
|
+
<p>The requested page could not be found.</p>
|
64
|
+
</div>
|
65
|
+
|
66
|
+
</section>
|
67
|
+
</div>
|
68
|
+
|
69
|
+
|
70
|
+
</body>
|
71
|
+
</html>
|
data/docs/_site/feed.xml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.0">Jekyll</generator><link href="http://localhost:4000/feed.xml" rel="self" type="application/atom+xml" /><link href="http://localhost:4000/" rel="alternate" type="text/html" /><updated>2021-05-03T22:26:18+01:00</updated><id>http://localhost:4000/feed.xml</id><title type="html">Puppet Securtiy Linter</title><subtitle>Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts</subtitle><entry><title type="html">Welcome to Jekyll!</title><link href="http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll.html" rel="alternate" type="text/html" title="Welcome to Jekyll!" /><published>2021-05-03T21:09:12+01:00</published><updated>2021-05-03T21:09:12+01:00</updated><id>http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll</id><content type="html" xml:base="http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll.html"><p>You’ll find this post in your <code class="language-plaintext highlighter-rouge">_posts</code> directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run <code class="language-plaintext highlighter-rouge">jekyll serve</code>, which launches a web server and auto-regenerates your site when a file is updated.</p>
|
2
|
+
|
3
|
+
<p>To add new posts, simply add a file in the <code class="language-plaintext highlighter-rouge">_posts</code> directory that follows the convention <code class="language-plaintext highlighter-rouge">YYYY-MM-DD-name-of-post.ext</code> and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.</p>
|
4
|
+
|
5
|
+
<p>Jekyll also offers powerful support for code snippets:</p>
|
6
|
+
|
7
|
+
<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
|
8
|
+
<span class="nb">puts</span> <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
|
9
|
+
<span class="k">end</span>
|
10
|
+
<span class="n">print_hi</span><span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
|
11
|
+
<span class="c1">#=&gt; prints 'Hi, Tom' to STDOUT.</span></code></pre></figure>
|
12
|
+
|
13
|
+
<p>Check out the <a href="https://jekyllrb.com/docs/home">Jekyll docs</a> for more info on how to get the most out of Jekyll. File all bugs/feature requests at <a href="https://github.com/jekyll/jekyll">Jekyll’s GitHub repo</a>. If you have questions, you can ask them on <a href="https://talk.jekyllrb.com/">Jekyll Talk</a>.</p></content><author><name></name></author><category term="jekyll" /><category term="update" /><summary type="html">You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.</summary></entry></feed>
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1,77 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en-US">
|
3
|
+
<head>
|
4
|
+
<meta charset='utf-8'>
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=451ab93a01ea7ba9ec933d2a6c0ad3f1555b70e0">
|
8
|
+
|
9
|
+
<!-- Begin Jekyll SEO tag v2.7.1 -->
|
10
|
+
<title>Welcome to Jekyll! | Puppet Securtiy Linter</title>
|
11
|
+
<meta name="generator" content="Jekyll v3.9.0" />
|
12
|
+
<meta property="og:title" content="Welcome to Jekyll!" />
|
13
|
+
<meta property="og:locale" content="en_US" />
|
14
|
+
<meta name="description" content="You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated." />
|
15
|
+
<meta property="og:description" content="You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated." />
|
16
|
+
<link rel="canonical" href="http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll.html" />
|
17
|
+
<meta property="og:url" content="http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll.html" />
|
18
|
+
<meta property="og:site_name" content="Puppet Securtiy Linter" />
|
19
|
+
<meta property="og:type" content="article" />
|
20
|
+
<meta property="article:published_time" content="2021-05-03T21:09:12+01:00" />
|
21
|
+
<meta name="twitter:card" content="summary" />
|
22
|
+
<meta property="twitter:title" content="Welcome to Jekyll!" />
|
23
|
+
<script type="application/ld+json">
|
24
|
+
{"@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll.html"},"headline":"Welcome to Jekyll!","dateModified":"2021-05-03T21:09:12+01:00","datePublished":"2021-05-03T21:09:12+01:00","description":"You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.","url":"http://localhost:4000/jekyll/update/2021/05/03/welcome-to-jekyll.html","@context":"https://schema.org"}</script>
|
25
|
+
<!-- End Jekyll SEO tag -->
|
26
|
+
|
27
|
+
</head>
|
28
|
+
|
29
|
+
<body>
|
30
|
+
|
31
|
+
<header>
|
32
|
+
<div class="container">
|
33
|
+
<a id="a-title" href="/">
|
34
|
+
<h1>Puppet Securtiy Linter</h1>
|
35
|
+
</a>
|
36
|
+
<h2>Scurity focused linter to detect and help solve vulnearbilities found on Puppet Infrastructure-as-code scripts</h2>
|
37
|
+
|
38
|
+
<section id="downloads">
|
39
|
+
|
40
|
+
<a href="https://github.com/TiagoR98/puppet-sec-lint" class="btn btn-github"><span class="icon"></span>View on GitHub</a>
|
41
|
+
</section>
|
42
|
+
</div>
|
43
|
+
</header>
|
44
|
+
|
45
|
+
<div class="container">
|
46
|
+
<section id="main_content">
|
47
|
+
<small>3 May 2021</small>
|
48
|
+
<h1>Welcome to Jekyll!</h1>
|
49
|
+
|
50
|
+
<p class="view">by </p>
|
51
|
+
|
52
|
+
<p>You’ll find this post in your <code class="language-plaintext highlighter-rouge">_posts</code> directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run <code class="language-plaintext highlighter-rouge">jekyll serve</code>, which launches a web server and auto-regenerates your site when a file is updated.</p>
|
53
|
+
|
54
|
+
<p>To add new posts, simply add a file in the <code class="language-plaintext highlighter-rouge">_posts</code> directory that follows the convention <code class="language-plaintext highlighter-rouge">YYYY-MM-DD-name-of-post.ext</code> and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.</p>
|
55
|
+
|
56
|
+
<p>Jekyll also offers powerful support for code snippets:</p>
|
57
|
+
|
58
|
+
<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
|
59
|
+
<span class="nb">puts</span> <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
|
60
|
+
<span class="k">end</span>
|
61
|
+
<span class="n">print_hi</span><span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
|
62
|
+
<span class="c1">#=> prints 'Hi, Tom' to STDOUT.</span></code></pre></figure>
|
63
|
+
|
64
|
+
<p>Check out the <a href="https://jekyllrb.com/docs/home">Jekyll docs</a> for more info on how to get the most out of Jekyll. File all bugs/feature requests at <a href="https://github.com/jekyll/jekyll">Jekyll’s GitHub repo</a>. If you have questions, you can ask them on <a href="https://talk.jekyllrb.com/">Jekyll Talk</a>.</p>
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
<small>tags: <em></em></small>
|
70
|
+
|
71
|
+
|
72
|
+
</section>
|
73
|
+
</div>
|
74
|
+
|
75
|
+
|
76
|
+
</body>
|
77
|
+
</html>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
title: Hard Coded Credentials
|
3
|
+
permalink: /hard-coded-credentials/
|
4
|
+
---
|
5
|
+
|
6
|
+
# Hard Coded Credentials
|
7
|
+
|
8
|
+
Writing sensitive credentials on puppet scripts can expose them to malicious actors who can obtain access to these files.
|
9
|
+
|
10
|
+
## Example
|
11
|
+
|
12
|
+
```puppet
|
13
|
+
class example::service (
|
14
|
+
$username = "user1",
|
15
|
+
$passsword = "amind1234"
|
16
|
+
)
|
17
|
+
```
|
data/docs/index.md
ADDED
data/exe/puppet-sec-lint
CHANGED
@@ -2,34 +2,88 @@
|
|
2
2
|
|
3
3
|
require_relative '../lib/rule_engine'
|
4
4
|
require 'json'
|
5
|
+
require 'launchy'
|
5
6
|
require 'optparse'
|
6
7
|
require 'optparse/uri'
|
8
|
+
require_relative '../lib/puppet-sec-lint/version'
|
7
9
|
require_relative '../lib/visitors/configuration_visitor'
|
8
10
|
require_relative '../lib/facades/configuration_file_facade'
|
9
11
|
|
12
|
+
conf_page_url = "http://localhost:9292/configuration"
|
13
|
+
|
10
14
|
options = {}
|
15
|
+
@success = true
|
16
|
+
|
17
|
+
def analyze_file(file_path)
|
18
|
+
File.open(file_path, 'rb:UTF-8') do |f|
|
19
|
+
puts "Analyzing the file #{File.basename(file_path)}...\n\n"
|
20
|
+
|
21
|
+
code = f.read
|
22
|
+
result = RuleEngine.analyzeDocument(code)
|
23
|
+
|
24
|
+
result.each do |sin|
|
25
|
+
puts sin.ToString
|
26
|
+
@success = false
|
27
|
+
end
|
28
|
+
|
29
|
+
puts "\nFound #{result.length} vulnerabilities in the puppet code.\n"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
11
33
|
OptionParser.new do |opts|
|
12
|
-
opts.banner = "Usage: puppet-sec-lint [options]"
|
34
|
+
opts.banner = "Usage: puppet-sec-lint [file or directory] [options]"
|
13
35
|
|
14
|
-
opts.on("-
|
15
|
-
options[:
|
36
|
+
opts.on("-c", "--configurations", "Open the linter rules configurations page on a browser") do |v|
|
37
|
+
options[:configurations] = v
|
16
38
|
end
|
17
39
|
end.parse!
|
18
40
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
41
|
+
puts '___ _ _ ___ ___ ____ ___ ____ ____ ____ _ _ ____ _ ___ _ _ _ _ _ _ ___ ____ ____ '
|
42
|
+
puts '|__] | | |__] |__] |___ | [__ |___ | | | |__/ | | \_/ | | |\ | | |___ |__/ '
|
43
|
+
puts '| |__| | | |___ | ___] |___ |___ |__| | \ | | | |___ | | \| | |___ | \ '
|
44
|
+
|
45
|
+
puts "\n"
|
23
46
|
|
24
|
-
|
25
|
-
ConfigurationFileFacade.LoadConfigurations
|
47
|
+
puts "Release v#{PuppetSecLint::VERSION} #{PuppetSecLint::AUTHOR} #{PuppetSecLint::YEAR}"
|
26
48
|
|
27
|
-
|
28
|
-
code = f.read
|
49
|
+
puts "\n"
|
29
50
|
|
30
|
-
|
51
|
+
if not ARGV[0].nil?
|
52
|
+
if File.file?(ARGV[0].to_s) && File.extname(ARGV[0].to_s) == '.pp'
|
53
|
+
analyze_file(ARGV[0].to_s)
|
54
|
+
elsif File.directory?(ARGV[0].to_s)
|
55
|
+
Dir.chdir(ARGV[0].to_s)
|
56
|
+
files = Dir.glob("**/*.pp").map {|f| File.join(Dir.pwd,f) }
|
31
57
|
|
32
|
-
|
33
|
-
|
58
|
+
files.each do |file_path|
|
59
|
+
analyze_file(file_path)
|
60
|
+
puts "\n"
|
61
|
+
end
|
62
|
+
else
|
63
|
+
raise "#{ARGV[0].to_s} is neither a valid directory or puppet file"
|
34
64
|
end
|
35
|
-
end
|
65
|
+
end
|
66
|
+
|
67
|
+
if ARGV[0].nil? || options[:configurations]
|
68
|
+
linter_server = Thread.new {
|
69
|
+
require_relative '../lib/servers/linter_server'
|
70
|
+
}
|
71
|
+
language_server = Thread.new {
|
72
|
+
require_relative '../lib/servers/language_server'
|
73
|
+
LanguageServer.start
|
74
|
+
}
|
75
|
+
|
76
|
+
if options[:configurations]
|
77
|
+
puts "\nLaunching configurations page at #{conf_page_url}...\n\n"
|
78
|
+
Launchy.open(conf_page_url)
|
79
|
+
else
|
80
|
+
puts "\nLinter configurations page available at #{conf_page_url}\n\n"
|
81
|
+
end
|
82
|
+
|
83
|
+
linter_server.join
|
84
|
+
language_server.exit
|
85
|
+
end
|
86
|
+
|
87
|
+
exit(@success)
|
88
|
+
|
89
|
+
|
@@ -13,7 +13,7 @@ class ConfigurationFileFacade
|
|
13
13
|
when DisplayField[:SelectBox]
|
14
14
|
ini[rule][configuration.id] = configuration.value.join(',')
|
15
15
|
else
|
16
|
-
ini[rule][configuration.id] = configuration.value
|
16
|
+
ini[rule][configuration.id] = configuration.value.to_s
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -32,6 +32,8 @@ class ConfigurationFileFacade
|
|
32
32
|
case configuration.displayfield
|
33
33
|
when DisplayField[:SelectBox]
|
34
34
|
configuration.value = ini[rule][configuration.id].split(',')
|
35
|
+
when DisplayField[:RegexBox]
|
36
|
+
configuration.value = Regexp.new ini[rule][configuration.id]
|
35
37
|
else
|
36
38
|
configuration.value = ini[rule][configuration.id]
|
37
39
|
end
|
@@ -50,6 +50,8 @@ class ConfigurationPageFacade
|
|
50
50
|
return_value+="#{option}\n"
|
51
51
|
end
|
52
52
|
return_value += "</textarea>"
|
53
|
+
when DisplayField[:TextBox], DisplayField[:RegexBox]
|
54
|
+
return_value += "<input type=\"text\" id=\"#{configuration.id}\" name=\"#{configuration.id}\" value=\"#{configuration.value.to_s}\" size=\"#{configuration.value.to_s.length()}\"><br>\n"
|
53
55
|
end
|
54
56
|
|
55
57
|
return_value += "<p style=\"color:gray\">#{configuration.description}</p>\n<br>\n"
|
@@ -71,6 +73,10 @@ class ConfigurationPageFacade
|
|
71
73
|
|
72
74
|
when DisplayField[:SelectBox]
|
73
75
|
configuration.value = new_conf[configuration.id].split(/\r?\n/).delete_if(&:empty?)
|
76
|
+
|
77
|
+
when DisplayField[:RegexBox]
|
78
|
+
configuration.value = Regexp.new new_conf[configuration.id]
|
79
|
+
|
74
80
|
else
|
75
81
|
configuration.value = new_conf[configuration.id]
|
76
82
|
end
|
data/lib/lol.pp
CHANGED
@@ -8,17 +8,17 @@
|
|
8
8
|
# the following code addresses the bug: https://bugs.launchpad.net/keystone/+bug/1472285 .
|
9
9
|
|
10
10
|
class consul_template::service (
|
11
|
-
$
|
12
|
-
$
|
13
|
-
$
|
14
|
-
$
|
11
|
+
$pass = lols(3),
|
12
|
+
$aijoijooiumihhn_password = 'pe-puppet'
|
13
|
+
$admin = 'ceisssesrelometer',
|
14
|
+
$aijoijooiumihhn_password = '(adiyu(guygmin',
|
15
15
|
) {
|
16
16
|
exec { 'network-restart':
|
17
17
|
command => 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDM release-runner key',
|
18
18
|
path => '/usr/bin:/usr/sbin:/bin:/sbin',
|
19
19
|
refreshonly => true,
|
20
20
|
vmware_md5 => 'LOL',
|
21
|
-
autho => '
|
21
|
+
autho => 'MDi09i09i5',
|
22
22
|
cmd => 'virsh secret-define --file ${secret_xml} && virsh secret-set-value --secret ${rbd_secret_uuid} --base64 $(ceph auth get-key client.${user})',
|
23
23
|
$auth_uri => 'http://127.0.0.1:5000',
|
24
24
|
'bind_address' => '0.0.0.0',
|
@@ -80,4 +80,4 @@ UcXHbA==
|
|
80
80
|
replace => true,
|
81
81
|
require => File['/var/lib/gerrit/.ssh']
|
82
82
|
}
|
83
|
-
}
|
83
|
+
}
|