BIGTOP-4279: Provide systemd service unit files: Hadoop(YARN)

Description of PR
https://issues.apache.org/jira/browse/BIGTOP-4279
Add system unit file for Hadoop(YARN)
How was this patch tested?
Tested on RPM(Rocky Linux 8 and DEB(Ubuntu-24.04).

Did YARN smoke tests
Checked if  systemctl start , systemctl status works
Checked if /run exists after the OS(Container) restarts (Unlike MapReduce Service, I used systemd-tmpfile because there are many processes that use /var/run/hadoop-yarn and don't want to change the behavior)

Manual Testing logs...
RPM (Rocky-8)

build & smoketests

$ ./gradlew allclean hadoop-pkg-ind repo-ind -POS=rockylinux-8
$ cd provisioner/docker
$ ./docker-hadoop.sh --enable-local-repo --disable-gpg-check     --docker-compose-plugin     -C config_rockylinux-8.yaml     -F docker-compose-cgroupv2.yml     --stack hdfs,yarn --smoke-tests yarn -c 1
(snip)
BUILD SUCCESSFUL in 15s
28 actionable tasks: 7 executed, 21 up-to-date
Stopped 1 worker daemon(s).
+ rm -rf buildSrc/build/test-results/binary
+ rm -rf /bigtop-home/.gradle

install additional packages (timelineserver, router), systemctl start, then systemctl status

$ ./docker-hadoop.sh -dcp --exec 1 /bin/bash
[root@a60f5b5943d3 /]# dnf install hadoop-yarn-timelineserver hadoop-yarn-router
(snip)
Complete!

[root@a60f5b5943d3 /]# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl start hadoop-yarn-$service_name; done

[root@a60f5b5943d3 /]# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl status --no-pager hadoop-yarn-$service_name; done
● hadoop-yarn-resourcemanager.service - Hadoop ResourceManager
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-resourcemanager.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:01:49 UTC; 4min 55s ago
     Docs: https://hadoop.apache.org/
 Main PID: 6692 (java)
    Tasks: 227 (limit: 5099)
   Memory: 437.7M
   CGroup: /system.slice/hadoop-yarn-resourcemanager.service
           └─6692 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_resourcemanager -Djava.net.preferIPv4Stack=true -Dservice.libdir=/usr/lib/hadoop-yarn/./,/usr/lib/hadoop-yarn/lib,/usr/lib/hadoop-hdfs/./,/usr/lib/hadoop-hdfs/lib,/usr/lib/hadoop/./,/usr/lib/hadoop/lib -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-res…

Dec 01 03:01:47 a60f5b5943d3 systemd[1]: Starting Hadoop ResourceManager...
Dec 01 03:01:49 a60f5b5943d3 systemd[1]: Started Hadoop ResourceManager.
● hadoop-yarn-nodemanager.service - Hadoop NodeManager
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-nodemanager.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:02:21 UTC; 4min 24s ago
     Docs: https://hadoop.apache.org/
 Main PID: 8309 (java)
    Tasks: 102 (limit: 5099)
   Memory: 293.2M
   CGroup: /system.slice/hadoop-yarn-nodemanager.service
           └─8309 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_nodemanager -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-nodemanager-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.log.di…

Dec 01 03:02:19 a60f5b5943d3 systemd[1]: Starting Hadoop NodeManager...
Dec 01 03:02:21 a60f5b5943d3 systemd[1]: Started Hadoop NodeManager.
● hadoop-yarn-proxyserver.service - Hadoop ProxyServer
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-proxyserver.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:01:56 UTC; 4min 48s ago
     Docs: https://hadoop.apache.org/
 Main PID: 7184 (java)
    Tasks: 33 (limit: 5099)
   Memory: 129.3M
   CGroup: /system.slice/hadoop-yarn-proxyserver.service
           └─7184 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_proxyserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-proxyserver-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.log.di…

Dec 01 03:01:54 a60f5b5943d3 systemd[1]: Starting Hadoop ProxyServer...
Dec 01 03:01:56 a60f5b5943d3 systemd[1]: Started Hadoop ProxyServer.
● hadoop-yarn-timelineserver.service - Hadoop NodeManager
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-timelineserver.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:06:27 UTC; 18s ago
     Docs: https://hadoop.apache.org/
  Process: 9484 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start timelineserver (code=exited, status=0/SUCCESS)
 Main PID: 9535 (java)
    Tasks: 53 (limit: 5099)
   Memory: 424.5M
   CGroup: /system.slice/hadoop-yarn-timelineserver.service
           └─9535 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_timelineserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-timelineserver-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.…

Dec 01 03:06:25 a60f5b5943d3 systemd[1]: Starting Hadoop NodeManager...
Dec 01 03:06:27 a60f5b5943d3 systemd[1]: Started Hadoop NodeManager.
● hadoop-yarn-router.service - Hadoop Router
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-router.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:06:29 UTC; 16s ago
     Docs: https://hadoop.apache.org/
  Process: 9598 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start router (code=exited, status=0/SUCCESS)
 Main PID: 9649 (java)
    Tasks: 97 (limit: 5099)
   Memory: 274.4M
   CGroup: /system.slice/hadoop-yarn-router.service
           └─9649 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_router -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-router-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.log.dir=/var/log…

Dec 01 03:06:27 a60f5b5943d3 systemd[1]: Starting Hadoop Router...
Dec 01 03:06:29 a60f5b5943d3 systemd[1]: Started Hadoop Router.

Check if prepared unit files are used w/ systemctl cat

[root@a60f5b5943d3 /]# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl cat hadoop-yarn-$service_name; done
# /usr/lib/systemd/system/hadoop-yarn-resourcemanager.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop ResourceManager
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-resourcemanager.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start resourcemanager
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop resourcemanager
# /usr/lib/systemd/system/hadoop-yarn-nodemanager.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop NodeManager
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-nodemanager.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start nodemanager
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop nodemanager
# /usr/lib/systemd/system/hadoop-yarn-proxyserver.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop ProxyServer
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-proxyserver.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start proxyserver
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop proxyserver
# /usr/lib/systemd/system/hadoop-yarn-timelineserver.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop NodeManager
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-timelineserver.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start timelineserver
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop timelineserver
# /usr/lib/systemd/system/hadoop-yarn-router.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop Router
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-router.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start router
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop router

restart container

[root@a60f5b5943d3 /]# exit
$ docker restart a60f5b5943d3
$ ./docker-hadoop.sh -dcp --exec 1 /bin/bash
[root@a60f5b5943d3 /]# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl start hadoop-yarn-$service_name; done
[root@a60f5b5943d3 /]# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl status --no-pager hadoop-yarn-$service_name; done
● hadoop-yarn-resourcemanager.service - Hadoop ResourceManager
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-resourcemanager.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:12:27 UTC; 14s ago
     Docs: https://hadoop.apache.org/
  Process: 401 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start resourcemanager (code=exited, status=0/SUCCESS)
 Main PID: 455 (java)
    Tasks: 231 (limit: 5099)
   Memory: 456.5M
   CGroup: /system.slice/hadoop-yarn-resourcemanager.service
           └─455 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_resourcemanager -Djava.net.preferIPv4Stack=true -Dservice.libdir=/usr/lib/hadoop-yarn/./,/usr/lib/hadoop-yarn/lib,/usr/lib/hadoop-hdfs/./,/usr/lib/hadoop-hdfs/lib,/usr/lib/hadoop/./,/usr/lib/hadoop/lib -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-reso…

Dec 01 03:12:25 a60f5b5943d3 systemd[1]: Starting Hadoop ResourceManager...
Dec 01 03:12:27 a60f5b5943d3 systemd[1]: Started Hadoop ResourceManager.
● hadoop-yarn-nodemanager.service - Hadoop NodeManager
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-nodemanager.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:12:29 UTC; 12s ago
     Docs: https://hadoop.apache.org/
  Process: 695 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start nodemanager (code=exited, status=0/SUCCESS)
 Main PID: 749 (java)
    Tasks: 107 (limit: 5099)
   Memory: 287.7M
   CGroup: /system.slice/hadoop-yarn-nodemanager.service
           └─749 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_nodemanager -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-nodemanager-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.log.dir…

Dec 01 03:12:27 a60f5b5943d3 systemd[1]: Starting Hadoop NodeManager...
Dec 01 03:12:29 a60f5b5943d3 systemd[1]: Started Hadoop NodeManager.
● hadoop-yarn-proxyserver.service - Hadoop ProxyServer
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-proxyserver.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:12:31 UTC; 10s ago
     Docs: https://hadoop.apache.org/
  Process: 918 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start proxyserver (code=exited, status=0/SUCCESS)
 Main PID: 970 (java)
    Tasks: 34 (limit: 5099)
   Memory: 123.6M
   CGroup: /system.slice/hadoop-yarn-proxyserver.service
           └─970 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_proxyserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-proxyserver-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.log.dir…

Dec 01 03:12:29 a60f5b5943d3 systemd[1]: Starting Hadoop ProxyServer...
Dec 01 03:12:31 a60f5b5943d3 systemd[1]: Started Hadoop ProxyServer.
● hadoop-yarn-timelineserver.service - Hadoop NodeManager
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-timelineserver.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:12:33 UTC; 8s ago
     Docs: https://hadoop.apache.org/
  Process: 1012 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start timelineserver (code=exited, status=0/SUCCESS)
 Main PID: 1064 (java)
    Tasks: 53 (limit: 5099)
   Memory: 246.1M
   CGroup: /system.slice/hadoop-yarn-timelineserver.service
           └─1064 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_timelineserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-timelineserver-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.…

Dec 01 03:12:31 a60f5b5943d3 systemd[1]: Starting Hadoop NodeManager...
Dec 01 03:12:33 a60f5b5943d3 systemd[1]: Started Hadoop NodeManager.
● hadoop-yarn-router.service - Hadoop Router
   Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-router.service; static; vendor preset: disabled)
   Active: active (running) since Sun 2024-12-01 03:12:36 UTC; 6s ago
     Docs: https://hadoop.apache.org/
  Process: 1127 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start router (code=exited, status=0/SUCCESS)
 Main PID: 1179 (java)
    Tasks: 97 (limit: 5099)
   Memory: 277.0M
   CGroup: /system.slice/hadoop-yarn-router.service
           └─1179 /usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>2.b06-2.el8.aarch64/bin/java -Dproc_router -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-router-a60f5b5943d3.log -Dyarn.home.dir=/usr/lib/hadoop-yarn -Dyarn.root.logger=INFO,console -Djava.library.path=//usr/lib/hadoop/lib/native -Dhadoop.log.dir=/var/log…

Dec 01 03:12:33 a60f5b5943d3 systemd[1]: Starting Hadoop Router...
Dec 01 03:12:36 a60f5b5943d3 systemd[1]: Started Hadoop Router.

DEB (Ubuntu-24.04)

build & smoketests

$ ./gradlew hadoop-clean bigtop-utils-pkg bigtop-jsvc-pkg bigtop-groovy-pkg hadoop-pkg repo
(snip)

$ cd provisioner/docker/
$ ./docker-hadoop.sh --enable-local-repo --disable-gpg-check     --docker-compose-plugin     -C config_ubuntu-24.04.yaml     -F docker-compose-cgroupv2.yml     --stack hdfs,yarn --smoke-tests yarn -c 1
Environment check...
Check docker:
Docker version 27.3.1, build ce12230
Check docker-compose:
Check ruby:
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]
[+] Running 2/2
 ✔ Network 20241217_034747_r14921_default     Created                                                                                0.1s
 ✔ Container 20241217_034747_r14921-bigtop-1  Started

(snip)

Successfully started process 'Gradle Test Executor 2'

org.apache.bigtop.itest.hadoop.yarn.TestRmAdmin > testRmAdminBasic STANDARD_OUT
    -help
    -getGroups

org.apache.bigtop.itest.hadoop.yarn.TestRmAdmin > testRmAdminRefreshcommands STANDARD_OUT
    -refreshQueues
    -refreshNodes
    -refreshUserToGroupsMappings
    -refreshSuperUserGroupsConfiguration
    -refreshAdminAcls

org.apache.bigtop.itest.hadoop.yarn.TestNode > testNodeBasic STANDARD_OUT
    -list
    -status

Gradle Test Executor 2 finished executing tests.

> Task :bigtop-tests:smoke-tests:yarn:test
Finished generating test XML results (0.008 secs) into: /bigtop-home/bigtop-tests/smoke-tests/yarn/build/test-results/test
Generating HTML test report...
Finished generating test html results (0.016 secs) into: /bigtop-home/bigtop-tests/smoke-tests/yarn/build/reports/tests/test
Now testing...
:bigtop-tests:smoke-tests:yarn:test (Thread[Execution worker for ':' Thread 2,5,main]) completed. Took 8.19 secs.

BUILD SUCCESSFUL in 32s
28 actionable tasks: 6 executed, 22 up-to-date
Stopped 1 worker daemon(s).
+ rm -rf buildSrc/build/test-results/binary
+ rm -rf /bigtop-home/.gradle

install additional packages (timelineserver, router), systemctl start, then systemctl status

$ ./docker-hadoop.sh -dcp --exec 1 /bin/bash
root@763e2d03d895:/# apt install hadoop-yarn-timelineserver hadoop-yarn-router
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  hadoop-yarn-router hadoop-yarn-timelineserver
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/8658 B of archives.
After this operation, 57.3 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  hadoop-yarn-router hadoop-yarn-timelineserver
Authentication warning overridden.
Get:1 file:/bigtop-home/output/apt bigtop/contrib amd64 hadoop-yarn-router amd64 3.3.6-1 [4294 B]
Get:2 file:/bigtop-home/output/apt bigtop/contrib amd64 hadoop-yarn-timelineserver amd64 3.3.6-1 [4364 B]
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package hadoop-yarn-router.
(Reading database ... 52684 files and directories currently installed.)
Preparing to unpack .../hadoop-yarn-router_3.3.6-1_amd64.deb ...
Unpacking hadoop-yarn-router (3.3.6-1) ...
Selecting previously unselected package hadoop-yarn-timelineserver.
Preparing to unpack .../hadoop-yarn-timelineserver_3.3.6-1_amd64.deb ...
Unpacking hadoop-yarn-timelineserver (3.3.6-1) ...
Setting up hadoop-yarn-timelineserver (3.3.6-1) ...
invoke-rc.d: policy-rc.d denied execution of start.
Setting up hadoop-yarn-router (3.3.6-1) ...
invoke-rc.d: policy-rc.d denied execution of start.
root@763e2d03d895:/# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl start hadoop-yarn-$service_name; done
root@763e2d03d895:/# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl status --no-pager hadoop-yarn-$service_name; done
● hadoop-yarn-resourcemanager.service - Hadoop ResourceManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-resourcemanager.service; static)
     Active: active (running) since Mon 2024-12-16 18:49:48 UTC; 4h 40min ago
       Docs: https://hadoop.apache.org/
   Main PID: 5627 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-resourcemanager.service
             └─5627 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_resourcemanager -Djava.net.preferIPv4Stack=true -Dservice.libdir=/usr/lib/hadoop-yarn/./,/usr/lib/hadoop-yarn/lib,/usr/lib/hadoop-hdfs…

Dec 16 18:49:46 763e2d03d895 systemd[1]: Starting hadoop-yarn-resourcemanager.service - Hadoop ResourceManager...
Dec 16 18:49:48 763e2d03d895 systemd[1]: Started hadoop-yarn-resourcemanager.service - Hadoop ResourceManager.
● hadoop-yarn-nodemanager.service - Hadoop NodeManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-nodemanager.service; static)
     Active: active (running) since Mon 2024-12-16 18:50:30 UTC; 4h 39min ago
       Docs: https://hadoop.apache.org/
   Main PID: 6835 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-nodemanager.service
             └─6835 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_nodemanager -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-nodemanager-763e2d03d895.l…

Dec 16 18:50:28 763e2d03d895 systemd[1]: Starting hadoop-yarn-nodemanager.service - Hadoop NodeManager...
Dec 16 18:50:30 763e2d03d895 systemd[1]: Started hadoop-yarn-nodemanager.service - Hadoop NodeManager.
● hadoop-yarn-proxyserver.service - Hadoop ProxyServer
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-proxyserver.service; static)
     Active: active (running) since Mon 2024-12-16 18:50:04 UTC; 4h 40min ago
       Docs: https://hadoop.apache.org/
   Main PID: 6266 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-proxyserver.service
             └─6266 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_proxyserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-proxyserver-763e2d03d895.l…

Dec 16 18:50:02 763e2d03d895 systemd[1]: Starting hadoop-yarn-proxyserver.service - Hadoop ProxyServer...
Dec 16 18:50:04 763e2d03d895 systemd[1]: Started hadoop-yarn-proxyserver.service - Hadoop ProxyServer.
● hadoop-yarn-timelineserver.service - Hadoop NodeManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-timelineserver.service; static)
     Active: active (running) since Mon 2024-12-16 23:29:51 UTC; 16s ago
       Docs: https://hadoop.apache.org/
    Process: 7983 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start timelineserver (code=exited, status=0/SUCCESS)
   Main PID: 8022 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-timelineserver.service
             └─8022 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_timelineserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-timelineserver-763e2d03…

Dec 16 23:29:49 763e2d03d895 systemd[1]: Starting hadoop-yarn-timelineserver.service - Hadoop NodeManager...
Dec 16 23:29:51 763e2d03d895 systemd[1]: Started hadoop-yarn-timelineserver.service - Hadoop NodeManager.
● hadoop-yarn-router.service - Hadoop Router
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-router.service; static)
     Active: active (running) since Mon 2024-12-16 23:29:53 UTC; 14s ago
       Docs: https://hadoop.apache.org/
    Process: 8087 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start router (code=exited, status=0/SUCCESS)
   Main PID: 8126 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-router.service
             └─8126 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_router -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-router-763e2d03d895.log -Dyarn.…

Dec 16 23:29:51 763e2d03d895 systemd[1]: Starting hadoop-yarn-router.service - Hadoop Router...
Dec 16 23:29:53 763e2d03d895 systemd[1]: Started hadoop-yarn-router.service - Hadoop Router.

Check if prepared unit files are used w/ systemctl cat systemctl cat

root@763e2d03d895:/# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl cat hadoop-yarn-$service_name; done
# /usr/lib/systemd/system/hadoop-yarn-resourcemanager.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop ResourceManager
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-resourcemanager.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start resourcemanager
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop resourcemanager
# /usr/lib/systemd/system/hadoop-yarn-nodemanager.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop NodeManager
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-nodemanager.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start nodemanager
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop nodemanager
# /usr/lib/systemd/system/hadoop-yarn-proxyserver.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop ProxyServer
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-proxyserver.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start proxyserver
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop proxyserver
# /usr/lib/systemd/system/hadoop-yarn-timelineserver.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop NodeManager
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-timelineserver.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start timelineserver
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop timelineserver
# /usr/lib/systemd/system/hadoop-yarn-router.service
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[Unit]
Documentation=https://hadoop.apache.org/
Description=Hadoop Router
Before=multi-user.target
Before=graphical.target
After=remote-fs.target

[Service]
User=yarn
Group=yarn
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=no
PIDFile=/run/hadoop-yarn/hadoop-yarn-router.pid
SuccessExitStatus=5 6
ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start router
ExecStop=/usr/bin/yarn --config /etc/hadoop/conf --daemon stop router
root@763e2d03d895:/#
root@763e2d03d895:/# exit
exit

restart container

$ docker ps
CONTAINER ID   IMAGE                              COMMAND        CREATED       STATUS       PORTS     NAMES
763e2d03d895   bigtop/puppet:trunk-ubuntu-24.04   "/sbin/init"   5 hours ago   Up 5 hours             20241217_034747_r14921-bigtop-1
$ docker restart 763e2d03d895
763e2d03d895

$ ./docker-hadoop.sh -dcp --exec 1 /bin/bash
root@763e2d03d895:/# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl status --no-pager hadoop-yarn-$service_name; done
○ hadoop-yarn-resourcemanager.service - Hadoop ResourceManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-resourcemanager.service; static)
     Active: inactive (dead)
       Docs: https://hadoop.apache.org/

Dec 16 18:49:46 763e2d03d895 systemd[1]: Starting hadoop-yarn-resourcemanager.service - Hadoop ResourceManager...
Dec 16 18:49:48 763e2d03d895 systemd[1]: Started hadoop-yarn-resourcemanager.service - Hadoop ResourceManager.
○ hadoop-yarn-nodemanager.service - Hadoop NodeManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-nodemanager.service; static)
     Active: inactive (dead)
       Docs: https://hadoop.apache.org/

Dec 16 18:50:28 763e2d03d895 systemd[1]: Starting hadoop-yarn-nodemanager.service - Hadoop NodeManager...
Dec 16 18:50:30 763e2d03d895 systemd[1]: Started hadoop-yarn-nodemanager.service - Hadoop NodeManager.
○ hadoop-yarn-proxyserver.service - Hadoop ProxyServer
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-proxyserver.service; static)
     Active: inactive (dead)
       Docs: https://hadoop.apache.org/

Dec 16 18:50:02 763e2d03d895 systemd[1]: Starting hadoop-yarn-proxyserver.service - Hadoop ProxyServer...
Dec 16 18:50:04 763e2d03d895 systemd[1]: Started hadoop-yarn-proxyserver.service - Hadoop ProxyServer.
○ hadoop-yarn-timelineserver.service - Hadoop NodeManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-timelineserver.service; static)
     Active: inactive (dead)
       Docs: https://hadoop.apache.org/

Dec 16 23:29:49 763e2d03d895 systemd[1]: Starting hadoop-yarn-timelineserver.service - Hadoop NodeManager...
Dec 16 23:29:51 763e2d03d895 systemd[1]: Started hadoop-yarn-timelineserver.service - Hadoop NodeManager.
○ hadoop-yarn-router.service - Hadoop Router
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-router.service; static)
     Active: inactive (dead)
       Docs: https://hadoop.apache.org/

Dec 16 23:29:51 763e2d03d895 systemd[1]: Starting hadoop-yarn-router.service - Hadoop Router...
Dec 16 23:29:53 763e2d03d895 systemd[1]: Started hadoop-yarn-router.service - Hadoop Router.

root@763e2d03d895:/# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl start hadoop-yarn-$service_name; done
root@763e2d03d895:/# for service_name in resourcemanager nodemanager proxyserver timelineserver router; do  systemctl status --no-pager hadoop-yarn-$service_name; done
● hadoop-yarn-resourcemanager.service - Hadoop ResourceManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-resourcemanager.service; static)
     Active: active (running) since Mon 2024-12-16 23:32:01 UTC; 38s ago
       Docs: https://hadoop.apache.org/
    Process: 460 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start resourcemanager (code=exited, status=0/SUCCESS)
   Main PID: 502 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-resourcemanager.service
             └─502 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_resourcemanager -Djava.net.preferIPv4Stack=true -Dservice.libdir=/usr/lib/hadoop-yarn/./,/usr/lib/hadoop-yarn/lib,/usr/lib/hadoop-hdfs/…

Dec 16 23:32:00 763e2d03d895 systemd[1]: Starting hadoop-yarn-resourcemanager.service - Hadoop ResourceManager...
Dec 16 23:32:01 763e2d03d895 systemd[1]: Started hadoop-yarn-resourcemanager.service - Hadoop ResourceManager.
● hadoop-yarn-nodemanager.service - Hadoop NodeManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-nodemanager.service; static)
     Active: active (running) since Mon 2024-12-16 23:32:03 UTC; 36s ago
       Docs: https://hadoop.apache.org/
    Process: 554 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start nodemanager (code=exited, status=0/SUCCESS)
   Main PID: 596 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-nodemanager.service
             └─596 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_nodemanager -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-nodemanager-763e2d03d895.lo…

Dec 16 23:32:01 763e2d03d895 systemd[1]: Starting hadoop-yarn-nodemanager.service - Hadoop NodeManager...
Dec 16 23:32:03 763e2d03d895 systemd[1]: Started hadoop-yarn-nodemanager.service - Hadoop NodeManager.
● hadoop-yarn-proxyserver.service - Hadoop ProxyServer
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-proxyserver.service; static)
     Active: active (running) since Mon 2024-12-16 23:32:05 UTC; 33s ago
       Docs: https://hadoop.apache.org/
    Process: 944 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start proxyserver (code=exited, status=0/SUCCESS)
   Main PID: 994 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-proxyserver.service
             └─994 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_proxyserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-proxyserver-763e2d03d895.lo…

Dec 16 23:32:03 763e2d03d895 systemd[1]: Starting hadoop-yarn-proxyserver.service - Hadoop ProxyServer...
Dec 16 23:32:05 763e2d03d895 systemd[1]: Started hadoop-yarn-proxyserver.service - Hadoop ProxyServer.
● hadoop-yarn-timelineserver.service - Hadoop NodeManager
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-timelineserver.service; static)
     Active: active (running) since Mon 2024-12-16 23:32:07 UTC; 31s ago
       Docs: https://hadoop.apache.org/
    Process: 1043 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start timelineserver (code=exited, status=0/SUCCESS)
   Main PID: 1083 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-timelineserver.service
             └─1083 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_timelineserver -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-timelineserver-763e2d03…

Dec 16 23:32:05 763e2d03d895 systemd[1]: Starting hadoop-yarn-timelineserver.service - Hadoop NodeManager...
Dec 16 23:32:07 763e2d03d895 systemd[1]: Started hadoop-yarn-timelineserver.service - Hadoop NodeManager.
● hadoop-yarn-router.service - Hadoop Router
     Loaded: loaded (/usr/lib/systemd/system/hadoop-yarn-router.service; static)
     Active: active (running) since Mon 2024-12-16 23:32:09 UTC; 29s ago
       Docs: https://hadoop.apache.org/
    Process: 1148 ExecStart=/usr/bin/yarn --config /etc/hadoop/conf --daemon start router (code=exited, status=0/SUCCESS)
   Main PID: 1188 (java)
     CGroup: /docker/763e2d03d895d436374e7bd32f7cfbe0793edcd372cbc633d6bbb1f1a414ec17/system.slice/hadoop-yarn-router.service
             └─1188 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -Dproc_router -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/var/log/hadoop-yarn -Dyarn.log.file=hadoop-yarn-router-763e2d03d895.log -Dyarn.…

Dec 16 23:32:07 763e2d03d895 systemd[1]: Starting hadoop-yarn-router.service - Hadoop Router...
Dec 16 23:32:09 763e2d03d895 systemd[1]: Started hadoop-yarn-router.service - Hadoop Router.

For code changes:

[x] Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'BIGTOP-3638. Your PR title ...')?
[x] Make sure that newly added files do not have any licensing issues. When in doubt refer to https://www.apache.org/licenses/

@masatana TestDistCpIntra fails with this patch.
org.apache.bigtop.itest.hadoop.hdfs.TestDistCpIntra > testDistcpIntra FAILED
    java.lang.AssertionError: Distcp 1 failed
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.assertTrue(Assert.java:41)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:104)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:326)
        at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrap.invoke(StaticMetaMethodSite.java:133)
        at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:196)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:216)
        at org.apache.bigtop.itest.hadoop.hdfs.TestDistCpIntra.testDistcpIntra(TestDistCpIntra.groovy:120)

org.apache.bigtop.itest.hadoop.hdfs.TestDistCpIntra > testDistcpIntra_MultipleSources FAILED
    java.lang.AssertionError: Distcp multiple sources failed
        at org.junit.Assert.fail(Assert.java:88)
        at org.junit.Assert.assertTrue(Assert.java:41)
        at org.junit.Assert$assertTrue.callStatic(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:55)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:196)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:216)
        at org.apache.bigtop.itest.hadoop.hdfs.TestDistCpIntra.testDistcpIntra_MultipleSources(TestDistCpIntra.groovy:

The classpath of submitted app is affected?
Container: container_1734655319602_0001_02_000001 on e90e9169bc2f.bigtop.apache.org_34557
LogAggregationType: AGGREGATED
=========================================================================================
LogType:stderr
LogLastModifiedTime:Fri Dec 20 00:47:03 +0000 2024
LogLength:88
LogContents:
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

@iwasakims
Thanks for checking this. That's an HDFS smoke test, right?
I can reproduce the error, will check it in more details.

Thanks for checking this. That's an HDFS smoke test, right?

Yes. smoke-tests of mapreduce failed in the same way.

HADOOP_MAPRED_HOME seems not to be set in the RM/NM launched via systemd. (HADOOP_COMMON_HOME, HADOOP_HDFS_HOME and HADOOP_YARN_HOME too.) @masatana

@iwasakims
Thank you for the suggestion. I just realized that The settings described in our hadoop-layout.sh are defined as local varibles, and are not inherited by processes launched from this shell.
We should use export to convert those variables into environment variables.

Updated the PR. It passes smome-tests (hdfs,yarn,mapreduce) on my local (Ubuntu 22.04)
Could you check this again?

@iwasakims Thank you!


Only accept the main quote style for Japanese

but also accept square brackets as a type of quotes, even though it is not in CLDR

Please re-review now


chore(master): release 1.13.0

:robot: I have created a release beep boop
1.13.0 (2023-02-16)
Features

reinit test data (2c7ab8a)
update documentation (f333e47)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/indykite/indykite-sdk-python/releases/tag/v1.13.0 :sunflower:


Unable to specify non-5683 port

If I specify a port. either through
'coap://localhost:9000/' or via the '{ host:'localhost', port:9000 }'
The coap packet never sends.  I'm tracking the network, and due to NAT on the device end (4G network) the device IP changes, as does the port.
When I receive a message from it, I immediately issue a request, however when I convert ths 'rsinfo' details into request host details, the request doesn't send.
Any ideas?

My apologies.  I finally tracked the problem, but it wasn't the destination port.
The SOURCE port is randomly selected.  In this scenario where an outgoing packed opens a temporary hole in the NAT firewall between two hosts, the return packet MUST have the same origin as the outgoing packet.
Imagine, packet from DEVICE (<IP_ADDRESS>:5683) -> firewall (publicip:21220) -> server (fixed IP: 5683)
The original response appears to be from "fixed ip: 5683" to (publicip:21220) and is correctly forwarded to DEVICE on the internal network.
However, when subsequently calling 'request', The request originates from 'publicip:randomport' and travels to (publicip:21220) at which point it is discarded as unknown.
My problem must be with the configuration/use of the 'agent'
How can I configure the outgoing 'request' to use the bound port which the server is using?
Is there a 'server.agent' I can pass to the client to ensure the originating socket is re-used?
Thanks for your help so far.  Sorry for being so far off-base originally.

Have you solved this problem?
I had the same problem. I solved it by setting Agent as 5683 and the SOURCE port has changed port 5683.

I can't see a way to fix this.
The solution will probably involve managing my own port and calling coap-packet directly.

The solution turned out to be fairly straight forward;
Step 1 - create a server;
var coapserver = coap.createServer( { port: 5683 } );

Step 2 - Create an Agent using the server socket; (not the port, but the actual socket)
var myAgent = new coap.Agent( { socket:coapserver._sock} );

Step 3 - ensure you include the agent in the request options;
var request = coap.request( { method: 'GET', pathname: '/', agent: myAgent });

At this point, the request and the server are sharing a socket.  Request responses are received and ignored by the server, while non-response packets are ack'ed by the server and processed correctly.
To be specific, in the product I was interfacing with, the end device initiated a "registration request" (thus I needed to act as a server) then sat back waiting for "observe" requests.  It was important the observe request appeared to originate from the server or they were ignored..
There might be a better way.  My preference would be a server API call which would return a "shared" agent, but for now, reaching into the server structure seem to work.


Disable uploads not working

$(dom).mediumInsert({
      editor: medium,
      addons: {
        preview: true,
        captions: false,
        images: {
          fileUploadOptions: {
            url: null
          }
        }
      }
    });

still tried to upload
I'd like to disable all uploading and only display image as base65 in the editor.
Others have set uploadScript to false to disable uploads, but that syntax is now deprecated syntax (also doesn't work..I've tried it too).
also there is an error when adding photos on your demo page

In #373 i sort of fixed it. Sort of... I removed default upload.php path for uploads, so we fallback to default jquery file upload behavior described here: https://github.com/blueimp/jQuery-File-Upload/wiki/Options#url:

If undefined or empty, it is set to the action property of the file upload form if available, or else the URL of the current page.

So you're not able to disable upload at all. It will always be sent somewhere.

Using a similar technique to orthes's third option described at https://github.com/orthes/medium-editor-insert-plugin/issues/369, I was able to make this work.
let images = $element.data('plugin_mediumInsertImages');
images.add = function () {
  let $file = $('<input type="file">');

  $file.fileupload({add: function(e, data) {
    let file = data.files[0];
    let reader  = new FileReader();
    let loadListener = (name) => {
      let result = {
          files: [{
              url: reader.result,
          }]
      };
      images.uploadDone(null, {
        result: result
      });
      // set the upload progress to 1/1 (100%) which hides the progress bar
      images.uploadProgressall(null, {context: images.$el, loaded: 1, total: 1});
      images.core.triggerInput();
    };

    images.uploadAdd({target: null}, {autoUpload: false, files: data.files});

    reader.addEventListener("load", loadListener.bind(reader, file.name), false);
    reader.readAsDataURL(file);
  }});

  $file.click();
};


Webpack Loader

It would be great to have a Webpack loader for .eta templates. It should have .eta files export the compiled function. Once the initial version with that is completed, we can add support for plugins and configuration for the loader.

I have implemented my own naive Rollup plugin (https://github.com/foisonocean/cf-download-proxy/tree/4131d12bd7a6df03a02e3ab71607674889fc28d0/build/rollup-plugins/eta), to compile templates to JavaScript source code at build time, since some JavaScript engine (like Cloudflare Workers) don't allow eval(...) or new Function(...). And the eta compiler won't be bundled to the built file, so it can help reduce bundle size.
The biggest pain for me is the defaultConfig from eta contains node.js fs API calls, which blocks rollup bundle those codes, so I have to maintain a modified config removed fs API calls, and handle the includeFile logic in the plugin. I really hope eta could ship a config without any Node.js API calls, so there would no need for me to maintain a config file anymore.

@foisonocean

The biggest pain for me is the defaultConfig from eta contains node.js fs API calls, which blocks rollup bundle those codes, so I have to maintain a modified config removed fs API calls, and handle the includeFile logic in the plugin. I really hope eta could ship a config without any Node.js API calls, so there would no need for me to maintain a config file anymore.

The v2 restructure, #70 will allow you to explicitly use the code for different environments, meaning you could do
const { compile } = require("eta/dist/browser/eta.umd.min");

compile("<%~ includeFile('./a') %>")() // throws error with fs not being supported

Would that work for your rollup plugin? You could try using the v1 browser UMD build, it may not work the best way.

Any update on this? would love to have an eta-loader for Webpack

We made a plugin with unplugin https://github.com/storipress/unplugin-eta


Start library

To begin, before merging, there needs to be the following capabilities:

Set, get, change, and delete the following response headers.

Content-Type
Access-Control-Allow-Origin
Content-Encoding
Cache-Control
Age

Send page content

After this we can expand on what we want.

Second thought, reading of response headers is not necessary. Therefore, do not include those methods.

After further research, it was determined that Content-Encoding is related to compression, which can be dealt with at a later date.

Cache-Control is also a multi-value supporting header, so it can be assessed at a later date.

Age also relates to caching, which, again, can be dealt with at a later date.
Well that was quick!


FMAD80 long kernel timeouts when stopping capture

likely a problem when only one (or none) of the QSFP`s are inserted in to device. The I2C bus likely timing out inside the kernel module.
It should detect this but seems some kind of problem with the logic

bug was reading PCIe registers that don`t exist. now resolved


Cannot update a component while rendering a different component

I'm having a warning problem. When I render another component it shows this warning

This is what I did

const isLoading = useLoading(stationListLoadingModule);
export const useLoading = createUseLoading(getLoadingState);
export const getLoadingState = (state: RootState) => state.loadingState;

Hi @vietvh-3042,
I'm afraid I'm not really able to investigate why this problem might occur given the information you have provided. Would you be able to provide me with a minimal reproducible example?

Closing due to no activity.


Feature: Can we generate multiple test.describe() in feature-gen for a specific feature file

The problem
i wanted to group few scenarios like sets of test.describe() from the feature file so that it can support running scenarios in parallel workers. Currently if i have 20 in one feature file and run in parallel mode it is taking one worker for all 20 scenarios which will delay the execution
A solution
Need support to generate multiple test.describe() in feature-gen for a specific feature file

There are some options:

use Rule inside feature file, each rule will be wrapped into own test.describe
set fullyParallel to true. In that case 20 scenarios from one feature will be shared across all available workers. Does it solve your case?

Hey I missed that option. Thanks for clarifying it. This makes sense

Working good as per the comments


Testfield keyword gives ambiguous error

TESTFIELD(Status, Status::Open); has
[AL] The call is ambiguous between the following methods or properties: 'TestField(Joker, Integer)' and 'TestField(Joker, Integer)'
procedure TestField(Field : Joker, Value : Guid)
Tests whether the contents of a field match a given value.

TESTFIELD("Allow Line Disc.", false); has
[AL] The call is ambiguous between the following methods or properties: 'TestField(Joker, Boolean)' and 'TestField(Joker, Boolean)'
procedure TestField(Field : Joker, Value : Guid)
Tests whether the contents of a field match a given value.

Is this solved in the february update? ( #1507)

This bug is not fixed yet. To give you some background on our labelling process:

label 'bug'  means that we acknowledged the issue as a bug and added to our bug backlog
labels 'bug' and 'accepted' means that we started working on the bug
labels 'bug' 'ships-in-future-update' and assigned milestone  means that we have fixed the bug in our codebase and it will be available in the marked Milestone release or in the next private Docker image shared through NDA-bound Collaborate program
label 'delivered' and issue Closed - means that the fix has been shipped in a public preview release

I've also updated the FAQ to provide more information about labels and issue lifecycle:
https://github.com/Microsoft/AL/wiki/Frequently-Asked-Questions#what-do-all-the-labels-assigned-to-issues-mean

Ok Thank you for the information :)


TestLinuxDialVsockNoListener test failure

OS: Debian sid/amd64
golang: go1.17.8 linux/amd64
github.com/mdlayher/socket: v0.2.2
I am working on updating the version of this library that's packaged for Debian, but the TestLinuxDialVsockNoListener test always fails. I see this failure via go test (below), well as in the schroot environment that is created when building the Debian package. My build setup is a minimal Debian sid install that is running within a privileged LXD container.
gibmat@build:~/golang-github-mdlayher-socket$ go test
go: downloading golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c
go: downloading golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
go: downloading golang.org/x/sys v0.0.0-20220224120231-95c6836cb0e7
go: downloading github.com/google/go-cmp v0.5.7
--- FAIL: TestLinuxDialVsockNoListener (0.00s)
    conn_linux_test.go:149: unexpected connect error (-want +got):
          any(
        - 	e"connect: connection reset by peer",
          )
FAIL
exit status 1
FAIL	github.com/mdlayher/socket	0.445s

I would suspect this probably has something to do with the kernel configuration? It passes on my Ubuntu 21.10 machine:
✔ ~/src/github.com/mdlayher/socket [main|✔]
14:09 $ uname -a
Linux matt-3 5.13.0-35-generic #40-Ubuntu SMP Mon Mar 7 08:03:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
✔ ~/src/github.com/mdlayher/socket [main|✔]
14:09 $ go version
go version go1.17.8 linux/amd64
✔ ~/src/github.com/mdlayher/socket [main|✔]
14:09 $ go test -count 1 .
ok      github.com/mdlayher/socket      0.426s

I do know that LXD uses this vsock library internally so I also wonder if somehow the test connecting to vsock local CID and max uint32 port is reaching the vsock listener for LXD.

Thanks! I verified it seems to be an issue specific to running within a LXD container; when I ran the tests on physical hardware, they all passed, and with the workaround tests are passing within the container environment as well.

No worries, there's no harm in skipping that test if the connection succeeds since we mostly just want to make sure things don't hang up on error.


refactor: use custom error for address(0) check

What does this PR introduce?
⚡ Performance
Replace revert reason strings with custom errors for OwnableUnset and address(0) check on transferOwnership(), constructor and initialize(address) functions.
This reduces the deployment cost of an ERC725 smart contract by -35,550 gas.


Remove superflous comments

Following on from the discussion in #768 , I would suggest to refrain from superfluous comments as recommended by Clean ABAP Style Guides.
Existing comments can also be cleaned up as a low-priority boy-scout-rule activity, so if found in the code we're working on, these kinds of things should be deleted:

Change history
Changed by
Commented code

Also comments should start with " not *
Example (names removed):
*--------------------------------------------------------------------*
* issue #230   - Pimp my Code
*              - <name removed>,      (wi p)              2012-12-01
*              - ...
*          aligning code
*          message made to support multilinguality
*--------------------------------------------------------------------*
* issue #237   - Check if overlapping areas exist
*              - <name removed>                        2012-12-01
* changes:     - Added raise if overlaps are detected
*--------------------------------------------------------------------*

This comment block is a textbook example of what Robert C. Martin suggests in Clean Code that comments tend to become irrelevant or even inaccurate or misleading over time. I don't think anyone cares that code was indented in 2012, and the issue numbers are from pre-GitHub days when abap2xlsx was hosted elsewhere.
99% of the time this kind of comment is just not useful and takes up space and diverts the reader's attention, thereby decreasing readability. And for the other 1% Git does a much better job of pointing us to exactly which PRs and Issues were involved in changes to any line of code.

I'm taking care of "Commented code" immediately in separate issue #945 (via abaplint rule https://rules.abaplint.org/commented_code/).


remove k3s node by node annotation?

Is your feature request related to a problem? Please describe.
We are developing k3s controlplane/bootstrap provider for ClusterAPI, and we are not sure what's the right way to remove a node from k3s cluster. I know there is a uninstall script on host vm, but there is no way to invoke that script from kubeconfig cluster connection.
ClusterAPI management cluster can only access workload cluster by the kubeconfig, I found out that there is way to add annotation "etcd.k3s.cattle.io/remove" to remove etcd member, i want to know if there is such annotation as well to remove node?
Thanks,

That is for removing the node from the etcd cluster without deleting it. If you just want it gone, use kubectl delete node.


Changed log package to tflog

KNTK - 262
Same as https://github.com/kentik/terraform-provider-kentik-synthetics/pull/81 but for cloudexport provider.

Please, fix failing check.


saving as a gif

I would like to save the loopy as a gif, is that possible?

Hi!
I think ccapture.js may help to solve this issue.

Thanks

@ncase would it be possible to bring it directly into your loopy page?


Fixed #32045 -- Doc'd GenericRelatedObjectManager methods.

Add brief description of the effect of remove() and clear() methods in
the GenericRelation manager. Specifically highlighting that these
methods delete the related  objects from the database.
Add tests for GenericRelation manager
Test that remove() and clear() will delete related objects as stated in
documentation.
Refactor tests
Set up the test objects in the setUp method.

@craigiansmith Thanks for updates :+1: Welcome aboard :boat:
I pushed small edits.


chore: rename ContractOfferService to ContractOfferResolver

What this PR changes/adds
Rename one of the ContractOfferServices to ContractOfferResolver
Why it does that
To avoid duplicated class names and let the class be more self-explainatory
Further notes

Linked Issue(s)
Closes #1248
Checklist

[ ] added appropriate tests?
[ ] performed checkstyle check locally?
[ ] added/updated copyright headers?
[ ] documented public classes/methods?
[ ] added/updated relevant documentation?
[x] assigned appropriate label? (exclude from changelog with label no-changelog)
[x] formatted title correctly? (take a look at the CONTRIBUTING and styleguide for details)

@paullatzelsperger yes, this will come with #1887 for the moment I just wanted to close this issue quickly :)

@paullatzelsperger yes, this will come with #1887 for the moment I just wanted to close this issue quickly :)

That is perfectly fine:)


Fixed #4: TCP sockets for connection

Everything else seems fine. Let's get #5 merged before we merge this.

Revert the CI parts. Those are a separate PR. Doesn't belong here

Yeah reverted the changes. But at least we know PR checks are working 😅 (The checks were successful when I added the unwanted commit to PR)

Can we have a new PR to target develop instead of master @sauravhiremath? We can merge it once that's done


Analysis for errors

Perform an analysis for errors
Search errors like:

missing imports
missing methods
missing variables
missing constants
missing classes
non implemented providers

Document the errors
How to document the fixed error

Put a short description
Single commit for addressed error

 Verificación de errores en rama dev


Fix code errors in code examples in documentation

Description

Added import statements for PolynomialFeatures, LinearRegression, Pipeline from sklearn library.
Fixed incorrect code for plotting interval widths in 'Estimating the uncertainty with different sklearn-compatible regressors' section.

Fixes #87
Type of change
Please check options that are relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:

[x] I have read the contributing guidelines
[x] I have updated the HISTORY.rst and AUTHORS.rst files
[x] Linting passes successfully : flake8 . --exclude=doc
[x] Typing passes successfully : mypy mapie examples --strict
[x] Unit tests pass successfully : pytest -vs --doctest-modules mapie
[x] Coverage is 100% : pytest -vs --doctest-modules --cov-branch --cov=mapie --pyargs mapie
[x] Documentation builds successfully : cd doc; make clean; make html

@vtaquet Can you please look into this changes? Fixes issue mentioned in #87

Codecov Report

Merging #88 (f5ae6d3) into master (aefdef4) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master       #88   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            9         9
  Lines          554       554
  Branches        42        42
=========================================
  Hits           554       554

Impacted Files
Coverage Δ

mapie/_version.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update aefdef4...f5ae6d3. Read the comment docs.

Thanks again !


Add --encryptor-instance-type to aws encrypt

We were defaulting to c4.xlarge, a terrific choice, but this instance
requires a VPC. For people with old AWS accounts and EC2 classic this
preculuded them from doing encryption outside of a specific VPC.
The update subcommand already has an --updater-instance-type option.

If we want to go for extra credit... how hard would it be to automatically choose a compatible instance type when there's no default VPC?  I believe that there's already validation code that looks up the default VPC when a subnet is specified.

The answer seems to be "probably". You can use this API to figure out if a default VPC exists: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAccountAttributes.html

Just took a closer look.  There is a get_default_vpc() function in AWSService.  You should be able to choose a different instance type if that function returns None.  If this works, I'd lean toward not adding the encryptor instance type option until we know we needed, so we have fewer knobs to turn.  Go ahead and make the call about whether you think it's worth keeping the option.

One issue I've faced in the past is AWS out-of-capacity of the hard-coded instance type which is why a flag would be nice - or have code automatically detect the out-of-capacity error and try different instance types.


Feature request: Per-server tokens

Add the ability to add multiple tokens to the proxy, specify different token to a specific server.
For example, I have the proxy, and some servers underneath that proxy. My friend join the network with his server, and I want to give him a different token, so he can't join the other servers by making a bungeecord and use that token, but he has full access to his server.

Oh sorry, I found an another thread of this. :'D
https://github.com/lucko/BungeeGuard/issues/43

This issue can be closed. Ist just a duplicate


Dependencies

Candidates

quantities: scientific units
neo: spike data structure
elephant: spike data processing (rasterize, )

Visualization tool

ephyviewer
viziphant

Have we checked ephyviewer ? This can be useful plotting tool. I dont know if it is sub package of open-ephys.

Have we checked ephyviewer ? This can be useful plotting tool. I dont know if it is sub package of open-ephys.

Its different than OpenEphys. We are using OpenEphys mostly for the data-readout. We might consider ephyviewer for post-processing. I'll add it to the list.

Also for spike sorting  trideclous can be useful.

The reference page is made in the documentation. We can list dependencies and useful external tools there.


Change documentation and samples to move away from 'instances'

Describe the feature
Just have static readonly instances that are newed up

Done


Setup supporting multiple architectures

I just realized one bit we will have to update too: https://github.com/nkrinner/automation/blob/multi-arch/scripts/qa_crowbarsetup.sh#L2351 (the code adding new repo to the provisioner barclamp). It has to contain the architecture as an attribute between the distro and the repos (suse-12.1 - x86_64 - SLES11)

I sent https://github.com/nkrinner/automation/pull/2 with some potential improvements. Not tested yet, though.


Fix two typos

[X] Have you followed the guidelines in our Contributing document?
[X] Have you checked to ensure there aren't other open Pull Requests for the same change?
[X] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

Wed Oct 30 17:03:48 GMT 2019
These are corrections to two typos found in the documentation.
Please clarify - most of the documents are written in American english.   Is is considered a misspelling  for  a British english spelled word?

Thanks @rprimus!

Please clarify - most of the documents are written in American english. Is is considered a misspelling for a British english spelled word?

I'm not sure I understand the question: can you clarify?

Wed Oct 30 17:16:48 GMT 2019
In README.md line 4:

summarised on the homepage

Summarised above is the British spelling of the American word summarized.
WRT the project,  would summarised be considered a spelling error?

https://github.com/Homebrew/brew/blob/eda0220e5f807482e4feb327e34375de308ea0fc/docs/Prose-Style-Guidelines.md#style-and-usage notes we generally use British English. It's hard to enforce this but if you can suggest tooling to do so: I'm all ears.


ENH: Apply numpy function to named axes

I'm currently transitioning sequences of pandas Panels over to xray Datasets. Part of our process applies a set of functions to Panels; for example:
panel = panel.apply(lambda x: x.rank(ascending=False), axis=(1, 2))
df = np.nanpercentile(panel, q=75, axis=2)

One of the benefits of xray is the clarity that comes from named axes. Is there a way of applying a function over named axes?
For example:
result = data_array.apply(np.argsort, axis=('Risk', 'Dates'))
result = data_array.apply(np.nanpercentile, axis='Dates')

Yes, use the reduce method -- which should probably be called something more appropriately generic such as aggregate given that it doesn't only do reduces, e.g.,
In [5]: data_array = xray.DataArray(np.random.randn(3, 4, 5), dims=['x', 'y', 'z'])

In [14]: data_array.reduce(np.nanpercentile, q=95, dim=['x', 'y'])
Out[14]:
<xray.DataArray (z: 5)>
array([ 1.79306097,  0.9788271 ,  0.9385694 ,  1.30198262,  1.78693993])
Coordinates:
  * z        (z) int64 0 1 2 3 4

To apply an operation along an axis that doesn't do an aggregation, you can use the get_axis_num, e.g.,
In [27]: xray.DataArray(np.argsort(data_array, axis=data_array.get_axis_num('x')), data_array.coords)
Out[27]:
<xray.DataArray (x: 3, y: 4, z: 5)>
array([[[2, 1, 1, 2, 0],
        [0, 2, 2, 1, 0],
        [1, 1, 2, 1, 0],
        [2, 0, 0, 0, 0]],

       [[1, 2, 2, 0, 2],
        [2, 1, 1, 0, 1],
        [2, 0, 1, 0, 2],
        [1, 1, 2, 2, 1]],

       [[0, 0, 0, 1, 1],
        [1, 0, 0, 2, 2],
        [0, 2, 0, 2, 1],
        [0, 2, 1, 1, 2]]])
Coordinates:
  * x        (x) int64 0 1 2
  * y        (y) int64 0 1 2 3
  * z        (z) int64 0 1 2 3 4

We don't currently have a convenience method for the later but that might be good idea. I'm not entirely sure if it should be called DataArray.apply, but it could reuse maybe_wrap_array from Dataset.apply and add auto-conversion from dim to axis arguments

Wonderful, thanks @shoyer.
FWIW, reduce doesn't seem well documented. It also looks very similar to apply from pandas, albeit with the requirement (rather than the option) to lose a dimension.
I also found .groupby('x').apply(func), which I think is broadly equivalent to a pandas .apply(func, axis=0).
Closing for now, cheers.


Master volume possible?

Hi there,
My inears are very effective so everything is extremely loud.
Is it posible to implement a master volume somewhere?

Hi,
my app just uses the available commands of the amp and there's no such master volume command. This must be implemented by NUX. You can reduce volume by using the amplifier level, IR gain or one of those: https://www.amazon.com/Inline-Control-3-5MM-Headphones-Black/dp/B008DJTB32

Great tip about the volume control on the chord.

If, after a patch is loaded, the app set the gain and volume to the current knob position (possible?), the knobs could act as a master volume (for internal fx at least).


Refactoring of the ShumwayCom

Removes FirefoxCom
Moves Chrome privileged features from the stream converter
Simplifies ShumwayCom

/botio preview

This is an extremely nice simplification! So, so much easier to understand and verify.
Land away! (But the two nits I mentioned should be addressed.)


Fix broken link for jollysfastvnc 1.52

If there’s a checkbox you can’t complete for any reason, that's okay, just explain in detail why you weren’t able to do so.
After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} reports no offenses.
[x] The commit message includes the cask’s name and version.

Additionally, if adding a new cask:

[x] Named the cask according to the token reference.
[x] brew cask install {{cask_file}} worked successfully.
[x] brew cask uninstall {{cask_file}} worked successfully.
[ ] Checked there are no open pull requests for the same cask.
[ ] Checked that the cask was not already refused in closed issues.

You’re not adding a new cask. You’re not supposed to fill the second part.


Portable Installation (Don't put .ini settings in .local directory on steam deck)

Is it possible to have the pd.ini file generated in the same folder as everything else rather than elsewhere? Very annoying to navigate to hidden system folders on Steam Deck and have to manually change the settings on any of my installs.

Yes. If pd.exe is in a writable directory, either create an empty pd.ini in it or copy the saves and config from the original save directory into it.

So if I copy the pd.ini file from home/.local/share/perfectdark to my pd.exe it will find it there and use it?
Why not have it generated there in the first place?
I haven't run the game yet, but are you saying the saves will go to that system folder too? I guess I'm just not sure what the advantage is of doing things this way when it could all be in the install folder.

On Linux binaries are commonly stored in non-writable directories such as /usr/bin, so the game assumes that this will be the case and creates the saves and configs in ~/.local/share/perfectdark by default. If it detects a config file (pd.ini) next to the binary, it will use the binary folder instead.

So once I put my pd.ini in the same folder it will also generate saves in that folder?
Seems like it would be more helpful to attempt by default to put it in the same folder, and then if that doesn't work put it in the .local directory?

Yes. You can also just create an empty pd.ini and it will also work.
The latter is more or less how it works on Windows, but I made it default to ~/ on Linux since that's way more common over there, in my experience, and also at the time it was requested for flatpak support. Really up to preference what the default is.

Awesome, thanks for the help!


Proper loading states

fixes #433
fixes #659

@romicolman
Can you please try? It now properly handle states/errors for all the main operations (create/save/delete). It's better to test on large files.

@romicolman
Thanks.
Reverted the change, please review (without a description and with this inconsistent order of actions the menu feels unfinished to me but might still be good enough as you say).

Can we please merge this after: https://github.com/okfn/opendataeditor/pull/654 ? these are three PRs with too many changes all based in main, i dont think it's a good idea. It's going to be very difficult with the merging

Thanks!


Strange behavior when polygon is closed

When polygon is not closed, everything is OK
When polygon is closed (firstPoint==lastPoint), the intersection is weird. Weird means

When remove (just drop) the last closing point, the result is:

I exactly face the same issue. The following code (should) computes the intersection between two basic squares.
console.log(greinerHormann.intersection(
  [
    [0, 0], [0, 1], [1, 1], [1, 0], [0, 0]
  ],
  [
    [0.5, 0.5], [0.5, 2], [2, 2], [2, 0.5], [0.5, 0.5]
  ]
));

And instead of returning [[0.5, 0.5], [0.5, 1], [1, 1], [1, 0.5], [0.5, 0.5]]  it returns
[ [ [ 1, 0.5 ],
    [ 1, 0 ],
    [ 0, 0 ],
    [ 0, 0 ],
    [ 0, 1 ],
    [ 1, 1 ],
    [ 1, 0.5 ] ] ]

which corresponds to the first square...

Ditto, I've run into this as well.

I think what you guys are facing is a Leaflet issue.
In Leaflet polygons should not have the same first and last coords.
From the docs (https://leafletjs.com/reference-1.4.0.html#polygon)

A class for drawing polygon overlays on a map. Extends Polyline. Note that points you pass when creating a polygon shouldn't have an additional last point equal to the first one — it's better to filter out such points.

In Leaflet polygons should not have the same first and last coords.

I'd go as far as to say that this is how other polygon clipping algorithms work to be honest. For example, in Clipper you can add both polygons (closed) and polylines (open), and this is explicitly distinguished via closed = true parameter when adding paths.


Admin>>Languages>>Change Right to left for respective language

RTL implemention for language dropdown completed need to do UI changes as per RTL


chore(main): release 1.0.0

:robot: I have created a release beep boop
1.0.0 (2024-02-25)
Miscellaneous Chores

release 1.0.0 (d898ca6)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/pythoninthegrass/mvp/releases/tag/v1.0.0 :sunflower:


Group Endpoints into different categories

What bug or feature you wants to report.
As of now, all the endpoints are in one file. These endpoints can be classified into different categories like:

General Finance
Banking
Stocks/Bonds
Corporate Finance
Financial Markets

Great idea, do it resposibly.

Hey, @nikhil25803
Sorry I wont be able to work on this issue since I'm not sure about which categories the each formula belongs to.
Thanks


Implement list_alternate_ids_for_purchase_order for purchase order store

Implement sqlite and postgres implementations

This story is out-of-date and no longer relevant.


Support for Typst 0.11.0+

I thought I would put in a request to build the grammar to bring it up to date with 0.11.1.  They added a few new keywords like context (https://typst.app/docs/changelog/).  While Typst documents will still compile backwards compatible (I checked), I'm having trouble with typst-ts-mode in Emacs.  I believe it's failing because it's checking for context support and not finding it.  Large thread here (https://todo.sr.ht/~meow_king/typst-ts-mode/50#event-372091) where I was trying to figure out what's happening with meow_king.
Thanks for whatever you can do for this.  If this gets added and then built into the tree-sitter-langs repository, it'll probably solve things.  I rely on the precompiled binaries due to working in Windows.

Closing this issue.  I see that it's already been built for 0.11.0+.  However I will add a issue to tree-sitter-langs because I think the submodule is pointed at the older commit.


Queryset filtering issues for Djangae models

DjangoNonrelPaginator  is not working properly for Djangae models having querset filter.
Query: Model.objects.filter(status=1)
potatopage/utils.py", line 22, in traverse_where_tree
if lookup in n:
TypeError: argument of type 'Exact' is not iterable

Model.objects.all() works fine. Please help.

Hi,
The potatopage library was designed for use with Django-Nonrel, and doesn't
work with Djangae.  See the Djangae pagination docs
https://djangae.readthedocs.io/en/latest/pagination/ for the solutions
with Djangae.
Regards
Adam
On 9 January 2017 at 10:16, jerinqb<EMAIL_ADDRESS>wrote:

DjangoNonrelPaginator is not working properly for Djangae
https://github.com/potatolondon/djangae models having querset filter.
Query: Model.objects.filter(status=1)
potatopage/utils.py", line 22, in traverse_where_tree
if lookup in n:
TypeError: argument of type 'Exact' is not iterable
Model.objects.all() works fine. Please help.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/potatolondon/potatopage/issues/5, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAQfr7s2xuFNytMVYNH3LSBcscH3f_PVks5rQgjkgaJpZM4LeGqo
.


MSALGuard Does Not Validate Token Audiance

Library
@azure/msal-angular 1.1.1
Framework
Angular 11
Description
We have multiple websites on the same domain running under Kuberneties with SSO, when we switch between websites the token is not refreshed and it tries to use the same token, probably as they are in the same domain, for example
test.xx.yy/webapp1
test.xx.yy/webapp2
The Azure clientids are different for both websites and MSAL Angular should check the audiance (aud) claim of the token against the clientid of the application and refresh the token if they are different. This is what we have done creating our own guard which compares the aud and clientid and if different call login which results in a silent refresh getting the appropriate token. We keep roles in the token and this causes an issue as without the correct token, the token does not hold the correct roles.
Error Message
None
MSAL Configuration
Reproduction steps
Create two websites under the same domain, switch between the websites and in the token check the aud matches the clientid of the website you have navigated to.

## Expected behavior
 The token should be for the right website, the aud claim of the token should match the Azure clientid of the website

## Identity Provider

-] Azure AD

## Browsers/Environment

-  Chrome

## Security

- [Yes ] Is this issue security related?

@McInnesIan Thanks for bringing this to our attention. This does appear to be a bug in our core 1.x library, I will try to have a fix shortly.


Definition of "Users synced and homed online" is not accurate in User statistics and organization information

Based on ICM 43772294 , the provisioning (OCDM) team says the definition of “Users synced and homed online” is hybrid users (customers that have an on-prem SfB deployment; some users are on-prem and some online, but this filter only shows online users).
However currently  "How to change Skype for Business Online user statistics"  page says  “This is the number of Skype for Business Online users who are synchronized from an on-premises Active Directory.”

I have fixed it. Thanks for the feedback. In the future, you can click the Edit button and it will submit a pull request. I do appreciate the details though. Thanks.


Weather Condition Category incorrect

Hi,
I installed your plugin to make some automations with the telegram Plugin etc.
According to your README file you configured the plugin like this:
Condition Category (Sun = 0, Clouds = 1, Rain = 2, Snow = 3)
I then checked in the controller App to use 0, 1, 2, 3 as a condition but there it shows me for 0: Bewoelkt, 1 for Nebel, ...
So something is not correct here...
If I can not properly choose the condition category numbers, do you know if there is a way to use your sentence for Weather Condition in Telegram? So that it checks your sentence and copies it into a telegram notification?
Thx in advance!

Hey, which weather service do you use?

I am using the Dark Sky Weather Service.
Today for example it should rain in Berlin 92%. Weather Condition says Überwiegend bewölkt bis Abends. And Weather Condition Category is set to 0.

The Now section seems correct with category 2 and Nieselregen. But on all the other days, it does not update the category!

Will be fixed in v3.0.0. The keyword for "Überwiegend bewölkt" in darsky is "partly-cloudy-day". I expected this keyword to imply a overall sunny day. I changed it now to cloudy (1).

Alright, this is fixed in v3.0.0-beta.1 This version also has an option for more detailed categories.
You can test the beta with npm install -g homebridge-weather-plus@beta


fix: add 2 helper CLI arguments

to make working with directories and reusing build packs in tests/pipelines easier

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign jstrachan
You can assign the PR to them by writing /assign @jstrachan in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Constant compactor warnings due to deletion delay

Thanos, Prometheus and Golang version used:
We bump to latest Thanos on every Monday

Object Storage Provider:
gc bucket
What happened:
I was searching for resolution of my issue and found a lot of similar issues on git and here in slack. It is very scary none of the issues had a proper answer or solution.
Basically,
we run compactor with args:
    - args:
        - compact
        - '--log.level=debug'
        - '--log.format=logfmt'
        - '--http-address=<IP_ADDRESS>:10902'
        - '--data-dir=/data'
        - '--retention.resolution-raw=164h'
        - '--retention.resolution-5m=164h'
        - '--retention.resolution-1h=164h'
        - '--consistency-delay=30m'
        - '--objstore.config-file=/conf/objstore.yml'
        - '--compact.concurrency=1'
        - '--downsampling.disable'
        - '--bucket-web-label=cluster'
        - '--compact.skip-block-with-out-of-order-chunks'
        - |
          --selector.relabel-config=
            - action: keep
              source_labels:
                - cluster
              regex: 'ci-k8s'
        - '--wait'

and we have noticed spam in logs like:
2024-02-16 00:31:30.153
ts=2024-02-15T22:31:30.153276892Z caller=blocks_cleaner.go:58 level=info msg="cleaning of blocks marked for deletion done"
2024-02-16 00:31:30.153
ts=2024-02-15T22:31:30.153246614Z caller=blocks_cleaner.go:44 level=info msg="started cleaning of blocks marked for deletion"
2024-02-16 00:31:30.153
ts=2024-02-15T22:31:30.153233803Z caller=clean.go:61 level=info msg="cleaning of aborted partial uploads done"
2024-02-16 00:31:30.153
ts=2024-02-15T22:31:30.153217266Z caller=clean.go:34 level=info msg="started cleaning of aborted partial uploads"
2024-02-16 00:31:30.153
ts=2024-02-15T22:31:30.153132042Z caller=fetcher.go:557 level=info component=block.BaseFetcher msg="successfully synchronized block metadata" duration=12.574082672s duration_ms=12574 cached=1135 returned=50 partial=0
2024-02-16 00:31:17.579
ts=2024-02-15T22:31:17.579080936Z caller=fetcher.go:407 level=debug component=block.BaseFetcher msg="fetching meta data" concurrency=32
2024-02-16 00:31:17.579
ts=2024-02-15T22:31:17.579036132Z caller=retention.go:47 level=info msg="optional retention apply done"
2024-02-16 00:31:17.579
ts=2024-02-15T22:31:17.57901602Z caller=block.go:185 level=warn msg="requested to mark for deletion, but file already exists; this should not happen; investigate" err="file 01GYBSC0YF8Z0K1WG4QARTDZZ7/deletion-mark.json already exists in bucket"
2024-02-16 00:31:17.561
ts=2024-02-15T22:31:17.561785129Z caller=retention.go:41 level=info msg="applying retention: marking block for deletion" id=01GYBSC0YF8Z0K1WG4QARTDZZ7 maxTime="2023-04-19 00:00:00 +0000 UTC"

The compactor goes through the same blocks in frequent loop trying to mark them and fire warning.

What you expected to happen:
My theory is that the default deletion delay is 48h. And wait period is 5m. Therefore compactor runs every 5 minutes and tries to mark the blocks which were marked before but not deleted due to 48h delay.
If this is correct, then the warning should not be fired if the deletion mark was created < deletion delay.
And maybe the default wait-period should be increased (to 48h?). I don't know if it is really needed to run compaction each 5m and run over the same blocks...
How to reproduce it (as minimally and precisely as possible):
It should be reproducible if there are any marked for deletion blocks.
Full logs to relevant components:
Anything else we need to know:
I also think this leads to increased expenses, no? Not sure how it works, but compactor probably downloads some data from bucket and this is paid operation?
Environment:

k8s
deploying with bitnami helm

Our environments seem to be similar, and we also face the same issue. Does your thanos_blocks_meta_synced report a lot of duplicates as well?

This is an image from bitnami's bucketweb that shows "duplicate" blocks with different resolution

@PantelisK Different resolution is expected behaviour when downsampling is turned on.
In our case it is:

'--downsampling.disable'
Because we don't wan't to consume bucket space.
Downsampling main purpose is to improve performance when querieng long data ranges.

@andrejshapal thanks for the clarification. I though the duplicate was a problem :)


USB host power

I want to use the USB port in host mode. How can I set the USB connector to supply power when in USB host mode ? If not in software, how could I modify the board so that the USB port supplies power ? I am supplying power to the board via the 5V pin and don't need the battery feature.

It is not necessary to use battery power. The 5V pin interface and USB 5V are the same line. You can connect 5V from the 5V pin, so USBC will also have 5V output.

I don't get any power from the USBC port after applying 5V to the 5V pin. The 3V3 pin provides 3V3 and the board is working correctly it seems because the loaded sketch is outputting data as expected. Are you sure the 5V pin is the same as the USBC 5V ? For reference I ran the same sketch on a ESP32S3 supermini board and its USBC port does provide power.

Oh! Sorry, the QT has a voltage switching function, so you can't use this function without removing the original part. If you need to transfer 5V to USB 5V, you need to short-circuit the diode D3.

Excellent, it works. Thanks for the help !


Native access functions

The native API lacks functions for Wayland and Mir.

@jadahl Do the Wayland parts of 5f2a32cff4e770376776600f939847d90b6c5417 look sane?

@BrandonSchaefer Do the Mir parts of 5f2a32cff4e770376776600f939847d90b6c5417 look sane?

Yes, looks reasonable. Though, note that one "window" may potentially consist of multiple wl_surface's (for example YUV video frame with RGBA controls), so it could be good to clarify that its the "main" wl_surface.

Yup looks good to me


not able to update user profile

Describe the bug
updating a user profile results in an error message.
To Reproduce
Steps to reproduce the behavior:

create a user name with a hyphen (-) and spaces( ) and uppercase letters in the user name, during the initial setup/wizard.
log in as user.
Try and update any field for user name 'name-name'

Expected behavior
Do not allow the unallowed character (-) and spaces ( ) to be used in the username during the initial setup/wizard.
The same error message should be displayed during the initial setup.
Screenshots

Thanks for your feedback.

Our username rules can only contain 0-9, lowercase letters a-z, -, . , , and if there are spaces, they will be replaced by ''.
2.We did not check this rule during registration and initialization, we will fix this bug in 1.1.0.


Rendering window not showing for each trajectory selection

working with gym==0.12.1, you can see the window appear for nano second!
https://user-images.githubusercontent.com/63067900/230371868-3c4e4800-6140-473e-ab7e-9d585a28d7a0.mp4

Solved it using gym==0.15.7

solved it using gym==0.15.7


WIP: node upgrade & remove python 2

Updates the base image to:
Update Node.js to latest LTS
Remove Python 2
A few other cleanups

No more python2. Hooray :)

We are tracking this internally and these changes will happen when we move to CBL-Mariner: https://github.com/microsoft/CBL-Mariner


[NOT4REVIEW]Add feature branches into workflow action

Signed-off-by: Shuyang Xin<EMAIL_ADDRESS>

Codecov Report

:exclamation: No coverage uploaded for pull request base (feature/externalnode@516f72e). Click here to learn what that means.
The diff coverage is n/a.

@@                   Coverage Diff                   @@
##             feature/externalnode    #3549   +/-   ##
=======================================================
  Coverage                        ?   43.37%
=======================================================
  Files                           ?      210
  Lines                           ?    25226
  Branches                        ?        0
=======================================================
  Hits                            ?    10943
  Misses                          ?    13195
  Partials                        ?     1088

Flag
Coverage Δ

unit-tests
43.37% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

@XinShuYang I merged already :(, but this should really have been merged into main and then you would have rebased your feature branch (or merged main in your feature branch). If someone opens a new feature branch, they should be able to have this change. Could you open the same PR against main?


about @only.linux

I reckon that you might have neglected the situation nowadays when the return string of linux platform is linux2, here is my test, it failed and raised an OSError, which is not the case:
➜  ~ uname -a Linux amor 4.5.6-200.fc23.x86_64 #1 SMP Wed Jun 1 21:28:20 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
➜  ~ python -c "import sys;print sys.platform;"
linux2

thx, fixed