apache / iotdb

Apache IoTDB
https://iotdb.apache.org/
Apache License 2.0
4.42k stars 987 forks source link

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

Open ope-nz opened 1 year ago

ope-nz commented 1 year ago

Search before asking

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?

HTHou commented 1 year ago

Looking forward your PR!

ope-nz commented 1 year ago

@HTHou I think I need write access to make a pull request. What is the process to request access?

HTHou commented 1 year ago

Hi @ope-nz, you don't need that, you can follow this guide to make a code contribution. https://iotdb.apache.org/Development/HowToCommit.html