PluginProbe
UpdraftPlus: WP Backup & Migration Plugin / 1.16.5
UpdraftPlus: WP Backup & Migration Plugin v1.16.5
1.26.7 1.26.6 1.26.5 1.26.4 1.26.3 1.9.19 1.9.25 1.9.26 1.9.30 1.9.31 1.9.32 1.9.4 1.9.40 1.9.41 1.9.42 1.9.43 1.9.44 1.9.45 1.9.46 1.9.5 1.9.50 1.9.51 1.9.60 1.9.62 1.9.63 All 371 releases
updraftplus / methods / dreamobjects.php

dreamobjects.php in UpdraftPlus: WP Backup & Migration Plugin 1.16.5, at methods/dreamobjects.php

142 lines 5.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 if (!defined('UPDRAFTPLUS_DIR')) die('No direct access allowed.');
4
5 require_once(UPDRAFTPLUS_DIR.'/methods/s3.php');
6
7 /**
8 * Converted to multi-options (Feb 2017-) and previous options conversion removed: Yes
9 */
10 class UpdraftPlus_BackupModule_dreamobjects extends UpdraftPlus_BackupModule_s3 {
11
12 private $dreamobjects_endpoints = array();
13
14 public function __construct() {
15 // When new endpoint introduced in future, Please add it here and also add it as hard coded option for endpoint dropdown in self::get_partial_configuration_template_for_endpoint()
16 // Put the default first
17 $this->dreamobjects_endpoints = array(
18 // Endpoint, then the label
19 'objects-us-east-1.dream.io' => 'objects-us-east-1.dream.io',
20 'objects-us-west-1.dream.io' => 'objects-us-west-1.dream.io ('.__('Closing 1st October 2018', 'updraftplus').')',
21 );
22 }
23
24 protected $use_v4 = false;
25
26 protected function set_region($obj, $region = '', $bucket_name = '') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
27 $config = $this->get_config();
28 $endpoint = ('' != $region && 'n/a' != $region) ? $region : $config['endpoint'];
29 global $updraftplus;
30 if ($updraftplus->backup_time) {
31 $updraftplus->log("Set endpoint: $endpoint");
32
33 // Warning for objects-us-west-1 shutdown in Oct 2018
34 if ('objects-us-west-1.dream.io' == $endpoint) {
35 // Are we after the shutdown date?
36 if (time() >= 1538438400) {
37 $updraftplus->log("The objects-us-west-1.dream.io endpoint shut down on the 1st October 2018. The upload is expected to fail. Please see the following article for more information https://help.dreamhost.com/hc/en-us/articles/360002135871-Cluster-migration-procedure", 'warning', 'dreamobjects_west_shutdown');
38 } else {
39 $updraftplus->log("The objects-us-west-1.dream.io endpoint is scheduled to shut down on the 1st October 2018. You will need to switch to a different end-point and migrate your data before that date. Please see the following article for more information https://help.dreamhost.com/hc/en-us/articles/360002135871-Cluster-migration-procedure", 'warning', 'dreamobjects_west_shutdown');
40 }
41 }
42 }
43
44 $obj->setEndpoint($endpoint);
45 }
46
47 /**
48 * This method overrides the parent method and lists the supported features of this remote storage option.
49 *
50 * @return Array - an array of supported features (any features not mentioned are asuumed to not be supported)
51 */
52 public function get_supported_features() {
53 // This options format is handled via only accessing options via $this->get_options()
54 return array('multi_options', 'config_templates', 'multi_storage');
55 }
56
57 /**
58 * Retrieve default options for this remote storage module.
59 *
60 * @return Array - an array of options
61 */
62 public function get_default_options() {
63 return array(
64 'accesskey' => '',
65 'secretkey' => '',
66 'path' => '',
67 );
68 }
69
70 /**
71 * Retrieve specific options for this remote storage module
72 *
73 * @param Boolean $force_refresh - if set, and if relevant, don't use cached credentials, but get them afresh
74 *
75 * @return Array - an array of options
76 */
77 protected function get_config($force_refresh = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
78 $opts = $this->get_options();
79 $opts['whoweare'] = 'DreamObjects';
80 $opts['whoweare_long'] = 'DreamObjects';
81 $opts['key'] = 'dreamobjects';
82 if (empty($opts['endpoint'])) {
83 $endpoints = array_keys($this->dreamobjects_endpoints);
84 $opts['endpoint'] = $endpoints[0];
85 }
86 return $opts;
87 }
88
89 /**
90 * Get the pre configuration template
91 *
92 * @return String - the template
93 */
94 public function get_pre_configuration_template() {
95 $this->get_pre_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/" target="_blank"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
96 }
97
98 /**
99 * Get the configuration template
100 *
101 * @return String - the template, ready for substitutions to be carried out
102 */
103 public function get_configuration_template() {
104 return $this->get_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/" target="_blank"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
105 }
106
107 /**
108 * Get handlebar partial template string for endpoint of s3 compatible remote storage method. Other child class can extend it.
109 *
110 * @return string the partial template string
111 */
112 protected function get_partial_configuration_template_for_endpoint() {
113 // When new endpoint introduced in future, Please add it as hard coded option for below endpoint dropdown and also add as array value in private $dreamobjects_endpoints variable
114 return '<tr class="'.$this->get_css_classes().'">
115 <th>'.sprintf(__('%s end-point', 'updraftplus'), 'DreamObjects').'</th>
116 <td>
117 <select data-updraft_settings_test="endpoint" '.$this->output_settings_field_name_and_id('endpoint', true).' style="width: 360px">
118 {{#each dreamobjects_endpoints as |description endpoint|}}
119 <option value="{{endpoint}}" {{#ifeq ../endpoint endpoint}}selected="selected"{{/ifeq}}>{{description}}</option>
120 {{/each}}
121 </select>
122 </td>
123 </tr>';
124 }
125
126 /**
127 * Modifies handerbar template options
128 *
129 * @param array $opts
130 * @return array - Modified handerbar template options
131 */
132 public function transform_options_for_template($opts) {
133 $opts['endpoint'] = empty($opts['endpoint']) ? '' : $opts['endpoint'];
134 $opts['dreamobjects_endpoints'] = $this->dreamobjects_endpoints;
135 return $opts;
136 }
137
138 public function credentials_test($posted_settings) {
139 $this->credentials_test_engine($this->get_config(), $posted_settings);
140 }
141 }
142