def show
domain_id = params[:domain_id]
application_id = params[:application_id]
id = params[:id]
status_messages = (params[:include] == "status_messages")
domain = Domain.get(@cloud_user, domain_id)
return render_error(:not_found, "Domain #{domain_id} not found", 127,
"SHOW_APP_CARTRIDGE") if !domain || !domain.hasAccess?(@cloud_user)
Rails.logger.debug "Getting cartridge #{id} for application #{application_id} under domain #{domain_id}"
application = get_application(application_id)
return render_error(:not_found, "Application '#{application_id}' not found for domain '#{domain_id}'",
101, "SHOW_APP_CARTRIDGE") if !application
cartridge = nil
application.embedded.each do |key, value|
if key == id
app_status = application.status(key, false) if status_messages
if $requested_api_version == 1.0
cartridge = RestCartridge10.new("embedded", key, application, get_url, app_status, nolinks)
else
cartridge = RestCartridge11.new("embedded", key, application, get_url, app_status, nolinks)
end
break
end
end if application.embedded
if !cartridge and id == application.framework and $requested_api_version != 1.0
app_status = application.status(application.framework, false) if status_messages
app_status.each do |gear_status|
message = "#{application.framework} is started."
message = "#{application.framework} is stopped or inaccessible." if gear_status['message'].match(/(stopped)|(inaccessible)/)
gear_status['message'] = message
end if app_status
cartridge = RestCartridge11.new("standalone", application.framework, application, get_url, app_status, nolinks)
end
return render_success(:ok, "cartridge", cartridge, "SHOW_APP_CARTRIDGE",
"Showing cartridge #{id} for application #{application_id} under domain #{domain_id}") if cartridge
render_error(:not_found, "Cartridge #{id} not found for application #{application_id}",
129, "SHOW_APP_CARTRIDGE")
end