Changeset 16862
- Timestamp:
- 2007/12/02 21:05:29 (16 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update/data/class/batch/SC_Batch_Update.php
r16786 r16862 44 44 * 除外するファイル名をカンマ区切りで羅列. 45 45 */ 46 var $excludes = "distinfo.php ,update.php";46 var $excludes = "distinfo.php"; 47 47 48 48 /** … … 53 53 */ 54 54 function execute($target = ".") { 55 $arrLog = array(); 55 $oldMask = umask(0); 56 $bkupDistInfoArray = array(); //バックアップファイル用のdistinfoファイル内容 57 $bkupPath = DATA_PATH . 'downloads/backup/update_' . time() . '/'; 58 $bkupPathFile = $bkupPath . 'files/'; 59 $this->mkdir_p($bkupPathFile . 'dummy'); 60 61 $arrLog = array( 62 'err' => array(), 63 'ok' => array(), 64 'buckup_path' => $bkupPath 65 ); 66 67 if (!is_writable($bkupPath) || !is_writable($bkupPathFile)) { 68 $arrLog['err'][] = 'バックアップディレクトリの作成に失敗しました'; 69 return $arrLog; 70 } 71 56 72 $includeArray = explode(',', $this->includes); 57 73 $excludeArray = explode(',', $this->excludes); … … 77 93 // 除外ファイルをスキップ 78 94 if (in_array($fileName, $excludeArray)) { 79 $arrLog[ ] = "excludes by " . $path . "\n";95 $arrLog['ok'][] = "次のファイルは除外されました: " . $path; 80 96 continue; 81 97 } … … 84 100 $sha1 = sha1_file($path); 85 101 86 $arrLog[] = $sha1 . " => " . $path . "\n"; 87 102 //$arrLog[] = $sha1 . " => " . $path; 88 103 89 104 // 変換対象を順に処理 … … 98 113 $out = $distinfo[$sha1]; 99 114 } else { 100 $arrLog[] = "ハッシュ値が一致しないため, コピー先が取得できません."; 101 die(); 115 $arrLog['err'][] = "ハッシュ値が一致しないため, コピー先が取得できません: " . $path; 116 break 2; 117 } 118 119 // パーミッションチェック 120 /** 121 if ($check_only) { 122 if(!is_writable($out)) { 123 $this->mkdir_p($out); 124 if (!is_writable($out)) { 125 $arrLog['err'][] = "コピー先に書き込み権限がありません: " . $out; 126 } 127 } 128 continue; 129 }**/ 130 131 // バックアップを作成 132 if (file_exists($out)) { 133 $bkupTo = $bkupPathFile . pathinfo($out, PATHINFO_BASENAME); 134 $bkupDistInfoArray[sha1_file($out)] = $path; 135 136 if (!@copy($out, $bkupTo)) { 137 $arrLog['err'][] = "バックアップファイルの作成に失敗しました: " . $bkupTo; 138 break 2; 139 } 140 $arrLog['ok'][] = "バックアップファイルの作成に成功しました: " . $bkupTo; 102 141 } 103 142 … … 109 148 $handle = @fopen($out, "w"); 110 149 if (!$handle) { 111 $arrLog[ ] = "Cannot open file (". $out . ")\n";150 $arrLog['err'][] = "コピー先に書き込み権限がありません: " . $out; 112 151 continue; 113 152 } … … 116 155 // 取得した内容を書き込む 117 156 if (fwrite($handle, $contents) === false) { 118 $arrLog[ ] = "Cannot write to file (" . $out . ")\n";157 $arrLog['err'][] = "コピー先に書き込み権限がありません: " . $out; 119 158 continue; 120 159 } 121 160 122 $arrLog[ ] = "copyed " . $out . "\n";161 $arrLog['ok'][] = "ファイルのコピーに成功しました: " . $out; 123 162 // ファイルを閉じる 124 163 fclose($handle); … … 127 166 } 128 167 } 129 $arrLog[] = "Finished Successful!\n"; 168 $src = $this->makeDistInfo($bkupDistInfoArray); 169 if (is_writable($bkupPath)) { 170 $handle = @fopen($bkupPath . 'distinfo.php', "w"); 171 @fwrite($handle, $src); 172 @fclose($handle); 173 $arrLog['ok'][] = "バックアップ用ファイルの作成に成功しました: " . $bkupPath . 'distinfo.php'; 174 } else { 175 $arrLog['err'][] = "バックアップ用ファイルの作成に成功しました: " . $bkupPath . 'distinfo.php'; 176 } 177 umask($oldMask); 130 178 return $arrLog; 131 179 } … … 165 213 $dir .= $n . '/'; 166 214 if(!file_exists($dir)) { 167 if (!@mkdir($dir)) return;215 if (!@mkdir($dir)) break; 168 216 } 169 217 } 170 } 218 } 219 220 function makeDistInfo($bkupDistInfoArray) { 221 $src = "<?php\n" 222 . '$distifo = array(' . "\n"; 223 224 foreach ($bkupDistInfoArray as $key => $value) { 225 $src .= "'${key}' => '${value}',\n"; 226 } 227 $src .= ");\n?>"; 228 } 171 229 } 172 230 ?> -
branches/feature-module-update/data/class/pages/upgrade/LC_Page_Upgrade_Download.php
r16840 r16862 74 74 $objLog->log('* post param check start'); 75 75 if ($this->objForm->checkError()) { 76 // TODO77 76 $objJson->setError(OSTORE_E_C_INVALID_PARAM); 78 77 $objJson->display(); … … 83 82 if ($mode == 'auto_update' 84 83 && $this->autoUpdateEnable($this->objForm->getValue('product_id')) !== true) { 85 // TODO86 84 $objJson->setError(OSTORE_E_C_AUTOUP_DISABLE); 87 85 $objJson->display(); … … 155 153 156 154 $objLog->log("* open ${filename} start"); 157 if ($fp = fopen($dir . $filename, "w")) {158 fwrite($fp, $data);159 fclose($fp);155 if ($fp = @fopen($dir . $filename, "w")) { 156 @fwrite($fp, $data); 157 @fclose($fp); 160 158 } else { 161 $objJson->setError(OSTORE_E_C_ FILE_WRITE);159 $objJson->setError(OSTORE_E_C_PERMISSION); 162 160 $objJson->display(); 163 $objLog->error(OSTORE_E_C_ FILE_WRITE, $objReq);161 $objLog->error(OSTORE_E_C_PERMISSION, $dir . $filename); 164 162 return; 165 163 } … … 169 167 $objLog->log("* mkdir ${exract_dir} start"); 170 168 if (!@mkdir($exract_dir)) { 171 $objJson->setError(OSTORE_E_C_ MKDIR);169 $objJson->setError(OSTORE_E_C_PERMISSION); 172 170 $objJson->display(); 173 $objLog->error(OSTORE_E_C_ MKDIR, $objReq);171 $objLog->error(OSTORE_E_C_PERMISSION, $exract_dir); 174 172 return; 175 173 } … … 184 182 $arrCopyLog = $objBatch->execute($exract_dir); 185 183 186 // テーブルの更新 184 $objLog->log("* copy batch check start"); 185 if (count($arrCopyLog['err']) > 0) { 186 $objJson->setError(OSTORE_E_C_PERMISSION); 187 $objJson->display(); 188 $objLog->error(OSTORE_E_C_PERMISSION, $arrCopyLog); 189 $this->registerUpdateLog($arrCopyLog, $objRet->data); 190 return; 191 } 192 193 // dtb_module_update_logの更新 194 $objLog->log("* insert dtb_module_update start"); 195 $this->registerUpdateLog($arrCopyLog, $objRet->data); 196 197 // dtb_moduleの更新 187 198 $objLog->log("* insert/update dtb_module start"); 188 199 $this->updateMdlTable($objRet->data); … … 192 203 $objReq = $this->notifyDownload($objReq->getResponseCookies()); 193 204 194 $objLog->log('* dl commi result:' . serialize($objReq));205 $objLog->log('* dl commit result:' . serialize($objReq)); 195 206 196 207 $objJson->setSUCCESS(array(), 'インストール/アップデートに成功しました。'); … … 311 322 return false; 312 323 } 324 325 function registerUpdateLog($arrLog, $objRet) { 326 $arrInsert = array( 327 'module_id' => $objRet->product_id, 328 'buckup_path' => $arrLog['buckup_path'], 329 'error_flg' => count($arrLog['err']), 330 'error' => implode("\n", $arrLog['err']), 331 'ok' => implode("\n", $arrLog['ok']), 332 'update_date' => 'NOW()', 333 'create_date' => 'NOW()' 334 ); 335 $objQuery = new SC_Query; 336 $objQuery->insert('dtb_module_update_logs', $arrInsert); 337 } 313 338 } 314 339 ?> -
branches/feature-module-update/data/mtb_constants_init.php
r16851 r16862 669 669 /** オーナーズストア通信エラーコード */ 670 670 define('OSTORE_E_C_PERMISSION', '2009'); 671 /** オーナーズストア通信エラーコード */ 672 define('OSTORE_E_C_BATCH_ERR', '2010'); 671 673 ?> -
branches/feature-module-update/html/install/sql/create_table_mysql.sql
r16848 r16862 1 create table dtb_module_update_logs( 2 module_id int auto_increment primary key NOT NULL, 3 buckup_path text, 4 error_flg smallint DEFAULT 0, 5 error text, 6 ok text, 7 create_date datetime NOT NULL, 8 update_date datetime NOT NULL 9 ); 10 1 11 CREATE TABLE dtb_ownersstore_settings ( 2 12 public_key text -
branches/feature-module-update/html/install/sql/create_table_pgsql.sql
r16848 r16862 1 create table dtb_module_update_logs( 2 module_id serial, 3 buckup_path text, 4 error_flg int2 default 0, 5 error text, 6 ok text, 7 create_date timestamp NOT NULL DEFAULT now(), 8 update_date timestamp NOT NULL DEFAULT now() 9 ); 10 1 11 CREATE TABLE dtb_ownersstore_settings ( 2 12 public_key text -
branches/feature-module-update/html/install/sql/drop_table.sql
r16848 r16862 51 51 DROP TABLE dtb_table_comment; 52 52 DROP TABLE dtb_ownersstore_settings; 53 DROP TABLE dtb_module_update_logs; 53 54 DROP TABLE mtb_work; 54 55 DROP TABLE mtb_wday; -
branches/feature-module-update/html/install/sql/insert_data.sql
r16859 r16862 727 727 INSERT INTO mtb_ownersstore_err VALUES ('2003', '配信サーバへ接続できません。', 10); 728 728 INSERT INTO mtb_ownersstore_err VALUES ('2004', '配信サーバでエラーが発生しました。', 11); 729 INSERT INTO mtb_ownersstore_err VALUES ('2005', '認証キーが設定されていません。<br />・ 設定メニューで認証キーを設定してください。', 12);729 INSERT INTO mtb_ownersstore_err VALUES ('2005', '認証キーが設定されていません。<br />・「認証キー設定」で認証キーを設定してください。', 12); 730 730 INSERT INTO mtb_ownersstore_err VALUES ('2006', '不正なアクセスです。', 13); 731 731 INSERT INTO mtb_ownersstore_err VALUES ('2007', '不正なパラメータが送信されました。', 14); 732 732 INSERT INTO mtb_ownersstore_err VALUES ('2008', '自動アップデートが無効です', 15); 733 INSERT INTO mtb_ownersstore_err VALUES ('2009', 'ファイルの書き込みに失敗しました。<br />・書き込み権限が正しく設定されていません。', 16); 733 INSERT INTO mtb_ownersstore_err VALUES ('2009', 'ファイルの書き込みに失敗しました。<br />・書き込み権限が正しく設定されていません。<br />・data/downloads/tmpディレクトリに書き込み権限があるかどうか確認してください', 16); 734 INSERT INTO mtb_ownersstore_err VALUES ('2010', 'ファイルの書き込みに失敗しました。<br />・「ログ管理」で詳細を確認してください。', 17); 734 735 INSERT INTO mtb_ownersstore_ips VALUES (0, '210.188.195.143', 0); 735 736 INSERT INTO mtb_constants VALUES ('SAMPLE_ADDRESS1','"市区町村名(例:千代田区神田神保町)"',1,'フロント表示関連'); … … 1068 1069 INSERT INTO mtb_constants VALUES ('OSTORE_E_C_AUTOUP_DISABLE', '"2008"', 520, 'オーナーズストア通信エラーコード'); 1069 1070 INSERT INTO mtb_constants VALUES ('OSTORE_E_C_PERMISSION', '"2009"', 521, 'オーナーズストア通信エラーコード'); 1071 INSERT INTO mtb_constants VALUES ('OSTORE_E_C_BATCH_ERR', '"2010"', 522, 'オーナーズストア通信エラーコード');
Note: See TracChangeset
for help on using the changeset viewer.