Class: Clients
- Inherits:
-
Application
- Object
- Merb::Controller
- Application
- Clients
- Defined in:
- app/controllers/clients.rb
Instance Method Summary collapse
-
#create ⇒ Object
POST /clients.
-
#destroy ⇒ Object
DELETE /clients/:id.
-
#edit ⇒ Object
GET /clients/:id/edit.
-
#index ⇒ Object
GET /clients.
-
#new ⇒ Object
GET /clients/new.
-
#show ⇒ Object
GET /clients/:id.
-
#update ⇒ Object
PUT /clients/:id.
Methods inherited from Application
#access_denied, #append_tree, #bad_request?, #binary?, #build_tree, #can_edit_admin?, #cleanup_session, #conflict?, #convert_newline_to_br, #determine_name, #forbidden?, #format_exception, #is_admin?, #is_last_admin?, #list_available_recipes_for, #load_cookbook_segment, #load_environments, #load_session_user, #login_required, #logout_and_redirect_to_login, #not_found?, #redirect_back_or_default, #require_admin, #segment_files, #show_plain_file, #store_location, #str_to_bool, #syntax_highlight
Instance Method Details
#create ⇒ Object
POST /clients
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'app/controllers/clients.rb', line 71 def create begin @client = Chef::ApiClient.new @client.name(params[:name]) @client.admin(str_to_bool(params[:admin])) if params[:admin] response = @client.create @private_key = OpenSSL::PKey::RSA.new(response["private_key"]) @_message = { :notice => "Created Client #{@client.name}. Please copy the following private key as the client's validation key." } @client = Chef::ApiClient.load(params[:name]) render :show rescue => e Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}") @_message = { :error => "Could not create client" } render :new end end |
#destroy ⇒ Object
DELETE /clients/:id
108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'app/controllers/clients.rb', line 108 def destroy begin @client = Chef::ApiClient.load(params[:id]) @client.destroy redirect(absolute_url(:clients), {:message => { :notice => "Client #{params[:id]} deleted successfully" }, :permanent => true}) rescue => e Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}") @_message = {:error => "Could not delete client #{params[:id]}" } @clients_list = Chef::ApiClient.list() render :index end end |
#edit ⇒ Object
GET /clients/:id/edit
52 53 54 55 56 57 58 59 60 61 |
# File 'app/controllers/clients.rb', line 52 def edit @client = begin Chef::ApiClient.load(params[:id]) rescue => e Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}") @_message = { :error => "Could not load client #{params[:id]}"} Chef::ApiClient.new end render end |
#index ⇒ Object
GET /clients
28 29 30 31 32 33 34 35 36 37 |
# File 'app/controllers/clients.rb', line 28 def index begin @clients_list = Chef::ApiClient.list().keys.sort rescue => e Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}") @_message = {:error => "Could not list clients"} @clients_list = [] end render end |
#new ⇒ Object
GET /clients/new
64 65 66 67 68 |
# File 'app/controllers/clients.rb', line 64 def new raise AdminAccessRequired unless params[:user_id] == session[:user] unless session[:level] == :admin @client = Chef::ApiClient.new render end |
#show ⇒ Object
GET /clients/:id
40 41 42 43 44 45 46 47 48 49 |
# File 'app/controllers/clients.rb', line 40 def show @client = begin @client = Chef::ApiClient.load(params[:id]) rescue => e Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}") @_message = { :error => "Could not load client #{params[:id]}"} Chef::ApiClient.new end render end |
#update ⇒ Object
PUT /clients/:id
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'app/controllers/clients.rb', line 89 def update begin @client = Chef::ApiClient.load(params[:id]) if params[:regen_private_key] @client.create_keys @private_key = @client.private_key end params[:admin] ? @client.admin(true) : @client.admin(false) @client.save @_message = @private_key.nil? ? { :notice => "Updated Client" } : { :notice => "Created Client #{@client.name}. Please copy the following private key as the client's validation key." } render :show rescue => e Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}") @_message = { :error => "Could not update client" } render :edit end end |