Comments (4)
I was able to reproduce this
- Create a VMware ServiceTemplate
- Try to edit the config_info via the API:
POST /api/service_templates/1 {"action": "edit", "config_info": {"src_vm_id": 3}}
[489, 498] in /home/grare/adam/src/manageiq/manageiq/app/models/service_template.rb
489: def update_service_resources(config_info, auth_user = nil)
490: config_info = config_info.except(:provision, :retirement, :reconfigure)
491: workflow_class = MiqProvisionWorkflow.class_for_source(config_info[:src_vm_id])
492: if workflow_class
493: service_resources.find_by(:resource_type => 'MiqRequest').try(:destroy)
=> 494: new_request = workflow_class.new(config_info, auth_user).make_request(nil, config_info)
495:
496: add_resource!(new_request)
497: end
498: end
(byebug)
Backtrace:
(byebug) error
#<MiqAeException::Error: Unable to launch Automate Method because currently in SQL transaction>
(byebug) pp error.backtrace
["/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_method.rb:190:in `ruby_method_runnable?'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_method.rb:198:in `invoke_inline_ruby'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_method.rb:10:in `invoke_inline'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_method.rb:92:in `invoke'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:544:in `invoke_method'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:368:in `block in process_method_raw'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/more_core_extensions-4.4.0/lib/more_core_extensions/core_ext/benchmark/realtime_store.rb:20:in `realtime_store'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/more_core_extensions-4.4.0/lib/more_core_extensions/core_ext/benchmark/realtime_store.rb:62:in `realtime_block'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:361:in `process_method_raw'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:374:in `process_method'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:313:in `block in process_filtered_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:307:in `each'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:307:in `process_filtered_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:303:in `process_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_workspace_runtime.rb:210:in `instantiate'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:650:in `process_relationship_raw'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:354:in `process_relationship'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:313:in `block in process_filtered_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:307:in `each'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:307:in `process_filtered_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:303:in `process_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_workspace_runtime.rb:210:in `instantiate'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:650:in `process_relationship_raw'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:354:in `process_relationship'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:313:in `block in process_filtered_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:307:in `each'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:307:in `process_filtered_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_object.rb:303:in `process_fields'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_workspace_runtime.rb:210:in `instantiate'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_workspace_runtime.rb:54:in `instantiate_with_user'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_workspace_runtime.rb:48:in `block in instantiate'",
"/home/grare/adam/src/manageiq/manageiq/app/models/user.rb:381:in `with_user'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine/miq_ae_workspace_runtime.rb:48:in `instantiate'",
"/home/grare/adam/src/manageiq/manageiq-automation_engine/lib/miq_automation_engine/engine/miq_ae_engine.rb:328:in `resolve_automation_object'",
"/home/grare/adam/src/manageiq/manageiq/app/models/miq_request_workflow.rb:698:in `dialog_name_from_automate'",
"/home/grare/adam/src/manageiq/manageiq/app/models/miq_provision_virt_workflow.rb:49:in `dialog_name_from_automate'",
"/home/grare/adam/src/manageiq/manageiq/app/models/manageiq/providers/infra_manager/provision_workflow.rb:63:in `dialog_name_from_automate'",
"/home/grare/adam/src/manageiq/manageiq-providers-vmware/app/models/manageiq/providers/vmware/infra_manager/provision_workflow.rb:21:in `dialog_name_from_automate'",
"/home/grare/adam/src/manageiq/manageiq/app/models/miq_request_workflow.rb:651:in `get_dialogs'",
"/home/grare/adam/src/manageiq/manageiq/app/models/miq_provision_virt_workflow.rb:27:in `initialize'",
"/home/grare/adam/src/manageiq/manageiq/app/models/service_template.rb:494:in `new'",
"/home/grare/adam/src/manageiq/manageiq/app/models/service_template.rb:494:in `update_service_resources'",
"/home/grare/adam/src/manageiq/manageiq/app/models/service_template.rb:154:in `block in update_catalog_item'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `block in transaction'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activesupport-6.1.7.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:26:in `block (2 levels) in synchronize'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activesupport-6.1.7.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activesupport-6.1.7.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activesupport-6.1.7.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activesupport-6.1.7.6/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/database_statements.rb:320:in `transaction'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activerecord-6.1.7.6/lib/active_record/transactions.rb:209:in `transaction'",
"/home/grare/adam/.gem/ruby/3.1.0/gems/activerecord-6.1.7.6/lib/active_record/transactions.rb:290:in `transaction'",
"/home/grare/adam/src/manageiq/manageiq/app/models/service_template.rb:150:in `update_catalog_item'",
"/home/grare/adam/src/manageiq/manageiq-api/app/controllers/api/service_templates_controller.rb:26:in `edit_resource'",
"/home/grare/adam/src/manageiq/manageiq-api/app/controllers/api/base_controller/manager.rb:101:in `update_one_collection'",
"/home/grare/adam/src/manageiq/manageiq-api/app/controllers/api/base_controller/manager.rb:23:in `update_collection'",
"/home/grare/adam/src/manageiq/manageiq-api/app/controllers/api/base_controller.rb:95:in `update'",
from manageiq.
cc @Fryguy
from manageiq.
@agrare The culprit: dialog_name_from_automate
https://github.com/ManageIQ/manageiq/blob/master/app/models/miq_request_workflow.rb#L651
Also of interest:
But specifically what I am trying to update is the
src_vm_id
underconfig_info
. I've tried doing a post and a put to the /api/service_template/:id endpoint with the following body:
@Fryguy Is this related to our previous discussion around removing edit from some request models in the api?
from manageiq.
@Fryguy Is this related to our previous discussion around removing edit from some request models in the api?
I don't believe so
from manageiq.
Related Issues (20)
- We can't change the name of an existing instance in manageiq. HOT 2
- How to get OCP cluster metrics using curl api HOT 4
- Enhancement request: import existing VM into Self Service UI HOT 1
- Cannot find in database the relation between a group and its role HOT 2
- Pass bash script to guest customization HOT 2
- Cannot Launch Ansible Tower Workflow Template HOT 2
- Combine Embedded Automation Managers HOT 2
- Custom button execution does not appear in Tasks
- Physical Infrastructure - XClarity HOT 1
- Provider Validation missing zone_id from verify_credentials args
- Not able to assign static IP for multiple instances on single provision request. HOT 3
- Customization Issues with Static IP Configuration in OpenStack Instance Provisioning HOT 6
- While the tenant is created, it suppose to be listing in cloud tenant page it may take up to four or five minutes. HOT 9
- :q!
- Add Huawei Fusion Compute as provider
- Add Search Bar for Provision Instances - Select an Image Page HOT 21
- ManageIQ Morphy -> Oparin k8s upgrade issue HOT 4
- Port not handled properly in containerized image references HOT 5
- Memory usage spikes on appliance with 100+ providers HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from manageiq.