class DTK::Client::Operation::Service::AddLink

Public Class Methods

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

    query_string_hash = QueryStringHash.new(
      :unlink         => unlink,
      :base_component => base_component,
      :dep_component  => dependent_component,
      :service        => service,
      :link_name      => link_name
    )

    response = rest_post("#{BaseRoute}/#{service_instance}/link", query_string_hash)

    repo_info_args = Args.new(
      :service_instance => service_instance,
      :branch           => response.required(:branch, :name),
      :repo_url         => response.required(:repo, :url),
      :service_instance_dir => args[:service_instance_dir]
    )
    ClientModuleDir::GitRepo.pull_from_service_repo(repo_info_args)
    nil
  end
end