[Pkg-opennebula-devel] Bug#663086: occi-server: html/js/image files for self-service portal missing

Martin Steigerwald ms at teamix.de
Thu Mar 8 11:38:53 UTC 2012


Package: opennebula
Version: 3.2.1-1
Severity: normal

Dear Maintainer,

again I am reporting from my workstation, server is pure sid as of today.

after having fixed #663065 and #663072 for me I can access the self
service portal from

http://opennebula.of.teamix.net:4567/ui

But the HTML files are missing:

application error

Errno::ENOENT at /ui
No such file or directory - /usr/lib/one/ruby/cloud/occi/ui/templates/login.html

    file: occi-server.rb
    location: read
    line: 340

BACKTRACE

(expand)

JUMP TO: GET POST COOKIES ENV

    /usr/lib/one/ruby/cloud/occi/occi-server.rb in read
        post '/ui/logout' do
        destroy_session
        end
        get '/ui' do
        if !authorized?
        return File.read(File.dirname(__FILE__)+'/ui/templates/login.html')
        end
        time = Time.now + 60
        response.set_cookie("occi-user",
        :value=>"#{session[:user]}",
        :expires=>time)
    /usr/lib/one/ruby/cloud/occi/occi-server.rb in GET /ui
        return File.read(File.dirname(__FILE__)+'/ui/templates/login.html')
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in call
        proc { unbound_method.bind(self).call(*@block_params) } :
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in compile!
        proc { unbound_method.bind(self).call(*@block_params) } :
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in instance_eval
        throw :halt, instance_eval(&block)
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in route_eval
        throw :halt, instance_eval(&block)
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in route!
        route_eval(&block)
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in process_route
        yield
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in catch
        catch(:pass) do
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in process_route
        catch(:pass) do
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in route!
        pass_block = process_route(pattern, keys, conditions) do
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in each
        routes.each do |pattern, keys, conditions, block|
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in route!
        routes.each do |pattern, keys, conditions, block|
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in dispatch!
        route!
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in call!
        invoke { dispatch! }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in instance_eval
        res = catch(:halt) { instance_eval(&block) }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in invoke
        res = catch(:halt) { instance_eval(&block) }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in catch
        res = catch(:halt) { instance_eval(&block) }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in invoke
        res = catch(:halt) { instance_eval(&block) }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in call!
        invoke { dispatch! }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in call
        dup.call!(env)
    /usr/lib/ruby/vendor_ruby/rack/session/abstract/id.rb in context
        status, headers, body = app.call(env)
    /usr/lib/ruby/vendor_ruby/rack/session/abstract/id.rb in call
        context(env)
    /usr/lib/ruby/vendor_ruby/rack/head.rb in call
        status, headers, body = @app.call(env)
    /usr/lib/ruby/vendor_ruby/rack/commonlogger.rb in call
        status, header, body = @app.call(env)
    /usr/lib/ruby/vendor_ruby/sinatra/showexceptions.rb in call
        @app.call(env)
    /usr/lib/ruby/vendor_ruby/rack/methodoverride.rb in call
        @app.call(env)
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in call
        synchronize { prototype.call(env) }
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in synchronize
        yield
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in call
        synchronize { prototype.call(env) }
    /usr/lib/ruby/vendor_ruby/thin/connection.rb in pre_process
        response = @app.call(@request.env)
    /usr/lib/ruby/vendor_ruby/thin/connection.rb in catch
        catch(:async) do
    /usr/lib/ruby/vendor_ruby/thin/connection.rb in pre_process
        catch(:async) do
    /usr/lib/ruby/vendor_ruby/thin/connection.rb in process
        post_process(pre_process)
    /usr/lib/ruby/vendor_ruby/thin/connection.rb in receive_data
        process if @request.parse(data)
    /usr/lib/ruby/vendor_ruby/eventmachine.rb in run_machine
        run_machine
    /usr/lib/ruby/vendor_ruby/eventmachine.rb in run
        run_machine
    /usr/lib/ruby/vendor_ruby/thin/backends/base.rb in start
        EventMachine.run(&starter)
    /usr/lib/ruby/vendor_ruby/thin/server.rb in start
        @backend.start
    /usr/lib/ruby/vendor_ruby/rack/handler/thin.rb in run
        server.start
    /usr/lib/ruby/vendor_ruby/sinatra/base.rb in run!
        handler.run self, :Host => bind, :Port => port do |server|
    /usr/lib/ruby/vendor_ruby/sinatra/main.rb in nil
        at_exit { Application.run! if $!.nil? && Application.run? }
    /usr/lib/one/ruby/cloud/occi/occi-server.rb in nil
        post '/ui/upload' do

GET

No GET data.
POST

No POST data.
COOKIES
[…]
Rack ENV
Variable 	Value
GATEWAY_INTERFACE 	
CGI/1.2
HTTP_ACCEPT 	
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_ENCODING 	
gzip, deflate
HTTP_ACCEPT_LANGUAGE 	
en-us,en;q=0.5
HTTP_CONNECTION 	
keep-alive
HTTP_COOKIE 	
[…]
HTTP_HOST 	
opennebula.of.teamix.net:4567
HTTP_USER_AGENT 	
Mozilla/5.0 (X11; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0 Iceweasel/11.0
HTTP_VERSION 	
HTTP/1.1
PATH_INFO 	
/ui
QUERY_STRING 	
REMOTE_ADDR 	
[…]
REQUEST_METHOD 	
GET
REQUEST_PATH 	
/ui
REQUEST_URI 	
/ui
SCRIPT_NAME 	
SERVER_NAME 	
opennebula.of.teamix.net
SERVER_PORT 	
4567
SERVER_PROTOCOL 	
HTTP/1.1
SERVER_SOFTWARE 	
thin 1.3.1 codename Triple Espresso
async.callback 	
#<Method: Thin::Connection#post_process>
async.close 	
#<EventMachine::DefaultDeferrable:0x7ff9dd8a7698>
rack.errors 	
#<Object:0x7ff9e179d6e0>
rack.input 	
#<StringIO:0x7ff9dd8a7cd8>
rack.multiprocess 	
false
rack.multithread 	
false
rack.request.cookie_hash 	
[…]
rack.request.cookie_string 	
[…]
rack.request.query_hash 	
{}
rack.request.query_string 	
rack.run_once 	
false
rack.session 	
#<Rack::Session::Abstract::SessionHash:0x3ffceec539e4 not yet loaded>
rack.session.options 	
{:key=>"occi", :expire_after=>nil, :domain=>nil, :renew=>false, :secure=>false, :sidbits=>128, :httponly=>true, :id=>nil, :path=>"/", :drop=>false, :defer=>false, :secure_random=>SecureRandom}
rack.url_scheme 	
http
rack.version 	
[1, 0]
sinatra.error 	
#<Errno::ENOENT: No such file or directory - /usr/lib/one/ruby/cloud/occi/ui/templates/login.html>

You're seeing this error because you have enabled the show_exceptions setting.


Installing the files manually fixes the issue for me:

opennebula:~# apt-get source opennebula
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
HINWEIS: »opennebula«-Paketierung wird betreut im »Git«-Versionsverwaltungssystem auf:
git://git.debian.org/pkg-opennebula/opennebula.git
[…]
opennebula:~# cd opennebula-3.2.1/
opennebula:~/opennebula-3.2.1# find -iname "*login.html*"
./.pc/sunstone_system_jquery.diff/src/sunstone/templates/login.html
./.pc/ozones_system_jquery.diff/src/ozones/Server/templates/login.html
./src/cloud/occi/lib/ui/templates/login.html
./src/ozones/Server/templates/login.html
./src/sunstone/templates/login.html
opennebula:~/opennebula-3.2.1# rsync -av ./src/cloud/occi/lib/ui/  /usr/lib/one/ruby/cloud/occi/ui
sending incremental file list
created directory /usr/lib/one/ruby/cloud/occi/ui
./
public/
public/css/
public/css/application.css
public/css/layout.css
public/css/login.css
[…]


Now I get the login screen, but it doesn't let me in. Neither with
the clear text password now with the hash. There does seem to be some
authentication issue. Lets see whether I can find this one as well.

Thanks,
Martin

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (450, 'unstable'), (110, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-1-686-pae (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages opennebula depends on:
ii  libc6                             2.13-26
ii  libgcc1                           1:4.6.3-1
ii  libmysqlclient16                  5.1.58-1
ii  libsqlite3-0                      3.7.10-1
ii  libssl1.0.0                       1.0.0g-1
ii  libstdc++6                        4.6.3-1
ii  libxml2                           2.7.8.dfsg-7
ii  libxmlrpc-c++4                    <none>
ii  libxmlrpc-core-c3                 <none>
ii  opennebula-common                 3.2.1-1
ii  ruby                              4.8
ii  ruby-password [libpassword-ruby]  0.5.3-3
ii  ruby-sequel [libsequel-ruby]      3.33.0-1
ii  ruby1.8 [ruby]                    1.8.7.352-2
ii  rubygems                          1.8.15-1

Versions of packages opennebula recommends:
ii  libmysql-ruby                   2.8.2+gem2deb-1
ii  ruby-mysql [libmysql-ruby]      2.8.2+gem2deb-1
ii  ruby-sqlite3 [libsqlite3-ruby]  1.3.5-1

Versions of packages opennebula suggests:
ii  mysql-server                         <none>
ii  ruby-amazon-ec2 [libamazonec2-ruby]  0.9.17-2





More information about the Pkg-opennebula-devel mailing list