Install

Works with Drupal: 7.x

Using Composer to manage Drupal site dependencies

Downloads

Download tar.gz 82.3 KB
MD5: 330310b47b78590e1d52032c33efc018
SHA-1: 899a95075112e7b7850f2906b5cdb7e4c56d3e26
SHA-256: aeac4ae8127f3a9ebc2f7dc20229cd9176622717858761b4b63ceebaeb96e2bd
Download zip 111.44 KB
MD5: a372c5c75dd77b382340c881a91da7ca
SHA-1: c49180ea33caaeaf7646dd6cfe85ad0665258db4
SHA-256: e8536c2b7e6ab6e61c8ef993ce29964bea7b2698df2e86826f302d8bf0e5d6a5

Release notes

Add a summary here

Contributors (22)

Chris Burge, Daniel_Rose, Gerben Spil, IRuslan, SylvainM, aditya.ghan, ashutoshsngh, batemangwu, bc, bkosborne, calebtr, cilefen, hey_germano, japerry, jenlampton, leotorati, mcdruid, nielsvm, selwynpolit, sillygwailo, snufkin, wranvaud

Changelog

Issues: 29 issues resolved.

Changes since 7.x-1.3:

Bug

  • #2649140 by bc: maxlength for path length is too low
  • #2854920 by Chris Burge, nielsvm: Protocol scheme determination is overly strict
  • #2637698 by SylvainM, nielsvm: Use DRUPAL_ROOT for require_once in _acquia_purge_load()
  • #2550497 by snufkin, aditya.ghan: Call to undefined function drupal_get_path_alias()
  • #2558985 by IRuslan: Wrong theme usage for 'acquia_purge_status_report'
  • #2838146 by wranvaud, nielsvm: Documentation comments corrections
  • #2642458 by leotorati: Varnish does not work correctly in environments with basic authentication
  • #2630202 by mcdruid: Call to undefined function user_access()
  • #2888192 by selwynpolit: Module is incorrectly requiring path_inc
  • #2891779 by ashutoshsngh: Fatal error with AcquiaPurgeProcessorAjax
  • #2879944: Manual Purge (Paths) block has php error on panel page
  • zd402618: Call to undefined method AcquiaPurgeProcessorRuntime::diagnostics() fixed
  • #2894021: *.acquia-sites.com domain got detected when there was only 1 domain present.
  • #2894021 by nielsvm: When extending purging to fastly, domains include acquia-sites.com
  • #2932244 by Gerben Spil: The acquia_purge_ajax_processor ajax request returns a redirect and is not working
  • #2966566 by jenlampton, japerry: Call to undefined function drupal_strtolower()
  • #3055863 by cilefen: "Increase your cron interval" advice is wrong
  • #2893643 by selwynpolit: Curl_multi loop failures
  • #3113221 by sillygwailo: Add documentation around purge and SSL.
  • #2969612 by bkosborne: Infinite JavaScript loop in certain situations
  • #3131543 by japerry: PHP has reserved all method names with a double underscore prefix for future use
  • #3210284 by japerry, hey_germano, batemangwu: PHP 7.4 error: Trying to access array offset on value of type bool
  • #2376957 by calebtr: Autocomplete throws errors when purging paths with extensions

Feature

  • #2831316 by Daniel_Rose: Missing word in error message in admin.inc file
  • #2891745: Allow clearing purge queue using web UI

Misc

  • Converted everything to Markdown, to bring this into line with the other purge projects.
  • URLs in PROJECTPAGE.md
  • As the D8 branch became default and PROJECTPAGE.md moving there, this is normalized as the 7.x README.md.
  • RENAMED _acquia_purge_purge_requests() --> _acquia_purge_curl() to emphasize its role as generic (and efficient) HTTP request executor.
  • Strengthened _acquia_purge_curl() a little bit.
  • Moving OOP code under lib/. This makes the main tree cleaner and OOP
  • NEW AcquiaPurgeHostingInfo:
  • NEW _acquia_purge_get_diagnosis_token() to help support.
  • Fixed self-caused regression in drush_acquia_purge_ap_process().
  • Fixed AcquiaPurgeAjaxProcessor
  • Another lib/ break.
  • A rewrite of ``_acquia_purge_load()`` now allows third-party code to swap out all used classes by Acquia Purge. A variable like ``$conf['_acquia_purge_state_disk'] = 'sites/custom_state_disk.php';`` will lead to a different class to be loaded. See the inline documentation in ``_acquia_purge_variable()`` for more info.
  • Fixed self-caused fatal in _acquia_purge_get_diagnosis_token().
  • More self-caused bugs.
  • NEW method AcquiaPurgeService::vclOddities() introduces the ability to track and report on suspicious balancer behavior.
  • Code style.
  • Putting ::vclOddities() into practice by registering 403's, 405's and $_SERVER['HTTP_X_GEO_COUNTRY'].
  • Much better quality-of-service for day-to-day problems found with using AP:
  • Defined _acquia_purge_processor_base and making sure its preloaded now.
  • Defining services and class names for the new executors plugin type.
  • README.md: addition of "scenario specifics", this will be helpful for support and customers reading documentation.
  • Old copy-paste stub code, to be rewritten for its purpose.
  • Invalidation API similar to that of purge-d8, but massively simplified.
  • processor
  • executor
  • Class renames.
  • NEW _acquia_purge_registry() and autogenerated service names, plus the ability to query them easily. Much less maintenance, great performance and ease of use!
  • _acquia_purge_registry() is new, so key version starts at 1.
  • NEW 'queue items' are now first class objects, that spawn 'invalidation' objects. The latter, allows executors to call ::setStatus() on them which are set on the queue item objects.
  • NEW parameter on _acquia_purge_deprecated().
  • acquia_purge.info
  • Deprecating AcquiaPurgeService::queueItemPath() in favor of AcquiaPurgeQueueItem::getPath().
  • AcquiaPurgeExecutorsService is now iterable and working.
  • First stubbed executor backends.
  • AcquiaPurgeExecutorInterface and AcquiaPurgeExecutorBase are usable too now.
  • Hooks hook_acquia_purge_purge_(failure|success) are now deprecated in favor of registering executors through hook_acquia_purge_executors().
  • AcquiaPurgeInvalidation objects now work.
  • AcquiaPurgeService::process() has now been ported to the new stack with executor plugins. The stubs work, just need to port the old code into them.
  • NEW AcquiaPurgeExecutorRequest as value object for making requests.
  • AcquiaPurgeExecutorRequest
  • NEW AcquiaPurgeExecutorInterfaceAcquiaPurgeExecutor::getRequest(), ::requestsExecute(), ::requestsLog()
  • Fixed basepath setting in AcquiaPurgeService.
  • Prepare for wildcard/* support on Acquia Cloud (requires Varnish 4)
  • Regain the capability of first clearing Drupal's cache
  • Cleaned up AcquiaPurgeExecutorBase::requestsExecute()
  • DEPRECATED _acquia_purge_export_debug_symbols() --> AcquiaPurgeExecutorBase::exportDebugSymbols()AcquiaPurgeExecutorBase::exportDebugSymbols()
  • PORTED _acquia_purge_purge_acquia_purge_purge() to the new AcquiaPurgeExecutorAh class. The MAIN difference of behavior as seen "from the outside" is that now ALL the HTTP requests for ALL paths+domains+schemes are executed at once in parallel, making the ACQUIA_PURGE_PARALLEL_REQUESTS and ACQUIA_PURGE_REQUEST_TIMEOUT constants much more realistically respected.
  • NEW AcquiaPurgeInvalidationInterface::setStatusContextSuffix() and AcquiaPurgeInvalidation::getParentContext()
  • AcquiaPurgeExecutorRequest::__construct()'s uri parameter now optional.
  • acquia_purge.deprecated.inc: updated _acquia_purge_queue_pop
  • AcquiaPurgeService::process() now calls ::history()
  • Merge branch 'executors' into 7.x-1.x
  • NEW experimental wildcard support.
  • Report the method in debug output.
  • Rewrote ::exportDebugSymbols() to be a lot saner and similar to Python's output.
  • Automatically issue BAN when geoIP is detected.
  • GeoIP rewording
  • acquia_purge_trim_slashes for a specific client.
  • Don't variate on wildcard paths
  • README.md: updated scenario specific advice.
  • Provide AcquiaPurgeService to executor's ::isEnabled() so that it can be queried for configuration.
  • Report executors in APD and allow camelcase output in the diagnostic reports.
  • Authentication Token --> Authentication token
  • Authentication Token --> Authentication token
  • NEW AcquiaPurgeOddities: in order to make oddity management better used and more maintainable. I MOVED storage into the variable system in order to persist flags across queue clears, this is necessary as else problems will be quickly forgotten.
  • Don't clear page cache on sites that use DrupalFakeCache.
  • NEW AcquiaPurgeHostingInfo ::getPageCacheBackends() and ::isPageCacheFake()
  • Improved "anonymous page cache" diagnostic and recommendations around DrupalFakeCache.
  • Provide all diagnostics with the AcquiaPurgeService object.
  • NEW constant ACQUIA_PURGE_VERSION, used for auto cache invalidation after upgrading module versions.
  • NEW AcquiaPurgeDiagnostics which is the objectification of the tests system and brings maintainability and performance improvements. Oh, did I say other modules can now register tests?
  • Clarifying the language on the deprecation wrappers.
  • NEW ACQUIA_PURGE_CID_PREFIX is now used for cache ids.
  • _acquia_purge_are_we_using_memcached() -> AcquiaPurgeHostingInfo::isMemcacheUsed()
  • Improved wildcard messaging.
  • NEW AcquiaPurgeCapacity replaces the procedural function + 50% speed improvement for standard 2 balancer configurations, this will have massive impact.
  • Fix AcquiaPurgeProcessorBase::processQueueChunk()
  • NEW AcquiaPurgeHostingInfo::areDomainsHardcoded()
  • NEW constant ACQUIA_PURGE_VERSION
  • Enable cron by default now.
  • Fixed hook_requirements() implementation.
  • Major, major, major cleanup of the diagnostic checks.
  • AcquiaPurgeExecutorAh --> AcquiaPurgeExecutorAcquia
  • Rewritten important parts of DOMAINS.md and README.md regarding domain management.
  • Improved ACSF support.
  • zd387605: Function theme() does not exist.
  • FIXED a buggy situation where 'drush ap-process' could yield thousands of PHP procs and cascades, when being called every minute on cronjobs.
  • AcquiaPurgeExecutorBase::requestsExecute(): removed a dangerous static + always close multi handlers.
  • Fixing the config.json implementation.
  • Add sanity checking around registering classes from the registry.
  • Add Support for PHP 8.2
  • Code Linting and general cleanup
  • Append trait name to AcquiaPurgeQueueStatusTrait

Support

  • Zendesk ticket 231083
  • Zendesk ticket 231083
  • z403306: AcquiaPurgeHostingInfo use array output from json_decode, can still typecast but not sure if that's needed.
Created by: japerry
Created on: 7 Jun 2023 at 20:42 UTC
Last updated: 7 Jun 2023 at 20:43 UTC
Bug fixes
New features
Unsupported

Other releases