apache / apache/iotdb

[Feature request] remove dependency on wmic & wsh from windows batch files

オープン
#11,014 コメント 3 件 リアクション 2 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.4k
フォーク
1.2k
平均マージ
1日 23時間
マージ済み PR(30日)
115

説明

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Motivation

Hello team, I am building an installer for IotDB so that I can distribte IotDB with a solution I develop. The installer deploys IotDB as a windows service.

During my testing I have discovered that;

1. The env scripts are using wmic which is deprecated and is an optional feature on Windows 10/11 (https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features)
2. The env script are using WSH which is not desirable. Windows Scripting host is blocked on many customer sites and is not good practise on Windows.

To add to this, I am testing in the Windows 11 Sandbox which does not allow you to enable the wmic feature anyway so IotDB would never start successfully.

To work around this I have developed a small C# console app to return the number of cores and memory in megabytes

https://github.com/ope-nz/IotDBHWInfo

In the env batch files I have replaced the cores/memory determination with these lines;

for /f %%A in ('..\tools\IotDBHWInfo.exe -cores') do set "system_cpu_cores=%%A"
echo CORES %system_cpu_cores%

for /f %%A in ('..\tools\IotDBHWInfo.exe -memory') do set "system_memory_in_mb=%%A"
echo SYSTEM MEMORY %system_memory_in_mb%

### Solution

Develop alternate solution to using wmic/wsh such as console app show above

### Alternatives

Use https://github.com/ope-nz/IotDBHWInfo

Update env batch files with

for /f %%A in ('..\tools\IotDBHWInfo.exe -cores') do set "system_cpu_cores=%%A"
echo CORES %system_cpu_cores%

for /f %%A in ('..\tools\IotDBHWInfo.exe -memory') do set "system_memory_in_mb=%%A"
echo SYSTEM MEMORY %system_memory_in_mb%

### Are you willing to submit a PR?

- [X] I'm willing to submit a PR!

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、Windows 環境のバッチファイルと、現在の wmic および WSH の呼び出しを特定します。CPU コアとメモリの検出について、それらを IotDBHWInfo.exe で説明されている動作と比較します。環境スクリプトが wmic または WSH に依存しなくなり、説明されている Windows 11 Sandbox のシナリオで IotDB を起動できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
csharp, shell
領域
devops, operating-systems
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。