After the first successful fact import, subsequent imports fail with:
2016-11-15T15:11:28 36ca7449 [app] [I] Import facts for 'cobalt.example.com' completed. Added: 0, Updated: 0, Deleted 0 facts
2016-11-15T15:11:28 36ca7449 [sql] [D] (0.1ms) begin transaction
2016-11-15T15:11:28 36ca7449 [sql] [D] Operatingsystem Load (0.1ms) SELECT "operatingsystems".* FROM "operatingsystems" WHERE "operatingsystems"."id" = ? ORDER BY "operatingsystems"."title" ASC LIMIT 1 [["id", 23]]
2016-11-15T15:11:28 36ca7449 [sql] [D] Nic::Base Load (0.2ms) SELECT "nics".* FROM "nics" WHERE "nics"."host_id" = ? ORDER BY "nics"."identifier" ASC [["host_id", 109]]
2016-11-15T15:11:28 36ca7449 [sql] [D] Domain Load (0.1ms) SELECT "domains".* FROM "domains" WHERE "domains"."id" = ? ORDER BY domains.name LIMIT 1 [["id", 4]]
2016-11-15T15:11:28 36ca7449 [sql] [D] (0.0ms) commit transaction
2016-11-15T15:11:28 36ca7449 [sql] [D] Model Load (0.1ms) SELECT "models".* FROM "models" WHERE "models"."name" = ? ORDER BY models.name LIMIT 1 [["name", "VMware Virtual Platform"]]
2016-11-15T15:11:28 36ca7449 [sql] [D] Domain Load (0.1ms) SELECT "domains".* FROM "domains" WHERE "domains"."name" = ? ORDER BY domains.name LIMIT 1 [["name", "localdomain"]]
2016-11-15T15:11:28 36ca7449 [sql] [D] Architecture Load (0.1ms) SELECT "architectures".* FROM "architectures" WHERE "architectures"."name" = ? ORDER BY "architectures"."id" ASC LIMIT 1 [["name", "i386"]]
2016-11-15T15:11:28 36ca7449 [sql] [D] Operatingsystem Load (0.2ms) SELECT "operatingsystems".* FROM "operatingsystems" WHERE "operatingsystems"."name" = ? AND "operatingsystems"."major" = ? AND "operatingsystems"."minor" IS NULL ORDER BY "operatingsystems"."title" A
SC LIMIT 1 [["name", "Solaris"], ["major", "109"]]
2016-11-15T15:11:28 36ca7449 [sql] [D] (0.0ms) begin transaction
2016-11-15T15:11:28 36ca7449 [sql] [D] Operatingsystem Exists (0.1ms) SELECT 1 AS one FROM "operatingsystems" WHERE ("operatingsystems"."name" = 'Solaris' AND "operatingsystems"."major" = '109' AND "operatingsystems"."minor" = '') LIMIT 1
2016-11-15T15:11:28 36ca7449 [sql] [D] Operatingsystem Exists (0.1ms) SELECT 1 AS one FROM "operatingsystems" WHERE "operatingsystems"."title" = 'Solaris 109' LIMIT 1
2016-11-15T15:11:28 36ca7449 [sql] [D] (0.1ms) rollback transaction
2016-11-15T15:11:28 36ca7449 [app] [W] Action failed
| ActiveRecord::RecordInvalid: Validation failed: »Name« Operating system version already exists, »Title« has already been taken
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/validations.rb:79:in `raise_record_invalid'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/validations.rb:43:in `save!'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/attribute_methods/dirty.rb:29:in `save!'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:291:in `block in save!'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:351:in `block in with_transaction_returning_status'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:220:in `transaction'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:348:in `with_transaction_returning_status'
| /home/dcleal/.rvm/gems/ruby-2.3.0@foreman/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:291:in `save!'
| /home/dcleal/code/foreman/foreman/app/services/puppet_fact_parser.rb:47:in `operatingsystem'
| /home/dcleal/code/foreman/foreman/app/models/host/base.rb:163:in `block in set_non_empty_values'
| /home/dcleal/code/foreman/foreman/app/models/host/base.rb:162:in `each'
| /home/dcleal/code/foreman/foreman/app/models/host/base.rb:162:in `set_non_empty_values'
| /home/dcleal/code/foreman/foreman/app/models/host/base.rb:155:in `populate_fields_from_facts'
| /home/dcleal/code/foreman/foreman/app/models/host/managed.rb:470:in `populate_fields_from_facts'
| /home/dcleal/code/foreman/foreman/app/models/host/base.rb:133:in `import_facts'
| /home/dcleal/code/foreman/foreman/app/models/host/managed.rb:307:in `import_facts'
| /home/dcleal/code/foreman/foreman/app/controllers/api/v2/hosts_controller.rb:260:in `facts'
The operating system created was:
=> {"id"=>23, "major"=>"109", "name"=>"Solaris", "minor"=>"", "nameindicator"=>nil, "created_at"=>Tue, 15 Nov 2016 15:11:06 UTC +00:00, "updated_at"=>Tue, 15 Nov 2016 15:11:06 UTC +00:00, "release_name"=>nil, "type"=>"Solaris", "description"=>nil, "password_hash"=>"SHA256", "title"=>"Solaris 109"}