Chris@0: isAuditable()) { Chris@0: return AuditResult::pass($migration); Chris@0: } Chris@0: Chris@0: $interface = HighestIdInterface::class; Chris@0: Chris@0: $destination = $migration->getDestinationPlugin(); Chris@0: if (!$destination instanceof HighestIdInterface) { Chris@0: throw new AuditException($migration, "Destination does not implement $interface"); Chris@0: } Chris@0: Chris@0: $id_map = $migration->getIdMap(); Chris@0: if (!$id_map instanceof HighestIdInterface) { Chris@0: throw new AuditException($migration, "ID map does not implement $interface"); Chris@0: } Chris@0: Chris@0: if ($destination->getHighestId() > $id_map->getHighestId()) { Chris@0: return AuditResult::fail($migration, [ Chris@0: $this->t('The destination system contains data which was not created by a migration.'), Chris@0: ]); Chris@0: } Chris@0: return AuditResult::pass($migration); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function auditMultiple(array $migrations) { Chris@0: $conflicts = []; Chris@0: Chris@0: foreach ($migrations as $migration) { Chris@0: $migration_id = $migration->getPluginId(); Chris@0: $conflicts[$migration_id] = $this->audit($migration); Chris@0: } Chris@0: ksort($conflicts); Chris@0: return $conflicts; Chris@0: } Chris@0: Chris@0: }