Test a Confluence instance for macro errors with GINT configuration
This article provides detailed steps to test a Confluence instance for macro errors with GINT configuration in a Mac machine.
Instructions
Create an SDE working folder. It is recommended that you create a working folder in your home folder and name it "sde":
$ cd ~ $ mkdir -p sde
Install and configure the Atlassian SDK with homebrew:
brew tap atlassian/tap brew install atlassian/tap/atlassian-plugin-sdk
Configure the below environment variables in bash_profile:
export SDE_HOME=$HOME/sde export ATLAS_HOME=/usr/share/atlassian-plugin-sdk-8.0.16 export GROOVY_HOME=/root/sde/groovy-2.4.8 export GANT_HOME=/root/sde/gant-1.10.0 export JAVA_HOME=/root/java export PATH=$PATH:$JAVA_HOME/bin:$ATLAS_HOME/bin:$GROOVY_HOME/bin:$GANT_HOME/bin
Download groovy 2.4.8 from apache-groovy-binary-2.4.8.zip:
$cd ~/sde $wget https://bintray.com/artifact/download/groovy/maven/apache-groovy-binary-2.4.8.zip $unzip apache-groovy-binary-2.4.8.zip
Download the GANT named 1.10.0 Binary compiled for use with Groovy 2.4.8 installation from Prepackaged Distributions Source and General Precompiled Distribution:
$cd ~/sde $wget https://gant.github.io/distributions/gant-1.10.0-_groovy-2.4.8.tgz $tar -xvzf gant-1.10.0-_groovy-2.4.8.tgz
Copy the gant-starter.conf file to /groovy-2.4.8/conf :
$cp ~/sde/gant-1.10.0/conf/gant-starter.conf ~/sde/groovy-2.4.8/conf
Download gint-2.8.0.jar from Downloads:
$cd ~/sde $wget https://bitbucket.org/bob_swift/gint/downloads/gint-2.8.0.jar
Run the below-mentioned command with gint-2.8.0.jar file:
$atlas-mvn install:install-file -Dfile=~/sde//gint-2.8.0.jar -DgroupId=org.swift.tools -DartifactId=gint -Dversion=2.8.0 -Dpackaging=jar
Create a file named as macroError.gant with the below script:
/* * Copyright (c) 2009, 2011 Bob Swift * * Licensed 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. * * Created on Oct 20, 2011 by Bob Swift */ /* * This is a GINT test (https://studio.plugins.atlassian.com/wiki/display/GINT) * * Test all pages within a Confluence space to see if specific text appears on the rendered page. * A specific use case is to look for macro errors on a page. * * Run with something like: * gant -f macroError.gant -Dverbose -Dspace=myspacekey -Ddatabase=confluence-3.5.13 -Dcli="/sde/atlassian-cli-2.2.0/atlassian confluence-3.5.13" * * -Dspace - space key or space key like clause, % for all (not recommended as it will take a very long time!) * -Ddatabase - name of your Confluence database * -DdatabaseHost - host for your database if not the default localhost * -DdatabaseType - database type if not the default postgresql (mysql, mssql, oracle, db2) * -DdatabaseUser - user name to access the database, default automation * -DdatabasePassword - password, default automation * -Dcli - Confluence CLI used to access your Confluence instance remote API */ @Grab(group='org.swift.tools', module='gint', version='2.6.0-SNAPSHOT') import org.swift.tools.* includeTool << GintForConfluence includeTool << Helper includeTool << SqlHelper gint.initialize(this) // required failData = ['Unknown macro:', '<span class="error">'] // this is text that will flag a page as being in error space = helper.getRequiredParameterValue('space').toUpperCase() databaseConfig = [ database: helper.getParameterValue('database', 'confluence'), host: helper.getParameterValue('databaseHost', 'localhost'), type: helper.getParameterValue('databaseType', 'postgresql'), user: helper.getParameterValue('databaseUser', 'automation'), password: helper.getParameterValue('databasePassword', 'automation'), ] def sql = """ select 'renderPage' as action, s.spaceKey || ':' || c.title as name, s.spaceKey as space, c.title as title, true as file, '[failData: failData]' as output_code from content as c, spaces as s where s.spaceid = c.spaceid and c.content_status = 'current' and c.contentid is not null and c.spaceid is not null and c.title <> '' and upper(s.spaceKey) like '${space}' """ helper.logWithFormat('sql', sql) connection = sqlHelper.getConnection(databaseConfig) gint.add(connection, sql) gint.finalizeTest() // final preparations for running tests
Run the below command with Confluence CLI jar file location and Confluence database details in the terminal or command line.
gant-1.10.0/bin/gant --classpath gint-2.8.0.jar -f macroError.gant -Dverbose -Dcli="java -jar /home/ubuntu/sde/atlassian-cli-8.8.0/lib/confluence-cli-8.8.0.jar --server confluence_url --user confluence_username --password confluence_password" -Dspace="zconfluencecli" -Ddatabase="test123" -DdatabaseHost="post.clclwjb9vztp.ap-south-1.rds.amazonaws.com" -DdatabaseType="Database_Type" -DdatabaseUser="Database_Username" -DdatabasePassword="Database_Password"
This provides a list of unknown macros that are present in Confluence pages.