chef-server-webui 0.8.16 → 0.9.0.a3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +14 -10
- data/app/controllers/application.rb +111 -128
- data/app/controllers/clients.rb +10 -10
- data/app/controllers/cookbook_attributes.rb +1 -1
- data/app/controllers/cookbook_definitions.rb +1 -1
- data/app/controllers/cookbook_files.rb +1 -1
- data/app/controllers/cookbook_libraries.rb +1 -1
- data/app/controllers/cookbook_recipes.rb +1 -1
- data/app/controllers/cookbook_templates.rb +1 -1
- data/app/controllers/cookbooks.rb +21 -3
- data/app/controllers/databag_items.rb +6 -6
- data/app/controllers/databags.rb +3 -3
- data/app/controllers/main.rb +1 -1
- data/app/controllers/nodes.rb +21 -21
- data/app/controllers/openid_consumer.rb +9 -9
- data/app/controllers/roles.rb +3 -3
- data/app/controllers/search.rb +1 -1
- data/app/controllers/search_entries.rb +1 -1
- data/app/controllers/status.rb +1 -1
- data/app/controllers/users.rb +7 -7
- data/app/helpers/application_helper.rb +1 -156
- data/app/helpers/global_helpers.rb +20 -16
- data/app/helpers/nodes_helper.rb +24 -22
- data/app/helpers/openid_server_helpers.rb +13 -10
- data/app/helpers/search_helper.rb +44 -38
- data/app/helpers/status_helper.rb +10 -3
- data/app/views/clients/_navigation.html.haml +5 -5
- data/app/views/clients/edit.html.haml +1 -1
- data/app/views/clients/index.html.haml +4 -4
- data/app/views/clients/new.html.haml +1 -1
- data/app/views/cookbooks/index.html.haml +1 -1
- data/app/views/cookbooks/show.html.haml +25 -16
- data/app/views/databag_items/_form.html.haml +1 -1
- data/app/views/databag_items/_navigation.html.haml +5 -5
- data/app/views/databag_items/edit.html.haml +1 -1
- data/app/views/databag_items/new.html.haml +1 -1
- data/app/views/databags/_item_navigation.html.haml +4 -4
- data/app/views/databags/_navigation.html.haml +5 -5
- data/app/views/databags/edit.html.haml +1 -1
- data/app/views/databags/index.html.haml +3 -3
- data/app/views/databags/new.html.haml +1 -1
- data/app/views/databags/show.html.haml +3 -3
- data/app/views/layout/{chef_server_webui.html.haml → application.html.haml} +11 -11
- data/app/views/layout/login.html.haml +1 -1
- data/app/views/nodes/_form.html.haml +1 -1
- data/app/views/nodes/_navigation.html.haml +5 -5
- data/app/views/nodes/edit.html.haml +1 -1
- data/app/views/nodes/index.html.haml +6 -6
- data/app/views/nodes/new.html.haml +1 -1
- data/app/views/nodes/show.html.haml +4 -5
- data/app/views/openid_consumer/index.html.haml +2 -2
- data/app/views/openid_register/index.html.haml +4 -4
- data/app/views/openid_register/show.html.haml +1 -1
- data/app/views/roles/_form.html.haml +1 -1
- data/app/views/roles/_navigation.html.haml +5 -5
- data/app/views/roles/edit.html.haml +1 -1
- data/app/views/roles/index.html.haml +4 -4
- data/app/views/roles/new.html.haml +1 -1
- data/app/views/roles/show.html.haml +3 -4
- data/app/views/search/_search_form.html.haml +1 -1
- data/app/views/search/index.html.haml +1 -1
- data/app/views/search/show.html.haml +1 -1
- data/app/views/status/index.html.haml +9 -12
- data/app/views/users/_form.html.haml +1 -1
- data/app/views/users/_navigation.html.haml +5 -5
- data/app/views/users/edit.html.haml +1 -1
- data/app/views/users/index.html.haml +3 -3
- data/app/views/users/login.html.haml +1 -1
- data/app/views/users/new.html.haml +1 -1
- data/bin/chef-server-webui +72 -0
- data/config.ru +10 -74
- data/config/init.rb +30 -11
- data/config/rack.rb +5 -0
- data/config/router.rb +62 -5
- data/lib/chef-server-webui.rb +2 -155
- data/lib/chef-server-webui/version.rb +3 -0
- data/public/javascripts/drop_down_menu.js +22 -0
- metadata +60 -48
- data/stubs/app/controllers/application.rb +0 -2
- data/stubs/app/controllers/main.rb +0 -2
@@ -16,24 +16,24 @@
|
|
16
16
|
%body
|
17
17
|
#container
|
18
18
|
#header
|
19
|
-
%h1= link_to "Chef Server",
|
19
|
+
%h1= link_to "Chef Server", url(:top)
|
20
20
|
#user-navigation
|
21
21
|
%ul
|
22
22
|
- if session[:user]
|
23
|
-
%li= link_to "Logout #{h session[:user]} (#{session[:level].to_s})",
|
23
|
+
%li= link_to "Logout #{h session[:user]} (#{session[:level].to_s})", url(:users_logout), :method => "get", :confirm => "Are you sure you want to logout?"
|
24
24
|
- else
|
25
|
-
%li= link_to "Login",
|
25
|
+
%li= link_to "Login", url(:users_login), :rel => "facebox"
|
26
26
|
.clear
|
27
27
|
#main-navigation
|
28
28
|
%ul
|
29
|
-
%li= link_to "Search",
|
30
|
-
%li= link_to "Status",
|
31
|
-
%li= link_to "Roles",
|
32
|
-
%li= link_to "Nodes",
|
33
|
-
%li= link_to "Cookbooks",
|
34
|
-
%li= link_to "Databags",
|
35
|
-
%li= link_to "Clients",
|
36
|
-
%li= link_to "Users",
|
29
|
+
%li= link_to "Search", url(:searches)
|
30
|
+
%li= link_to "Status", url(:status)
|
31
|
+
%li= link_to "Roles", url(:roles)
|
32
|
+
%li= link_to "Nodes", url(:nodes)
|
33
|
+
%li= link_to "Cookbooks", url(:cookbooks)
|
34
|
+
%li= link_to "Databags", url(:databags)
|
35
|
+
%li= link_to "Clients", url(:clients)
|
36
|
+
%li= link_to "Users", url(:users)
|
37
37
|
.clear
|
38
38
|
#wrapper
|
39
39
|
#main
|
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
%div.group.form{:style => "position:relative;"}
|
44
44
|
%label.label Attributes
|
45
|
-
= partial '
|
45
|
+
= partial 'layout/jsonedit', :json =>@node.normal_attrs.to_json
|
46
46
|
%div.group.form
|
47
47
|
%span.description A JSON hash for default attributes for nodes of this node. These attributes will only be applied if the node does not already have a value for the attributes.
|
48
48
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
.secondary-navigation
|
2
2
|
%ul
|
3
|
-
%li{ :class => "first #{active == 'index' ? "active" : ''}"}= link_to('List',
|
4
|
-
%li{ :class => (active == 'create' ? "active" : '')}= link_to('Create',
|
3
|
+
%li{ :class => "first #{active == 'index' ? "active" : ''}"}= link_to('List', url(:nodes))
|
4
|
+
%li{ :class => (active == 'create' ? "active" : '')}= link_to('Create', url(:new_node))
|
5
5
|
- if active != 'create' && active != 'index'
|
6
|
-
%li{ :class => (active == 'show' ? "active" : '')}= link_to('Show',
|
7
|
-
%li{ :class => (active == 'edit' ? "active" : '')}= link_to('Edit',
|
8
|
-
%li= link_to('Delete',
|
6
|
+
%li{ :class => (active == 'show' ? "active" : '')}= link_to('Show', url(:node, @node.name))
|
7
|
+
%li{ :class => (active == 'edit' ? "active" : '')}= link_to('Edit', url(:edit_node, @node.name))
|
8
|
+
%li= link_to('Delete', url(:node, @node.name), :method => "delete", :confirm => "Really delete node #{@node.name}? There is no undo.")
|
9
9
|
.clear
|
@@ -3,5 +3,5 @@
|
|
3
3
|
%h2.title= "Node #{h @node.name}"
|
4
4
|
.inner
|
5
5
|
= partial('navigation', :active => 'edit')
|
6
|
-
= partial('form', :header => "Edit Node #{@node.name}", :form_id => 'edit_node', :submit_name => "Save Node", :submit_id => "edit_node_button", :form_for => 'edit', :form_url =>
|
6
|
+
= partial('form', :header => "Edit Node #{@node.name}", :form_id => 'edit_node', :submit_name => "Save Node", :submit_id => "edit_node_button", :form_for => 'edit', :form_url => url(:node, @node.name) )
|
7
7
|
|
@@ -12,14 +12,14 @@
|
|
12
12
|
%th.last
|
13
13
|
- even = false
|
14
14
|
- if @node_list.empty?
|
15
|
-
%td{:colspan => 4}= "You appear to have no nodes - try connecting one, or creating or editing a #{link_to('client',
|
15
|
+
%td{:colspan => 4}= "You appear to have no nodes - try connecting one, or creating or editing a #{link_to('client', url(:clients))}"
|
16
16
|
- else
|
17
|
-
- @node_list.each do |node
|
17
|
+
- @node_list.each do |node|
|
18
18
|
%tr{:class => even ? "even": "odd" }
|
19
|
-
%td{:colspan => 2}= link_to node,
|
19
|
+
%td{:colspan => 2}= link_to node, url(:node, { :id => node } )
|
20
20
|
%td
|
21
|
-
= link_to('Edit',
|
21
|
+
= link_to('Edit', url(:edit_node, node))
|
22
22
|
|
|
23
|
-
= link_to('Delete',
|
24
|
-
- even
|
23
|
+
= link_to('Delete', url(:node, node), :method => "delete", :confirm => "Really delete Node #{node}? There is no undo.")
|
24
|
+
- even = (not even)
|
25
25
|
|
@@ -3,4 +3,4 @@
|
|
3
3
|
%h2.title= "Node"
|
4
4
|
.inner
|
5
5
|
= partial('navigation', :active => 'create')
|
6
|
-
= partial('form', :header => "Create new Node", :form_id => 'create_node', :submit_name => "Create Node", :submit_id => "create_node_button", :form_for => 'create', :form_url =>
|
6
|
+
= partial('form', :header => "Create new Node", :form_id => 'create_node', :submit_name => "Create Node", :submit_id => "create_node_button", :form_for => 'create', :form_url => url(:nodes))
|
@@ -17,12 +17,11 @@
|
|
17
17
|
%tr
|
18
18
|
%td{:colspan => 2} This node has no roles or recipes applied.
|
19
19
|
- else
|
20
|
-
-@node.run_list.
|
21
|
-
- type, name, fname = @node.run_list.parse_entry(@node.run_list[i])
|
20
|
+
-@node.run_list.each_with_index do |run_list_item, i|
|
22
21
|
%tr
|
23
22
|
%td.position= i
|
24
|
-
%td= name
|
25
|
-
%td= type
|
23
|
+
%td= run_list_item.name
|
24
|
+
%td= run_list_item.type
|
26
25
|
.left.accordion
|
27
26
|
%h3.head= link_to("Recipes", "#")
|
28
27
|
- full_recipe_list, default_attrs, override_attrs = @node.run_list.expand()
|
@@ -56,5 +55,5 @@
|
|
56
55
|
|
57
56
|
.left
|
58
57
|
%h3 Attributes
|
59
|
-
= build_tree('attrs', @node
|
58
|
+
= build_tree('attrs', @node)
|
60
59
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
.content
|
12
12
|
%h2.title Login
|
13
13
|
.inner
|
14
|
-
%form.form{ :method => "get", "accept-charset" => "UTF-8", :action =>
|
14
|
+
%form.form{ :method => "get", "accept-charset" => "UTF-8", :action => url(:openid_consumer_login) }
|
15
15
|
.group
|
16
16
|
.text_field= text_field :openid_identifier
|
17
17
|
.group
|
@@ -23,6 +23,6 @@
|
|
23
23
|
.group
|
24
24
|
.check_box= check_box :name => "force_post", :label => "Force the transaction to POST", :value => "0"
|
25
25
|
.group
|
26
|
-
=link_to("Or, log in with username and password.",
|
26
|
+
=link_to("Or, log in with username and password.", url(:users_login))
|
27
27
|
.group.navform
|
28
28
|
.button= submit "Login →"
|
@@ -10,10 +10,10 @@
|
|
10
10
|
%th.last
|
11
11
|
- @registered_nodes.sort{ |a,b| a.name.to_s <=> b.name.to_s }.each_with_index do |node, index|
|
12
12
|
%tr{:class => "#{index % 2 == 1 ? 'odd' : 'even'}"}
|
13
|
-
%td{:colspan => 2}= link_to(node.name,
|
13
|
+
%td{:colspan => 2}= link_to(node.name, url(:registration, { :id => node.name }))
|
14
14
|
%td
|
15
|
-
= link_to( (node.validated ? "Invalidate Registration" : "Validate Registration"),
|
15
|
+
= link_to( (node.validated ? "Invalidate Registration" : "Validate Registration"), url( :validate_registration, { :id => node.name} ), :method => "post", :confirm => "Are you sure you want to" + (node.validated ? " invalidate " : " validate ") + "this node's registration?")
|
16
16
|
|
|
17
|
-
= link_to((node.admin ? "Remove Admin Rights" : "Grant Admin Rights"),
|
17
|
+
= link_to((node.admin ? "Remove Admin Rights" : "Grant Admin Rights"), url(:admin_registration, { :id => node.name}), :method => "post", :confirm => "Are you sure you want to" + (node.admin ? " remove administrator privileges from this node?" : " grant administrator privileges to this node?"))
|
18
18
|
|
|
19
|
-
= link_to("Delete",
|
19
|
+
= link_to("Delete", url(:registration, { :id => node.name} ), :method => "delete", :confirm => "Are you sure you want to delete this registration")
|
@@ -2,6 +2,6 @@
|
|
2
2
|
.content
|
3
3
|
%h2.title= "Registration #{@registered_node.name}"
|
4
4
|
.inner
|
5
|
-
= link_to "OpenID URL",
|
5
|
+
= link_to "OpenID URL", url(:openid_node, { :id => @registered_node.name.gsub(/\./, "_")})
|
6
6
|
%br= "Validated: #{@registered_node.validated}"
|
7
7
|
%br= "Admin: #{@registered_node.admin}"
|
@@ -45,7 +45,7 @@
|
|
45
45
|
|
46
46
|
%div.group.form{:style => "position:relative;"}
|
47
47
|
%label.label Default and Override Attributes
|
48
|
-
= partial '
|
48
|
+
= partial 'layout/jsonedit', :json => { :defaults => @role.default_attributes, :overrides => @role.override_attributes }.to_json
|
49
49
|
%span.description A JSON hash for default attributes for nodes of this role. These attributes will only be applied if the node does not already have a value for the attributes.
|
50
50
|
= form(:action => form_url, :method => :post, :id => form_id, :class => 'form') do
|
51
51
|
%div.group
|
@@ -1,9 +1,9 @@
|
|
1
1
|
.secondary-navigation
|
2
2
|
%ul
|
3
|
-
%li{ :class => "first #{active == 'index' ? "active" : ''}"}= link_to('List',
|
4
|
-
%li{ :class => (active == 'create' ? "active" : '')}= link_to('Create',
|
3
|
+
%li{ :class => "first #{active == 'index' ? "active" : ''}"}= link_to('List', url(:roles))
|
4
|
+
%li{ :class => (active == 'create' ? "active" : '')}= link_to('Create', url(:new_role))
|
5
5
|
- if active != 'create' && active != 'index'
|
6
|
-
%li{ :class => (active == 'show' ? "active" : '')}= link_to('Show',
|
7
|
-
%li{ :class => (active == 'edit' ? "active" : '')}= link_to('Edit',
|
8
|
-
%li= link_to('Delete',
|
6
|
+
%li{ :class => (active == 'show' ? "active" : '')}= link_to('Show', url(:role, @role.name))
|
7
|
+
%li{ :class => (active == 'edit' ? "active" : '')}= link_to('Edit', url(:edit_role, @role.name))
|
8
|
+
%li= link_to('Delete', url(:role, @role.name), :method => "delete", :confirm => "Really delete Role #{@role.name}? There is no undo.")
|
9
9
|
.clear
|
@@ -3,4 +3,4 @@
|
|
3
3
|
%h2.title= "Role #{h @role.name}"
|
4
4
|
.inner
|
5
5
|
= partial('navigation', :active => 'edit')
|
6
|
-
= partial('form', :header => "Edit Role #{@role.name}", :form_id => 'edit_role', :submit_name => "Save Role", :submit_id => "edit_role_button", :form_for => 'edit', :form_url =>
|
6
|
+
= partial('form', :header => "Edit Role #{@role.name}", :form_id => 'edit_role', :submit_name => "Save Role", :submit_id => "edit_role_button", :form_for => 'edit', :form_url => url(:role, @role.name) )
|
@@ -13,9 +13,9 @@
|
|
13
13
|
- even = false;
|
14
14
|
- @role_list.each do |role|
|
15
15
|
%tr{ :class => even ? "even" : "odd" }
|
16
|
-
%td{:colspan => 2}= link_to(role[0],
|
16
|
+
%td{:colspan => 2}= link_to(role[0], url(:role, role[0]))
|
17
17
|
%td
|
18
|
-
= link_to('Edit',
|
18
|
+
= link_to('Edit', url(:edit_role, role[0]))
|
19
19
|
|
|
20
|
-
= link_to('Delete',
|
21
|
-
- even
|
20
|
+
= link_to('Delete', url(:role, role[0]), :method => "delete", :confirm => "Really delete Role #{role[0]}? there is no undo.")
|
21
|
+
- even = (not even)
|
@@ -3,4 +3,4 @@
|
|
3
3
|
%h2.title= "Role"
|
4
4
|
.inner
|
5
5
|
= partial('navigation', :active => 'create')
|
6
|
-
= partial('form', :header => "Create new Role", :form_id => 'create_role', :submit_name => "Create Role", :submit_id => "create_role_button", :form_for => 'create', :form_url =>
|
6
|
+
= partial('form', :header => "Create new Role", :form_id => 'create_role', :submit_name => "Create Role", :submit_id => "create_role_button", :form_for => 'create', :form_url => url(:roles))
|
@@ -20,12 +20,11 @@
|
|
20
20
|
%tr
|
21
21
|
%td{:colspan => 2} This role does not include any roles or recipes.
|
22
22
|
- else
|
23
|
-
-@role.run_list.
|
24
|
-
- type, name, fname = @role.run_list.parse_entry(@role.run_list[i])
|
23
|
+
-@role.run_list.each_with_index do |run_list_item, i|
|
25
24
|
%tr
|
26
25
|
%td.position= i
|
27
|
-
%td= name
|
28
|
-
%td= type
|
26
|
+
%td= run_list_item.name
|
27
|
+
%td= run_list_item.type
|
29
28
|
.left.accordion
|
30
29
|
%h3.head= link_to("Recipes", "#")
|
31
30
|
- full_recipe_list, default_attrs, override_attrs = @role.run_list.expand()
|
@@ -3,6 +3,6 @@
|
|
3
3
|
%h2.title Search Indexes
|
4
4
|
.inner
|
5
5
|
- @search_indexes.sort{ |a,b| a.to_s <=> b.to_s}.each do |index|
|
6
|
-
%form.form{ :method => "get", "accept-charset" => "UTF-8", :action =>
|
6
|
+
%form.form{ :method => "get", "accept-charset" => "UTF-8", :action => url(:search, { :id => index[0]})}
|
7
7
|
.group.label= text_field :name => "q", :label => "Query (i.e. attribute:value, leave empty to search all) "
|
8
8
|
.group= submit "Search #{index[0]}"
|
@@ -13,11 +13,11 @@
|
|
13
13
|
%th.last Run List
|
14
14
|
- if @status.empty?
|
15
15
|
%tr
|
16
|
-
%td{:colspan => 7}= "You appear to have no nodes - try connecting one, or creating or editing a #{link_to('client',
|
16
|
+
%td{:colspan => 7}= "You appear to have no nodes - try connecting one, or creating or editing a #{link_to('client', url(:clients))}"
|
17
17
|
- else
|
18
18
|
- @status.sort.each_with_index do |node, index|
|
19
19
|
%tr{:class => "#{index % 2 == 1 ? 'odd' : 'even'}"}
|
20
|
-
%td= link_to(node[1].name,
|
20
|
+
%td= link_to(node[1].name, url(:node, node[1].name))
|
21
21
|
%td= "#{node[1]["platform"]} #{node[1]["platform_version"]}"
|
22
22
|
%td= node[1]["fqdn"]
|
23
23
|
%td= node[1]["ipaddress"]
|
@@ -31,9 +31,9 @@
|
|
31
31
|
%td= node[1]["uptime"]
|
32
32
|
|
33
33
|
- unless node[1]["ohai_time"].nil?
|
34
|
-
- current_time =
|
35
|
-
-
|
36
|
-
- hours, minutes, seconds
|
34
|
+
- current_time = Time.now.to_f
|
35
|
+
- ohai_time = Time.at(node[1]["ohai_time"])
|
36
|
+
- hours, minutes, seconds = time_difference_in_hms(ohai_time)
|
37
37
|
- hours_text = "#{hours} hour#{hours == 1 ? '' : 's'}"
|
38
38
|
- minutes_text = "#{minutes} minute#{minutes == 1 ? '' : 's'}"
|
39
39
|
%td.flash
|
@@ -57,7 +57,7 @@
|
|
57
57
|
%table.table.tooltip
|
58
58
|
%tr
|
59
59
|
%td
|
60
|
-
=
|
60
|
+
= ohai_time
|
61
61
|
%br
|
62
62
|
- if hours == 0
|
63
63
|
= "#{minutes_text} ago"
|
@@ -79,12 +79,9 @@
|
|
79
79
|
%tr
|
80
80
|
%td{:colspan => 2} This node has no roles or recipes applied.
|
81
81
|
- else
|
82
|
-
-
|
83
|
-
- rl.reset!(node[1].run_list)
|
84
|
-
-rl.each_index do |i|
|
85
|
-
- type, name, fname = rl.parse_entry(rl[i])
|
82
|
+
-node[1].run_list.each_with_index do |run_list_item, i|
|
86
83
|
%tr
|
87
84
|
%td.position= i
|
88
|
-
%td= name
|
89
|
-
%td= type
|
85
|
+
%td= run_list_item.name
|
86
|
+
%td= run_list_item.type
|
90
87
|
|
@@ -8,7 +8,7 @@
|
|
8
8
|
%div.group
|
9
9
|
.text_field= password_field :id=> "password", :name => "password", :label=>"Password: ", :class => "password_field"
|
10
10
|
%br
|
11
|
-
=link_to("Or, log in with OpenID if you have one associated with an existing user account.",
|
11
|
+
=link_to("Or, log in with OpenID if you have one associated with an existing user account.", url(:openid_consumer))
|
12
12
|
%br
|
13
13
|
|
14
14
|
- if form_for == "edit"
|
@@ -1,9 +1,9 @@
|
|
1
1
|
.secondary-navigation
|
2
2
|
%ul
|
3
|
-
%li{ :class => "first #{active == 'index' ? "active" : ''}"}= link_to('List',
|
4
|
-
%li{ :class => (active == 'create' ? "active" : '')}= link_to('Create',
|
3
|
+
%li{ :class => "first #{active == 'index' ? "active" : ''}"}= link_to('List', url(:users))
|
4
|
+
%li{ :class => (active == 'create' ? "active" : '')}= link_to('Create', url(:users_new))
|
5
5
|
- if active != 'create' && active != 'index'
|
6
|
-
%li{ :class => (active == 'show' ? "active" : '')}= link_to('Show',
|
7
|
-
%li{ :class => (active == 'edit' ? "active" : '')}= link_to('Edit',
|
8
|
-
%li= link_to('Delete',
|
6
|
+
%li{ :class => (active == 'show' ? "active" : '')}= link_to('Show', url(:users_show))
|
7
|
+
%li{ :class => (active == 'edit' ? "active" : '')}= link_to('Edit', url(:users_edit, :user_id => params[:user_id]))
|
8
|
+
%li= link_to('Delete', url(:users_delete, :user_id => params[:user_id]), :method => "delete", :confirm => "Really delete user #{params[:user_id]}? There is no undo.")
|
9
9
|
.clear
|
@@ -3,4 +3,4 @@
|
|
3
3
|
%h2.title= "User: #{h @user.name}"
|
4
4
|
.inner
|
5
5
|
= partial('navigation', :active => 'edit')
|
6
|
-
= partial('form', :header => "Edit User #{@user.name}", :form_id => 'edit_user', :submit_name => "Save User", :submit_id => "edit_user_button", :form_for => 'edit', :form_url =>
|
6
|
+
= partial('form', :header => "Edit User #{@user.name}", :form_id => 'edit_user', :submit_name => "Save User", :submit_id => "edit_user_button", :form_for => 'edit', :form_url => url(:users_update, @user.name) )
|
@@ -13,8 +13,8 @@
|
|
13
13
|
- even = false
|
14
14
|
- @users.sort.each do |user, user_url|
|
15
15
|
%tr{:class => even ? "even": "odd" }
|
16
|
-
%td{:colspan => 2}= link_to user,
|
16
|
+
%td{:colspan => 2}= link_to user, url(:users_show, :user_id => user)
|
17
17
|
%td
|
18
|
-
= link_to('Edit',
|
18
|
+
= link_to('Edit', url(:users_edit, :user_id => user))
|
19
19
|
|
|
20
|
-
= link_to('Delete',
|
20
|
+
= link_to('Delete', url(:users_delete, :user_id => user), :method => "delete", :confirm => "Really delete User #{user}? There is no undo.")
|
@@ -11,6 +11,6 @@
|
|
11
11
|
.content
|
12
12
|
%h2.title Login
|
13
13
|
.inner
|
14
|
-
= partial('form', :header => "Login", :form_id => 'login', :submit_name => "login", :submit_id => "login_button", :form_for => 'login', :form_url =>
|
14
|
+
= partial('form', :header => "Login", :form_id => 'login', :submit_name => "login", :submit_id => "login_button", :form_for => 'login', :form_url => url(:users_login_exec) )
|
15
15
|
|
16
16
|
|
@@ -5,7 +5,7 @@
|
|
5
5
|
= partial('navigation', :active => 'create')
|
6
6
|
.content
|
7
7
|
.inner
|
8
|
-
%form.form{ :method => "get", "accept-charset" => "UTF-8", :action =>
|
8
|
+
%form.form{ :method => "get", "accept-charset" => "UTF-8", :action => url(:users_create) }
|
9
9
|
%table.table
|
10
10
|
%tr
|
11
11
|
%td= "Username"
|
@@ -0,0 +1,72 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# ./chef-server - Serving up piping hot infrastructure!
|
4
|
+
#
|
5
|
+
# Author:: Adam Jacob (<adam@opscode.com>)
|
6
|
+
# Copyright:: Copyright (c) 2008 Opscode, Inc.
|
7
|
+
# License:: Apache License, Version 2.0
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
|
21
|
+
# Based on the 'merb' command, by Ezra
|
22
|
+
|
23
|
+
# Add chef and chef-server-slice lib dirs to the load path
|
24
|
+
# Load chef and chef-server slice from source rather than gem, if present
|
25
|
+
|
26
|
+
require "rubygems"
|
27
|
+
require "merb-core"
|
28
|
+
|
29
|
+
# Load chef and chef-server-api from source rather than gem, if present
|
30
|
+
$:.unshift(File.expand_path(File.dirname(__FILE__) + '/../../chef/lib/chef'))
|
31
|
+
$:.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib'))
|
32
|
+
|
33
|
+
require 'chef'
|
34
|
+
require 'chef-server-webui'
|
35
|
+
|
36
|
+
# Ensure the chef gem we load is the same version as the chef server
|
37
|
+
unless defined?(Chef)
|
38
|
+
gem "chef", "=" + CHEF_SERVER_WEBUI_VERSION
|
39
|
+
require 'chef'
|
40
|
+
end
|
41
|
+
|
42
|
+
#Dir.chdir File.join(File.dirname(__FILE__),"..")
|
43
|
+
#__DIR__ = Dir.getwd
|
44
|
+
|
45
|
+
if ARGV[0] && ARGV[0] =~ /^[^-]/
|
46
|
+
ARGV.push "-H"
|
47
|
+
end
|
48
|
+
unless %w[-a --adapter -i --irb-console -r --script-runner].any? { |o| ARGV.index(o) }
|
49
|
+
ARGV.push *%w[-a thin]
|
50
|
+
end
|
51
|
+
unless %w[-p --port].any? { |o| ARGV.index(o) }
|
52
|
+
ARGV.push *%w[-p 4040]
|
53
|
+
end
|
54
|
+
|
55
|
+
# Tell merb where to root
|
56
|
+
ARGV.push *[ "-m", CHEF_SERVER_WEBUI_ROOT]
|
57
|
+
|
58
|
+
if index = ARGV.index("-C")
|
59
|
+
config = ARGV[index+1]
|
60
|
+
ARGV.delete("-C")
|
61
|
+
ARGV.delete(config)
|
62
|
+
Chef::Config.from_file(File.expand_path(config))
|
63
|
+
else
|
64
|
+
Chef::Config.from_file(
|
65
|
+
File.join("/etc", "chef", "server.rb")
|
66
|
+
)
|
67
|
+
end
|
68
|
+
|
69
|
+
Chef::Log.init(Chef::Config[:log_location])
|
70
|
+
Chef::Log.level = Chef::Config[:log_level]
|
71
|
+
|
72
|
+
Merb.start
|