Problem/Motivation

Get Error:

On Server:
[WARNING] drd_action_download [drd_domain/88]: Remote instance does not support DRD. SITE

TypeError: Drupal\drd\Entity\Domain::database(): Return value must be of type array, bool returned in Drupal\drd\Entity\Domain->database() (line 782 of .../modules/contrib/drd/src/Entity/Domain.php).

On Remote:
Message Warning: include(/code/web/modules/composer/drd_agent/src/Agent/Action/settings.pantheon.php): Failed to open stream: No such file or directory in include() (line 2 of /code/web/modules/composer/drd_agent/src/Agent/Action/DomainsReceive.php(124) : eval()'d code)

Message Warning: include(): Failed opening '/code/web/modules/composer/drd_agent/src/Agent/Action/settings.pantheon.php' for inclusion (include_path='/code/vendor/pear/archive_tar:/code/vendor/pear/console_getopt:/code/vendor/pear/pear-core-minimal/src:/code/vendor/pear/pear_exception:.:/usr/share/pear:/usr/share/php') in include() (line 2 of /code/web/modules/composer/drd_agent/src/Agent/Action/DomainsReceive.php(124) : eval()'d code)

Message Reading Sites - Found 1 entries:
Array
(
[] => default
)

The complete output are in the enclosed text file.

This issue happened earlier but came clear when I kept trying after reinstalling drd_agent on remote and reinstalling core.

I have enclosed the logs from the Server and from the remote.

Steps to reproduce

DRD Server connecting to a site via pantheon running drush command `drush drd:projects:update --core-id=89`

CommentFileSizeAuthor
LF-Errors.txt10.47 KBAdrianm6254
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

Adrianm6254 created an issue. See original summary.

Adrianm6254’s picture

Title: [WARNING] drd_action_download [drd_domain/88]: Remote instance does not support DRD. SITE » [WARNING] drd_action_download [drd_domain/88]: Remote instance does not support DRD
jurgenhaas’s picture

Category: Bug report » Support request

Sounds like Message Warning: include(): Failed opening '/code/web/modules/composer/drd_agent/src/Agent/Action/settings.pantheon.php' is the important message here. I wouldn't be surprised if Pantheon's hosting adds a line include "settings.pantheon.php" somewhere in a settings.php file or similar where they then store other stuff by themselves. And when we collect the environment for the automatic update, we can't know that there is another file that would be included and hence the process fails.

To resolve this, an extra plugin would be required to collect such extra components from the hosting environment. That's why the update framework in DRD is built around plugins, so that everyone can add their own plugins as they are needed in their specific context.

You need to find out, how the Pantheon hosting is constructed and what extra elements are required for your update process to run. Hope that helps?

bsnodgrass’s picture

@jurgenhaas Thanks, adrianm6254 and I have looked into this a bit and continue to have some issues. Can you clarify what information we need clarify or confirm with Pantheon tech support on this one?

In the meantime we will take another look at this.

jurgenhaas’s picture

Well, I don't think asking Pantheon would be helpful at this stage.

If you want to automate your site updates, you need to draw a plan first and then build the tool that can automate that. In DRD, we provide some plugins that work for hosting environments, that don't do anything special with extra files or so. Other hosting environments like e.g. Pantheon may do some stuff which is unknown for the outside world and won't be compatible with the existing plugins in DRD.

The steps for the site update through DRD are clearly separated:

  • Storage: here you can configure, where the project of your site is stored. In most cases that will be Git, so that DRD is cloning the project from the given source to do all the required work with the project to be updated.
  • Build: in this phase, the site will be build, if necessary. For Drupal 8 and later, this is most likely Composer. This will run composer update and any extra command, if necessary and configured.
  • Process: in this phase, any extra processing can be performed. We provide 1 example plugin called "LakeDrops Drupal 8" for sites that are built on top of our own composer template. In this section you can also enable the checkbox to pull the live database from your live site, if you need that database for your update process, e.g. testing.
  • Testing: let's ignore for now.
  • Deployment: in our own scenarios we keep this empty, because deployment of the updated site is not done by DRD. Instead, the deployment of the update is done by a GitLab pipeline when the updates get pulled to the repository, see below.
  • Finishing: no necessarily required, but you can add some steps here yourselves for e.g. cleaning up. What happens in this phase as well, when the storage above was e.g. git based, then the result of the modifications will be committed and pushed to the git repository.

The error in the OP seems to happen when pulling the database from the live site in the step Process. DRD uses its built-in command drush drd:database to download a db dump from the remote site. It may be possible that this doesn't work on Pantheon hosting and if so, you may have to find a different way to download a db dump, if you even need one. I recall that Pantheon provides some tools that allow you to do that. With a bit of programming, you can most likely integrate that into this DRD process.

When it comes to the deployment of your updates, I guess Pantheon will be special again, and you may require some programming too. I guess, when pushing the changes to the site repository, Pantheon doesn't automatically deploy that upstream to the live site. You will have to use their API to get that process triggered.

That's as far as I can go. We're not using Pantheon hosting ourselves, so our knowledge is limited. And offering more support is pretty difficult as we have only very limited time resources available.

bsnodgrass’s picture

Jurgen,

Thank you so much, this will help a great deal. Just what I need to look into this further!

I looked through the documentation and found nothing related to this setup or help text in the core edit form. As we investigate this further, we will help with some documentation.