Server-tools: [RFC] module_auto_update:コミュニティモジュールアップデータ

作成日 2017年03月22日  ·  15コメント  ·  ソース: OCA/server-tools

このモジュールは、Odoov10コミュニティに機能する自動更新システムを提供します。

checksum_dir列がir.module.moduleに追加されます。これは、ディレクトリのsha1チェックサムを表します( checksumdir )。 現在インストールされているモジュールバージョンのチェックサムを表すchecksum_installed列も追加されます。

現在のUpdatesアプリのメニューはのツリービューが表示されます同じ命名のメニューに置き換えられますir.module.module持つレコードをchecksum_dirとは異なることにchecksum_installed

上記のツリービューのヘッダーにボタンを追加してUpdate Apps List機能を許可すると、より流動的なプロセスが可能になる場合があります。 または、更新リストを表示するときに、これを暗黙的に呼び出す必要があるかもしれません。

更新するモジュールがツリービューで選択され、アップグレードのスケジュールを設定するためのオプションがActionメニューに表示されます。

アップグレード自体は、 ir.module.statusto upgradeに設定する標準のOdooメカニズムを使用してスケジュールされます。 そこから、UIの既存のApply Scheduled Upgradesボタンが機能します。

さらに一歩進めるために、特定のタイミングでモジュールを自動アップグレードするためのcronジョブを構成するサーバーパラメーターも追加します。

便利な機能は、アップグレード中にすべての着信Web要求を定義済みの静的テンプレートにリダイレクトすることです。これにより、より適切なメンテナンス期間が可能になります。

誰かがこれ、または私がこれに基づくことができる既存のコードについて考えていますか?

question

最も参考になるコメント

@ Yenthe666-機能を追加するのは簡単なので、先に進んでこれを実装します。 これは、製品のようなセキュリティがない開発環境でも役立ちます。

注意として、Odooユーザーが明示的に書き込む必要のないファイルへの書き込みアクセスを許可する構成はお勧めしません。 これは、WordpressやMagentoなどの他のCMSに共通の攻撃ベクトルであるため、ここでも同じように感じます。 基本的に、攻撃者がOdooを制御できるようになると、攻撃者はあなたが決して見ることのない場所に悪意のあるコードを仕掛けることができます。

全てのコメント15件

@lasleyと自動gitフェッチとgitリセット? それ大好き。

誰もがGitを使用しているわけではないので、これは不可能です。

:+1:コミュニティ更新機能用。

一部のインスタンスはまだDocker化されていないため、レガシーの操作を少し簡単にし、アップグレードを少しプッシュバックするために、オプションとしてgit処理を追加しても実際には問題ないかもしれません。

少なくとも私のデプロイで遭遇する1つの問題は、いくつかのまれなインスタンスを除いて、Odooユーザーがモジュールディレクトリへの書き込みアクセス権を持っていないことです(それでも、 ./staticディレクトリのみ)。 これはあなたの@ Yenthe666には当てはまりませんか?

こんにちは@lasley

いいえ、その問題はありません。 Odooユーザーは、まさにこのために/odooフォルダー内にアクセスできます。

よろしく、
イェンテ

また、 @ pedrobaezaは、これを設定したい人やgitを使用できるようにするための設定として簡単に構成できます。

OKじゃあ

@ Yenthe666-機能を追加するのは簡単なので、先に進んでこれを実装します。 これは、製品のようなセキュリティがない開発環境でも役立ちます。

注意として、Odooユーザーが明示的に書き込む必要のないファイルへの書き込みアクセスを許可する構成はお勧めしません。 これは、WordpressやMagentoなどの他のCMSに共通の攻撃ベクトルであるため、ここでも同じように感じます。 基本的に、攻撃者がOdooを制御できるようになると、攻撃者はあなたが決して見ることのない場所に悪意のあるコードを仕掛けることができます。

1つの解決策は、gitとバージョンを忘れて、代わりにSHAチェックサムを使用することです。 ir.cronジョブは次のようになります。

  1. アドオンフォルダ全体のチェックサムを生成します。
  2. 保存した最後のチェックサムと照合してください。
  3. 変更されている場合は、新しいチェックサムを更新して保存するようにアドオンを設定します。
  4. すべてのアドオンでこれを実行し終えたら、更新システムをトリガーします。

@lasleyこのモジュールには、提案内容と自動バックアップhttps://github.com/ingadhoc/odoo-support/tree/9.0/database_toolsが部分的に含まれています
すでにodoo日とocasprint日で発表しましたが、注目されませんでした
READMEで利用可能なプレゼンテーションを確認できます。 「oli」を追加したので、コマンドラインから「odoo.pyfixdb」のようなものでデータベースを修正できます。 dbを修正している間、同じxmlrpcで静的ページを使用してWebクライアントを起動し、アップグレード中であることを通知します。
モジュールには醜いものがたくさんありますが、私たちはそれを本番環境で3年以上使用しています

@ Yajo-ああ、いい考えだ。 RFCが更新されました。 Odooの起動時にディレクトリチェックサムを生成するだけで意味がありますか、それともボタンが必要ですか?

@ jjscarafia-ラインを落としてくれてありがとう! このモジュールは、OCAにすでにあるものをたくさん複製しているように見えますが、ここにも完全に役立つものがいくつかあります。 残念ながら、これをSaaSに統合するため、AGPLではなくLGPLライセンスが必要になります。 このコードの一部を使用して共著を提供できるようにしたいと思いますが、ここでLGPLの下でバージョンをリリースできる必要があります。

デフォルトの「今すぐcronを実行」ボタンでうまくいくと思います。 それは確かに私見で必要になるでしょう、しかしあなたはすでにそこにそれを持っています。

また、私はできるだけ賢くなく、デフォルトでchecksum_installed空にします。 次のcronの反復では、それが不一致であると見なされ、すべてが更新されます。 そしてその時点から、すべてが良いでしょう。 cronは、午前3時頃に実行するように事前構成する必要があります。

@lasleyはい、その重複はたくさんありますが、これはocaが存在する前のものでした。 odoo 10に移行するときに、その機能が廃止されることを確認するための保留中のタスクがあります。そのため、別のモジュールでモジュールの更新機能を使用できるようにすると便利です。 LGPLに変更することの意味についてはまだあまり詳しくありませんが、私にとっては問題ありません。 コードの使用とライセンスの変更を許可するにはどうすればよいですか?

@ jjscarafia -LGPLの主な意味は、誰かがアプリのクローズドソース派生物を作成する可能性があるため、間違いなくかなり重いということです。 過度に単純化されているこの内訳を見てくださいが、私はポイントを理解していると思います。

「同じライセンス」は、派生物がソフトウェアをライブラリとして使用していない場合にのみ適用されることがわかります。 素人の言葉で言えば、これはGPLとAGPLライセンスがマニフェストのモジュールに依存するものにブリードすることを意味します。 LGPLは、モジュールの実際のコードに変更を加えるコードにのみブリードするため、マニフェストでLGPLに依存するだけで、任意のライセンス(おそらくプロプライエタリ)を選択できます。

必要なのは、許可とライセンスの変更を先取りすることだけです。 私のチームは必要なものを移行し、PRであなたにタグを付け、そこであなたの承認を得ます。 その後、変更に同意したという記録がありますので、よろしくお願いします。

私はあなたのモジュールに深く入り込んでいませんが、 fix_db部分が何をするのか興味がありましたか? それはすべての更新を実行するだけですか?

@lasleyリンクと説明に感謝します。 OK、私にとっては、PRのpingを待ちます。
このメソッドはデータベースインターフェイスから呼び出す

cli "fixdb"は、すべてのデータベース(指定しない場合)または-dデータベースに対してそのメソッドを呼び出します。
これを時間ドッカーイメージのエントリポイントで使用するため、コンテナーを実行するときは、必要に応じて常にモジュールを更新します

#882で追跡するために閉じる

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

LeartS picture LeartS  ·  3コメント

pedrobaeza picture pedrobaeza  ·  19コメント

lasley picture lasley  ·  20コメント

pedrobaeza picture pedrobaeza  ·  66コメント

lasley picture lasley  ·  8コメント