Class: Databags

Inherits:
Application show all
Defined in:
app/controllers/databags.rb

Instance Method Summary collapse

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

#createObject



32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/controllers/databags.rb', line 32

def create
  begin
    @databag = Chef::DataBag.new
    @databag.name params[:name]
    @databag.create
    redirect(url(:databags), :message => { :notice => "Created Databag #{@databag.name}" })
  rescue => e
    Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}")
    @_message = { :error => "Could not create databag" } 
    render :new
  end 
end

#destroyObject



71
72
73
74
75
76
77
78
79
80
81
82
# File 'app/controllers/databags.rb', line 71

def destroy
  begin
    r = Chef::REST.new(Chef::Config[:chef_server_url])
    r.delete_rest("data/#{params[:id]}")
    redirect(absolute_url(:databags), {:message => { :notice => "Data bag #{params[:id]} deleted successfully" }, :permanent => true})
  rescue => e
    Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}")
    @databags = Chef::DataBag.list
    @_message =  { :error => "Could not delete databag"}
    render :index
  end 
end

#indexObject



45
46
47
48
49
50
51
52
53
54
# File 'app/controllers/databags.rb', line 45

def index
  @databags = begin
                Chef::REST.new(Chef::Config[:chef_server_url]).get_rest("data")
              rescue => e
                Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}")
                @_message = { :error => "Could not list databags" } 
                {}
              end
  render
end

#newObject



27
28
29
30
# File 'app/controllers/databags.rb', line 27

def new
  @databag = Chef::DataBag.new
  render
end

#showObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/controllers/databags.rb', line 56

def show
  begin
    @databag_name = params[:id]
    r = Chef::REST.new(Chef::Config[:chef_server_url])
    @databag = r.get_rest("data/#{params[:id]}")
    raise NotFound unless @databag
    display @databag
  rescue => e
    Chef::Log.error("#{e}\n#{e.backtrace.join("\n")}")
    @databags = Chef::DataBag.list
    @_message =  { :error => "Could not load databag"}    
    render :index
  end 
end