This is an automated email from the ASF dual-hosted git repository. jsinovassinnaik pushed a commit to branch UNOMI-787-migrate-page-path in repository https://gitbox.apache.org/repos/asf/unomi.git
commit 71b30d4aa932130cc4fbe972f04270d318355319 Author: jsinovassin <[email protected]> AuthorDate: Thu Aug 10 16:54:53 2023 +0200 UNOMI-787 : migrate view event page path property --- .../migrate-2.4.0-15-viewEventPagePath.groovy | 30 ++++++++++++++++++++++ .../2.4.0/base_update_by_query_request.json | 22 ++++++++++++++++ .../2.4.0/view_event_page_path_migrate.painless | 23 +++++++++++++++++ 3 files changed, 75 insertions(+) diff --git a/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.4.0-15-viewEventPagePath.groovy b/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.4.0-15-viewEventPagePath.groovy new file mode 100644 index 000000000..faaac944d --- /dev/null +++ b/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.4.0-15-viewEventPagePath.groovy @@ -0,0 +1,30 @@ +import org.apache.unomi.shell.migration.service.MigrationContext +import org.apache.unomi.shell.migration.utils.HttpUtils +import org.apache.unomi.shell.migration.utils.MigrationUtils + +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +MigrationContext context = migrationContext +String esAddress = context.getConfigString("esAddress") +String indexPrefix = context.getConfigString("indexPrefix") + +context.performMigrationStep("2.4.0-migrate-view-event-page-path", () -> { + String updatePathScript = MigrationUtils.getFileWithoutComments(bundleContext, "requestBody/2.4.0/view_event_page_path_migrate.painless") + String baseSettings = MigrationUtils.resourceAsString(bundleContext, "requestBody/2.4.0/base_update_by_query_request.json") + HttpUtils.executePostRequest(context.getHttpClient(), "${esAddress}/${indexPrefix}-event/_update_by_query", baseSettings.replace('#painless', updatePathScript), null) +}) diff --git a/tools/shell-commands/src/main/resources/requestBody/2.4.0/base_update_by_query_request.json b/tools/shell-commands/src/main/resources/requestBody/2.4.0/base_update_by_query_request.json new file mode 100644 index 000000000..d5244aed0 --- /dev/null +++ b/tools/shell-commands/src/main/resources/requestBody/2.4.0/base_update_by_query_request.json @@ -0,0 +1,22 @@ +{ + "script": { + "source": "#painless", + "lang": "painless" + }, + "query": { + "bool": { + "must": [ + { + "match": { + "itemType": "event" + } + }, + { + "match": { + "eventType": "view" + } + } + ] + } + } +} diff --git a/tools/shell-commands/src/main/resources/requestBody/2.4.0/view_event_page_path_migrate.painless b/tools/shell-commands/src/main/resources/requestBody/2.4.0/view_event_page_path_migrate.painless new file mode 100644 index 000000000..358209f31 --- /dev/null +++ b/tools/shell-commands/src/main/resources/requestBody/2.4.0/view_event_page_path_migrate.painless @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (ctx._source.target != null && ctx._source.target.properties != null && ctx._source.target.properties.path != null) { + if (ctx._source.target.properties.pageInfo != null) { + ctx._source.target.properties.pageInfo.pagePath = ctx._source.target.properties.path + ctx._source.target.properties.remove('path') + } +}
