feat(samba): backup classification from the shares registry (R-7 slice 1, Part 4)
ClassifiedBinds("samba") resolves from the shares registry instead of catalog
metadata (samba has no .felhom.yml; its binds are absolute share paths). [R4]
Offsite ON -> mandatory (offsite + tier-2); OFF -> optional (tier-2 only);
smb.conf/passdb never classified. Verified through the REAL ComputeCaptureSet
tier filter incl. the negative (optional NOT in offsite). Zero engine edits.
Part-4 Step-1 finding: tier-2 (RunTier2) short-circuits on os.Stat(unitDir)
BEFORE GetStackClassifiedBinds, and the offsite runner enumerates
settings.GetOffboxApps() — both are recovery-unit shaped, which a share-only
infra stack has not. Wiring share data into a live run is therefore more than an
enumeration tweak; reported as a design fork per the STOP clause, not improvised.
This commit is contained in:
@@ -283,6 +283,12 @@ func LoadMetadata(stackDir string) Metadata {
|
||||
// carries a (valid) backup block at all. INERT — exists so Task 3 consumes a wired, end-to-end-tested
|
||||
// seam instead of building one (the F-S3 lesson: wiring is where seams hide typos).
|
||||
func (m *Manager) ClassifiedBinds(name string) ([]appbackup.ClassifiedBind, bool) {
|
||||
// samba (R-7) is controller-generated infra with no .felhom.yml and absolute share binds — its
|
||||
// classification comes from the shares registry instead (see samba_classify.go). Every other
|
||||
// stack takes the unchanged catalog path below.
|
||||
if name == SambaStackName {
|
||||
return m.sambaClassifiedBinds()
|
||||
}
|
||||
stack, ok := m.GetStack(name)
|
||||
if !ok {
|
||||
return nil, false
|
||||
|
||||
Reference in New Issue
Block a user