arnold 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,21 @@
1
+ $(document).ready(function(){
2
+ $('input#newparam').click( function() {
3
+ addParam($('table.parameters'));
4
+ });
5
+
6
+ // activate the current tab
7
+ $('a[href="'+window.location.pathname+'"]').parent().addClass("ui-tabs-selected ui-state-active");
8
+ });
9
+
10
+ function addParam(table) {
11
+ param = prompt('Enter the name of the new parameter','ParamName');
12
+ if (param != null && param != "") {
13
+ if ($('input#param_' + param).length == 0) {
14
+ label='<label for="param_' + param +'">' + param + '</label>'
15
+ input='<input type="text" class="value" size="100" name="param_' + param + '" id="param_' + param + '" value="">'
16
+ table.append('<tr class="unsaved"><td>' + label + '</td><td>' + input + '</td></tr>');
17
+ $('input#param_' + param).focus();
18
+ }
19
+ }
20
+ }
21
+
@@ -0,0 +1,36 @@
1
+ table {
2
+ width: 850px;
3
+ border: 1px solid #ccc;
4
+ background: #efefef;
5
+ border-spacing: 0;
6
+ -moz-border-radius: 5px;
7
+ border-radius: 5px;
8
+ margin: 1em 0;
9
+ }
10
+ th {
11
+ border-bottom: 2px solid #999;
12
+ text-align: left;
13
+ }
14
+ tr.even {
15
+ background: #b3c6ae;
16
+ }
17
+ tr.unsaved {
18
+ background: #efd540;
19
+ }
20
+ td {
21
+ border-left: 1px solid #ddd;
22
+ }
23
+ td.param,
24
+ td.classname {
25
+ width: 120px;
26
+ }
27
+ input#newparam {
28
+ float: right;
29
+ font-size: small;
30
+ }
31
+ input.value {
32
+ width: 720px;
33
+ }
34
+ div.meta label {
35
+ display: block;
36
+ }
@@ -0,0 +1,8 @@
1
+ <% if @error %>
2
+ <div class="error">
3
+ <h2>Error</h2>
4
+ <div class="message">
5
+ <%= @error %>
6
+ </div>
7
+ </div>
8
+ <% end %>
@@ -0,0 +1,21 @@
1
+ <html>
2
+ <head>
3
+ <title>Arnold: the provisionator</title>
4
+ <link rel="stylesheet" type="text/css" href="/jquery-ui.css" media="all" />
5
+ <link rel="stylesheet" type="text/css" href="/style.css" />
6
+ <script type="text/javascript" src="/jquery.js"></script>
7
+ <script type="text/javascript" src="/scripts.js"></script>
8
+ </head>
9
+ <body>
10
+ <h1>Arnold: <i>the provisionator</i></h1>
11
+ <div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
12
+ <ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
13
+ <li class="ui-state-default ui-corner-top"><a href="/">List Nodes</a></li>
14
+ <li class="ui-state-default ui-corner-top"><a href="/new">Create New Node</a></li>
15
+ </ul>
16
+ <div id="content" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
17
+ <%= yield %>
18
+ </div>
19
+ </div>
20
+ </body>
21
+ </html>
@@ -0,0 +1,26 @@
1
+ <form action="/create" method="post">
2
+ <div class="meta">
3
+ <label for="name">Name:</label>
4
+ <input type="text" size=60 id"name" name="name" />
5
+ <label for="macaddr">MAC Address:</label>
6
+ <input type="text" size=60 id"macaddr" name="macaddr" />
7
+ </div>
8
+ <table class="parameters">
9
+ <tr class="header"><th colspan="2">Parameters <input type="button" id="newparam" value="Add Parameter" /></th></tr>
10
+ </table>
11
+ <table class="classes">
12
+ <tr class="header"><th colspan="3">Classes</th></tr>
13
+ <% even = true %>
14
+ <% if @classes %>
15
+ <% @classes.each do |classname, desc| %>
16
+ <tr class="<%= even ? "even":"odd" %>">
17
+ <td class="classname"><%= classname %></td>
18
+ <td class="description"><%= desc %></td>
19
+ <td class="selected"><input name="classes[]" value="<%= classname %>" type="checkbox"></td>
20
+ </tr>
21
+ <% even = !even %>
22
+ <% end %>
23
+ <% end %>
24
+ </table>
25
+ <input type="submit" value="Create Node" />
26
+ </form>
@@ -0,0 +1,42 @@
1
+ <% if @node %>
2
+ <form action="/update" method="post">
3
+ <% if @node.name then %><h2><%= @node.name %></h2><% end %>
4
+ <% if @node.macaddr then %><h3><%= @node.macaddr %></h3><% end %>
5
+ <input type="hidden" id="guid" name="guid" value="<%= @node.guid %>" />
6
+ <input type="hidden" id="name" name="name" value="<%= @node.name %>" />
7
+ <input type="hidden" id="macaddr" name="macaddr" value="<%= @node.macaddr %>" />
8
+ <table class="parameters">
9
+ <tr class="header"><th colspan="2">Parameters <input type="button" id="newparam" value="Add Parameter" /></th></tr>
10
+ <% even = true %>
11
+ <% @node.parameters.each do |param, value| %>
12
+ <tr class="<%= even ? "even":"odd" %>">
13
+ <td class="param"><label for="param_<%= param %>"><%= param %></label></td>
14
+ <td class="value"><input type="text" class="value" size="100" name="param_<%= param %>" id="param_<%= param %>" value="<%= value %>"></td>
15
+ </tr>
16
+ <% even = !even %>
17
+ <% end %>
18
+ </table>
19
+ <table class="classes">
20
+ <tr class="header"><th colspan="3">Classes</th></tr>
21
+ <% even = true %>
22
+ <% @node.enabled.each do |classname, desc| %>
23
+ <tr class="<%= even ? "even":"odd" %>">
24
+ <td class="classname"><%= classname %></td>
25
+ <td class="description"><%= desc %></td>
26
+ <td class="selected"><input type="checkbox" name="classes[]" value="<%= classname %>" checked></td>
27
+ </tr>
28
+ <% even = !even %>
29
+ <% end %>
30
+ <% @node.disabled.each do |classname, desc| %>
31
+ <tr class="<%= even ? "even":"odd" %>">
32
+ <td class="class"><%= classname %></td>
33
+ <td class="class"><%= desc %></td>
34
+ <td class="selected"><input type="checkbox" name="classes[]" value="<%= classname %>"></td>
35
+ </tr>
36
+ <% even = !even %>
37
+ <% end %>
38
+ </table>
39
+ <input type="submit" value="Update Node" />
40
+ </form>
41
+ <% end %>
42
+
@@ -0,0 +1,14 @@
1
+ <% if @nodes %>
2
+ <table>
3
+ <tr class="header"><th>UUID</th><th>Node Name</th><th>MAC Address</th></tr>
4
+ <% even = true %>
5
+ <% @nodes.each do |node| %>
6
+ <tr class="<%= even ? "even":"odd" %>">
7
+ <td class="guid"><a href="/node/<%= node.guid %>"><%= node.guid %></a></td>
8
+ <td class="name"><a href="/node/<%= node.guid %>"><%= node.name %></a></td>
9
+ <td class="macaddr"><a href="/node/<%= node.guid %>"><%= node.macaddr %></a></td>
10
+ </tr>
11
+ <% even = !even %>
12
+ <% end %>
13
+ </table>
14
+ <% end %>
metadata ADDED
@@ -0,0 +1,104 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: arnold
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Ben Ford
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2013-02-22 00:00:00 -07:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: sinatra
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 1
29
+ - 3
30
+ version: "1.3"
31
+ type: :runtime
32
+ version_requirements: *id001
33
+ description: " This is the start of a Puppet provisioning system.\n\n It provides a graphical web service, a JSON rest API and command line interface\n that will manage Hiera YAML files and a few functions to read them and apply\n classes and parameters to a node. It works like a lightweight External\n Node Classifier.\n\n It also provides provisioning functionality to spin up new instances after\n classifying them. It currently has a backend for Cloud Provisioner and will\n shortly have a VMWare plugin to spin up new instances for Razor to provision.\n New backend plugins are quite easy to create. Documentation forthcoming.\n"
34
+ email: binford2k@gmail.com
35
+ executables:
36
+ - arnold
37
+ extensions: []
38
+
39
+ extra_rdoc_files: []
40
+
41
+ files:
42
+ - README.md
43
+ - LICENSE
44
+ - bin/arnold
45
+ - lib/arnold/controller/cli.rb
46
+ - lib/arnold/controller/web.rb
47
+ - lib/arnold/controller.rb
48
+ - lib/arnold/monkeypatch.rb
49
+ - lib/arnold/node.rb
50
+ - lib/arnold/node_manager.rb
51
+ - lib/arnold/provisioner/cloud_provisioner.rb
52
+ - lib/arnold/provisioner/null.rb
53
+ - lib/arnold/provisioner.rb
54
+ - lib/arnold/server.rb
55
+ - doc/certs/README
56
+ - doc/certs/server.crt
57
+ - doc/certs/server.key
58
+ - doc/config.yaml
59
+ - doc/postjson.rb
60
+ - views/error.erb
61
+ - views/layout.erb
62
+ - views/new.erb
63
+ - views/node.erb
64
+ - views/nodes.erb
65
+ - public/images/ui-bg_flat_75_ffffff_40x100.png
66
+ - public/images/ui-bg_glass_65_ffffff_1x400.png
67
+ - public/images/ui-bg_glass_75_e6e6e6_1x400.png
68
+ - public/images/ui-bg_highlight-soft_75_cccccc_1x100.png
69
+ - public/jquery-ui.css
70
+ - public/jquery.js
71
+ - public/scripts.js
72
+ - public/style.css
73
+ has_rdoc: true
74
+ homepage: http://github.com/binford2k/arnold
75
+ licenses: []
76
+
77
+ post_install_message:
78
+ rdoc_options: []
79
+
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ requirements: []
97
+
98
+ rubyforge_project:
99
+ rubygems_version: 1.3.6
100
+ signing_key:
101
+ specification_version: 3
102
+ summary: A simplistic self service provisioner and Puppet classifier.
103
+ test_files: []
104
+