]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/wordpress/resources/plugin.rb
wordpress: ignore failure to activate SVN plugins. Pin wp-fail2ban release
[chef.git] / cookbooks / wordpress / resources / plugin.rb
index 5b3d2b4e7bdbd28ba11e210093ebd31f2824f7a4..078b926f5d2675f1e9b95d25664f456158fbfdcf 100644 (file)
@@ -1,14 +1,14 @@
 #
-# Cookbook Name:: wordpress
+# Cookbook:: wordpress
 # Resource:: wordpress_plugin
 #
-# Copyright 2015, OpenStreetMap Foundation
+# Copyright:: 2015, OpenStreetMap Foundation
 #
 # 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
+# https://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,
 # limitations under the License.
 #
 
+unified_mode true
+
 default_action :create
 
-property :plugin, :kind_of => String, :name_attribute => true
+property :plugin, :kind_of => String, :name_property => true
 property :site, :kind_of => String, :required => true
 property :source, :kind_of => String
 property :version, :kind_of => String
@@ -34,10 +36,10 @@ action :create do
       source new_resource.source
       owner node[:wordpress][:user]
       group node[:wordpress][:group]
-      mode 0o755
+      mode "755"
       files_owner node[:wordpress][:user]
       files_group node[:wordpress][:group]
-      files_mode 0o755
+      files_mode "755"
     end
   else
     plugin_repository = new_resource.repository || default_repository
@@ -56,13 +58,28 @@ action :create do
         repository plugin_repository
         user node[:wordpress][:user]
         group node[:wordpress][:group]
-        ignore_failure plugin_repository.start_with?("http://plugins.svn.wordpress.org/")
+        ignore_failure plugin_repository.start_with?("https://plugins.svn.wordpress.org/")
       end
     end
   end
+
+  execute "wp-cli plugin activate #{new_resource.plugin}" do
+    command "/opt/wp-cli/wp --path='#{site_directory}' plugin activate '#{new_resource.plugin}'"
+    user "www-data"
+    group "www-data"
+    not_if "/opt/wp-cli/wp --path='#{site_directory}' plugin is-active '#{new_resource.plugin}'"
+    ignore_failure plugin_repository.start_with?("https://plugins.svn.wordpress.org/")
+  end
 end
 
 action :delete do
+  execute "wp-cli plugin deactivate #{new_resource.plugin}" do
+    command "/opt/wp-cli/wp --path='#{site_directory}' plugin deactivate '#{new_resource.plugin}'"
+    user "www-data"
+    group "www-data"
+    only_if "/opt/wp-cli/wp --path='#{site_directory}' plugin is-active '#{new_resource.plugin}'"
+  end
+
   directory plugin_directory do
     action :delete
     recursive true
@@ -83,9 +100,9 @@ action_class do
               Chef::Wordpress.current_plugin_version(new_resource.plugin)
 
     if version =~ /trunk/
-      "http://plugins.svn.wordpress.org/#{new_resource.plugin}/trunk"
+      "https://plugins.svn.wordpress.org/#{new_resource.plugin}/trunk"
     else
-      "http://plugins.svn.wordpress.org/#{new_resource.plugin}/tags/#{version}"
+      "https://plugins.svn.wordpress.org/#{new_resource.plugin}/tags/#{version}"
     end
   end
 end