1

ビルド後にネットワーク ブートを無効にせず、ホストを再構築するときに再度オンにしないという職長のバグにパッチを当てようとしています。次の「組み込み」メソッドにコードを追加するだけでよいようです。

./app/controllers/unattended_controller.rb

def built
    logger.info "#{controller_name}: #{@host.name} is Built!"
    update_ip if Setting[:update_ip_from_built_request]
    head(@host.built ? :created : :conflict)
 end

および「setBuild」メソッドは次のとおりです。

./app/models/host/managed.rb

def setBuild
  self.build = true
  self.save
  errors.empty?
end

foreman_bootdisk.rbmodify_vm_cdrom.rbの 79 行目からインスピレーションを得て、次の行に沿ったものを思いつきました。

def setBuild
  load '/usr/share/foreman/app/models/compute_resources/foreman/model/vmware.rb'
  if ComputeResources::Foreman::Model::Vmware.available?
      vm_reconfig_hardware('instance_uuid' => params[:token], 'hardware_spec' => {'bootOptions'=>['network', 'disk']})
  end
  self.build = true
  self.save
  errors.empty?
end

問題は、エラーが発生することです。

申し訳ありませんが、問題が発生しました 定数 ComputeResources::Foreman::Model::Vmware の自動ロード中に循環依存関係が検出されました

私はこれについていくつか読んだところ、問題はおそらくレールの自動ロードにあると聞きましたが、これを load と require で修正しようとしました (非推奨であると聞いた自動ロード機能を回避しようとしていました)、両方を試したにもかかわらず、このエラーが引き続き発生しますが、その理由がわかりません。foreman_bootdisk.rb のコーダーとは異なるこのエラーを取得するために、私は何をしていますか? vmware.rbが読み込まれないのはなぜですか?

4

2 に答える 2