Hi Simon, I was able to reproduce this on Ubuntu 16.04 as well. After digging in a bit, it seems to be an error in the underlying FileUtils library within Ruby.
I've created a ticket <https://tickets.puppetlabs.com/browse/RAZOR-926> to track the issue, and put up a fix <https://github.com/puppetlabs/razor-server/pull/352> for it. In the meantime, one workaround is to delete the repo directory manually before running the delete-repo command: $ rm -rf /opt/puppetlabs/server/data/razor-server/repo/ubuntu16.04 Hope that helps, and thanks for pointing this out! Scott On Thu, Jul 14, 2016 at 11:10 AM Simon Frostick <[email protected]> wrote: > Hello, > > I get the following error when trying to delete a repo any ideas ? > > OS: Ubuntu 16.04 > razor-server: 1.4.0 > razor-torquebox: 3.1.2 > > > $razor repos > From https://localhost:8443/api/collections/repos: > > > +--------------+------------------------------------------------------------------------------------------------+-----+------+ > | name | iso_url | url | task | > > +--------------+------------------------------------------------------------------------------------------------+-----+------+ > | ubuntu-16.04 | > > http://mirror.ox.ac.uk/sites/releases.ubuntu.com/releases/xenial/ubuntu-16.04-server-amd64.iso > | --- | --- | > > +--------------+------------------------------------------------------------------------------------------------+-----+------+ > | ubuntu16.04 | > > http://mirror.ox.ac.uk/sites/releases.ubuntu.com/releases/xenial/ubuntu-16.04-server-amd64.iso > | --- | --- | > > +--------------+------------------------------------------------------------------------------------------------+-----+------ > > $razor delete-repo ubuntu16.04 > Error from doing POST https://localhost:8443/api/commands/delete-repo > 500 Internal Server Error > <h1>Internal Server Error</h1> > > The log (/var/log/puppetlabs/razor-server/server.log) has the following... > > 16:27:23,397 INFO [razor.web.api] (http-/0.0.0.0:8443-1) 2016-07-14 > 16:27:23 - NotImplementedError - No message available: > org/jruby/RubyFile.java:889:in `lchmod' > > /opt/puppetlabs/server/apps/razor-server/share/torquebox/jruby/lib/ruby/1.9/fileutils.rb:1331:in > `chmod' > > /opt/puppetlabs/server/apps/razor-server/share/torquebox/jruby/lib/ruby/1.9/fileutils.rb:1006:in > `chmod_R' > > /opt/puppetlabs/server/apps/razor-server/share/torquebox/jruby/lib/ruby/1.9/fileutils.rb:1443:in > `preorder_traverse' > > /opt/puppetlabs/server/apps/razor-server/share/torquebox/jruby/lib/ruby/1.9/fileutils.rb:1004:in > `chmod_R' > org/jruby/RubyArray.java:1613:in `each' > > /opt/puppetlabs/server/apps/razor-server/share/torquebox/jruby/lib/ruby/1.9/fileutils.rb:1003:in > `chmod_R' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/data/repo.rb:39:in > `remove_directory' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/data/repo.rb:58:in > `after_destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1670:in > `_destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1032:in > `around_destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1666:in > `_destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1174:in > `destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1903:in > `checked_transaction' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/transactions.rb:118:in > `_transaction' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/transactions.rb:106:in > `_transaction' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/transactions.rb:93:in > `transaction' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:104:in > `hold' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/connection_pool/threaded.rb:93:in > `hold' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/connecting.rb:234:in > `synchronize' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/database/transactions.rb:86:in > `transaction' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1903:in > `checked_transaction' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1174:in > `destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1891:in > `checked_save_failure' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sequel-4.9.0/lib/sequel/model/base.rb:1174:in > `destroy' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/command/delete_repo.rb:31:in > `run' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/command.rb:46:in > `handle_http_post' > /opt/puppetlabs/server/apps/razor-server/share/razor-server/app.rb:610:in > `POST > /api/commands/:name' > org/jruby/RubyMethod.java:116:in `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1611:in > `compile!' > org/jruby/RubyProc.java:271:in `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in > `route!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:994:in > `route_eval' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:975:in > `route!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1015:in > `process_route' > org/jruby/RubyKernel.java:1270:in `catch' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1013:in > `process_route' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:973:in > `route!' > org/jruby/RubyArray.java:1613:in `each' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:972:in > `route!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1085:in > `dispatch!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in > `invoke' > org/jruby/RubyKernel.java:1270:in `catch' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in > `invoke' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1082:in > `dispatch!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in > `call!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in > `invoke' > org/jruby/RubyKernel.java:1270:in `catch' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:1067:in > `invoke' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:907:in > `call!' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:895:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/middleware/auth.rb:52:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/middleware/auth.rb:50:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:219:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/lib/razor/middleware/logger.rb:13:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-1.6.4/lib/rack/nulllogger.rb:9:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/rack-1.6.4/lib/rack/head.rb:13:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:182:in > `call' > > /opt/puppetlabs/server/apps/razor-server/share/razor-server/vendor/bundle/jruby/1.9/gems/sinatra-1.4.7/lib/sinatra/base.rb:2013:in > `call' > 16:27:23,419 INFO [razor.web.log] (http-/0.0.0.0:8443-1) 127.0.0.1 - - > [14/Jul/2016:16:27:23 +0100] "POST /api/commands/delete-repo " 500 30 > 0.4710 > > > Thanks > Simon > > -- > You received this message because you are subscribed to the Google Groups > "puppet-razor" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/puppet-razor. > For more options, visit https://groups.google.com/d/optout. > -- -- PuppetConf 2016 <https://puppet.com/puppetconf>, 19 - 21 October, San Diego, California *Summer Savings - Register by 15 September and save $240 <https://puppetconf2016.eventbrite.com/?discount=SummerSavings>* -- You received this message because you are subscribed to the Google Groups "puppet-razor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/puppet-razor. For more options, visit https://groups.google.com/d/optout.
