<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>RuntimeError at /storage</title>
<script type="text/javascript">
//<!--
function toggle(id) {
var pre = document.getElementById("pre-" + id);
var post = document.getElementById("post-" + id);
var context = document.getElementById("context-" + id);
if (pre.style.display == 'block') {
pre.style.display = 'none';
post.style.display = 'none';
context.style.background = "none";
} else {
pre.style.display = 'block';
post.style.display = 'block';
context.style.background = "#fffed9";
}
}
function toggleBacktrace(){
var bt = document.getElementById("backtrace");
var toggler = document.getElementById("expando");
if (bt.className == 'condensed') {
bt.className = 'expanded';
toggler.innerHTML = "(condense)";
} else {
bt.className = 'condensed';
toggler.innerHTML = "(expand)";
}
}
//-->
</script>
<style type="text/css" media="screen">
* {margin: 0; padding: 0; border: 0; outline: 0;}
div.clear {clear: both;}
body {background: #EEEEEE; margin: 0; padding: 0;
font-family: 'Lucida Grande', 'Lucida Sans Unicode',
'Garuda';}
code {font-family: 'Lucida Console', monospace;
font-size: 12px;}
li {height: 18px;}
ul {list-style: none; margin: 0; padding: 0;}
ol:hover {cursor: pointer;}
ol li {white-space: pre;}
#explanation {font-size: 12px; color: #666666;
margin: 20px 0 0 100px;}
/* WRAP */
#wrap {width: 1000px; background: #FFFFFF; margin: 0 auto;
padding: 30px 50px 20px 50px;
border-left: 1px solid #DDDDDD;
border-right: 1px solid #DDDDDD;}
/* HEADER */
#header {margin: 0 auto 25px auto;}
#header img {float: left;}
#header #summary {float: left; margin: 12px 0 0 20px; width:660px;
font-family: 'Lucida Grande', 'Lucida Sans Unicode';}
h1 {margin: 0; font-size: 36px; color: #981919;}
h2 {margin: 0; font-size: 22px; color: #333333;}
#header ul {margin: 0; font-size: 12px; color: #666666;}
#header ul li strong{color: #444444;}
#header ul li {display: inline; padding: 0 10px;}
#header ul li.first {padding-left: 0;}
#header ul li.last {border: 0; padding-right: 0;}
/* BODY */
#backtrace,
#get,
#post,
#cookies,
#rack {width: 980px; margin: 0 auto 10px auto;}
p#nav {float: right; font-size: 14px;}
/* BACKTRACE */
a#expando {float: left; padding-left: 5px; color: #666666;
font-size: 14px; text-decoration: none; cursor: pointer;}
a#expando:hover {text-decoration: underline;}
h3 {float: left; width: 100px; margin-bottom: 10px;
color: #981919; font-size: 14px; font-weight: bold;}
#nav a {color: #666666; text-decoration: none; padding: 0 5px;}
#backtrace li.frame-info {background: #f7f7f7; padding-left: 10px;
font-size: 12px; color: #333333;}
#backtrace ul {list-style-position: outside; border: 1px solid #E9E9E9;
border-bottom: 0;}
#backtrace ol {width: 920px; margin-left: 50px;
font: 10px 'Lucida Console', monospace; color: #666666;}
#backtrace ol li {border: 0; border-left: 1px solid #E9E9E9;
padding: 2px 0;}
#backtrace ol code {font-size: 10px; color: #555555; padding-left: 5px;}
#backtrace-ul li {border-bottom: 1px solid #E9E9E9; height: auto;
padding: 3px 0;}
#backtrace-ul .code {padding: 6px 0 4px 0;}
#backtrace.condensed .system,
#backtrace.condensed .framework {display:none;}
/* REQUEST DATA */
p.no-data {padding-top: 2px; font-size: 12px; color: #666666;}
table.req {width: 980px; text-align: left; font-size: 12px;
color: #666666; padding: 0; border-spacing: 0;
border: 1px solid #EEEEEE; border-bottom: 0;
border-left: 0;
clear:both}
table.req tr th {padding: 2px 10px; font-weight: bold;
background: #F7F7F7; border-bottom: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;}
table.req tr td {padding: 2px 20px 2px 10px;
border-bottom: 1px solid #EEEEEE;
border-left: 1px solid #EEEEEE;}
/* HIDE PRE/POST CODE AT START */
.pre-context,
.post-context {display: none;}
table td.code {width:750px}
table td.code div {width:750px;overflow:hidden}
</style>
</head>
<body>
<div id="wrap">
<div id="header">
<img src="/__sinatra__/500.png" alt="application error" height="161" width="313" />
<div id="summary">
<h1><strong>RuntimeError</strong> at <strong>/storage
</strong></h1>
<h2>Hash is not a valid input stream. It must walk
like either a String, an IO, or a Source.</h2>
<ul>
<li class="first"><strong>file:</strong> <code>
source.rb</code></li>
<li><strong>location:</strong> <code>create_from
</code></li>
<li class="last"><strong>line:
</strong> 21</li>
</ul>
</div>
<div class="clear"></div>
</div>
<div id="backtrace" class='condensed'>
<h3>BACKTRACE</h3>
<p><a href="#" id="expando"
onclick="toggleBacktrace(); return false">(expand)</a></p>
<p id="nav"><strong>JUMP TO:</strong>
<a href="#get-info">GET</a>
<a href="#post-info">POST</a>
<a href="#cookie-info">COOKIES</a>
<a href="#env-info">ENV</a>
</p>
<div class="clear"></div>
<ul id="backtrace-ul">
<li class="frame-info app">
<code>/usr/lib/ruby/1.8/rexml/source.rb</code> in
<code><strong>create_from</strong></code>
</li>
<li class="code app">
<ol start="14"
class="pre-context" id="pre-1"
onclick="toggle(1);">
<li class="pre-context-line"><code> arg.respond_to? :nil? and
</code></li>
<li class="pre-context-line"><code> arg.respond_to? :eof?
</code></li>
<li class="pre-context-line"><code> IOSource.new(arg)
</code></li>
<li class="pre-context-line"><code> elsif arg.kind_of? Source
</code></li>
<li class="pre-context-line"><code> arg
</code></li>
<li class="pre-context-line"><code> else
</code></li>
<li class="pre-context-line"><code> raise "#{arg.class} is not a valid input stream. It must walk \n"+
</code></li>
</ol>
<ol start="21" class="context" id="1"
onclick="toggle(1);">
<li class="context-line" id="context-1"><code> "like either a String, an IO, or a Source."</code></li>
</ol>
<ol start="22" class="post-context"
id="post-1" onclick="toggle(1);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # A Source can be searched for patterns, and wraps buffers and other
</code></li>
<li class="post-context-line"><code> # objects and provides consumption of text
</code></li>
<li class="post-context-line"><code> class Source
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>/usr/lib/ruby/1.8/rexml/parsers/baseparser.rb</code> in
<code><strong>stream=</strong></code>
</li>
<li class="code app">
<ol start="126"
class="pre-context" id="pre-2"
onclick="toggle(2);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> @listeners << listener
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> attr_reader :source
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def stream=( source )
</code></li>
</ol>
<ol start="133" class="context" id="2"
onclick="toggle(2);">
<li class="context-line" id="context-2"><code> @source = SourceFactory.create_from( source )</code></li>
</ol>
<ol start="134" class="post-context"
id="post-2" onclick="toggle(2);">
<li class="post-context-line"><code> @closed = nil
</code></li>
<li class="post-context-line"><code> @document_status = nil
</code></li>
<li class="post-context-line"><code> @tags = []
</code></li>
<li class="post-context-line"><code> @stack = []
</code></li>
<li class="post-context-line"><code> @entities = []
</code></li>
<li class="post-context-line"><code> @nsstack = []
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>/usr/lib/ruby/1.8/rexml/parsers/baseparser.rb</code> in
<code><strong>initialize</strong></code>
</li>
<li class="code app">
<ol start="103"
class="pre-context" id="pre-3"
onclick="toggle(3);">
<li class="pre-context-line"><code> ######################################################################
</code></li>
<li class="pre-context-line"><code> # These are patterns to identify common markup errors, to make the
</code></li>
<li class="pre-context-line"><code> # error messages more informative.
</code></li>
<li class="pre-context-line"><code> ######################################################################
</code></li>
<li class="pre-context-line"><code> MISSING_ATTRIBUTE_QUOTES = /^<#{NAME_STR}\s+#{NAME_STR}\s*=\s*[^"']/um
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize( source )
</code></li>
</ol>
<ol start="110" class="context" id="3"
onclick="toggle(3);">
<li class="context-line" id="context-3"><code> self.stream = source</code></li>
</ol>
<ol start="111" class="post-context"
id="post-3" onclick="toggle(3);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def add_listener( listener )
</code></li>
<li class="post-context-line"><code> if !defined?(@listeners) or !@listeners
</code></li>
<li class="post-context-line"><code> @listeners = []
</code></li>
<li class="post-context-line"><code> instance_eval <<-EOL
</code></li>
<li class="post-context-line"><code> alias :_old_pull :pull
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/crack-0.1.7/lib/crack/xml.rb</code> in
<code><strong>new</strong></code>
</li>
<li class="code system">
<ol start="184"
class="pre-context" id="pre-4"
onclick="toggle(4);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code>module Crack
</code></li>
<li class="pre-context-line"><code> class XML
</code></li>
<li class="pre-context-line"><code> def self.parse(xml)
</code></li>
<li class="pre-context-line"><code> stack = []
</code></li>
</ol>
<ol start="191" class="context" id="4"
onclick="toggle(4);">
<li class="context-line" id="context-4"><code> parser = REXML::Parsers::BaseParser.new(xml)</code></li>
</ol>
<ol start="192" class="post-context"
id="post-4" onclick="toggle(4);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> while true
</code></li>
<li class="post-context-line"><code> event = parser.pull
</code></li>
<li class="post-context-line"><code> case event[0]
</code></li>
<li class="post-context-line"><code> when :end_document
</code></li>
<li class="post-context-line"><code> break
</code></li>
<li class="post-context-line"><code> when :end_doctype, :start_doctype
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/crack-0.1.7/lib/crack/xml.rb</code> in
<code><strong>parse</strong></code>
</li>
<li class="code system">
<ol start="184"
class="pre-context" id="pre-5"
onclick="toggle(5);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code>module Crack
</code></li>
<li class="pre-context-line"><code> class XML
</code></li>
<li class="pre-context-line"><code> def self.parse(xml)
</code></li>
<li class="pre-context-line"><code> stack = []
</code></li>
</ol>
<ol start="191" class="context" id="5"
onclick="toggle(5);">
<li class="context-line" id="context-5"><code> parser = REXML::Parsers::BaseParser.new(xml)</code></li>
</ol>
<ol start="192" class="post-context"
id="post-5" onclick="toggle(5);">
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> while true
</code></li>
<li class="post-context-line"><code> event = parser.pull
</code></li>
<li class="post-context-line"><code> case event[0]
</code></li>
<li class="post-context-line"><code> when :end_document
</code></li>
<li class="post-context-line"><code> break
</code></li>
<li class="post-context-line"><code> when :end_doctype, :start_doctype
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>/srv/cloud/one/lib/ruby/cloud/occi/OCCIServer.rb</code> in
<code><strong>post_storage</strong></code>
</li>
<li class="code app">
<ol start="269"
class="pre-context" id="pre-6"
onclick="toggle(6);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Post a new image to the STORAGE pool
</code></li>
<li class="pre-context-line"><code> # request:: _Hash_ hash containing the data of the request
</code></li>
<li class="pre-context-line"><code> # [return] _String_,_Integer_ Image representation or error, status code
</code></li>
<li class="pre-context-line"><code> def post_storage(request)
</code></li>
<li class="pre-context-line"><code> # Info retrieval from post params
</code></li>
<li class="pre-context-line"><code> if request.params['occixml']
</code></li>
</ol>
<ol start="276" class="context" id="6"
onclick="toggle(6);">
<li class="context-line" id="context-6"><code> image_info=Crack::XML.parse(request.params['occixml'])</code></li>
</ol>
<ol start="277" class="post-context"
id="post-6" onclick="toggle(6);">
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> error_msg = "OCCI XML representation of Image" +
</code></li>
<li class="post-context-line"><code> " not present in the request"
</code></li>
<li class="post-context-line"><code> error = OpenNebula::Error.new(error_msg)
</code></li>
<li class="post-context-line"><code> return error, 400
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>/srv/cloud/one/lib/ruby/cloud/occi/occi-server.rb</code> in
<code><strong>POST /storage</strong></code>
</li>
<li class="code app">
<ol start="106"
class="pre-context" id="pre-7"
onclick="toggle(7);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code>get '/network' do
</code></li>
<li class="pre-context-line"><code> result,rc = $occi_server.get_networks(request)
</code></li>
<li class="pre-context-line"><code> treat_response(result,rc)
</code></li>
<li class="pre-context-line"><code>end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code>post '/storage' do
</code></li>
</ol>
<ol start="113" class="context" id="7"
onclick="toggle(7);">
<li class="context-line" id="context-7"><code> result,rc = $occi_server.post_storage(request)</code></li>
</ol>
<ol start="114" class="post-context"
id="post-7" onclick="toggle(7);">
<li class="post-context-line"><code> treat_response(result,rc)
</code></li>
<li class="post-context-line"><code>end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code>get '/storage' do
</code></li>
<li class="post-context-line"><code> result,rc = $occi_server.get_storages(request)
</code></li>
<li class="post-context-line"><code> treat_response(result,rc)
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="856"
class="pre-context" id="pre-8"
onclick="toggle(8);">
<li class="pre-context-line"><code> pattern, keys = compile(path)
</code></li>
<li class="pre-context-line"><code> conditions, @conditions = @conditions, []
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> define_method "#{verb} #{path}", &block
</code></li>
<li class="pre-context-line"><code> unbound_method = instance_method("#{verb} #{path}")
</code></li>
<li class="pre-context-line"><code> block =
</code></li>
<li class="pre-context-line"><code> if block.arity != 0
</code></li>
</ol>
<ol start="863" class="context" id="8"
onclick="toggle(8);">
<li class="context-line" id="context-8"><code> proc { unbound_method.bind(self).call(*@block_params) }</code></li>
</ol>
<ol start="864" class="post-context"
id="post-8" onclick="toggle(8);">
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> proc { unbound_method.bind(self).call }
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> invoke_hook(:route_added, verb, path, block)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> (@routes[verb] ||= []).
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>route</strong></code>
</li>
<li class="code framework">
<ol start="856"
class="pre-context" id="pre-9"
onclick="toggle(9);">
<li class="pre-context-line"><code> pattern, keys = compile(path)
</code></li>
<li class="pre-context-line"><code> conditions, @conditions = @conditions, []
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> define_method "#{verb} #{path}", &block
</code></li>
<li class="pre-context-line"><code> unbound_method = instance_method("#{verb} #{path}")
</code></li>
<li class="pre-context-line"><code> block =
</code></li>
<li class="pre-context-line"><code> if block.arity != 0
</code></li>
</ol>
<ol start="863" class="context" id="9"
onclick="toggle(9);">
<li class="context-line" id="context-9"><code> proc { unbound_method.bind(self).call(*@block_params) }</code></li>
</ol>
<ol start="864" class="post-context"
id="post-9" onclick="toggle(9);">
<li class="post-context-line"><code> else
</code></li>
<li class="post-context-line"><code> proc { unbound_method.bind(self).call }
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> invoke_hook(:route_added, verb, path, block)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> (@routes[verb] ||= []).
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>instance_eval</strong></code>
</li>
<li class="code framework">
<ol start="514"
class="pre-context" id="pre-10"
onclick="toggle(10);">
<li class="pre-context-line"><code> route_eval(&pass_block) if pass_block
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> route_missing
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run a route block and throw :halt with the result.
</code></li>
<li class="pre-context-line"><code> def route_eval(&block)
</code></li>
</ol>
<ol start="521" class="context" id="10"
onclick="toggle(10);">
<li class="context-line" id="context-10"><code> throw :halt, instance_eval(&block)</code></li>
</ol>
<ol start="522" class="post-context"
id="post-10" onclick="toggle(10);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # No matching route was found or all routes passed. The default
</code></li>
<li class="post-context-line"><code> # implementation is to forward the request downstream when running
</code></li>
<li class="post-context-line"><code> # as middleware (@app is non-nil); when no downstream app is set, raise
</code></li>
<li class="post-context-line"><code> # a NotFound exception. Subclasses can override this method to perform
</code></li>
<li class="post-context-line"><code> # custom route miss logic.
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>route_eval</strong></code>
</li>
<li class="code framework">
<ol start="514"
class="pre-context" id="pre-11"
onclick="toggle(11);">
<li class="pre-context-line"><code> route_eval(&pass_block) if pass_block
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> route_missing
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run a route block and throw :halt with the result.
</code></li>
<li class="pre-context-line"><code> def route_eval(&block)
</code></li>
</ol>
<ol start="521" class="context" id="11"
onclick="toggle(11);">
<li class="context-line" id="context-11"><code> throw :halt, instance_eval(&block)</code></li>
</ol>
<ol start="522" class="post-context"
id="post-11" onclick="toggle(11);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # No matching route was found or all routes passed. The default
</code></li>
<li class="post-context-line"><code> # implementation is to forward the request downstream when running
</code></li>
<li class="post-context-line"><code> # as middleware (@app is non-nil); when no downstream app is set, raise
</code></li>
<li class="post-context-line"><code> # a NotFound exception. Subclasses can override this method to perform
</code></li>
<li class="post-context-line"><code> # custom route miss logic.
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>route!</strong></code>
</li>
<li class="code framework">
<ol start="493"
class="pre-context" id="pre-12"
onclick="toggle(12);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> @params = original_params.merge(params)
</code></li>
<li class="pre-context-line"><code> @block_params = values
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> pass_block = catch(:pass) do
</code></li>
<li class="pre-context-line"><code> conditions.each { |cond|
</code></li>
<li class="pre-context-line"><code> throw :pass if instance_eval(&cond) == false }
</code></li>
</ol>
<ol start="500" class="context" id="12"
onclick="toggle(12);">
<li class="context-line" id="context-12"><code> route_eval(&block)</code></li>
</ol>
<ol start="501" class="post-context"
id="post-12" onclick="toggle(12);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> @params = original_params
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>catch</strong></code>
</li>
<li class="code framework">
<ol start="490"
class="pre-context" id="pre-13"
onclick="toggle(13);">
<li class="pre-context-line"><code> {'captures' => values}
</code></li>
<li class="pre-context-line"><code> else
</code></li>
<li class="pre-context-line"><code> {}
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> @params = original_params.merge(params)
</code></li>
<li class="pre-context-line"><code> @block_params = values
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="497" class="context" id="13"
onclick="toggle(13);">
<li class="context-line" id="context-13"><code> pass_block = catch(:pass) do</code></li>
</ol>
<ol start="498" class="post-context"
id="post-13" onclick="toggle(13);">
<li class="post-context-line"><code> conditions.each { |cond|
</code></li>
<li class="post-context-line"><code> throw :pass if instance_eval(&cond) == false }
</code></li>
<li class="post-context-line"><code> route_eval(&block)
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>route!</strong></code>
</li>
<li class="code framework">
<ol start="490"
class="pre-context" id="pre-14"
onclick="toggle(14);">
<li class="pre-context-line"><code> {'captures' => values}
</code></li>
<li class="pre-context-line"><code> else
</code></li>
<li class="pre-context-line"><code> {}
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> @params = original_params.merge(params)
</code></li>
<li class="pre-context-line"><code> @block_params = values
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="497" class="context" id="14"
onclick="toggle(14);">
<li class="context-line" id="context-14"><code> pass_block = catch(:pass) do</code></li>
</ol>
<ol start="498" class="post-context"
id="post-14" onclick="toggle(14);">
<li class="post-context-line"><code> conditions.each { |cond|
</code></li>
<li class="post-context-line"><code> throw :pass if instance_eval(&cond) == false }
</code></li>
<li class="post-context-line"><code> route_eval(&block)
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>each</strong></code>
</li>
<li class="code framework">
<ol start="469"
class="pre-context" id="pre-15"
onclick="toggle(15);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run routes defined on the class and all superclasses.
</code></li>
<li class="pre-context-line"><code> def route!(base=self.class, pass_block=nil)
</code></li>
<li class="pre-context-line"><code> if routes = base.routes[@request.request_method]
</code></li>
<li class="pre-context-line"><code> original_params = @params
</code></li>
<li class="pre-context-line"><code> path = unescape(@request.path_info)
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="476" class="context" id="15"
onclick="toggle(15);">
<li class="context-line" id="context-15"><code> routes.each do |pattern, keys, conditions, block|</code></li>
</ol>
<ol start="477" class="post-context"
id="post-15" onclick="toggle(15);">
<li class="post-context-line"><code> if match = pattern.match(path)
</code></li>
<li class="post-context-line"><code> values = match.captures.to_a
</code></li>
<li class="post-context-line"><code> params =
</code></li>
<li class="post-context-line"><code> if keys.any?
</code></li>
<li class="post-context-line"><code> keys.zip(values).inject({}) do |hash,(k,v)|
</code></li>
<li class="post-context-line"><code> if k == 'splat'
</code></li>
<li class="post-context-line"><code> (hash[k] ||= []) << v
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>route!</strong></code>
</li>
<li class="code framework">
<ol start="469"
class="pre-context" id="pre-16"
onclick="toggle(16);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run routes defined on the class and all superclasses.
</code></li>
<li class="pre-context-line"><code> def route!(base=self.class, pass_block=nil)
</code></li>
<li class="pre-context-line"><code> if routes = base.routes[@request.request_method]
</code></li>
<li class="pre-context-line"><code> original_params = @params
</code></li>
<li class="pre-context-line"><code> path = unescape(@request.path_info)
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="476" class="context" id="16"
onclick="toggle(16);">
<li class="context-line" id="context-16"><code> routes.each do |pattern, keys, conditions, block|</code></li>
</ol>
<ol start="477" class="post-context"
id="post-16" onclick="toggle(16);">
<li class="post-context-line"><code> if match = pattern.match(path)
</code></li>
<li class="post-context-line"><code> values = match.captures.to_a
</code></li>
<li class="post-context-line"><code> params =
</code></li>
<li class="post-context-line"><code> if keys.any?
</code></li>
<li class="post-context-line"><code> keys.zip(values).inject({}) do |hash,(k,v)|
</code></li>
<li class="post-context-line"><code> if k == 'splat'
</code></li>
<li class="post-context-line"><code> (hash[k] ||= []) << v
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>dispatch!</strong></code>
</li>
<li class="code framework">
<ol start="594"
class="pre-context" id="pre-17"
onclick="toggle(17);">
<li class="pre-context-line"><code> res
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Dispatch a request with error handling.
</code></li>
<li class="pre-context-line"><code> def dispatch!
</code></li>
<li class="pre-context-line"><code> static! if settings.static? && (request.get? || request.head?)
</code></li>
<li class="pre-context-line"><code> before_filter!
</code></li>
</ol>
<ol start="601" class="context" id="17"
onclick="toggle(17);">
<li class="context-line" id="context-17"><code> route!</code></li>
</ol>
<ol start="602" class="post-context"
id="post-17" onclick="toggle(17);">
<li class="post-context-line"><code> rescue NotFound => boom
</code></li>
<li class="post-context-line"><code> handle_not_found!(boom)
</code></li>
<li class="post-context-line"><code> rescue ::Exception => boom
</code></li>
<li class="post-context-line"><code> handle_exception!(boom)
</code></li>
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> after_filter! unless env['sinatra.static_file']
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>call!</strong></code>
</li>
<li class="code framework">
<ol start="404"
class="pre-context" id="pre-18"
onclick="toggle(18);">
<li class="pre-context-line"><code> def call!(env)
</code></li>
<li class="pre-context-line"><code> @env = env
</code></li>
<li class="pre-context-line"><code> @request = Request.new(env)
</code></li>
<li class="pre-context-line"><code> @response = Response.new
</code></li>
<li class="pre-context-line"><code> @params = indifferent_params(@request.params)
</code></li>
<li class="pre-context-line"><code> @template_cache.clear if settings.reload_templates
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="411" class="context" id="18"
onclick="toggle(18);">
<li class="context-line" id="context-18"><code> invoke { dispatch! }</code></li>
</ol>
<ol start="412" class="post-context"
id="post-18" onclick="toggle(18);">
<li class="post-context-line"><code> invoke { error_block!(response.status) }
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> status, header, body = @response.finish
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # Never produce a body on HEAD requests. Do retain the Content-Length
</code></li>
<li class="post-context-line"><code> # unless it's "0", in which case we assume it was calculated erroneously
</code></li>
<li class="post-context-line"><code> # for a manual HEAD response and remove it entirely.
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>instance_eval</strong></code>
</li>
<li class="code framework">
<ol start="559"
class="pre-context" id="pre-19"
onclick="toggle(19);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke(&block)
</code></li>
</ol>
<ol start="566" class="context" id="19"
onclick="toggle(19);">
<li class="context-line" id="context-19"><code> res = catch(:halt) { instance_eval(&block) }</code></li>
</ol>
<ol start="567" class="post-context"
id="post-19" onclick="toggle(19);">
<li class="post-context-line"><code> return if res.nil?
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> case
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_str)
</code></li>
<li class="post-context-line"><code> @response.body = [res]
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_ary)
</code></li>
<li class="post-context-line"><code> res = res.to_ary
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>invoke</strong></code>
</li>
<li class="code framework">
<ol start="559"
class="pre-context" id="pre-20"
onclick="toggle(20);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke(&block)
</code></li>
</ol>
<ol start="566" class="context" id="20"
onclick="toggle(20);">
<li class="context-line" id="context-20"><code> res = catch(:halt) { instance_eval(&block) }</code></li>
</ol>
<ol start="567" class="post-context"
id="post-20" onclick="toggle(20);">
<li class="post-context-line"><code> return if res.nil?
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> case
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_str)
</code></li>
<li class="post-context-line"><code> @response.body = [res]
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_ary)
</code></li>
<li class="post-context-line"><code> res = res.to_ary
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>catch</strong></code>
</li>
<li class="code framework">
<ol start="559"
class="pre-context" id="pre-21"
onclick="toggle(21);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke(&block)
</code></li>
</ol>
<ol start="566" class="context" id="21"
onclick="toggle(21);">
<li class="context-line" id="context-21"><code> res = catch(:halt) { instance_eval(&block) }</code></li>
</ol>
<ol start="567" class="post-context"
id="post-21" onclick="toggle(21);">
<li class="post-context-line"><code> return if res.nil?
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> case
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_str)
</code></li>
<li class="post-context-line"><code> @response.body = [res]
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_ary)
</code></li>
<li class="post-context-line"><code> res = res.to_ary
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>invoke</strong></code>
</li>
<li class="code framework">
<ol start="559"
class="pre-context" id="pre-22"
onclick="toggle(22);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def indifferent_hash
</code></li>
<li class="pre-context-line"><code> Hash.new {|hash,key| hash[key.to_s] if Symbol === key }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Run the block with 'throw :halt' support and apply result to the response.
</code></li>
<li class="pre-context-line"><code> def invoke(&block)
</code></li>
</ol>
<ol start="566" class="context" id="22"
onclick="toggle(22);">
<li class="context-line" id="context-22"><code> res = catch(:halt) { instance_eval(&block) }</code></li>
</ol>
<ol start="567" class="post-context"
id="post-22" onclick="toggle(22);">
<li class="post-context-line"><code> return if res.nil?
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> case
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_str)
</code></li>
<li class="post-context-line"><code> @response.body = [res]
</code></li>
<li class="post-context-line"><code> when res.respond_to?(:to_ary)
</code></li>
<li class="post-context-line"><code> res = res.to_ary
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>call!</strong></code>
</li>
<li class="code framework">
<ol start="404"
class="pre-context" id="pre-23"
onclick="toggle(23);">
<li class="pre-context-line"><code> def call!(env)
</code></li>
<li class="pre-context-line"><code> @env = env
</code></li>
<li class="pre-context-line"><code> @request = Request.new(env)
</code></li>
<li class="pre-context-line"><code> @response = Response.new
</code></li>
<li class="pre-context-line"><code> @params = indifferent_params(@request.params)
</code></li>
<li class="pre-context-line"><code> @template_cache.clear if settings.reload_templates
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="411" class="context" id="23"
onclick="toggle(23);">
<li class="context-line" id="context-23"><code> invoke { dispatch! }</code></li>
</ol>
<ol start="412" class="post-context"
id="post-23" onclick="toggle(23);">
<li class="post-context-line"><code> invoke { error_block!(response.status) }
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> status, header, body = @response.finish
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # Never produce a body on HEAD requests. Do retain the Content-Length
</code></li>
<li class="post-context-line"><code> # unless it's "0", in which case we assume it was calculated erroneously
</code></li>
<li class="post-context-line"><code> # for a manual HEAD response and remove it entirely.
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="392"
class="pre-context" id="pre-24"
onclick="toggle(24);">
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @template_cache = Tilt::Cache.new
</code></li>
<li class="pre-context-line"><code> yield self if block_given?
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Rack call interface.
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="399" class="context" id="24"
onclick="toggle(24);">
<li class="context-line" id="context-24"><code> dup.call!(env)</code></li>
</ol>
<ol start="400" class="post-context"
id="post-24" onclick="toggle(24);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> attr_accessor :env, :request, :response, :params
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def call!(env)
</code></li>
<li class="post-context-line"><code> @env = env
</code></li>
<li class="post-context-line"><code> @request = Request.new(env)
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="17"
class="pre-context" id="pre-25"
onclick="toggle(25);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @template = ERB.new(TEMPLATE)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="24" class="context" id="25"
onclick="toggle(25);">
<li class="context-line" id="context-25"><code> @app.call(env)</code></li>
</ol>
<ol start="25" class="post-context"
id="post-25" onclick="toggle(25);">
<li class="post-context-line"><code> rescue StandardError, LoadError, SyntaxError => e
</code></li>
<li class="post-context-line"><code> backtrace = pretty(env, e)
</code></li>
<li class="post-context-line"><code> [500,
</code></li>
<li class="post-context-line"><code> {"Content-Type" => "text/html",
</code></li>
<li class="post-context-line"><code> "Content-Length" => backtrace.join.size.to_s},
</code></li>
<li class="post-context-line"><code> backtrace]
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/methodoverride.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="17"
class="pre-context" id="pre-26"
onclick="toggle(26);">
<li class="pre-context-line"><code> method = method.to_s.upcase
</code></li>
<li class="pre-context-line"><code> if HTTP_METHODS.include?(method)
</code></li>
<li class="pre-context-line"><code> env["rack.methodoverride.original_method"] = env["REQUEST_METHOD"]
</code></li>
<li class="pre-context-line"><code> env["REQUEST_METHOD"] = method
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="24" class="context" id="26"
onclick="toggle(26);">
<li class="context-line" id="context-26"><code> @app.call(env)</code></li>
</ol>
<ol start="25" class="post-context"
id="post-26" onclick="toggle(26);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="11"
class="pre-context" id="pre-27"
onclick="toggle(27);">
<li class="pre-context-line"><code> def initialize(app, logger=nil)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> @logger = logger
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
<li class="pre-context-line"><code> began_at = Time.now
</code></li>
</ol>
<ol start="18" class="context" id="27"
onclick="toggle(27);">
<li class="context-line" id="context-27"><code> status, header, body = @app.call(env)</code></li>
</ol>
<ol start="19" class="post-context"
id="post-27" onclick="toggle(27);">
<li class="post-context-line"><code> header = Utils::HeaderHash.new(header)
</code></li>
<li class="post-context-line"><code> log(env, status, header, began_at)
</code></li>
<li class="post-context-line"><code> [status, header, body]
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="972"
class="pre-context" id="pre-28"
onclick="toggle(28);">
<li class="pre-context-line"><code> middleware.each { |c,a,b| builder.use(c, *a, &b) }
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> builder.run super
</code></li>
<li class="pre-context-line"><code> builder.to_app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="979" class="context" id="28"
onclick="toggle(28);">
<li class="context-line" id="context-28"><code> synchronize { prototype.call(env) }</code></li>
</ol>
<ol start="980" class="post-context"
id="post-28" onclick="toggle(28);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
<li class="post-context-line"><code> def detect_rack_handler
</code></li>
<li class="post-context-line"><code> servers = Array(self.server)
</code></li>
<li class="post-context-line"><code> servers.each do |server_name|
</code></li>
<li class="post-context-line"><code> begin
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>synchronize</strong></code>
</li>
<li class="code framework">
<ol start="998"
class="pre-context" id="pre-29"
onclick="toggle(29);">
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> @@mutex = Mutex.new
</code></li>
<li class="pre-context-line"><code> def synchronize(&block)
</code></li>
<li class="pre-context-line"><code> if lock?
</code></li>
<li class="pre-context-line"><code> @@mutex.synchronize(&block)
</code></li>
<li class="pre-context-line"><code> else
</code></li>
</ol>
<ol start="1005" class="context" id="29"
onclick="toggle(29);">
<li class="context-line" id="context-29"><code> yield</code></li>
</ol>
<ol start="1006" class="post-context"
id="post-29" onclick="toggle(29);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def metadef(message, &block)
</code></li>
<li class="post-context-line"><code> (class << self; self; end).
</code></li>
<li class="post-context-line"><code> send :define_method, message, &block
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code framework">
<ol start="972"
class="pre-context" id="pre-30"
onclick="toggle(30);">
<li class="pre-context-line"><code> middleware.each { |c,a,b| builder.use(c, *a, &b) }
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> builder.run super
</code></li>
<li class="pre-context-line"><code> builder.to_app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="979" class="context" id="30"
onclick="toggle(30);">
<li class="context-line" id="context-30"><code> synchronize { prototype.call(env) }</code></li>
</ol>
<ol start="980" class="post-context"
id="post-30" onclick="toggle(30);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> private
</code></li>
<li class="post-context-line"><code> def detect_rack_handler
</code></li>
<li class="post-context-line"><code> servers = Array(self.server)
</code></li>
<li class="post-context-line"><code> servers.each do |server_name|
</code></li>
<li class="post-context-line"><code> begin
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="6"
class="pre-context" id="pre-31"
onclick="toggle(31);">
<li class="pre-context-line"><code> include Rack::Utils
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="13" class="context" id="31"
onclick="toggle(31);">
<li class="context-line" id="context-31"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="14" class="post-context"
id="post-31" onclick="toggle(31);">
<li class="post-context-line"><code> headers = HeaderHash.new(headers)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if !STATUS_WITH_NO_ENTITY_BODY.include?(status) &&
</code></li>
<li class="post-context-line"><code> !headers['Content-Length'] &&
</code></li>
<li class="post-context-line"><code> !headers['Transfer-Encoding'] &&
</code></li>
<li class="post-context-line"><code> (body.respond_to?(:to_ary) || body.respond_to?(:to_str))
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/chunked.rb</code> in
<code><strong>call</strong></code>
</li>
<li class="code system">
<ol start="8"
class="pre-context" id="pre-32"
onclick="toggle(32);">
<li class="pre-context-line"><code> include Rack::Utils
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def initialize(app)
</code></li>
<li class="pre-context-line"><code> @app = app
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> def call(env)
</code></li>
</ol>
<ol start="15" class="context" id="32"
onclick="toggle(32);">
<li class="context-line" id="context-32"><code> status, headers, body = @app.call(env)</code></li>
</ol>
<ol start="16" class="post-context"
id="post-32" onclick="toggle(32);">
<li class="post-context-line"><code> headers = HeaderHash.new(headers)
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> if env['HTTP_VERSION'] == 'HTTP/1.0' ||
</code></li>
<li class="post-context-line"><code> STATUS_WITH_NO_ENTITY_BODY.include?(status) ||
</code></li>
<li class="post-context-line"><code> headers['Content-Length'] ||
</code></li>
<li class="post-context-line"><code> headers['Transfer-Encoding']
</code></li>
<li class="post-context-line"><code> [status, headers, body]
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
<code><strong>pre_process</strong></code>
</li>
<li class="code system">
<ol start="69"
class="pre-context" id="pre-33"
onclick="toggle(33);">
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # When we're under a non-async framework like rails, we can still spawn
</code></li>
<li class="pre-context-line"><code> # off async responses using the callback info, so there's little point
</code></li>
<li class="pre-context-line"><code> # in removing this.
</code></li>
<li class="pre-context-line"><code> response = AsyncResponse
</code></li>
<li class="pre-context-line"><code> catch(:async) do
</code></li>
<li class="pre-context-line"><code> # Process the request calling the Rack adapter
</code></li>
</ol>
<ol start="76" class="context" id="33"
onclick="toggle(33);">
<li class="context-line" id="context-33"><code> response = @app.call(@request.env)</code></li>
</ol>
<ol start="77" class="post-context"
id="post-33" onclick="toggle(33);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> response
</code></li>
<li class="post-context-line"><code> rescue Exception
</code></li>
<li class="post-context-line"><code> handle_error
</code></li>
<li class="post-context-line"><code> terminate_request
</code></li>
<li class="post-context-line"><code> nil # Signal to post_process that the request could not be processed
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
<code><strong>catch</strong></code>
</li>
<li class="code system">
<ol start="67"
class="pre-context" id="pre-34"
onclick="toggle(34);">
<li class="pre-context-line"><code> # callback is no longer referenced, so be tidy!
</code></li>
<li class="pre-context-line"><code> @request.async_callback = method(:post_process)
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # When we're under a non-async framework like rails, we can still spawn
</code></li>
<li class="pre-context-line"><code> # off async responses using the callback info, so there's little point
</code></li>
<li class="pre-context-line"><code> # in removing this.
</code></li>
<li class="pre-context-line"><code> response = AsyncResponse
</code></li>
</ol>
<ol start="74" class="context" id="34"
onclick="toggle(34);">
<li class="context-line" id="context-34"><code> catch(:async) do</code></li>
</ol>
<ol start="75" class="post-context"
id="post-34" onclick="toggle(34);">
<li class="post-context-line"><code> # Process the request calling the Rack adapter
</code></li>
<li class="post-context-line"><code> response = @app.call(@request.env)
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> response
</code></li>
<li class="post-context-line"><code> rescue Exception
</code></li>
<li class="post-context-line"><code> handle_error
</code></li>
<li class="post-context-line"><code> terminate_request
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
<code><strong>pre_process</strong></code>
</li>
<li class="code system">
<ol start="67"
class="pre-context" id="pre-35"
onclick="toggle(35);">
<li class="pre-context-line"><code> # callback is no longer referenced, so be tidy!
</code></li>
<li class="pre-context-line"><code> @request.async_callback = method(:post_process)
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # When we're under a non-async framework like rails, we can still spawn
</code></li>
<li class="pre-context-line"><code> # off async responses using the callback info, so there's little point
</code></li>
<li class="pre-context-line"><code> # in removing this.
</code></li>
<li class="pre-context-line"><code> response = AsyncResponse
</code></li>
</ol>
<ol start="74" class="context" id="35"
onclick="toggle(35);">
<li class="context-line" id="context-35"><code> catch(:async) do</code></li>
</ol>
<ol start="75" class="post-context"
id="post-35" onclick="toggle(35);">
<li class="post-context-line"><code> # Process the request calling the Rack adapter
</code></li>
<li class="post-context-line"><code> response = @app.call(@request.env)
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> response
</code></li>
<li class="post-context-line"><code> rescue Exception
</code></li>
<li class="post-context-line"><code> handle_error
</code></li>
<li class="post-context-line"><code> terminate_request
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
<code><strong>process</strong></code>
</li>
<li class="code system">
<ol start="50"
class="pre-context" id="pre-36"
onclick="toggle(36);">
<li class="pre-context-line"><code> # is ready to be processed.
</code></li>
<li class="pre-context-line"><code> def process
</code></li>
<li class="pre-context-line"><code> if threaded?
</code></li>
<li class="pre-context-line"><code> @request.threaded = true
</code></li>
<li class="pre-context-line"><code> EventMachine.defer(method(:pre_process), method(:post_process))
</code></li>
<li class="pre-context-line"><code> else
</code></li>
<li class="pre-context-line"><code> @request.threaded = false
</code></li>
</ol>
<ol start="57" class="context" id="36"
onclick="toggle(36);">
<li class="context-line" id="context-36"><code> post_process(pre_process)</code></li>
</ol>
<ol start="58" class="post-context"
id="post-36" onclick="toggle(36);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> def pre_process
</code></li>
<li class="post-context-line"><code> # Add client info to the request env
</code></li>
<li class="post-context-line"><code> @request.remote_address = remote_address
</code></li>
<li class="post-context-line"><code>
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/connection.rb</code> in
<code><strong>receive_data</strong></code>
</li>
<li class="code system">
<ol start="35"
class="pre-context" id="pre-37"
onclick="toggle(37);">
<li class="pre-context-line"><code> @request = Request.new
</code></li>
<li class="pre-context-line"><code> @response = Response.new
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Called when data is received from the client.
</code></li>
<li class="pre-context-line"><code> def receive_data(data)
</code></li>
<li class="pre-context-line"><code> trace { data }
</code></li>
</ol>
<ol start="42" class="context" id="37"
onclick="toggle(37);">
<li class="context-line" id="context-37"><code> process if @request.parse(data)</code></li>
</ol>
<ol start="43" class="post-context"
id="post-37" onclick="toggle(37);">
<li class="post-context-line"><code> rescue InvalidRequest => e
</code></li>
<li class="post-context-line"><code> log "!! Invalid request"
</code></li>
<li class="post-context-line"><code> log_error e
</code></li>
<li class="post-context-line"><code> close_connection
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # Called when all data was received and the request
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb</code> in
<code><strong>run_machine</strong></code>
</li>
<li class="code system">
<ol start="249"
class="pre-context" id="pre-38"
onclick="toggle(38);">
<li class="pre-context-line"><code> @reactor_running = true
</code></li>
<li class="pre-context-line"><code> initialize_event_machine
</code></li>
<li class="pre-context-line"><code> (b = blk || block) and add_timer(0, b)
</code></li>
<li class="pre-context-line"><code> if @next_tick_queue && !@next_tick_queue.empty?
</code></li>
<li class="pre-context-line"><code> add_timer(0) { signal_loopbreak }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> @reactor_thread = Thread.current
</code></li>
</ol>
<ol start="256" class="context" id="38"
onclick="toggle(38);">
<li class="context-line" id="context-38"><code> run_machine</code></li>
</ol>
<ol start="257" class="post-context"
id="post-38" onclick="toggle(38);">
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> until @tails.empty?
</code></li>
<li class="post-context-line"><code> @tails.pop.call
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> begin
</code></li>
<li class="post-context-line"><code> release_machine
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb</code> in
<code><strong>run</strong></code>
</li>
<li class="code system">
<ol start="249"
class="pre-context" id="pre-39"
onclick="toggle(39);">
<li class="pre-context-line"><code> @reactor_running = true
</code></li>
<li class="pre-context-line"><code> initialize_event_machine
</code></li>
<li class="pre-context-line"><code> (b = blk || block) and add_timer(0, b)
</code></li>
<li class="pre-context-line"><code> if @next_tick_queue && !@next_tick_queue.empty?
</code></li>
<li class="pre-context-line"><code> add_timer(0) { signal_loopbreak }
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> @reactor_thread = Thread.current
</code></li>
</ol>
<ol start="256" class="context" id="39"
onclick="toggle(39);">
<li class="context-line" id="context-39"><code> run_machine</code></li>
</ol>
<ol start="257" class="post-context"
id="post-39" onclick="toggle(39);">
<li class="post-context-line"><code> ensure
</code></li>
<li class="post-context-line"><code> until @tails.empty?
</code></li>
<li class="post-context-line"><code> @tails.pop.call
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> begin
</code></li>
<li class="post-context-line"><code> release_machine
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/backends/base.rb</code> in
<code><strong>start</strong></code>
</li>
<li class="code system">
<ol start="50"
class="pre-context" id="pre-40"
onclick="toggle(40);">
<li class="pre-context-line"><code> @running = true
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> # Allow for early run up of eventmachine.
</code></li>
<li class="pre-context-line"><code> if EventMachine.reactor_running?
</code></li>
<li class="pre-context-line"><code> starter.call
</code></li>
<li class="pre-context-line"><code> else
</code></li>
</ol>
<ol start="57" class="context" id="40"
onclick="toggle(40);">
<li class="context-line" id="context-40"><code> EventMachine.run(&starter)</code></li>
</ol>
<ol start="58" class="post-context"
id="post-40" onclick="toggle(40);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # Stop of the backend from accepting new connections.
</code></li>
<li class="post-context-line"><code> def stop
</code></li>
<li class="post-context-line"><code> @running = false
</code></li>
<li class="post-context-line"><code> @stopping = true
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/server.rb</code> in
<code><strong>start</strong></code>
</li>
<li class="code system">
<ol start="149"
class="pre-context" id="pre-41"
onclick="toggle(41);">
<li class="pre-context-line"><code> log ">> Thin web server (v#{VERSION::STRING} codename #{VERSION::CODENAME})"
</code></li>
<li class="pre-context-line"><code> debug ">> Debugging ON"
</code></li>
<li class="pre-context-line"><code> trace ">> Tracing ON"
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code> log ">> Maximum connections set to #{@backend.maximum_connections}"
</code></li>
<li class="pre-context-line"><code> log ">> Listening on #{@backend}, CTRL+C to stop"
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="156" class="context" id="41"
onclick="toggle(41);">
<li class="context-line" id="context-41"><code> @backend.start</code></li>
</ol>
<ol start="157" class="post-context"
id="post-41" onclick="toggle(41);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> alias :start! :start
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code> # == Gracefull shutdown
</code></li>
<li class="post-context-line"><code> # Stops the server after processing all current connections.
</code></li>
<li class="post-context-line"><code> # As soon as this method is called, the server stops accepting
</code></li>
<li class="post-context-line"><code> # new requests and wait for all current connections to finish.
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info system">
<code>/var/lib/gems/1.8/gems/rack-1.1.0/lib/rack/handler/thin.rb</code> in
<code><strong>run</strong></code>
</li>
<li class="code system">
<ol start="7"
class="pre-context" id="pre-42"
onclick="toggle(42);">
<li class="pre-context-line"><code> class Thin
</code></li>
<li class="pre-context-line"><code> def self.run(app, options={})
</code></li>
<li class="pre-context-line"><code> app = Rack::Chunked.new(Rack::ContentLength.new(app))
</code></li>
<li class="pre-context-line"><code> server = ::Thin::Server.new(options[:Host] || '0.0.0.0',
</code></li>
<li class="pre-context-line"><code> options[:Port] || 8080,
</code></li>
<li class="pre-context-line"><code> app)
</code></li>
<li class="pre-context-line"><code> yield server if block_given?
</code></li>
</ol>
<ol start="14" class="context" id="42"
onclick="toggle(42);">
<li class="context-line" id="context-42"><code> server.start</code></li>
</ol>
<ol start="15" class="post-context"
id="post-42" onclick="toggle(42);">
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code>end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb</code> in
<code><strong>run!</strong></code>
</li>
<li class="code framework">
<ol start="939"
class="pre-context" id="pre-43"
onclick="toggle(43);">
<li class="pre-context-line"><code> # Thin, Mongrel or WEBrick (in that order)
</code></li>
<li class="pre-context-line"><code> def run!(options={})
</code></li>
<li class="pre-context-line"><code> set options
</code></li>
<li class="pre-context-line"><code> handler = detect_rack_handler
</code></li>
<li class="pre-context-line"><code> handler_name = handler.name.gsub(/.*::/, '')
</code></li>
<li class="pre-context-line"><code> puts "== Sinatra/#{Sinatra::VERSION} has taken the stage " +
</code></li>
<li class="pre-context-line"><code> "on #{port} for #{environment} with backup from #{handler_name}" unless handler_name =~/cgi/i
</code></li>
</ol>
<ol start="946" class="context" id="43"
onclick="toggle(43);">
<li class="context-line" id="context-43"><code> handler.run self, :Host => bind, :Port => port do |server|</code></li>
</ol>
<ol start="947" class="post-context"
id="post-43" onclick="toggle(43);">
<li class="post-context-line"><code> trap(:INT) do
</code></li>
<li class="post-context-line"><code> ## Use thins' hard #stop! if available, otherwise just #stop
</code></li>
<li class="post-context-line"><code> server.respond_to?(:stop!) ? server.stop! : server.stop
</code></li>
<li class="post-context-line"><code> puts "\n== Sinatra has ended his set (crowd applauds)" unless handler_name =~/cgi/i
</code></li>
<li class="post-context-line"><code> end
</code></li>
<li class="post-context-line"><code> set :running, true
</code></li>
<li class="post-context-line"><code> end
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info framework">
<code>/var/lib/gems/1.8/gems/sinatra-1.0/lib/sinatra/main.rb</code> in
<code><strong>nil</strong></code>
</li>
<li class="code framework">
<ol start="18"
class="pre-context" id="pre-44"
onclick="toggle(44);">
<li class="pre-context-line"><code> op.on('-s server') { |val| set :server, val }
</code></li>
<li class="pre-context-line"><code> op.on('-p port') { |val| set :port, val.to_i }
</code></li>
<li class="pre-context-line"><code> op.on('-o addr') { |val| set :bind, val }
</code></li>
<li class="pre-context-line"><code> }.parse!(ARGV.dup)
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code> end
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="25" class="context" id="44"
onclick="toggle(44);">
<li class="context-line" id="context-44"><code> at_exit { Application.run! if $!.nil? && Application.run? }</code></li>
</ol>
<ol start="26" class="post-context"
id="post-44" onclick="toggle(44);">
<li class="post-context-line"><code>end
</code></li>
<li class="post-context-line"><code>
</code></li>
<li class="post-context-line"><code>include Sinatra::Delegator
</code></li>
</ol>
<div class="clear"></div>
</li>
<li class="frame-info app">
<code>/srv/cloud/one/lib/ruby/cloud/occi/occi-server.rb</code> in
<code><strong>nil</strong></code>
</li>
<li class="code app">
<ol start="149"
class="pre-context" id="pre-45"
onclick="toggle(45);">
<li class="pre-context-line"><code>end
</code></li>
<li class="pre-context-line"><code>
</code></li>
<li class="pre-context-line"><code>get '/storage/:id' do
</code></li>
<li class="pre-context-line"><code> result,rc = $occi_server.get_storage(request, params)
</code></li>
<li class="pre-context-line"><code> treat_response(result,rc)
</code></li>
<li class="pre-context-line"><code>end
</code></li>
<li class="pre-context-line"><code>
</code></li>
</ol>
<ol start="156" class="context" id="45"
onclick="toggle(45);">
<li class="context-line" id="context-45"><code>delete '/storage/:id' do</code></li>
</ol>
<ol start="157" class="post-context"
id="post-45" onclick="toggle(45);">
<li class="post-context-line"><code> result,rc = $occi_server.delete_storage(request, params)
</code></li>
<li class="post-context-line"><code> treat_response(result,rc)
</code></li>
<li class="post-context-line"><code>end</code></li>
</ol>
<div class="clear"></div>
</li>
</ul>
</div> <!-- /BACKTRACE -->
<div id="get">
<h3 id="get-info">GET</h3>
<table class="req">
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
<tr>
<td>file</td>
<td class="code"><div>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}</div></td>
</tr>
<tr>
<td>occixml</td>
<td class="code"><div>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}</div></td>
</tr>
</table>
<div class="clear"></div>
</div> <!-- /GET -->
<div id="post">
<h3 id="post-info">POST</h3>
<table class="req">
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
<tr>
<td>file</td>
<td class="code"><div>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}</div></td>
</tr>
<tr>
<td>occixml</td>
<td class="code"><div>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}</div></td>
</tr>
</table>
<div class="clear"></div>
</div> <!-- /POST -->
<div id="cookies">
<h3 id="cookie-info">COOKIES</h3>
<p class="no-data">No cookie data.</p>
<div class="clear"></div>
</div> <!-- /COOKIES -->
<div id="rack">
<h3 id="env-info">Rack ENV</h3>
<table class="req">
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
<tr>
<td>CONTENT_LENGTH</td>
<td class="code"><div>41943562</div></td>
</tr>
<tr>
<td>CONTENT_TYPE</td>
<td class="code"><div>multipart/form-data; boundary=pS3u9U_Lpss34P7zj2S5eX25CBTxJ8</div></td>
</tr>
<tr>
<td>GATEWAY_INTERFACE</td>
<td class="code"><div>CGI/1.2</div></td>
</tr>
<tr>
<td>HTTP_AUTHORIZATION</td>
<td class="code"><div>Basic b25lYWRtaW46N2JjODU1OWE4ZmU1MDllNjgwNTYyYjg1YzMzN2YxNzA5NTZmY2IwNg==</div></td>
</tr>
<tr>
<td>HTTP_HOST</td>
<td class="code"><div>occi.opennebula.cloud:4567</div></td>
</tr>
<tr>
<td>HTTP_USER_AGENT</td>
<td class="code"><div>Jakarta Commons-HttpClient/3.1</div></td>
</tr>
<tr>
<td>HTTP_VERSION</td>
<td class="code"><div>HTTP/1.1</div></td>
</tr>
<tr>
<td>PATH_INFO</td>
<td class="code"><div>/storage</div></td>
</tr>
<tr>
<td>QUERY_STRING</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>REMOTE_ADDR</td>
<td class="code"><div>10.0.0.2</div></td>
</tr>
<tr>
<td>REQUEST_METHOD</td>
<td class="code"><div>POST</div></td>
</tr>
<tr>
<td>REQUEST_PATH</td>
<td class="code"><div>/storage</div></td>
</tr>
<tr>
<td>REQUEST_URI</td>
<td class="code"><div>/storage</div></td>
</tr>
<tr>
<td>SCRIPT_NAME</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>SERVER_NAME</td>
<td class="code"><div>occi.opennebula.cloud</div></td>
</tr>
<tr>
<td>SERVER_PORT</td>
<td class="code"><div>4567</div></td>
</tr>
<tr>
<td>SERVER_PROTOCOL</td>
<td class="code"><div>HTTP/1.1</div></td>
</tr>
<tr>
<td>SERVER_SOFTWARE</td>
<td class="code"><div>thin 1.2.7 codename No Hup</div></td>
</tr>
<tr>
<td>async.callback</td>
<td class="code"><div>#<Method: Thin::Connection#post_process></div></td>
</tr>
<tr>
<td>async.close</td>
<td class="code"><div>#<EventMachine::DefaultDeferrable:0x7fdb575c1e78></div></td>
</tr>
<tr>
<td>rack.errors</td>
<td class="code"><div>#<IO:0x7fdb5cf69ac0></div></td>
</tr>
<tr>
<td>rack.input</td>
<td class="code"><div>#<File:/srv/cloud/images/tmp/thin-body20100811-3091-14kpj74-0></div></td>
</tr>
<tr>
<td>rack.multiprocess</td>
<td class="code"><div>false</div></td>
</tr>
<tr>
<td>rack.multithread</td>
<td class="code"><div>false</div></td>
</tr>
<tr>
<td>rack.request.form_hash</td>
<td class="code"><div>{"occixml"=>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}, "file"=>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}}</div></td>
</tr>
<tr>
<td>rack.request.form_input</td>
<td class="code"><div>#<File:/srv/cloud/images/tmp/thin-body20100811-3091-14kpj74-0></div></td>
</tr>
<tr>
<td>rack.request.query_hash</td>
<td class="code"><div>{"occixml"=>{:type=>"text/plain; charset=US-ASCII", :head=>"Content-Disposition: form-data; name=\"occixml\"\r\nContent-Type: text/plain; charset=US-ASCII\r\nContent-Transfer-Encoding: 8bit\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-bert41-0>, :name=>"occixml"}, "file"=>{:type=>"application/octet-stream; charset=ISO-8859-1", :head=>"Content-Disposition: form-data; name=\"file\"; filename=\"ttyLinux.img\"\r\nContent-Type: application/octet-stream; charset=ISO-8859-1\r\nContent-Transfer-Encoding: binary\r\n", :tempfile=>#<File:/srv/cloud/images/tmp/RackMultipart20100811-3091-1f5qghf-0>, :filename=>"ttyLinux.img", :name=>"file"}}</div></td>
</tr>
<tr>
<td>rack.request.query_string</td>
<td class="code"><div></div></td>
</tr>
<tr>
<td>rack.run_once</td>
<td class="code"><div>false</div></td>
</tr>
<tr>
<td>rack.url_scheme</td>
<td class="code"><div>http</div></td>
</tr>
<tr>
<td>rack.version</td>
<td class="code"><div>[1, 0]</div></td>
</tr>
<tr>
<td>sinatra.error</td>
<td class="code"><div>#<RuntimeError: Hash is not a valid input stream. It must walk
like either a String, an IO, or a Source.></div></td>
</tr>
</table>
<div class="clear"></div>
</div> <!-- /RACK ENV -->
<p id="explanation">You're seeing this error because you have
enabled the <code>show_exceptions</code> setting.</p>
</div> <!-- /WRAP -->
</body>
</html>