diff --git a/lib/polar/machines/assessment.ex b/lib/polar/machines/assessment.ex index 48a4fb0..aac62e8 100644 --- a/lib/polar/machines/assessment.ex +++ b/lib/polar/machines/assessment.ex @@ -17,16 +17,20 @@ defmodule Polar.Machines.Assessment do @valid_attrs ~w( check_id cluster_id + machine_type )a @required_attrs ~w( check_id cluster_id + machine_type )a schema "assessments" do field :current_state, :string, default: "created" + field :machine_type, :string + belongs_to :check, Check belongs_to :cluster, Cluster @@ -40,5 +44,6 @@ defmodule Polar.Machines.Assessment do assessment |> cast(attrs, @valid_attrs) |> validate_required(@required_attrs) + |> validate_inclusion(:machine_type, ["container", "vm"]) end end diff --git a/priv/repo/migrations/20240628092615_add_machine_type_to_assessments.exs b/priv/repo/migrations/20240628092615_add_machine_type_to_assessments.exs new file mode 100644 index 0000000..d6690f2 --- /dev/null +++ b/priv/repo/migrations/20240628092615_add_machine_type_to_assessments.exs @@ -0,0 +1,12 @@ +defmodule Polar.Repo.Migrations.AddMachineTypeToAssessments do + use Ecto.Migration + + def change do + alter table(:assessments) do + add :machine_type, :string, null: false + end + + drop index(:assessments, [:check_id, :version_id], unique: true) + create index(:assessments, [:check_id, :version_id, :machine_type], unique: true) + end +end