From 869f21d5e9967f8863a8317885c83a808f3e38d4 Mon Sep 17 00:00:00 2001 From: Tina Fitzgerald Date: Tue, 31 Jan 2017 16:20:33 -0500 Subject: [PATCH] Initial commit for ansible playbook methods and service model. Related Automate model changes. https://github.com/ManageIQ/manageiq-content/pull/24 --- app/models/service_ansible_playbook.rb | 17 +++++++++++ app/models/service_generic.rb | 30 +++++++++++-------- ...miq_ae_service_service_ansible_playbook.rb | 4 +++ .../miq_ae_service_service_generic.rb | 6 ++++ 4 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 app/models/service_ansible_playbook.rb create mode 100644 lib/miq_automation_engine/service_models/miq_ae_service_service_ansible_playbook.rb diff --git a/app/models/service_ansible_playbook.rb b/app/models/service_ansible_playbook.rb new file mode 100644 index 00000000000..da0682de46b --- /dev/null +++ b/app/models/service_ansible_playbook.rb @@ -0,0 +1,17 @@ +class ServiceAnsiblePlaybook < ServiceGeneric + def execute(action) + _log.info("Execute for Service context: #{action}") + end + + def check_completed(action) + _log.info("Check_completed for Service context: #{action}") + end + + def refresh(action) + _log.info("Refresh for Service context: #{action}") + end + + def check_refreshed(action) + _log.info("Check_refreshed for Service context: #{action}") + end +end diff --git a/app/models/service_generic.rb b/app/models/service_generic.rb index 7b2c431085f..3d203611b35 100644 --- a/app/models/service_generic.rb +++ b/app/models/service_generic.rb @@ -1,31 +1,35 @@ class ServiceGeneric < Service # A chance for taking options from automate script to override options from a service dialog - def preprovision(_options = {}) + def preprocess(_action, _options = {}) end # Interact with external provider to act on this service item - # The result is called stack, normally a vmdb object. It can map to an object in the provider, - # or even be a virtual object - def provision - raise NotImplementedError, _("provision must be implemented in a subclass") + def execute(_action) + raise NotImplementedError, _("execute must be implemented in a subclass") end - # Check the provider provision status. It should return [true/false, status_message] - def check_provisioned? - raise NotImplementedError, _("check_provisioned must be implemented in a subclass") + # Check the provider execution status. It should return [true/false, status_message] + # Return [false, nil] if the execution is still in progress. + # Return [true, nil] if the execution is completed without error. + # Return [true, message] if the execution completed with an error. + def check_completed(_action) + raise NotImplementedError, _("check_completed must be implemented in a subclass") end - # Start a provider refresh - def refresh_provider - raise NotImplementedError, _("refresh_provider must be implemented in a subclass") + # Start a refresh + def refresh(_action) + raise NotImplementedError, _("refresh must be implemented in a subclass") end # Check the refresh status. It should return [true/false, status_message] - def check_refreshed + # Return [false, nil] if the refresh is still in progress. + # Return [true, nil] if the refresh is completed without error. + # Return [true, message] if the refresh completed with an error. + def check_refreshed(_action) raise NotImplementedError, _("check_refreshed must be implemented in a subclass") end # Execute after refresh is done. Do cleaning up or update linkage here - def post_provision(_options = {}) + def postprocess(_action) end end diff --git a/lib/miq_automation_engine/service_models/miq_ae_service_service_ansible_playbook.rb b/lib/miq_automation_engine/service_models/miq_ae_service_service_ansible_playbook.rb new file mode 100644 index 00000000000..2e18d4149bd --- /dev/null +++ b/lib/miq_automation_engine/service_models/miq_ae_service_service_ansible_playbook.rb @@ -0,0 +1,4 @@ +module MiqAeMethodService + class MiqAeServiceServiceAnsiblePlaybook < MiqAeServiceServiceGeneric + end +end diff --git a/lib/miq_automation_engine/service_models/miq_ae_service_service_generic.rb b/lib/miq_automation_engine/service_models/miq_ae_service_service_generic.rb index 5fcba541fdd..c789b033597 100644 --- a/lib/miq_automation_engine/service_models/miq_ae_service_service_generic.rb +++ b/lib/miq_automation_engine/service_models/miq_ae_service_service_generic.rb @@ -1,4 +1,10 @@ module MiqAeMethodService class MiqAeServiceServiceGeneric < MiqAeServiceService + expose :preprocess + expose :execute + expose :check_completed + expose :refresh + expose :check_refreshed + expose :postprocess end end