diff --git a/e2e-test/qa/search/master-master/.env b/e2e-test/qa/search/master-master/.env deleted file mode 100644 index 4b81b609b..000000000 --- a/e2e-test/qa/search/master-master/.env +++ /dev/null @@ -1,11 +0,0 @@ -# docker-compose related environments -ALFRESCO_IMAGE=alfresco/alfresco-content-repository -ALFRESCO_TAG=6.1.0-EA3 -SHARE_IMAGE=alfresco/alfresco-share -SHARE_TAG=6.0 -POSTGRES_IMAGE=postgres -POSTGRES_TAG=10.1 -SEARCH_IMAGE=quay.io/alfresco/search-services -SEARCH_TAG=latest -ACTIVEMQ_IMAGE=alfresco/alfresco-activemq -ACTIVEMQ_TAG=5.15.6 \ No newline at end of file diff --git a/e2e-test/qa/search/master-master/README.md b/e2e-test/qa/search/master-master/README.md deleted file mode 100644 index 9a7c342f2..000000000 --- a/e2e-test/qa/search/master-master/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# About - -Start Alfresco services and scale SOLR to multiple instances, behind a LB. - -# Steps - -* **a)** Start Alfresco - -``` -docker-compose up -d -``` - -* **b)** Scale SOLR to 2 instances - -``` -docker-compose scale solr=2 -``` - ->it's possible at this time to restart `alfresco` service if there are not results returned by LB -``` - docker-compose restart alfresco - ``` \ No newline at end of file diff --git a/e2e-test/qa/search/master-master/docker-compose.yml b/e2e-test/qa/search/master-master/docker-compose.yml deleted file mode 100644 index b7047bcd4..000000000 --- a/e2e-test/qa/search/master-master/docker-compose.yml +++ /dev/null @@ -1,72 +0,0 @@ -version: '3' -services: - alfresco: - image: ${ALFRESCO_IMAGE}:${ALFRESCO_TAG} - environment: - JAVA_OPTS : " - -Ddb.driver=org.postgresql.Driver - -Ddb.username=alfresco - -Ddb.password=alfresco - -Ddb.url=jdbc:postgresql://postgres:5432/alfresco - -Dsolr.host=search - -Dsolr.port=80 - -Dsolr.secureComms=none - -Dsolr.base.url=/solr - -Dindex.subsystem.name=solr6 - -Dalfresco.restApi.basicAuthScheme=true - -Ddeployment.method=DOCKER_COMPOSE - -Dcsrf.filter.enabled=false - -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" - " - ports: - - "7203:7203" #JMX connect via service:jmx:rmi:///jndi/rmi://localhost:7203/jmxrmi - - "5005:5005" #Java debugging - - "8081:8080" #Browser port for Alfresco - - share: - image: ${SHARE_IMAGE}:${SHARE_TAG} - environment: - - REPO_HOST=alfresco - - REPO_PORT=8080 - ports: - - 8082:8080 #Browser port for Share - - postgres: - image: ${POSTGRES_IMAGE}:${POSTGRES_TAG} - environment: - - POSTGRES_PASSWORD=alfresco - - POSTGRES_USER=alfresco - - POSTGRES_DB=alfresco - ports: - - 5432:5432 - - search: - image: dockercloud/haproxy - links: - - solr - ports: - - 8083:80 #Browser port - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - solr: - image: ${SEARCH_IMAGE}:${SEARCH_TAG} - environment: - #Solr needs to know how to register itself with Alfresco - - SOLR_ALFRESCO_HOST=alfresco - - SOLR_ALFRESCO_PORT=8080 - #Alfresco needs to know how to call solr - - SOLR_SOLR_HOST=search - - SOLR_SOLR_PORT=8983 - #Create the default alfresco and archive cores - - SOLR_CREATE_ALFRESCO_DEFAULTS=alfresco,archive - ports: - - 8983 #Browser port - - activemq: - image: ${ACTIVEMQ_IMAGE}:${ACTIVEMQ_TAG} - ports: - - 8161:8161 # Web Console - - 5672:5672 # AMQP - - 61616:61616 # OpenWire - - 61613:61613 # STOMP \ No newline at end of file diff --git a/e2e-test/qa/search/sharding/.env b/e2e-test/qa/search/sharding/.env deleted file mode 100644 index 4b81b609b..000000000 --- a/e2e-test/qa/search/sharding/.env +++ /dev/null @@ -1,11 +0,0 @@ -# docker-compose related environments -ALFRESCO_IMAGE=alfresco/alfresco-content-repository -ALFRESCO_TAG=6.1.0-EA3 -SHARE_IMAGE=alfresco/alfresco-share -SHARE_TAG=6.0 -POSTGRES_IMAGE=postgres -POSTGRES_TAG=10.1 -SEARCH_IMAGE=quay.io/alfresco/search-services -SEARCH_TAG=latest -ACTIVEMQ_IMAGE=alfresco/alfresco-activemq -ACTIVEMQ_TAG=5.15.6 \ No newline at end of file diff --git a/e2e-test/qa/search/sharding/Makefile b/e2e-test/qa/search/sharding/Makefile deleted file mode 100644 index d4c9a338a..000000000 --- a/e2e-test/qa/search/sharding/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -include ../../Makefile -include .env - -# CURRENT_DIR is the folder where this Makefile is saved -CURRENT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) - -ifeq ($(sharding),) - sharding:=$(dc) -f ../docker-compose.yml -f docker-compose.sharding.yml -endif - -# https://docs.alfresco.com/6.0/concepts/dynamic-sharding.html -# http://docs.alfresco.com/6.0/tasks/adminconsole-indexserver-sharding.html -sharding: ## start Search Services in sharding mode - make clean && \ - $(sharding) config && $(sharding) up -d && make wait - \ No newline at end of file diff --git a/e2e-test/qa/search/sharding/README.md b/e2e-test/qa/search/sharding/README.md deleted file mode 100644 index 2e92c4703..000000000 --- a/e2e-test/qa/search/sharding/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# About -Enabling sharding on Search Services - -_Reference:_ -* https://docs.alfresco.com/6.0/concepts/dynamic-sharding.html -* http://docs.alfresco.com/6.0/tasks/adminconsole-indexserver-sharding.html - -# How to run - -```ruby -$ make sharding -``` - -# Environment Settings -Pay attention at the values that exist in [.env](.env) file. These settings will be picked up in custom docker-compose.*.yml file(s) - -# `!` -I think sharding can be built using [custom](../custom/README.md) approach too - use your preferred approach. \ No newline at end of file diff --git a/e2e-test/qa/search/sharding/docker-compose.sharding.yml b/e2e-test/qa/search/sharding/docker-compose.sharding.yml deleted file mode 100644 index de0d34b32..000000000 --- a/e2e-test/qa/search/sharding/docker-compose.sharding.yml +++ /dev/null @@ -1,27 +0,0 @@ -version: '3' -services: - alfresco: - environment: - JAVA_OPTS : " - -Ddb.driver=org.postgresql.Driver - -Ddb.username=alfresco - -Ddb.password=alfresco - -Ddb.url=jdbc:postgresql://postgres:5432/alfresco - -Dsolr.host=search - -Dsolr.port=8983 - -Dsolr.secureComms=none - -Dsolr.base.url=/solr - -Dindex.subsystem.name=solr6 - -Dalfresco.restApi.basicAuthScheme=true - -Ddeployment.method=DOCKER_COMPOSE - -Dcsrf.filter.enabled=false - -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" - -Dsolr.useDynamicShardRegistration=true - -Dsearch.solrShardRegistry.purgeOnInit=true - -Dsearch.solrShardRegistry.shardInstanceTimeoutInSeconds=300 - -Dsearch.solrShardRegistry.maxAllowedReplicaTxCountDifference=1000" - search: - environment: - - VERSION=${SEARCH_TAG} - image: quay.io/alfresco/search-services:${SEARCH_TAG} - \ No newline at end of file diff --git a/e2e-test/qa/search/ssl/.env b/e2e-test/qa/search/ssl/.env deleted file mode 100644 index 4b81b609b..000000000 --- a/e2e-test/qa/search/ssl/.env +++ /dev/null @@ -1,11 +0,0 @@ -# docker-compose related environments -ALFRESCO_IMAGE=alfresco/alfresco-content-repository -ALFRESCO_TAG=6.1.0-EA3 -SHARE_IMAGE=alfresco/alfresco-share -SHARE_TAG=6.0 -POSTGRES_IMAGE=postgres -POSTGRES_TAG=10.1 -SEARCH_IMAGE=quay.io/alfresco/search-services -SEARCH_TAG=latest -ACTIVEMQ_IMAGE=alfresco/alfresco-activemq -ACTIVEMQ_TAG=5.15.6 \ No newline at end of file diff --git a/e2e-test/qa/search/ssl/Makefile b/e2e-test/qa/search/ssl/Makefile deleted file mode 100644 index 85062e4ed..000000000 --- a/e2e-test/qa/search/ssl/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -include ../../Makefile -include .env - -# CURRENT_DIR is the folder where this Makefile is saved -CURRENT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) - -ifeq ($(dc-custom),) - dc-custom:=$(dc) -f ../docker-compose.yml -f docker-compose.ssl.yml -endif - -ssl: ## 0 - starts search service with SSL enabled - $(dc-custom) build && \ - $(dc-custom) up -d && \ - make wait - -wait: - $(helpers)/wait-service-to-start.sh - -clean: - $(dc-custom) kill && $(dc-custom) rm -fv - -logs: - $(dc-custom) logs -f \ No newline at end of file diff --git a/e2e-test/qa/search/ssl/README.md b/e2e-test/qa/search/ssl/README.md deleted file mode 100644 index d2b619d11..000000000 --- a/e2e-test/qa/search/ssl/README.md +++ /dev/null @@ -1,27 +0,0 @@ -## About - -Try to start Alfresco & Search Services with SSL enabled - -### How to run it ->this will clean any volumes any docker services that are running -> and starts a new alfresco and search service(s) built with ssl enabled - -```shell -$ make clean ssl -``` - ->There are also configuration on alfresco part - where we use the shared volume of search to take the same keystore data (see [docker-compose.ssl.yml](./docker-compose.ssl.yml) ) - -> clean everything with `make clean` - -### Test it in browser - -* open Firefox and import [browser.p12](./browser.p12) certificate (when asked add password: `alfresco`). I think you can also add an exception and pass unsecure connection warning! - -| Alfresco | Solr | Share | -| :------------- |:-------------| :-----| -| **SSL:** https://localhost:7070/alfresco | **SSL:** https://localhost:8084/solr | | -| **No-SSL:** http://localhost:8081/alfresco | **No-SSL:** - | **No-SSL:** http://localhost:8082/share/ | - ->I've also enabled [spellcheck](./search/scripts/enable-spellcheck.sh) feature, so in Share, try to do a search for "[alfrezco](http://localhost:8082/share/page/dp/ws/faceted-search#searchTerm=alfrezco&scope=repo&sortField=null)" - diff --git a/e2e-test/qa/search/ssl/alfresco/6.1-server.xml b/e2e-test/qa/search/ssl/alfresco/6.1-server.xml deleted file mode 100644 index 10564c82e..000000000 --- a/e2e-test/qa/search/ssl/alfresco/6.1-server.xml +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/e2e-test/qa/search/ssl/alfresco/Dockerfile b/e2e-test/qa/search/ssl/alfresco/Dockerfile deleted file mode 100644 index a7a48d738..000000000 --- a/e2e-test/qa/search/ssl/alfresco/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -ARG ALFRESCO_TAG=6.1.0-EA3 -FROM quay.io/alfresco/alfresco-content-repository:$ALFRESCO_TAG -LABEL creator="Paul Brodner" maintainer="Alfresco Search Services Team" - -COPY 6.1-server.xml /usr/local/tomcat/conf/server.xml diff --git a/e2e-test/qa/search/ssl/browser.p12 b/e2e-test/qa/search/ssl/browser.p12 deleted file mode 100644 index 2b2804e1e..000000000 Binary files a/e2e-test/qa/search/ssl/browser.p12 and /dev/null differ diff --git a/e2e-test/qa/search/ssl/docker-compose.ssl.yml b/e2e-test/qa/search/ssl/docker-compose.ssl.yml deleted file mode 100644 index e6fe7968a..000000000 --- a/e2e-test/qa/search/ssl/docker-compose.ssl.yml +++ /dev/null @@ -1,64 +0,0 @@ -version: '3' -services: - alfresco: - image: alfresco-content-repository-ssl:${ALFRESCO_TAG} - build: - context: ./ssl/alfresco - environment: - JAVA_OPTS : " - -Ddb.driver=org.postgresql.Driver - -Ddb.username=alfresco - -Ddb.password=alfresco - -Ddb.url=jdbc:postgresql://postgres:5432/alfresco - -Dsolr.host=search - -Dsolr.port=8443 - -Dsolr.port.ssl=8443 - -Dalfresco.protocol=https - -Dalfresco.port.ssl=7070 - -Dsolr.secureComms=https - -Dalfresco.secureComms=https - -Dalfresco.encryption.ssl.keystore.type=JCEKS - -Dalfresco.encryption.ssl.keystore.provider= - -Dalfresco.encryption.ssl.keystore.location=/keystore/ssl.repo.client.keystore - -Dalfresco.encryption.ssl.keystore.passwordFileLocation=/keystore/ssl-keystore-passwords.properties - -Dalfresco.encryption.ssl.truststore.type=JCEKS - -Dalfresco.encryption.ssl.truststore.provider= - -Dalfresco.encryption.ssl.truststore.location=/keystore/ssl.repo.client.truststore - -Dalfresco.encryption.ssl.truststore.passwordFileLocation=/keystore/ssl-truststore-passwords.properties - -Dsolr.base.url=/solr - -Dindex.subsystem.name=solr6 - -Dalfresco.restApi.basicAuthScheme=true - -Ddeployment.method=DOCKER_COMPOSE - -Dcsrf.filter.enabled=false - -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" - " - ports: - - "7203:7203" #JMX connect via service:jmx:rmi:///jndi/rmi://localhost:7203/jmxrmi - - "5005:5005" #Java debugging - - "8081:8080" #Browser port for Alfresco - - "7070:7070" #SSL Browser port for Alfresco - volumes: - - shared-volume:/keystore - - search: - image: search-services-ssl:${SEARCH_TAG} - build: - context: ./ssl/search - environment: - SOLR_SSL_KEY_STORE: /opt/alfresco-search-services/solrhome/templates/rerank/conf/ssl.repo.client.keystore - SOLR_SSL_KEY_STORE_PASSWORD: kT9X6oe68t - SOLR_SSL_KEY_STORE_TYPE: JCEKS - SOLR_SSL_TRUST_STORE: /opt/alfresco-search-services/solrhome/templates/rerank/conf/ssl.repo.client.truststore - SOLR_SSL_TRUST_STORE_PASSWORD: kT9X6oe68t - SOLR_SSL_TRUST_STORE_TYPE: JCEKS - SOLR_SSL_NEED_CLIENT_AUTH: "true" - SOLR_SSL_WANT_CLIENT_AUTH: "false" - SOLR_PORT: 8443 - ports: - - 8083:8983 #Browser port - - 8084:8443 #SSL Port - volumes: - - shared-volume:/opt/alfresco-search-services/solrhome/templates/rerank/conf - -volumes: - shared-volume: \ No newline at end of file diff --git a/e2e-test/qa/search/ssl/search/Dockerfile b/e2e-test/qa/search/ssl/search/Dockerfile deleted file mode 100644 index 67facb9b5..000000000 --- a/e2e-test/qa/search/ssl/search/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -ARG SEARCH_TAG=latest -FROM quay.io/alfresco/search-services:$SEARCH_TAG -LABEL creator="Paul Brodner" maintainer="Alfresco Search Services Team" - - -USER root -RUN echo " &" >> $DIST_DIR/solr/bin/search_config_setup.sh && \ - echo "bash -c \"find $DIST_DIR/scripts/ -maxdepth 1 -type f -executable -name '*.sh' -exec {} \\;\"" >> $DIST_DIR/solr/bin/search_config_setup.sh && \ - echo "bash -c \"tail -f $DIST_DIR/logs/solr.log\"" >> $DIST_DIR/solr/bin/search_config_setup.sh - -USER solr -COPY scripts/* ${DIST_DIR}/scripts/ - -# we need this, because we tail on it in the search_config_setup.sh (see above) -RUN touch ./logs/solr.log \ No newline at end of file diff --git a/e2e-test/qa/search/ssl/search/scripts/enable-spellcheck.sh b/e2e-test/qa/search/ssl/search/scripts/enable-spellcheck.sh deleted file mode 100755 index d241ed55d..000000000 --- a/e2e-test/qa/search/ssl/search/scripts/enable-spellcheck.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash -set -ex - -echo "Enabling SpellCheck" -cat <> /opt/alfresco-search-services/solrhome/conf/shared.properties - -# Enabling SpellCheck -# configuration: -# * http://docs.alfresco.com/6.0/concepts/solr-shared-properties.html -# * https://docs.alfresco.com/5.2/tasks/solr6-install-withoutSSL.html -# test it: http://docs.alfresco.com/6.0/concepts/search-api-spellcheck.html - -# Suggestable Properties -alfresco.suggestable.property.0={http://www.alfresco.org/model/content/1.0}name -alfresco.suggestable.property.1={http://www.alfresco.org/model/content/1.0}title -alfresco.suggestable.property.2={http://www.alfresco.org/model/content/1.0}description -alfresco.suggestable.property.3={http://www.alfresco.org/model/content/1.0}content - -EOF \ No newline at end of file diff --git a/e2e-test/qa/search/ssl/search/scripts/update-solrcore.properties.sh b/e2e-test/qa/search/ssl/search/scripts/update-solrcore.properties.sh deleted file mode 100755 index 25d0b3bb8..000000000 --- a/e2e-test/qa/search/ssl/search/scripts/update-solrcore.properties.sh +++ /dev/null @@ -1,22 +0,0 @@ -set -ex -# author: paul brodner -# -# it seems 'archive' and 'alfresco' cores are using the rerank templates (/opt/alfresco-search-services/solrhome/templates/rerank/) by default -# When solr starts and 'archive' and 'alfresco' cores are created -# data from /opt/alfresco-search-services/solrhome/templates/rerank/ is applied - -echo "Enabling SSL" -cat <> /opt/alfresco-search-services/solrhome/templates/rerank/conf/solrcore.properties - -alfresco.port=7070 -alfresco.protocol=https -alfresco.port.ssl=7070 -alfresco.secureComms=https - -solr.port=8443 -solr.port.ssl=8443 -solr.secureComms=https -solr.solrConnectTimeout=5000 -enable.alfresco.tracking=true - -EOF diff --git a/e2e-test/qa/search/upgrade/.env b/e2e-test/qa/search/upgrade/.env deleted file mode 100644 index 4b81b609b..000000000 --- a/e2e-test/qa/search/upgrade/.env +++ /dev/null @@ -1,11 +0,0 @@ -# docker-compose related environments -ALFRESCO_IMAGE=alfresco/alfresco-content-repository -ALFRESCO_TAG=6.1.0-EA3 -SHARE_IMAGE=alfresco/alfresco-share -SHARE_TAG=6.0 -POSTGRES_IMAGE=postgres -POSTGRES_TAG=10.1 -SEARCH_IMAGE=quay.io/alfresco/search-services -SEARCH_TAG=latest -ACTIVEMQ_IMAGE=alfresco/alfresco-activemq -ACTIVEMQ_TAG=5.15.6 \ No newline at end of file diff --git a/e2e-test/qa/search/upgrade/Makefile b/e2e-test/qa/search/upgrade/Makefile deleted file mode 100644 index f4cf4dad8..000000000 --- a/e2e-test/qa/search/upgrade/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -include ../../Makefile -include .env - -# CURRENT_DIR is the folder where this Makefile is saved -CURRENT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) - -ifeq ($(dc-upgrade),) - dc-upgrade:=$(dc) -f ../docker-compose.yml -f docker-compose.upgrade.yml -endif - -## ---- UPGRADE -set_version ?=latest # default version that will be used in tasks - -as-previous: clean ## 1 - install the previous version: $ make set_version=1.2.1 as-previous - rm -rf ./solr-data && \ - rm -rf ./solr-contentstore && \ - rm -f ./image-digests.txt - export SEARCH_TAG=$(set_version) && \ - $(dc-upgrade) pull && \ - echo "\n====Previous====" > image-digests.txt && \ - $(dc-upgrade) config --resolve-image-digests >> image-digests.txt && \ - $(dc-upgrade) up -d && \ - docker ps - -as-current: ## 2 - upgrade previous to this version $ make set_version=2.0.x as-current - $(dc-upgrade) kill search && \ - $(dc-upgrade) rm -f search && \ - export SEARCH_TAG=$(set_version) && \ - $(dc-upgrade) pull search && \ - echo "\n====Current====" >> image-digests.txt && \ - $(dc-upgrade) config --resolve-image-digests >> image-digests.txt && \ - $(dc-upgrade) up -d search && \ - docker ps - -# -# Run the following commands if you need to test the upgrade e2e -# -#make set_version=1.2.1 as-previous wait -#make run-mvn-tests suiteXmlFile=./src/test/resources/search-pre-upgrade-suite.xml -#make set_version=2.0.x as-current wait -#make run-mvn-tests suiteXmlFile=./src/test/resources/search-post-upgrade-suite.xml \ No newline at end of file diff --git a/e2e-test/qa/search/upgrade/README.md b/e2e-test/qa/search/upgrade/README.md deleted file mode 100644 index fae181d47..000000000 --- a/e2e-test/qa/search/upgrade/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# About - -Testing the Upgrade of SearchService product - -**Build Plan:** https://bamboo.alfresco.com/bamboo/browse/SAD-QAUP - -![](docs/upgrade.png?raw=true) - -# Steps - -* **a)** start the initial version -```shel -make set_version=1.2.1 as-previous wait -``` ->notice that new folders will appear on you "upgrade" folder with data from container(s) - -* **b)** create some data manually or using automated tests found on this project -```shel -make run-mvn-tests suiteXmlFile=./src/test/resources/search-pre-upgrade-suite.xml -``` -* **c)** now upgrade to new version -```shel -make set_version=2.0.x as-current wait -``` -* **d)** and test that upgrade data exist -```shel -make run-mvn-tests suiteXmlFile=./src/test/resources/search-post-upgrade-suite.xml -``` - -# Environment Settings -Pay attention at the values that exist in [.env](.env) file. These settings will be picked up in custom docker-compose.*.yml file(s) diff --git a/e2e-test/qa/search/upgrade/docker-compose.upgrade.yml b/e2e-test/qa/search/upgrade/docker-compose.upgrade.yml deleted file mode 100644 index 63ed716b2..000000000 --- a/e2e-test/qa/search/upgrade/docker-compose.upgrade.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3' -services: - search: - environment: - - VERSION=${SEARCH_TAG} - image: quay.io/alfresco/search-services:${SEARCH_TAG} - volumes: - - "./upgrade/solr-data:/opt/alfresco-search-services/data" - - "./upgrade/solr-contentstore:/opt/alfresco-search-services/contentstore" - \ No newline at end of file diff --git a/e2e-test/qa/search/upgrade/docs/upgrade.png b/e2e-test/qa/search/upgrade/docs/upgrade.png deleted file mode 100644 index 3d36c9e54..000000000 Binary files a/e2e-test/qa/search/upgrade/docs/upgrade.png and /dev/null differ