CluPilotCloud/app/Provisioning/Contracts/ProvisioningSubject.php

26 lines
910 B
PHP

<?php
namespace App\Provisioning\Contracts;
/**
* A polymorphic run subject (Host, Order …) that reacts when its run fails,
* so the runner can update domain state without knowing the concrete model.
*/
interface ProvisioningSubject
{
public function onProvisioningFailed(): void;
/**
* The pipeline that BUILDS this subject, as opposed to one that maintains
* it afterwards.
*
* The failure hook writes the whole thing off — an order is marked failed
* and its instance released with it — which is the right answer when the
* machine was never finished and entirely the wrong one when a live
* customer's address re-apply could not reach their VM for ten minutes. So
* the runner asks which pipeline this subject exists to be built by, and
* only that one is allowed to condemn it.
*/
public function provisioningPipeline(): string;
}