class DTK::Client::Operation::Service::Converge

Public Class Methods

execute(args = Args.new) click to toggle source
# File lib/client/operation/service/converge.rb, line 21
def self.execute(args = Args.new)
  wrap_operation(args) do |args|
    service_instance = args.required(:service_instance)
    module_dir   = args.required(:module_dir)
    force            = args[:force]

    post_body = PostBody.new(
      :service_instance => service_instance
    )

    unless force
      modified_args = Args.new(
        :dir => module_dir,
        :error_msg => "To allow converge to go through, invoke 'dtk push' to push the changes to server before invoking converge again",
        :command => 'converge'
      )
      ClientModuleDir::ServiceInstance.modified_service_instance_or_nested_modules?(modified_args)
    end

    rest_post("#{BaseRoute}/#{service_instance}/converge", post_body)
  end
end