diff --git a/core/modules/migrate/migrate.services.yml b/core/modules/migrate/migrate.services.yml index 3f2d32d..41c52ff 100644 --- a/core/modules/migrate/migrate.services.yml +++ b/core/modules/migrate/migrate.services.yml @@ -5,6 +5,9 @@ services: - { name: cache.bin } factory: cache_factory:get arguments: [migrate] + migrate.template_storage: + class: Drupal\migrate\MigrateTemplateStorage + arguments: ['@config.storage'] plugin.manager.migrate.source: class: Drupal\migrate\Plugin\MigratePluginManager arguments: [source, '@container.namespaces', '@cache.discovery', '@module_handler', 'Drupal\migrate\Annotation\MigrateSource'] diff --git a/core/modules/migrate/src/MigrateTemplateStorage.php b/core/modules/migrate/src/MigrateTemplateStorage.php new file mode 100644 index 0000000..7071105 --- /dev/null +++ b/core/modules/migrate/src/MigrateTemplateStorage.php @@ -0,0 +1,77 @@ +getAllTemplates(); + $matched_templates = []; + foreach ($templates as $template_name => $template) { + if (!empty($template['migration_tags'])) { + if (in_array($tag, $template['migration_tags'])) { + $matched_templates[$template_name] = $template; + } + } + } + return $matched_templates; + } + + /** + * Retrieves all migration templates belonging to enabled extensions. + * + * @return array + * Array of parsed templates, keyed by the fully-qualified id. + */ + public function getAllTemplates() { + // Retrieve the full list of templates, keyed by fully-qualified name, + // with the containing folder as the value. + $folders = $this->getAllFolders(); + $templates = []; + foreach ($folders as $full_name => $folder) { + // The fully qualified name will be in the form migrate.migration.d6_node. + // Break out the provider ('migrate') and name ('migration.d6_node'). + list($provider, $name) = explode('.', $full_name, 2); + // Retrieve and parse the template contents. + $discovery = new YamlDiscovery($name, array($provider => $folder)); + $all = $discovery->findAll(); + $templates[$full_name] = reset($all); + } + + return $templates; + } + +} diff --git a/core/modules/migrate/src/Tests/TemplateTest.php b/core/modules/migrate/src/Tests/TemplateTest.php new file mode 100644 index 0000000..b110f6c --- /dev/null +++ b/core/modules/migrate/src/Tests/TemplateTest.php @@ -0,0 +1,52 @@ +findTemplatesByTag("Template Test"); + $expected_url = [ + 'id' => 'url_template', + 'label' => 'Template test - url', + 'migration_tags' => ['Template Test'], + 'source' => ['plugin' => 'empty'], + 'process' => ['src' => 'foobar'], + 'destination' => ['plugin' => 'url_alias'], + ]; + $expected_node = [ + 'id' => 'node_template', + 'label' => 'Template test - node', + 'migration_tags' => ['Template Test'], + 'source' => ['plugin' => 'empty'], + 'process' => ['src' => 'barfoo'], + 'destination' => ['plugin' => 'entity:node'], + ]; + $this->assertIdentical($migration_templates['migrate.migration.url_template'], $expected_url); + $this->assertIdentical($migration_templates['migrate.migration.node_template'], $expected_node); + $this->assertFalse(isset($migration_templates['migrate.migration.other_template'])); + } + +} diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml new file mode 100644 index 0000000..6eead8b --- /dev/null +++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.node_template.yml @@ -0,0 +1,10 @@ +id: node_template +label: Template test - node +migration_tags: + - Template Test +source: + plugin: empty +process: + src: barfoo +destination: + plugin: entity:node diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml new file mode 100644 index 0000000..3d974f0 --- /dev/null +++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.other_template.yml @@ -0,0 +1,10 @@ +id: other_template +label: Template with a different tag +migration_tags: + - Different Template Test +source: + plugin: empty +process: + src: raboof +destination: + plugin: entity:user diff --git a/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml new file mode 100644 index 0000000..fd82119 --- /dev/null +++ b/core/modules/migrate/tests/modules/template_test/migration_templates/migrate.migration.url_template.yml @@ -0,0 +1,10 @@ +id: url_template +label: Template test - url +migration_tags: + - Template Test +source: + plugin: empty +process: + src: foobar +destination: + plugin: url_alias diff --git a/core/modules/migrate/tests/modules/template_test/template_test.info.yml b/core/modules/migrate/tests/modules/template_test/template_test.info.yml new file mode 100644 index 0000000..d396c63 --- /dev/null +++ b/core/modules/migrate/tests/modules/template_test/template_test.info.yml @@ -0,0 +1,5 @@ +name: 'Migration template test' +type: module +package: Testing +version: VERSION +core: 8.x diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_action_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_action_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_action_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_feed.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_feed.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_feed.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_item.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_item.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_item.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_aggregator_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_aggregator_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_block.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_body_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_body_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_body_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_type.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_block_content_type.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_block_content_type.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_book.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_book_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_book_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_revision.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_revision.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_revision.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_values.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_cck_field_values.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_cck_field_values.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display_subject.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_entity_form_display_subject.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_entity_form_display_subject.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_field_instance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_field_instance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_type.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_comment_type.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_comment_type.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_category.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_category.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_category.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_contact_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_contact_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_custom_block.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_custom_block.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_custom_block.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_date_formats.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_date_formats.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_date_formats.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_dblog_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_dblog_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_dblog_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_formatter_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_formatter_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_formatter_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance_widget_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_field_instance_widget_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_field_instance_widget_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_file.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_file_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_file_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_filter_format.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_filter_format.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_filter_format.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_forum_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_forum_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_forum_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_locale_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_locale_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_locale_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_links.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_links.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_links.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_menu_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_menu_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_revision.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_revision.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_revision.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_promote.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_promote.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_promote.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_status.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_status.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_status.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_sticky.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_setting_sticky.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_setting_sticky.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_type.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_node_type.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_node_type.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_profile_values.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_profile_values.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_profile_values.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_page.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_page.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_page.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_search_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_search_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_simpletest_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_simpletest_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_simpletest_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_statistics_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_statistics_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_statistics_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_syslog_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_syslog_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_syslog_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_cron.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_cron.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_cron.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_file.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_file.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_file.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_filter.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_filter.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_filter.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image_gd.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_image_gd.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_image_gd.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_logging.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_logging.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_logging.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_maintenance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_maintenance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_maintenance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_performance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_performance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_performance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_rss.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_rss.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_rss.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_site.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_system_site.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_system_site.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_term.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_term.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_term.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_vocabulary.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_taxonomy_vocabulary.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_taxonomy_vocabulary.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node_revision.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_term_node_revision.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_term_node_revision.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_text_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_text_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_text_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_update_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_update_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_update_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_entity_form_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_upload_field_instance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_upload_field_instance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_url_alias.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_url_alias.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_url_alias.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_contact_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_contact_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_contact_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_mail.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_mail.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_mail.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_entity_form_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_field_instance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_field_instance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_file.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_picture_file.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_picture_file.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_entity_form_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_profile_field_instance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_profile_field_instance.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_role.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_role.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_role.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_settings.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_user_settings.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_user_settings.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_view_modes.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_view_modes.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_view_modes.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_form_display.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_entity_form_display.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_entity_form_display.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field.yml diff --git a/core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml b/core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field_instance.yml similarity index 100% rename from core/modules/migrate_drupal/config/optional/migrate.migration.d6_vocabulary_field_instance.yml rename to core/modules/migrate_drupal/migration_templates/migrate.migration.d6_vocabulary_field_instance.yml diff --git a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php index b8a436f..8a43a81 100644 --- a/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php +++ b/core/modules/migrate_drupal/src/Tests/MigrateDrupalTestBase.php @@ -8,6 +8,9 @@ namespace Drupal\migrate_drupal\Tests; use Drupal\migrate\Tests\MigrateTestBase; +use Drupal\migrate\Entity\Migration; +use Drupal\migrate\MigrationStorage; +use Drupal\Component\Plugin\Exception\PluginNotFoundException; /** * Base class for Drupal migration tests. @@ -42,4 +45,28 @@ protected function getDumpDirectory() { return __DIR__ . '/Table'; } + /** + * Turn all the migration templates for the specified drupal version into + * real migration entities so we can test them. + * + * @param $version + * Drupal version as provided in migration_tags - e.g., 'Drupal 6'. + */ + protected function installMigrations($version) { + /** @var MigrationStorage $migration_storage */ + $migration_storage = \Drupal::entityManager()->getStorage('migration'); + $migration_templates = $migration_storage->findTemplatesByTag($version); + foreach ($migration_templates as $template_name => $template) { + try { + $migration = Migration::create($template); + $migration->save(); + } + catch (PluginNotFoundException $e) { + // Migrations requiring modules not enabled will throw an exception. + // Ignoring this exception is equivalent to placing config in the + // optional subdirectory - the migrations we require for the test will + // be successfully saved. + } + } + } } diff --git a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php index 6b01174..a1ada67 100644 --- a/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php +++ b/core/modules/migrate_drupal/src/Tests/MigrateFullDrupalTestBase.php @@ -8,8 +8,7 @@ namespace Drupal\migrate_drupal\Tests; use Drupal\Component\Utility\SafeMarkup; -use Drupal\Core\Config\ExtensionInstallStorage; -use Drupal\Core\Config\InstallStorage; +use Drupal\migrate\ExtensionInstallStorage; use Drupal\Core\Config\StorageInterface; use Drupal\migrate\MigrateExecutable; use Drupal\simpletest\TestBase; @@ -58,7 +57,7 @@ public function testDrupal() { $this->loadDumps($dumps); $classes = $this->getTestClassesList(); - $extension_install_storage = new ExtensionInstallStorage(\Drupal::service('config.storage'), InstallStorage::CONFIG_OPTIONAL_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, TRUE); + $extension_install_storage = new ExtensionInstallStorage(\Drupal::service('config.storage'), ExtensionInstallStorage::MIGRATION_TEMPLATE_DIRECTORY, StorageInterface::DEFAULT_COLLECTION, TRUE); foreach ($classes as $class) { if (is_subclass_of($class, '\Drupal\migrate\Tests\MigrateDumpAlterInterface')) { $class::migrateDumpAlter($this); diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php index 697ab2c..b277e3b 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php @@ -198,6 +198,8 @@ protected function setUp() { 'name' => $this->randomMachineName(), 'status' => 1, ])->enforceIsNew(TRUE)->save(); + + $this->installMigrations('Drupal 6'); } /** diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php index 91727cd..77754cb 100644 --- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php +++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6TestBase.php @@ -15,6 +15,14 @@ abstract class MigrateDrupal6TestBase extends MigrateDrupalTestBase { /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + $this->installMigrations('Drupal 6'); + } + + /** * {@inheritdoc} */ protected function getDumpDirectory() {