# File lib/openshift-origin-controller/app/models/gear.rb, line 302
  def prepare_namespace_update(dns_service, new_ns, old_ns)
    results = []
    gi = group_instance
    contains_proxy = false
    contains_framework = false
    result_io = ResultIO.new
    
    gi.component_instances.each do |cname|
      ci = self.app.comp_instance_map[cname]
      contains_proxy = true if ci.parent_cart_name == self.app.proxy_cartridge
      contains_framework = true if ci.parent_cart_name == self.app.framework    
    end

    if contains_proxy || !self.app.scalable
      #proxy gear gets public dns
      register_application(dns_service, old_ns, new_ns, self.app.name)
    else
      #non-proxy gear gets gear specific dns
      register_application(dns_service, old_ns, new_ns, self.name)
    end

    if contains_framework
      result_io.append call_update_namespace_hook(self.app.framework, new_ns, old_ns)
    else
      result_io.append call_update_namespace_hook("abstract", new_ns, old_ns)
    end
    result_io
  end