Skip to content

Commit

Permalink
CDPT-2259 Don't delete non-existent documents. (#781)
Browse files Browse the repository at this point in the history
* CDPT-2259 Don't delete non-existent documents.

* Add package version check

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh

* Update composer-post-install.sh
  • Loading branch information
EarthlingDavey authored Nov 18, 2024
1 parent c775adf commit 6ab5164
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ DB_HOST=mariadb
DB_USER=wordpress
DB_PASSWORD=wordpress

OPENSEARCH_VERSION=2.12.0
OPENSEARCH_VERSION=2.13.0
OPENSEARCH_URL=http://opensearch:9200

CACHE_HOST=redis
Expand Down
34 changes: 34 additions & 0 deletions bin/composer-post-install.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
#!/usr/bin/env sh

# A function to verify version is supported, exit it it's not.
verify_composer_package_version() {
TARGET_PACKAGE=$1
TARGET_VERSION=$2
INSTALLED_VERSION=$(composer show $1 | sed -n '/versions/s/^[^0-9]\+\([^,]\+\).*$/\1/p')

if [ "$INSTALLED_VERSION" != "$TARGET_VERSION" ] ; then
echo "$TARGET_PACKAGE target version is not installed - review composer-post-install.sh."
exit 1;
fi
}

# Add logging to amazon-s3-and-cloudfront-pro plugin.

# Define the search and replace strings.
Expand Down Expand Up @@ -73,3 +85,25 @@ if grep -q $TREE_VIEW_SEARCH $TREE_VIEW_FILE ; then
echo "Fixing warning in cms-tree-page-view..."
sed -i "s/$TREE_VIEW_SEARCH/$TREE_VIEW_REPLACE/g" $TREE_VIEW_FILE
fi


# This find/replace is for the ElasticPress plugin.
#
# When a new post is created via the WordPress dashboard, the existing behaviour of the ElasticPress plugin
# is to delete the post from the search index. Delteing a post that's not in the index causes a 404 error to
# be logged on Cloud Platform's OpenSearch proxy server.
#
# This change adds a check to see if the post is in the index before deleting it, preventing the 404 error.

ELASTIC_PRESS_TARGET_VERSION="5.1.3"
verify_composer_package_version "wpackagist-plugin/elasticpress" $ELASTIC_PRESS_TARGET_VERSION

ELASTIC_PRESS_FILE=/var/www/html/public/app/mu-plugins/elasticpress/includes/classes/Indexable/Post/SyncManager.php
ELASTIC_PRESS_SEARCH="\t\$this->action_delete_post( \$post_id );"
ELASTIC_PRESS_REPLACE="\t\/\/ The following line was modified by composer-post-install.sh\n\t\t"
ELASTIC_PRESS_REPLACE="$ELASTIC_PRESS_REPLACE\t\$indexable->get( \$post_id ) \&\& \$this->action_delete_post( \$post_id );"

if [ -f "$ELASTIC_PRESS_FILE" ] ; then
echo "Fixing warning in elasticpress. Checking for doc before deleting prevents 404s in logs..."
sed -i "s/$ELASTIC_PRESS_SEARCH/$ELASTIC_PRESS_REPLACE/g" $ELASTIC_PRESS_FILE
fi

0 comments on commit 6ab5164

Please sign in to comment.