Bug #16866

Facts import doesn't work with unattended=false

Added by Michael Moll about 1 year ago. Updated 12 months ago.

Status:Closed
Priority:Normal
Assigned To:Dominic Cleal
Category:Facts
Target version:-
Difficulty: Bugzilla link:
Found in release:nightly Pull request:https://github.com/theforeman/foreman/pull/3978
Story points-
Velocity based estimate-
Release1.13.2Release relationshipAuto

Description

2016-10-11T18:31:35 a6b732ef [app] [I] Started POST "/api/hosts/facts" for 192.168.200.143 at 2016-10-11 18:31:35 +0200
2016-10-11T18:31:35 a6b732ef [app] [I] Processing by Api::V2::HostsController#facts as JSON
2016-10-11T18:31:35 a6b732ef [app] [I]   Parameters: {"facts"=>"[FILTERED]", "name"=>"dave-neuweg.kvedulv.de", "certname"=>"dave-neuweg.kvedulv.de", "apiv"=>"v2", :host=>{"certname"=>"dave-neuweg.kvedulv.de", "name"=>"dave-neuweg.kvedulv.de"}}
2016-10-11T18:31:35 a6b732ef [app] [W] Action failed
 | NoMethodError: undefined method `enable_orchestration!' for #<Host::Managed:0x007fabd73e9b28>
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activemodel-4.2.7.1/lib/active_model/attribute_methods.rb:433:in `method_missing'
 | /usr/share/foreman/app/models/host/managed.rb:307:in `ensure in import_facts'
 | /usr/share/foreman/app/models/host/managed.rb:307:in `import_facts'
 | /usr/share/foreman/app/controllers/api/v2/hosts_controller.rb:255:in `facts'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/abstract_controller/base.rb:198:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/rendering.rb:10:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/abstract_controller/callbacks.rb:20:in `block in process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:117:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:117:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /usr/share/foreman/app/controllers/api/v2/base_controller.rb:152:in `disable_json_root'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:432:in `block in make_lambda'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rails-observers-0.1.2/lib/rails/observers/action_controller/caching/sweeping.rb:73:in `around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `public_send'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `block in make_lambda'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /usr/share/foreman/app/controllers/concerns/application_shared.rb:14:in `set_timezone'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:432:in `block in make_lambda'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /usr/share/foreman/app/models/concerns/foreman/thread_session.rb:32:in `clear_thread'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:432:in `block in make_lambda'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:313:in `block (2 levels) in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rails-observers-0.1.2/lib/rails/observers/action_controller/caching/sweeping.rb:73:in `around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `public_send'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:455:in `block in make_lambda'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:312:in `block in halting'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:497:in `block in around'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:505:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:92:in `__run_callbacks__'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_process_action_callbacks'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/abstract_controller/callbacks.rb:19:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/rescue.rb:29:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:164:in `block in instrument'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/notifications.rb:164:in `instrument'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/params_wrapper.rb:250:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activerecord-4.2.7.1/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/abstract_controller/base.rb:137:in `process'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionview-4.2.7.1/lib/action_view/rendering.rb:30:in `process'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal.rb:196:in `dispatch'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal/rack_delegation.rb:13:in `dispatch'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_controller/metal.rb:237:in `block in action'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:74:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:74:in `dispatch'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:43:in `serve'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/mapper.rb:49:in `serve'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:43:in `block in serve'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:30:in `each'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/journey/router.rb:30:in `serve'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/routing/route_set.rb:817:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/apipie-rails-0.3.6/lib/apipie/static_dispatcher.rb:65:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/apipie-rails-0.3.6/lib/apipie/extractor/recorder.rb:132:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/apipie-rails-0.3.6/lib/apipie/middleware/checksum_in_headers.rb:27:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/etag.rb:24:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/conditionalget.rb:38:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
 | /usr/share/foreman/lib/middleware/catch_json_parse_errors.rb:8:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/flash.rb:260:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:225:in `context'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb:220:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/cookies.rb:560:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activerecord-4.2.7.1/lib/active_record/query_cache.rb:36:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:88:in `__run_callbacks__'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/railties-4.2.7.1/lib/rails/rack/logger.rb:38:in `call_app'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/railties-4.2.7.1/lib/rails/rack/logger.rb:22:in `call'
 | /usr/share/foreman/lib/middleware/tagged_logging.rb:18:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/request_id.rb:21:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/methodoverride.rb:22:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/runtime.rb:18:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/activesupport-4.2.7.1/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/actionpack-4.2.7.1/lib/action_dispatch/middleware/static.rb:120:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/secure_headers-3.4.1/lib/secure_headers/middleware.rb:12:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/railties-4.2.7.1/lib/rails/engine.rb:518:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/railties-4.2.7.1/lib/rails/application.rb:165:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/railties-4.2.7.1/lib/rails/railtie.rb:194:in `public_send'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/railties-4.2.7.1/lib/rails/railtie.rb:194:in `method_missing'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
 | /usr/lib/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
 | /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
 | /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
 | /usr/lib/ruby/vendor_ruby/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:in `call'
 | /usr/share/foreman/vendor/ruby/2.1.0/gems/logging-2.1.0/lib/logging/diagnostic_context.rb:450:in `block in create_with_logging_context'


Related issues

Related to Foreman - Refactor #10413: Reimplement !unattended mode support as mainline feature New 05/07/2015
Related to Foreman - Bug #15306: Orchestration does not roll back queued actions if DB err... Closed 06/06/2016
Duplicated by Foreman - Bug #17118: Error pushing facts to foreman Duplicate 10/27/2016

Associated revisions

Revision 525e3213
Added by Dominic Cleal 12 months ago

fixes #16866 - don't call orchestration skip if unattended is off

Revision a308c5b9
Added by Dominic Cleal 11 months ago

fixes #16866 - don't call orchestration skip if unattended is off

(cherry picked from commit 525e321360fe8e26823a683eb76744d36b32efc2)

History

#1 Updated by Michael Moll about 1 year ago

  • Related to Refactor #10413: Reimplement !unattended mode support as mainline feature added

#2 Updated by Dominic Cleal 12 months ago

  • Duplicated by Bug #17118: Error pushing facts to foreman added

#3 Updated by Dominic Cleal 12 months ago

  • Related to Bug #15306: Orchestration does not roll back queued actions if DB error occurs added

#4 Updated by Dominic Cleal 12 months ago

  • Release set to 1.13.2

#5 Updated by Dominic Cleal 12 months ago

  • Status changed from New to Assigned
  • Assigned To set to Dominic Cleal

#6 Updated by The Foreman Bot 12 months ago

  • Status changed from Assigned to Ready For Testing
  • Pull request https://github.com/theforeman/foreman/pull/3978 added

#7 Updated by Dominic Cleal 12 months ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF