rhtconsulting / cfme-rhconsulting-scripts

GNU General Public License v2.0
65 stars 49 forks source link

Importing Service Catalogs after importing Buttons: ActiveRecord::RecordInvalid: Validation failed: Name has already been taken #124

Open ruszkowsk1 opened 5 years ago

ruszkowsk1 commented 5 years ago

Hey, I encountered bug while trying to import Service Catalogs after importing Buttons. Steps:

  1. Export buttons and service catalogs from CloudForms 1
  2. Import buttons to CloudForms 2 appliance (this goes fine)
  3. Import service_catalogs to CloudForms 2 appliance (error here)

This looks like some entries from Buttons file are duplicated in Service Catalogs file. Please note that everything was working well at CloudForms1, and CloudForms2 was completely new and clean.

Here is log:

rake aborted!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/validations.rb:78:in `raise_validation_error'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/validations.rb:50:in `save!'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/attribute_methods/dirty.rb:30:in `save!'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:324:in `block in save!'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:211:in `transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:392:in `with_transaction_returning_status'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:324:in `save!'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/suppressor.rb:45:in `save!'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/persistence.rb:288:in `block in update!'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:395:in `block in with_transaction_returning_status'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/database_statements.rb:230:in `transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:211:in `transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:392:in `with_transaction_returning_status'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/persistence.rb:286:in `update!'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:248:in `block in import_custom_button_sets'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:241:in `each'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:241:in `import_custom_button_sets'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:105:in `block in import_service_templates'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:75:in `each'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:75:in `import_service_templates'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:24:in `block (4 levels) in import'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `block in transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/transaction.rb:189:in `within_new_transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/database_statements.rb:232:in `transaction'
/opt/rh/cfme-gemset/gems/activerecord-5.0.6/lib/active_record/transactions.rb:211:in `transaction'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:23:in `block (3 levels) in import'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:22:in `each'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:22:in `block (2 levels) in import'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:19:in `each'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:19:in `block in import'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:8:in `foreach'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:8:in `import'
/var/www/miq/vmdb/lib/tasks/rhconsulting_service_catalogs.rake:410:in `block (3 levels) in <top (required)>'
Tasks: TOP => rhconsulting:service_catalogs:import
(See full trace by running task with --trace)
ruszkowsk1 commented 5 years ago

It still occurs... The other issue is that buttons inside service catalogs don't have some values saved after export. Dialog, Request, Attribute/value pairs - they are all missing in .yml file after export.