class InitWarewulf < Vagrant.plugin(2, :command)
  def self.synopsis
    "Initialize Warewulf Dev Environment"
  end

  def execute
    system "vagrant up"
    system "vagrant provision --provision-with provision-vbmc wwctl"
    system "vagrant provision --provision-with add-ww-nodes wwctl"
  end
end

class CleanupWarewulf < Vagrant.plugin(2, :command)
  def self.synopsis
    "Cleanup Warewulf Dev Environment"
  end

  def execute
    system "vagrant ssh wwctl -c 'sudo wwctl power off n1' || true"
    system "vagrant ssh wwctl -c 'sudo wwctl power off n2' || true"
    system "vagrant halt"
    system "vagrant destroy -f"
  end
end

class InitWarewulfPlugin < Vagrant.plugin(2)
  name "InitWarewulf"

  command "init-warewulf" do
    InitWarewulf
  end
end

class CleanupWarewulfPlugin < Vagrant.plugin(2)
  name "CleanupWarewulf"

  command "cleanup-warewulf" do
    CleanupWarewulf
  end
end
