Peridot CLI - Allow admins to request package re-signs in the case a badly-signed RPM makes it through

Is this feature request related to a problem? If so, please describe it.
Sometimes Keykeeper--because it hates us--doesn't sign an RPM or signs it "improperly" such that subsequent reposyncs during compose fail due to improperly signed packages.
This requires an admin to go and request keykeeper resign the RPMs, and is currently a manual process that needs kubernetes administrator permissions.
Describe the solution you'd like to see
Implement a command like
peridot project --project-id $PROJECT_ID resign-packages $PKGS...

That spawns a task to resign the named RPMs
Have you considered alternative solutions/features? If so, please describe them.
Fix keykeeper.. Eventually this command will not be used very frequently and could be removed.
There are inherent security implications around opening up this API, but permissions are scoped such that these risks are mitigated at least mostly.
Version and Build Information
n/a
Additional Context
No response

#62 should hopefully fix this. Let's run it for a while and see, manual tests does seem to correctly error out at least.


e2e: -count=N does not work because channel namespace is deleted

Trying to run the same tests multiple times for evaluating test flakiness breaks because the channel is deleted during cleanup.
Ideally the flow will be:

global setup before all tests
run one or more tests count times
global teardown before existing

I'm not sure this is possible with -count=N.
If not possible and the channel need to be deleted, we mitigate this in several ways:

Wait until the channel and the namespace are deleted during cleanup, so installing the channel again will not fail.
Add a flag to skip the cleanup, to be used for special cases like -count=N
Add flag to skip adding/removing the channel, it can be added manually
Implement -count=N internally so we can control setup and teardown

Example run
% ./run.sh --config ../e2e.yaml -run TestSuites/Exhaustive/Deploy-cephfs/Subscr -count=2
Running tests...
2024-10-28T19:48:18.586+0200	INFO	e2e/main_test.go:41	Global setting	{"Timeout": 600}
2024-10-28T19:48:18.587+0200	INFO	e2e/main_test.go:42	Global setting	{"Retry Interval": 30}
=== RUN   TestSuites
2024-10-28T19:48:18.587+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
2024-10-28T19:48:18.618+0200	INFO	util/crud.go:77	channel ramen-gitops is created
=== RUN   TestSuites/Exhaustive/Deploy-cephfs
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#01
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#02
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== CONT  TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy
2024-10-28T19:48:18.619+0200	INFO	deployers/subscription.go:31	enter Deploy subscr-deploy-cephfs-busybox
2024-10-28T19:48:23.750+0200	INFO	deployers/retry.go:32	subscription subscr-deploy-cephfs-busybox phase is Propagated
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable
2024-10-28T19:48:23.751+0200	INFO	dractions/actions.go:39	enter EnableProtection subscr-deploy-cephfs-busybox
2024-10-28T19:48:23.755+0200	INFO	dractions/actions.go:52	got clusterName dr1 from subscr-deploy-cephfs-busybox-decision-1
2024-10-28T19:48:23.755+0200	INFO	dractions/actions.go:54	update placement subscr-deploy-cephfs-busybox annotation
2024-10-28T19:48:23.762+0200	INFO	dractions/actions.go:73	create drpc subscr-deploy-cephfs-busybox
2024-10-28T19:51:23.842+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover
2024-10-28T19:51:23.843+0200	INFO	dractions/actions.go:115	enter Failover subscr-deploy-cephfs-busybox
2024-10-28T19:51:23.851+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T19:51:23.861+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox failover to dr2
2024-10-28T19:52:28.884+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is FailedOver
2024-10-28T19:53:58.901+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate
2024-10-28T19:53:58.901+0200	INFO	dractions/actions.go:130	enter Relocate subscr-deploy-cephfs-busybox
2024-10-28T19:53:58.903+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T19:53:58.909+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox relocate to dr1
2024-10-28T19:56:33.939+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is Relocated
2024-10-28T19:57:03.947+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable
2024-10-28T19:57:03.947+0200	INFO	dractions/actions.go:99	enter DisableProtection subscr-deploy-cephfs-busybox
2024-10-28T19:57:03.947+0200	INFO	dractions/actions.go:104	delete drpc subscr-deploy-cephfs-busybox
2024-10-28T19:57:38.966+0200	INFO	dractions/retry.go:183	drpc subscr-deploy-cephfs-busybox is deleted
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy
2024-10-28T19:57:38.966+0200	INFO	deployers/subscription.go:62	enter Undeploy subscr-deploy-cephfs-busybox
2024-10-28T19:57:39.009+0200	INFO	util/crud.go:99	channel ramen-gitops is deleted
--- PASS: TestSuites (0.00s)
    --- PASS: TestSuites/Exhaustive (0.06s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#02 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#01 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs (0.00s)
            --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr (560.38s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy (5.13s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable (180.09s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover (155.06s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate (185.05s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable (35.01s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy (0.03s)
=== RUN   TestSuites
2024-10-28T19:57:39.027+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
    main_test.go:64: failed to ensure channel: channels.apps.open-cluster-management.io "ramen-gitops" is forbidden: unable to create new content in namespace ramen-samples because it is being terminated
--- FAIL: TestSuites (0.00s)
    --- FAIL: TestSuites/Exhaustive (0.05s)
FAIL
exit status 1
FAIL	github.com/ramendr/ramen/e2e	561.243s

Workaround
Run the entire test multiple times instead of using -count:
% for i in $(seq 10); do ./run.sh -run TestSuites/Exhaustive/Deploy-cephfs/Subscr; done

Tasks

[ ] Understand why the channel is not delete once at the end of all tests when running with -count=N
[ ] Test way to mitigate this issue

Tested the workaround - it does not solve the issue - starting the test still fails sometimes because the channel namespace is still deleting when we start the tests. So the root cause is not waiting until the namespace is deleted during cleanup.
Example run:
% for i in $(seq 5); do ./run.sh --config ../e2e.yaml -run TestSuites/Exhaustive/Deploy-cephfs/Subscr; done
Running tests...
2024-10-28T21:07:52.744+0200	INFO	e2e/main_test.go:41	Global setting	{"Timeout": 600}
2024-10-28T21:07:52.744+0200	INFO	e2e/main_test.go:42	Global setting	{"Retry Interval": 30}
=== RUN   TestSuites
2024-10-28T21:07:52.745+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
2024-10-28T21:07:52.771+0200	INFO	util/crud.go:77	channel ramen-gitops is created
=== RUN   TestSuites/Exhaustive/Deploy-cephfs
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#01
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#02
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== CONT  TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy
2024-10-28T21:07:52.772+0200	INFO	deployers/subscription.go:31	enter Deploy subscr-deploy-cephfs-busybox
2024-10-28T21:07:57.908+0200	INFO	deployers/retry.go:32	subscription subscr-deploy-cephfs-busybox phase is Propagated
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable
2024-10-28T21:07:57.908+0200	INFO	dractions/actions.go:39	enter EnableProtection subscr-deploy-cephfs-busybox
2024-10-28T21:07:57.913+0200	INFO	dractions/actions.go:52	got clusterName dr1 from subscr-deploy-cephfs-busybox-decision-1
2024-10-28T21:07:57.913+0200	INFO	dractions/actions.go:54	update placement subscr-deploy-cephfs-busybox annotation
2024-10-28T21:07:57.920+0200	INFO	dractions/actions.go:73	create drpc subscr-deploy-cephfs-busybox
2024-10-28T21:11:28.019+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover
2024-10-28T21:11:28.019+0200	INFO	dractions/actions.go:115	enter Failover subscr-deploy-cephfs-busybox
2024-10-28T21:11:28.022+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T21:11:28.027+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox failover to dr2
2024-10-28T21:12:03.047+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is FailedOver
2024-10-28T21:13:33.088+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate
2024-10-28T21:13:33.088+0200	INFO	dractions/actions.go:130	enter Relocate subscr-deploy-cephfs-busybox
2024-10-28T21:13:33.091+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T21:13:33.099+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox relocate to dr1
2024-10-28T21:16:08.133+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is Relocated
2024-10-28T21:16:38.139+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable
2024-10-28T21:16:38.139+0200	INFO	dractions/actions.go:99	enter DisableProtection subscr-deploy-cephfs-busybox
2024-10-28T21:16:38.139+0200	INFO	dractions/actions.go:104	delete drpc subscr-deploy-cephfs-busybox
2024-10-28T21:17:13.153+0200	INFO	dractions/retry.go:183	drpc subscr-deploy-cephfs-busybox is deleted
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy
2024-10-28T21:17:13.153+0200	INFO	deployers/subscription.go:62	enter Undeploy subscr-deploy-cephfs-busybox
2024-10-28T21:17:13.229+0200	INFO	util/crud.go:99	channel ramen-gitops is deleted
--- PASS: TestSuites (0.00s)
    --- PASS: TestSuites/Exhaustive (0.05s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#01 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#02 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs (0.00s)
            --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr (560.45s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy (5.14s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable (210.11s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover (125.07s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate (185.05s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable (35.01s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy (0.06s)
PASS
ok  	github.com/ramendr/ramen/e2e	561.167s
Running tests...
2024-10-28T21:17:17.191+0200	INFO	e2e/main_test.go:41	Global setting	{"Timeout": 600}
2024-10-28T21:17:17.192+0200	INFO	e2e/main_test.go:42	Global setting	{"Retry Interval": 30}
=== RUN   TestSuites
2024-10-28T21:17:17.192+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
    main_test.go:64: failed to ensure channel: channels.apps.open-cluster-management.io "ramen-gitops" is forbidden: unable to create new content in namespace ramen-samples because it is being terminated
--- FAIL: TestSuites (0.00s)
    --- FAIL: TestSuites/Exhaustive (0.02s)
FAIL
exit status 1
FAIL	github.com/ramendr/ramen/e2e	0.688s
Running tests...
2024-10-28T21:17:19.117+0200	INFO	e2e/main_test.go:41	Global setting	{"Timeout": 600}
2024-10-28T21:17:19.118+0200	INFO	e2e/main_test.go:42	Global setting	{"Retry Interval": 30}
=== RUN   TestSuites
2024-10-28T21:17:19.118+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
2024-10-28T21:17:19.144+0200	INFO	util/crud.go:77	channel ramen-gitops is created
=== RUN   TestSuites/Exhaustive/Deploy-cephfs
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#01
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#02
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== CONT  TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy
2024-10-28T21:17:19.145+0200	INFO	deployers/subscription.go:31	enter Deploy subscr-deploy-cephfs-busybox
2024-10-28T21:17:24.226+0200	INFO	deployers/retry.go:32	subscription subscr-deploy-cephfs-busybox phase is Propagated
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable
2024-10-28T21:17:24.226+0200	INFO	dractions/actions.go:39	enter EnableProtection subscr-deploy-cephfs-busybox
2024-10-28T21:17:24.230+0200	INFO	dractions/actions.go:52	got clusterName dr1 from subscr-deploy-cephfs-busybox-decision-1
2024-10-28T21:17:24.230+0200	INFO	dractions/actions.go:54	update placement subscr-deploy-cephfs-busybox annotation
2024-10-28T21:17:24.237+0200	INFO	dractions/actions.go:73	create drpc subscr-deploy-cephfs-busybox
2024-10-28T21:18:54.314+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover
2024-10-28T21:18:54.314+0200	INFO	dractions/actions.go:115	enter Failover subscr-deploy-cephfs-busybox
2024-10-28T21:18:54.318+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T21:18:54.334+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox failover to dr2
2024-10-28T21:19:29.352+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is FailedOver
2024-10-28T21:21:29.369+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate
2024-10-28T21:21:29.369+0200	INFO	dractions/actions.go:130	enter Relocate subscr-deploy-cephfs-busybox
2024-10-28T21:21:29.372+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T21:21:29.377+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox relocate to dr1
2024-10-28T21:24:04.414+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is Relocated
2024-10-28T21:25:04.429+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable
2024-10-28T21:25:04.429+0200	INFO	dractions/actions.go:99	enter DisableProtection subscr-deploy-cephfs-busybox
2024-10-28T21:25:04.429+0200	INFO	dractions/actions.go:104	delete drpc subscr-deploy-cephfs-busybox
2024-10-28T21:25:39.451+0200	INFO	dractions/retry.go:183	drpc subscr-deploy-cephfs-busybox is deleted
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy
2024-10-28T21:25:39.451+0200	INFO	deployers/subscription.go:62	enter Undeploy subscr-deploy-cephfs-busybox
2024-10-28T21:25:39.516+0200	INFO	util/crud.go:99	channel ramen-gitops is deleted
--- PASS: TestSuites (0.00s)
    --- PASS: TestSuites/Exhaustive (0.05s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#02 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#01 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs (0.00s)
            --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr (500.36s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy (5.08s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable (90.09s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover (155.06s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate (215.06s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable (35.02s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy (0.05s)
PASS
ok  	github.com/ramendr/ramen/e2e	501.027s
Running tests...
2024-10-28T21:25:43.577+0200	INFO	e2e/main_test.go:41	Global setting	{"Timeout": 600}
2024-10-28T21:25:43.578+0200	INFO	e2e/main_test.go:42	Global setting	{"Retry Interval": 30}
=== RUN   TestSuites
2024-10-28T21:25:43.578+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
    main_test.go:64: failed to ensure channel: channels.apps.open-cluster-management.io "ramen-gitops" is forbidden: unable to create new content in namespace ramen-samples because it is being terminated
--- FAIL: TestSuites (0.00s)
    --- FAIL: TestSuites/Exhaustive (0.03s)
FAIL
exit status 1
FAIL	github.com/ramendr/ramen/e2e	0.683s
Running tests...
2024-10-28T21:25:45.516+0200	INFO	e2e/main_test.go:41	Global setting	{"Timeout": 600}
2024-10-28T21:25:45.517+0200	INFO	e2e/main_test.go:42	Global setting	{"Retry Interval": 30}
=== RUN   TestSuites
2024-10-28T21:25:45.517+0200	INFO	e2e/main_test.go:57	TestSuites
=== RUN   TestSuites/Exhaustive
=== PAUSE TestSuites/Exhaustive
=== CONT  TestSuites/Exhaustive
2024-10-28T21:25:45.544+0200	INFO	util/crud.go:77	channel ramen-gitops is created
=== RUN   TestSuites/Exhaustive/Deploy-cephfs
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#01
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs#02
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#02
=== CONT  TestSuites/Exhaustive/Deploy-cephfs#01
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== PAUSE TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== CONT  TestSuites/Exhaustive/Deploy-cephfs/Subscr
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy
2024-10-28T21:25:45.545+0200	INFO	deployers/subscription.go:31	enter Deploy subscr-deploy-cephfs-busybox
2024-10-28T21:25:50.595+0200	INFO	deployers/retry.go:32	subscription subscr-deploy-cephfs-busybox phase is Propagated
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable
2024-10-28T21:25:50.595+0200	INFO	dractions/actions.go:39	enter EnableProtection subscr-deploy-cephfs-busybox
2024-10-28T21:25:50.599+0200	INFO	dractions/actions.go:52	got clusterName dr1 from subscr-deploy-cephfs-busybox-decision-1
2024-10-28T21:25:50.599+0200	INFO	dractions/actions.go:54	update placement subscr-deploy-cephfs-busybox annotation
2024-10-28T21:25:50.609+0200	INFO	dractions/actions.go:73	create drpc subscr-deploy-cephfs-busybox
2024-10-28T21:27:20.679+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover
2024-10-28T21:27:20.680+0200	INFO	dractions/actions.go:115	enter Failover subscr-deploy-cephfs-busybox
2024-10-28T21:27:20.682+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T21:27:20.688+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox failover to dr2
2024-10-28T21:27:55.707+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is FailedOver
2024-10-28T21:28:55.717+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate
2024-10-28T21:28:55.717+0200	INFO	dractions/actions.go:130	enter Relocate subscr-deploy-cephfs-busybox
2024-10-28T21:28:55.719+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
2024-10-28T21:28:55.725+0200	INFO	dractions/actions.go:175	update drpc subscr-deploy-cephfs-busybox relocate to dr1
2024-10-28T21:31:00.789+0200	INFO	dractions/retry.go:114	drpc subscr-deploy-cephfs-busybox phase is Relocated
2024-10-28T21:31:30.800+0200	INFO	dractions/retry.go:57	drpc subscr-deploy-cephfs-busybox is ready
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable
2024-10-28T21:31:30.801+0200	INFO	dractions/actions.go:99	enter DisableProtection subscr-deploy-cephfs-busybox
2024-10-28T21:31:30.801+0200	INFO	dractions/actions.go:104	delete drpc subscr-deploy-cephfs-busybox
2024-10-28T21:32:05.823+0200	INFO	dractions/retry.go:183	drpc subscr-deploy-cephfs-busybox is deleted
=== RUN   TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy
2024-10-28T21:32:05.824+0200	INFO	deployers/subscription.go:62	enter Undeploy subscr-deploy-cephfs-busybox
2024-10-28T21:32:05.927+0200	INFO	util/crud.go:99	channel ramen-gitops is deleted
--- PASS: TestSuites (0.00s)
    --- PASS: TestSuites/Exhaustive (0.07s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#02 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs#01 (0.00s)
        --- PASS: TestSuites/Exhaustive/Deploy-cephfs (0.00s)
            --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr (380.33s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Deploy (5.05s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Enable (90.08s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Failover (95.04s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Relocate (155.06s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Disable (35.02s)
                --- PASS: TestSuites/Exhaustive/Deploy-cephfs/Subscr/Undeploy (0.07s)
PASS
ok  	github.com/ramendr/ramen/e2e	381.044s


Join on path partitioned columns fails with error

Describe the bug
Dictionary types aren't supported by the hasher. Attempting to join on two partitioned columns panics with:
thread 'parquet_join_on_partition_columns' panicked at 'called `Result::unwrap()` on an `Err` value: Internal("Unsupported data type in hasher")', datafusion/src/physical_plan/hash_join.rs:628:6

This isn't an issue when joining partition column with another string column, I assume due to type coercion rules casting partition column to Utf8.
To Reproduce
I did this in using the path_partition tests using slightly modified version of register_partitioned_alltypes_parquet that allows setting the name of the registered table.
async fn parquet_join_on_partition_columns()->Result<()>{
    let mut ctx = ExecutionContext::new();

    register_partitioned_alltypes_parquet_with_name(
        &mut ctx,
        &[
            "year=2021/month=09/day=09/file.parquet",
            "year=2021/month=10/day=09/file.parquet",
            "year=2021/month=10/day=28/file.parquet",
        ],
        &["year", "month", "day"],
        "",
        "alltypes_plain.parquet",
        "left"
    )
    .await;

    register_partitioned_alltypes_parquet_with_name(
        &mut ctx,
        &[
            "year=2021/month=09/day=09/file.parquet",
            "year=2021/month=10/day=09/file.parquet",
            "year=2021/month=10/day=28/file.parquet",
        ],
        &["year", "month", "day"],
        "",
        "alltypes_plain.parquet",
        "right"
    )
    .await;

    let _results = ctx.sql("SELECT left.id as lid, right.id as rid from left inner join right on left.month = right.month")
        .await?
        .collect()
        .await?;

    Ok(())
}

Expected behavior
Query should return results without error.
I'm not sure how this should be solved. It would be pretty straightforward to add casts into either the planner or the join implementation into a string array but this would cause an increase in memory usage. Another option would be to add implementations to the hasher, but this will add a large number of additional branches if other partition column types are eventually supported. I know that a row based join format for joins was being implemented but I think that the same issue with regards to having to cast from dictionary -> concrete type will cause an increase in memory usage with the row based version as well.  This would be solvable there with a hashmap that is external to the row which globally manages a integer -> T map and encodes the value of the partitioned column as a integer in the row.

I think we can check whether the data types are supported in hash join or not. If not supported, we can use cross join instead, and we can support more data types later in hash join. @pjmore


Add collision detector

Checklist

[X] I've read the contribution guidelines.
[X] I've searched other issues and no duplicate issues were found.
[X] I've agreed with the maintainers that I can plan this task.

Description
Autoware needs to detect if an object is in contact with the vehicle and trigger an emergency stop, ensuring that the vehicle remains stationary and does not move until the situation is resolved. To implement this using the existing functionality, it will be necessary to send diagnostics (diag) and trigger the Minimum Risk Maneuver (MRM) to achieve the desired behavior. The gap between the current functionality and the required behavior needs to be addressed.
Purpose
Enhance the system's capability of checking for collisions between the vehicle and objects, triggering diagnostics, and executing the MRM.
Possible approaches
Below are possible approaches:

Add a new package autoware_collision_detector which detects if there has already been a collision (or about to collide). A prototype has been already developed in TIER IV which works well with the MRM.
Modify the existing autoware_obstacle_collision_checker to detect actual contact between the vehicle and objects. Ensure it triggers diag messages and initiates MRM when contact is detected.

We plan to initially take the first approach and enhance the function of the package. As we enhance the new package, we would like to seek the integration with the existing packages.
Definition of done

[x] Add new package autoware_collision_detector under control in autoware.universe
[x] Modify the launch file to ensure the new node launches (default would be off)
[ ] Adjust the MRM settings to utilize the autoware_collision_detector when necessary

Merging packages would be out of scope for this time. (Remain as future work)

As the default setting is off the below task would be out of scope this time.

Adjust the MRM settings to utilize the autoware_collision_detector when necessary

When the collision_detector is turned on, the above task would be tackled.


Structure for stuff like readme-file, changelogs, etc.

using a subfolder "docs" -> check if it is possible to put in .github-folder
otherwise just docs/readme, docs/src, etc.

together with this, add mergeable to this project


[Mixins] applyMixins function from documentation don't work with properties (get and set)

I have applied the mixins technique from: https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Mixins.md
I have found a problem with properties with getter and/or setter
If you have this scenario:
	// Disposable Mixin
	class Disposable {
	    _isDisposed: boolean;

		get isDisposed(): boolean {
			return this._isDisposed;
		}
		set isDesposed(value : boolean) {
		    this._isDisposed = value;
		}
		dispose() {
			this.isDisposed = true;
		}
	}

	class MyClass implements Disposable {
		// Disposable
		isDisposed: boolean = false;
		dispose: () => void;
	}
	applyMixins(MyClass, [Disposable]);

	////////////////////////////////////////
	// In your runtime library somewhere
	////////////////////////////////////////
	function applyMixins(derivedCtor: any, baseCtors: any[]) {
		baseCtors.forEach(baseCtor => {
			Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
				derivedCtor.prototype[name] = baseCtor.prototype[name];
        });
    });

applyMixins function try to copy isDisposed property from baseCtor to derivedCtor accessing the value throught running the getter.
Then when you copy from baseCtor you have to check if is a property using __lookupGetter__and __lookupSetter__.
This code works for me:
	applyMixins(derivedCtor: any, baseCtors: any[]) {
        baseCtors.forEach(baseCtor => {
            Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
                let isProperty = false;
                const getter = baseCtor.prototype.__lookupGetter__(name);
                const setter = baseCtor.prototype.__lookupSetter__(name);
                if (getter) {
                    isProperty = true;
                    derivedCtor.prototype.__defineGetter__(name, getter);
                }
                if (setter) {
                    isProperty = true;
                    derivedCtor.prototype.__defineSetter__(name, setter);
                }
                if (!isProperty)
                    derivedCtor.prototype[name] = baseCtor.prototype[name];
            });
        });
    }

What do you think about it?
Have documentation should change?

So the original code doesn't work for accessors, but those methods you're suggesting are deprecated. The real fix involves getOwnPropertyDescriptor.


Return partition and nodename as tuple when replying to the read FSM

Supersedes #11 , opened against test branch.

The branch has already been merged, so closing.


Add UTF-8 support

Hi,
is there any way of adding a UTF-8 support ? I live in france and we have a lot of accents in our words, so even when I run a "ipconfig/route print", if my network card contains accents it doesn't show up correctly :

@varKeytrap I was under the impression this supported UTF-8.  I'm happy to make any adjustments needed for this to work.  FYI I've moved primary support from Naos.WinRM to Naos.MachineManagement.WinRM package.  Please specify exactly how you're using the code and where the error is from so I can reproduce it on my end.   : Média déconnecté
   Suffixe DNS propre à la connexion. . .   : Média déconnecté
   Suffixe DNS propre à la connexion. . .   : M‚dia d‚connect‚
   Suffixe DNS propre … la connexion. . .   : M‚dia d‚connect‚
   Suffixe DNS propre … la connexion. . .  : M‚dia d‚connect‚
   Suffixe DNS propre … la connexion. . . :

@varKeytrap I'm looking into this but finding that the Unicode support of this (outside of Powershell Core) is quite fragmented.
https://stackoverflow.com/questions/49476326/displaying-unicode-in-powershell
I'll keep seeing if there is a way for me to manage this through WinRM but I'm not certain at this point.

@wlscaudill When I run it through "winrs -r:server ipconfig" I don't have the problem...

@varKeytrap that's good to know.  WinRS is running through PowerShell instead of CMD so you might want to try running:
var output = machineManager.RunScript("{ ipconfig }");
This will run the command inside a script block and be all PowerShell...
I forgot the relationship previously; Naos.WinRM has the recipe package id=Naos.Recipes.WinRM which will install the CS file (or you can copy it by hand).  Naos.MachineManagement has an assembly package id=Naos.MachineManagement.WinRm which wraps the recipe from Naos.WinRM behind and interface that can be swapped out for other machinemanagers like SSH (although I'm still working on the SSH implementation and should have it out soon-ish).  So they use the same code path and if you just want the CS file or you're copying from GitHub by hand then you're better off going straight to Naos.WinRM.  If you're going to be hitting several machines and some of them might be Linux then you're probably better off coding against the interface in package id=Naos.MachineManagement.Domain and using the implementations in the package assemblies.
I hope that all makes sense, let me know if you have any questions around the organization and whether using the scriptblock version instead of CMD.exe version fixes your unicode issue.
Cheers

@wlscaudill Thanks for you complete answer. Unfortunately, even with machineManager.RunScript("{ ipconfig }"); it's still the same

@varKeytrap Thank you for testing that, I think I've found a way to do this but I don't love it.  I'm going to keep looking for a better way to set this up for you.  In the meantime could you please try running this:
machineManager.RunScript("{ [Console]::OutputEncoding = [System.Text.Encoding]::UTF8; ipconfig }");
Let me know if that works for you and I'll update if I can find a better way to set that.

@varKeytrap Is this still an issue, I would like to know if the outputEncoding being set was sufficient or not.

@wlscaudill Sorry for late response, It hasn't worked..

Btw I've seen this today, which made me think of our discussion
(Check the comments in NetshellCmd)

@wlscaudill Ok I have found the final solution (native) :
var pi = new ProcessStartInfo("cmd", "/c ipconfig /all")
{
    StandardOutputEncoding = Encoding.GetEncoding("cp437")
};


Babel polluting global namespace?

I'm using https://github.com/hapijs/lab to run my tests and it's been notifying me that something is polluting the global namespace.
The following leaks were detected:regeneratorRuntime, System, _babelPolyfill, core, Reflect, __core-js_shared__

It looks Babel related and I've never used Babel before. Is it possible bookshelf is using it wrong? Is it a bug in Babel? What is going on?
"Give a hoot don't pollute"

Duplicate of #1044. This should have been fixed in release 0.9.4 with moving from 'babel-polyfill' to 'babel-runtime' (see PR #1148). Can you confirm which version of Bookshelf you're using please?

apologies for duplicating #1044
The code above was indeed < 0.9.4 however once I fixed that I still get one leak
The following leaks were detected:__core-js_shared__

Yeah, it seems that core-js is still a dependency of babel-runtime. I'd like to resolve this, obviously, but the project wont work without it. I don't have time to look into it further for now, unfortunately.

ah, okay. Well I'm glad 0.9.4 got it down to only one leak. I might look into the issue if I have the time but I've never used Babel before so I'm not promising anything. Thanks

FYI core-js is a shim to modernise JS, so I guess it's augmenting some globals. Without babel-runtime some functionality will fail.

The project leadership of Bookshelf recently changed. In an effort to advance the project we close all issues older than one year.
If you think this issue needs to be re-evaluated please post a comment on why this is still important and we will re-open it.
We also started an open discussion about the future of Bookshelf.js here https://github.com/bookshelf/bookshelf/issues/1600. Feel free to drop by and give us your opinion.
Let's make Bookshelf great again


Crash with uncaught exception of type Napi::Error

Hey,
When running my Node.js application that uses the @abandonware/noble library to interact with Bluetooth devices, the application crashes with the following error message:
libc++abi: terminating with uncaught exception of type Napi::Error
zsh: abort node getDTC.js

This occurs after successfully discovering a device and attempting to send a command to a characteristic.
/Relevant part of the code that leads to the crash

function sendCommand(characteristic, command) {
    const bufferCommand = Buffer.from(command, 'hex');
    characteristic.write(bufferCommand, false, (error) => {
            if (error) {
             console.error(Error writing command ${command} to characteristic ${characteristic.uuid}:, error);
              } else {
                console.log(Command ${command} sent to characteristic ${characteristic.uuid});
              }
    });
}

Any idea?

This isn't @abandonware/noble project :)


Issue related to Home Asisstant

There is an issue related to Home Asisstant in this line
https://github.com/mjcumming/homie4/blob/35766d84ad1cad524357d172c986a3b3751cff25/homie/device_base.py#L280
    self.publish_homeassistant()
TypeError: publish_homeassistant() missing 2 required positional arguments: 'hass_config' and 'hass_payload'

I don't know the purpose of this line. I don't use HA so I  removed this line to fix it

I will remove - this was test code that "leaked out"..


different from the results in your paper.

I mentioned the MOT17_Results you provided on the motchallenge official website, but got the following results, which are quite different from the results in your paper.

MOT17_Results from

If you submit the MOT17_Results we provided, you can obtain the following results:

Have you submitted the correct file?

MOT17_Results from

@wangtuo111 can I know how you use this repo?

你有什么疑问

@wangtuo111 can I know how you use this repo?

可以，你有什么疑问


Fixes issue 2299: Skip adding our signature when catching up

We should only sign a single block at a certain height to prevent leaking our private key. It is very difficult for us to know when adding blocks given to us by other nodes if we have in fact already signed a different block at this height.

LGTM. Perhaps we could keep the function and only log whether we signed or not, but I don't mind nuking it entirely either and looking for logging improvements later.
Needs a rebase and we can merge it.

Yes I like your idea. As I have to rebase anyway I'll add a log message of why we don't sign.


Add ansible-lint to Travis CI, remove unimplemented functionality

This PR comments out functionality in the Travis build that can't work without secrets (see #1091 for context).
It also adds ansible-lint and syntax checking with ansible-playbook's --syntax-check option, so that we can use the CI build to enforce style while we wait on real testing capability.
The changes in docker/tasks/main.yml and playbooks/upgrade-consul.yml are to bring those files into compliance with ansible-lint.

This build is affected by a bug in ansible-lint that isn't getting our includes right.

There's a PR in, but it doesn't seem to fix this. Also, this will conflict with #1249. I'm gonna close until the issue is fixed with ansible-lint.


NVM4W loses track of all nodes after NPM script

NVM4W version:
1.1.7
My Environment
Windows 10 Pro, OS Build 19041.630
Expected Behavior
NVM4W maintains selected node
Actual Behavior
I'm running a standard Create-React-App app, involving webpack etc. out of the box. After running NPM scripts, such as start, the process will be attempted but then die without an error in the console. NVM will then lose track of everything. i.e.
> npm start # console prints some output, clearly tries to start a dev server but then this process seems to die. The dev server never starts. Process Explorer shows no live node processes
> node -v # 'node' is not recognized as an internal or external command,....
> npm -v # 'node' is not recognized.... (this message prints out twice)
> nvm list # outputs correctly the installed nodes
> nvm use 14.15.1 # node v14.15.1 (64-bit) is not installed. (14.15.1 _is_ in the output from list)
> nvm arch # System Default: 64-bit. **Currently Configured: -bit.** (emphasis mine)

Steps to reproduce the problem:
I'm not sure- I strongly suspect this is a my-computer problem but I cannot figure out how to fix it and it prevents all node development. I have repeatedly uninstalled and reinstalled NVM4W with the same symptoms. The problem occurs whether I use NPM or Yarn and does not vary with whatever Node version I install or use (have tested with v10-14)

I am also having the same issue!

Are you running your shell with admin privileges? nvm use changes the NVM_SYMLINK to point to the appropriate node directory. If the account does not have sufficient privileges to update the symlink, it may render it blank, in which case it will say Node isn't installed (the default message when it cannot find the node executable).
If you're using something other than the standard shell or Powershell, it may be possible the shell is changing the paths.
While I doubt the react CLI app is making changes, I cannot say with certainty that it isn't the cause. I don't use React and am simply unfamiliar with the internals of the tooling. Again, I doubt it's the CLI tool, but that's the only remaining place where paths could potentially be manipulated.

Did you uninstall all Node.js versions before installing nvm4w?
When I re-read the instructions for installing nvm, that struck me as a point that many people could miss, and which could cause this kind of havoc.

Did you uninstall all Node.js versions before installing nvm4w?
When I re-read the instructions for installing nvm, that struck me as a point that many people could miss, and which could cause this kind of havoc.

closing as stale. Reopen if the issue persists.


Spatial axis scale does not respect snapping

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Fedora 26 64 bits, b279f641c0b9e7af711d857917353905b48c6913
Issue description:

Spatial editor scale gizmo does not respect the use snap setting.
Edit: here is how it behaves in my system

notice how axis scale does not snap
Steps to reproduce:
Link to minimal example project:

Hmm. Works for me.
Can you be more specific how exactly it's not working? :)

I assume this is for master ?
Please fill in at least this field in the issue template the next time. ^^

updated with an example and system info

updated with an example and system info

My comment was for the Godot version, 3.0 or 2.1. :D

it has the hash so its not a problem, also the gif is and the feature already tells you!

The gizmo you mean, the little boxes? Definitely 3.0.

@djrm
Check your Snap settings. Default is silly small I think (5%?) then it looks like it's not working even if it works :D
Set it to 50% or something.

it has the hash so its not a problem, also the gif is and the feature already tells you!

Sorry, you're right, I didn't see the hash. But mentioning the version as 2.1 or 3.0 helps (a lot) setting the issue's milestone.  :)

oh sh!t, my bad, i didnt expect a setting for scale snap, i thought it would snap to the next snap boundary (which kinda makes sense).

We should change defaults.
I will add a numerical output on the bottom, so user can see by numbers what he is doing, just like it works when rotating.
Will add it for translation too.

Check your Snap settings. Default is silly small I think (5%?) then it looks like it's not working even if it works :D

Maybe it's a little bit low then. :)

We should change defaults.

Probably ^^

I would also change default rotation from 5* to 15*.

i would like to see scaling working with increments of 'translation snap' steps, but that has to be discused, maybe its just me, that expect this feature to be more used in 'blocking out' levels.


Translate: Shallow Renderer

Translate the Shallow Renderer article in the API Reference section of the docs.
Related to #4

We're closing this issue to reduce the noise in the repo. The place to claim an issue is #4
Thanks!


Storing Geodata

Tried hunting for this without much success so help me if you can.
I want to store Geodata specifically a geojson point. What's the best way to go about that?

It takes time to find this information. I think it should be in the documentation ;) Thanks for the info :+1:

But in the migration wich type of data i need to set as column type?


[TFLite, 16x8] Quantization 16x8, fix for inference_input(output)_type

This is a small fix for the new options in TFLite converter to make them work with int16 activations:
converter.inference_input_type = tf.int16
converter.inference_output_type = tf.int16

Hi @MeghnaNatraj Thanks for the review. I updated except for the test testPostTrainingIntegerAllowFloatQuantization
It uses default full integer conversion without setting target_spec.supported_ops and as result, activations are in int8.
When activations are supposed to be in int8, but inference_input_type is set to int16, what is the expected behaviour ?

error
quant/dequant nodes from int16 to int8 and back.
Thanks

It should throw as error, but we don't need a test for this. [For reference: int8 quantization supports uint8/int8 input/output types and int16x8 quantization supports int16 input/output types]
@wwwind For testPostTrainingIntegerAllowFloatQuantization, you can make an exact copy of your updated test testPostTrainingIntegerNoFloatQuantization and further make the following modifications:

[Avoid copy-paste error] Ensure you re-name it as testPostTrainingIntegerAllowFloatQuantization
Remove the use_target_ops_flag from the test.

Replace
if use_target_ops_flag:
    quantized_converter.target_spec.supported_ops = [
        lite.OpsSet.TFLITE_BUILTINS_INT8
    ]
    if quantization_16x8:
      quantized_converter.target_spec.supported_ops = [
          lite.OpsSet.\
          EXPERIMENTAL_TFLITE_BUILTINS_ACTIVATIONS_INT16_WEIGHTS_INT8
      ]
    else:
      quantized_converter.target_spec.supported_ops = [
          lite.OpsSet.TFLITE_BUILTINS_INT8
      ]
  else:
    quantized_converter.target_spec.supported_types = [lite.constants.INT8]

with
if quantization_16x8:
  quantized_converter.target_spec.supported_ops = [
       lite.OpsSet.\
          EXPERIMENTAL_TFLITE_BUILTINS_ACTIVATIONS_INT16_WEIGHTS_INT8,
       lite.OpsSet.TFLITE_BUILTINS
      ]

Hi @MeghnaNatraj Thank you for the review!
I corrected the change so that now it will be an error if there is a mismatch in type of quantization and requested inference_input(output)_type.
I added a separate test for the raised error and for the case "allow float" as suggested.

Hi @MeghnaNatraj Thanks for the review! Corrected.

@gbaned  Feel free to merge this PR.


"Browser not supported" when pwa hosted on remote

Hi there,
I'm running into an odd problem. If I start Findy with docker-compose on my localhost, the PWA shows the login screen.
However, when I start findy on a remote server with the exact same image and open the PWA with the exact same browser, the PWA says "Web wallet login not supported in this browser!".
Typing window.PublicKeyCredential on the consoles indeed shows that it's set on localhost and undefined on the remote pwa.
Chrome Version 107.0.5304.87 (Official Build) (64-bit)
PWA version 0.5.58
Any ideas? Do you need more information?
Regards

I should read the docs more carefully: https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredential
First sentence:
Secure context: This feature is available only in [secure contexts](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts) (HTTPS), in some or all [supporting browsers](https://developer.mozilla.org/en-US/docs/Web/API/PublicKeyCredential#browser_compatibility).


[Bug]: Change SDVTM Preset Images to correct ones

Environment
Release
Bug Description
The SDVTM images, used for the presets are currently not correct and we should replace them with correct ones that should be adapted to the ones in the press kit here:
LIDO_press_kit (2).zip
Launcher Version
2.2.3
Operating System
Windows
Affected Service (if applicable)
--
Logs (if applicable)
--

Acknowledgment

[X] I have checked the existing bugs and confirmed this issue is not already reported.

Updated Preset Icons:


GitHub Sync 3/8/2022

This is an automatically generated pull request.

This updates the repo with 10 of 15 internal commits (the copybara process died on the 11th commit); more syncs to follow in other PRs.
For posterity, these are the analysis issues that are causing the CI to fail:
info - lib/intl_standalone.dart:27:[12](https://github.com/dart-lang/intl/runs/5471506767?check_suite_focus=true#step:6:12) - 'Future.value' shouldn't be called with a null argument for the non-nullable type argument 'String'. Try adding a non-null argument. - null_argument_to_non_null_type
   info - lib/message_format.dart:773:1 - Avoid defining a class that contains only static members. - avoid_classes_with_only_static_members
   info - lib/message_format.dart:780:1 - Avoid defining a class that contains only static members. - avoid_classes_with_only_static_members
   info - tool/generate_locale_data_files.dart:26:7 - Use isNotEmpty instead of length - prefer_is_empty

I'll check to see that these aren't still issues in the source repo.

@emmanuel-p

The sync failed on the 11th commit; the contents of that internal commit already existed in this repo (https://github.com/dart-lang/intl/commit/8eaba91613762dddbd100446cadc6691f6e071fa).


Migrate to Jest for testing

Will require new config files, moving old tests to backup folder, removing PhantomJS references, etc

https://react.christmas/2 , particularly this one.

More pages of interest:
https://codeburst.io/jest-the-next-generation-testing-8a6ee7c14656
https://medium.com/@fastphrase/moving-from-karma-to-jest-with-a-react-based-ui-7094112e5696
https://facebook.github.io/jest/docs/en/webpack.html
https://auth0.com/blog/testing-react-applications-with-jest/

Also this might be of interest for styled-components testing.
https://github.com/styled-components/jest-styled-components

I've started adding in snapshot tests to refactor/migrate-to-jest. Most are working correctly but some need to be fixed. I'll keep a running tally of all tests that need some changes in this message.

[ ] Home/index
[ ] Home/About
[ ] form/Payment
[ ] form/Shipping
[ ] form/EditShipping
[ ] form/EditPayment
[ ] form/Submit
[ ] form/SubmitButton

Tests have been fixed, and the refactor/migrate-to-jest branch has been merged into develop.
Old unit tests are in the tests-backup folder.


[CSL-738] Simplify constraints in NTP

Cherry-picked from master

I lost any hope on that CI in time-warp-nt-0.1-csl will be fixed


Adding a helper subscriber

Coverage increased (+0.01%) to 99.438% when pulling 7c0413ea6c97e88fd802243b65f2b70e2d5a2f43 on buffering-subscriber into a137dd7453c089bfeedad117f10490873f7d2e70 on master.

Coverage increased (+0.01%) to 99.438% when pulling aba76586ce2230e8f66b54a694a268102191f5a5 on buffering-subscriber into a137dd7453c089bfeedad117f10490873f7d2e70 on master.

Coverage increased (+0.01%) to 99.438% when pulling 573276ee67f0a1ced076b44304975b7402e6b202 on buffering-subscriber into a137dd7453c089bfeedad117f10490873f7d2e70 on master.

Coverage increased (+0.01%) to 99.438% when pulling 573276ee67f0a1ced076b44304975b7402e6b202 on buffering-subscriber into a137dd7453c089bfeedad117f10490873f7d2e70 on master.


Release Google.Analytics.Admin.V1Alpha version 1.0.0-alpha02

Changes in this release:

Commit 667e40f: docs: renamed App + Web to Google Analytics 4 (GA4) in public documentation
Commit 7824ab2: feat: added ListAccountSummaries method (issue 5441)
Commit 0ca05f5: chore: Regenerate all APIs using protoc 3.13 and Grpc.Tools 2.31

Created release for Google.Analytics.Admin.V1Alpha-1.0.0-alpha02


questions dir structure

comparison (gt/lt) and correct answer (YES/NO) should be directiories

correct answer first, then gt/lt


Remove Tim from CNA handbook

/lgtm
/hold
(feel free to remove the hold if you don't want to add anyone)

/lgtm
/hold cancel
Thanks, Tim!


be able to proxy all requests for mobile cloud

see charles proxy for example

Potentially we have ability to capture whole traffic for mcloud in 4.8 version

4.10 infra and 6.4.33 carina core could get all appium logs and attach them as test artifacts to zafira. Those logs have all requests/response to each device


imageCachePath = "/tmp/greenclip/", might be problematic.

Hi there,
I just read the configuration file and read this line imageCachePath = "/tmp/greenclip/", which is problematic for various reasons.

You might be on a system with another user, and they can be using greenclip as well.
You might be on a system with another user, and they can create a symlink to somewhere nasty.

Please consider using a directory in the users home, say ~/.cache or in ~/.local/tmp
Oh yes, there was no trailing newline at the end of the configuration file. ;)

You are right, but I wanted to avoid implementing the logic for cleaning the cache if something happens to the history, so I put it into /tmp. Also, note that on most system /tmp is a tmpfs that live in RAM, so it is quite fast to retrieve/save images.
One improvement would be to create by default a subfolder per user and put restrictive access on it.

In that case consider using mktemp(3)

Fix in version 4.0.
If you don't put a trailing / at the end of the image_cache_directory, it will generate a mdtemp with the prefix


Set preserveAspectRatio to sensible default

Updated the default preserveAspectRatio setting to a sensible default as true is not currently valid.

So, the simplest solution is the best, huh? Thanks you for the contribution @dev-artisan!


v1.0 fails to start after update

Component
server
Describe the bug
After updating to the new v1.0 Docker image Woodpecker fails to start with the following error message. Downgrading to v1.0.0 fixes it.
panic: handlers are already registered for path '/metrics'

goroutine 1 [running]:
github.com/gin-gonic/gin.(*node).addRoute(0x13d0062?, {0xc00046bf28, 0x8}, {0xc00049ede0?, 0xc, 0xc})
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/tree.go:260 +0x734
github.com/gin-gonic/gin.(*Engine).addRoute(0xc0004029c0, {0x13d0062, 0x3}, {0xc00046bf28, 0x8}, {0xc00049ede0, 0xc, 0xc})
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/gin.go:335 +0x272
github.com/gin-gonic/gin.(*RouterGroup).handle(0xc0004029c0, {0x13d0062, 0x3}, {0x13dfd43?, 0x0?}, {0xc00053bf00, 0x1, 0x0?})
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/routergroup.go:89 +0x145
github.com/gin-gonic/gin.(*RouterGroup).GET(...)
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/routergroup.go:117
github.com/woodpecker-ci/woodpecker/server/router.Load(0x13fb9b8?, {0xc00052d8f0, 0x4, 0x4})
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/router.go:74 +0x685
main.run(0xc0003fc640)
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/cmd/server/server.go:201 +0xd70
github.com/urfave/cli/v2.(*Command).Run(0xc000022580, 0xc0003fc640, {0xc0001181e0, 0x1, 0x1})
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/urfave/cli/v2/command.go:274 +0x9eb
github.com/urfave/cli/v2.(*App).RunContext(0xc0006de000, {0x16afed8?, 0xc000124000}, {0xc0001181e0, 0x1, 0x1})
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/urfave/cli/v2/app.go:332 +0x616
github.com/urfave/cli/v2.(*App).Run(...)
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/urfave/cli/v2/app.go:309
main.main()
        /woodpecker/src/github.com/woodpecker-ci/woodpecker/cmd/server/main.go:38 +0x254

System Info
Woodpecker v1.0 (Docker 24.0.5 and Forgejo 1.20)

Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Checked that the bug isn't fixed in the next version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]
[X] Check that this is a concrete bug. For Q&A join our Discord Chat Server or the Matrix room.

Thank you! :slightly_smiling_face:


Fix sql file error. Issue #59.

Thank you for this fix up! This will resolve the issues when database updates. I think the best long term solution is to remove the pending update SQL file and just integrate it into the base SQL, because right now there is appear to be some redundancy in table creation. This is something that can be fixed later, though. Thanks again!


[draft] html repr

@flying-sheep @falexwolf
Draft implementation of the html repr I had been talking about. It's an expandable tree that lets you look into your anndata object. If you have some time, I'd love to get some feedback on how this looks and what information should be presented.
Here's a static representation, but I'd recommend checking out this branch and trying it:

This is still very WIP, so a few key things are still TODO:

[ ] Efficient generation for views (currently copies all elements due to access)
[ ] Support for backed arrays (should be pretty easy)
[ ] Fallback if ipytree isn't installed
[ ] Fallback for unrecognized types

I'd also like to consider not using ipytree, and just returning some plain html. ipytree seems like it was built for a different usecase, and I don't think this needs to be a widget. Ideally this would be a bit lighter weight.

mudata has this implemented, and we have permission to steal it, so I think that's a better way forward here.


Preview popup is "cropped" for items in the bottom of the screen

For last rows (in the bottom of the screen), the popup is partly invisible.
Expected Behavior
Move the popup up to see it entirely
Screenshots

I'm guessing you didn't get the issue template which prompted you for all the important information.

What version of OpenRefine?
What browser and browser version?
What did you do leading up to that screen capture?

... and all the other things which would help us fix this for you?

To Reproduce
Steps to reproduce the behavior:

Display data with reconciled values
Display i.e. 50 lines
Move the mouse cursor over an item at the bottom of the web browser window
The popup is partially hidden

Versions

Operating System: macOS
Browser Version:

Chrome Version 84.0.4147.105 (Build officiel) (64 bits)
Firefox 79.0 (64 bits)
Safari Version 13.0.4 (146<IP_ADDRESS>.4)

JRE or JDK Version: 1.8.0_74
OpenRefine: Version 3.4-beta-327-g0645c2a (1)

Screenshots

FWIW, I'm seeing this as well with OpenRefine 3.4.1, Firefox 84.0.1.  These are the reconciliation preview pop-ups.

I think the menu is created here and the positioning is calculated here.  I’ll see if I can debug the calculation from my browser when I’m at my desktop.


Add support for Tomcat 7/8. Remove 6

For our refactor we need to focus on modern Tomcat releases.  7/8 are both stable releases and we should focus on solid support for those platforms and remove support Tomcat 6.

Tomcat 8 request: https://github.com/chef-cookbooks/tomcat/issues/128

+1

This is resolved with the new providers.  You can install any version available on the Apache Org site.


nodejs-express: update stack to set minimum requirements for Docker and CLI

Checklist:

[x] Read the Code of Conduct and Contributing Guidelines.

[x] Followed the commit message guidelines.

[x] Stack adheres to Appsody stack structure.

Modifying an existing stack:

[x] Updated the stack version in stack.yaml

Update the stack to useAPPSODY_PREP instead of APPSODY_INSTALL

Because this stack uses chown, set Docker requirement to >= 17.09.0 to avoid errors down the development line for users with lower versions of Docker.

Related Issues:
Related to: https://github.com/appsody/stacks/issues/493

Closing for now as this capability can not be fully utilised until the next release.

@sam-github Please could you take a look :)


handles created as  tags not working on IE 10

When I create handles with a <use> tag (.append("use")) there is an error on IE10 when I try to drag and drop the handle.
The error happens here (brush.js, 296):

type = event.target.__data__.type,

The object contained in event.target is slightly different on IE than on other browsers. It contains an extra level called correspondingUseElement This seems to be related to how IE and the other browsers implement SVG Elements.
This solves the problem, but I am not super satisfied with this solution:

type = typeof event.target.__data__ !== "undefined" ? event.target.__data__.type : event.target.correspondingUseElement.__data__.type,

Can someone explain me why there is this difference on IE and if is there another way to get it to work on IE?
Thanks

I found a similar issue here

For each SVGUseElement, the SVG DOM maintains a shadow tree (the "instance tree") of objects of type SVGElementInstance. The SVGUseElement has an instanceRoot property that points to the SVGElementInstance at the root of the shadow tree. The SVGElementInstance has a a correspondingUseElement property that points back to the SVGUseElement. These two properties allow you to jump between the main DOM tree and the shadow tree.
I tested your example in both Internet Explorer and Chrome. In Chrome, the 'click' event is passed the SVGUseElement which jQuery then uses to walk up the main DOM tree to find the desired 'div' element. In Internet Exploer, the 'click' event is passed the SVGElementInstance which jQuery then uses to walk up the shadow tree. Since the shadow tree is not part of the main DOM tree, jQuery never finds the desired 'div' element.
You could work around this issue by checking the target. If target is a SVGElementInstance then pass target.correspondingUseElement to jQuery else pass target to jQuery. You could check for SVGELementInstance by testing for correspondingUseElement property or by testing toString() equals "[object SVGElementInstance]".

Solved my problem by not using <use> tag!


Wrap widget inside IntrinsicHeight overflowed

I was trying to make this layout and I found a bug!

I think the bug in the Wrap widget when it has a spacing, but it happens with IntrinsicHeight widget.
My goal is: Let the left container expands its height to be equal to the total heights of the widgets on the right hand, so I used IntrinsicHeight.
Steps to Reproduce

Run the following app on iPhone XR 12.1
You should found the red Container overflowed like the above screenshot

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(title: Text('IntrinsicHeight & Wrap')),
        body: RowsAndColumns(),
      ),
    );
  }
}

class RowsAndColumns extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return IntrinsicHeight(
      child: Row(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        children: [
          Expanded(flex: 1, child: Container(color: Colors.amber)),
          Expanded(
            flex: 2,
            child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
              Wrap(
                spacing: 10,
                runSpacing: 5,
                children: <Widget>[
                  Container(height: 40.0, width: 130.0, color: Colors.purple),
                  Container(height: 40.0, width: 140.0, color: Colors.red),
                ],
              ),
            ]),
          ),
        ],
      ),
    );
  }
}

Note for bug fix investigation:
The bug happens when a child in the Wrap widget needs to layout but its width is a little bit longer than the available space in the current run, also the Wrap widget should has spacing.
Workaround:
If you have the same bug, make the spacing = 0 to avoid it.

I've encountered the same issue with Wrap, IntrinsicHeight and SingleChildScrollView
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    List<String> strings = [
      'avocado',
      'lime',
      'salt',
      'sour cream',
      'vinegar',
    ];

    return MaterialApp(
      title: 'Flutter Demo',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Demo'),
        ),
        body: IntrinsicHeight(
          child: Container(
            color: Colors.red,
            child: Column(
              children: <Widget>[
                Flexible(
                  child: SingleChildScrollView(
                    child: Padding(
                      padding: const EdgeInsets.symmetric(horizontal: 12.0),
                      child: Wrap(
                        spacing: 8.0,
                        runSpacing: 0.0,
                        direction: Axis.horizontal,
                        children: <Widget>[
                          for (var string in strings)
                            Chip(
                              label: Text(string),
                            ),
                        ],
                      ),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

You can play with the padding until instead of displaying 2 lines, it shows a single scrollable line.
Setting spacing = 0 and adding padding manually to Wrap children did not fix it for me.

Maybe related to #27293

Same issue in my library.

May be related to #55469?

Does not reproduce on latest master 1.21.0-6.0.pre.41 or latest beta 1.20.0-7.2.pre but does reproduce on latest stable v1.17.5

flutter doctor -v
[√] Flutter (Channel master, 1.21.0-6.0.pre.41, on Microsoft Windows [Version 10.0.18362.959], locale et-EE)
   • Flutter version 1.21.0-6.0.pre.41 at C:\Development\flutter_master
   • Framework revision 39fa00201d (5 hours ago), 2020-07-27 21:11:43 -0700
   • Engine revision f27729e97b
   • Dart version 2.10.0 (build 2.10.0-0.0.dev 24c7666def)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
   • Android SDK at C:\Users\Isa\AppData\Local\Android\sdk
   • Platform android-30, build-tools 30.0.0
   • Java binary at: C:\Users\Isa\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763\jre\bin\java
   • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
   • All Android licenses accepted.

[√] Chrome - develop for the web
   • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.6.4)
   • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
   • Visual Studio Community 2019 version 16.6.30309.148
   • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.0)
   • Android Studio at C:\Users\Isa\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\193.6626763
   • Flutter plugin version 47.1.2
   • Dart plugin version 193.7361
   • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] VS Code (version 1.47.2)
   • VS Code at C:\Users\Isa\AppData\Local\Programs\Microsoft VS Code
   • Flutter extension version 3.12.2

[√] Connected device (5 available)
   • SM G950F (mobile)       • ce12171c51cc001c03 • android-arm64  • Android 9 (API 28)
   • sdk gphone x86 (mobile) • emulator-5554      • android-x86    • Android 11 (API 30) (emulator)
   • Windows (desktop)       • windows            • windows-x64    • Microsoft Windows [Version 10.0.18362.959]
   • Web Server (web)        • web-server         • web-javascript • Flutter Tools
   • Chrome (web)            • chrome             • web-javascript • Google Chrome 84.0.4147.89

• No issues found!

Closing as probably fixed.


HTML tokens in headers should be ignored

In headers (in markdown in general) HTML tokens can be used to escape special symbols. In this case tokens are converting to symbols and stripping from anchor. But currently letters and digits from token inserting into anchor.
Current (actual):
<!-- MarkdownTOC -->

- [<element>](#ltelement)  <!-- wrongly `lt` is added -->
- [<element>](#60element)  <!-- wrongly `60` is added -->

<!-- /MarkdownTOC -->

## <element>
## <element>

Expected:
<!-- MarkdownTOC -->

- [<element>](#element)
- [<element>](#element)

<!-- /MarkdownTOC -->

## <element>
## <element>

You can set strings in id_replacement in version 2.1.1.
So, now you can get result you expected with new id_replacement setting like this.
"id_replacements": {
  "" : ["<","<","!","#","$","&","'","(",")","*","+",",","/",":",";","=","?","@","[","]","`","\"", ".","<",">","{","}","™","®","©"]
}

Only you have to do is update your plugin, because above setting is included new defaults. Please try it.

@naokazuterada Yes, it's ok now. Thank you!


harbor-ui - throws runtime exception after initializing

If you are reporting a problem, please make sure the following information are provided:
1)Version of docker engine and docker-compose.
[root@ip-172-16-0-227 ui]# docker version
Client:
Version:      17.03.2-ce
API version:  1.27
Go version:   go1.7.5
Git commit:   7392c3b/17.03.2-ce
Built:        Wed Aug  9 22:45:09 2017
OS/Arch:      linux/amd64
Server:
Version:      17.03.2-ce
API version:  1.27 (minimum version 1.12)
Go version:   go1.7.5
Git commit:   7392c3b/17.03.2-ce
Built:        Wed Aug  9 22:45:09 2017
OS/Arch:      linux/amd64
Experimental: false
[root@ip-172-16-0-227 ui]# docker logs -f 58d7ca57fa4d
2017-10-09T20:24:42Z [INFO] Config path: /etc/ui/app.conf
2017-10-09T20:24:42Z [INFO] initializing configurations...
2017-10-09T20:24:42Z [INFO] key path: /etc/ui/key
2017-10-09T20:24:42Z [INFO] initializing client for adminserver http://adminserver ...
2017-10-09T20:24:42Z [INFO] initializing the project manager based on database...
**2017-10-09T20:24:42Z [INFO] configurations initialization completed
panic: runtime error: index out of range
goroutine 1 [running]:
panic(0xb3ad40, 0xc42000c0b0)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/vmware/harbor/src/ui/config.ExtURL(0xb36640, 0xc420273ef0, 0xc420237ce8, 0xc420237cd8)
/go/src/github.com/vmware/harbor/src/ui/config/config.go:215 +0xb7
github.com/vmware/harbor/src/ui/service/token.InitCreators()
/go/src/github.com/vmware/harbor/src/ui/service/token/creator.go:52 +0x215
main.main()
/go/src/github.com/vmware/harbor/src/ui/main.go:86 +0x22e**
Using default harbor.cfg file.
Would like to know what possible issues can cause this within the UI?

Did you configure "hostname" and "ui_url_protocol" in harbor.cfg correctly? Could you provide your harbor.cfg?

harbor.cfg
`## Configuration file of Harbor
#The IP address or hostname to access admin UI and registry service.
#DO NOT use localhost or <IP_ADDRESS>, because Harbor needs to be accessed by external clients.
hostname = ui
#The protocol for accessing the UI and token/notification service, by default it is http.
#It can be set to https if ssl is enabled on nginx.
ui_url_protocol = http
#The password for the root user of mysql db, change this before any production use.
db_password = root123
#Maximum number of job workers in job service
max_job_workers = 3
#Determine whether or not to generate certificate for the registry's token.
#If the value is on, the prepare script creates new root cert and private key
#for generating token to access the registry. If the value is off the default key/cert will be used.
#This flag also controls the creation of the notary signer's cert.
customize_crt = on
#The path of cert and key files for nginx, they are applied only the protocol is set to https
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
#The path of secretkey storage
secretkey_path = /data
#Admiral's url, comment this attribute, or set its value to NA when Harbor is standalone
admiral_url = NA
#The password of the Clair's postgres database, only effective when Harbor is deployed with Clair.
#Please update it before deployment, subsequent update will cause Clair's API server and Harbor unable to access Clair's database.
clair_db_password = password
#NOTES: The properties between BEGIN INITIAL PROPERTIES and END INITIAL PROPERTIES
#only take effect in the first boot, the subsequent changes of these properties
#should be performed on web ui
#BEGIN INITIAL PROPERTIES
#Email account settings for sending out password resetting emails.
#Email server uses the given username and password to authenticate on TLS connections to host and act as identity.
#Identity left blank to act as username.
email_identity =
email_server = smtp.mydomain.com
email_server_port = 25
email_username =<EMAIL_ADDRESS>email_password = abc
email_from = admin<EMAIL_ADDRESS>email_ssl = false
##The initial password of Harbor admin, only works for the first time when Harbor starts.
#It has no effect after the first launch of Harbor.
#Change the admin password from UI after launching Harbor.
harbor_admin_password = Harbor12345
##By default the auth mode is db_auth, i.e. the credentials are stored in a local database.
#Set it to ldap_auth if you want to verify a user's credentials against an LDAP server.
auth_mode = db_auth
#The url for an ldap endpoint.
ldap_url = ldaps://ldap.mydomain.com
#A user's DN who has the permission to search the LDAP/AD server.
#If your LDAP/AD server does not support anonymous search, you should configure this DN and ldap_search_pwd.
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#the password of the ldap_searchdn
#ldap_search_pwd = password
#The base DN from which to look up a user in LDAP/AD
ldap_basedn = ou=people,dc=mydomain,dc=com
#Search filter for LDAP/AD, make sure the syntax of the filter is correct.
#ldap_filter = (objectClass=person)
The attribute used in a search to match a user, it could be uid, cn, email, sAMAccountName or other attributes depending on your LDAP/AD
ldap_uid = uid
#the scope to search for users, 1-LDAP_SCOPE_BASE, 2-LDAP_SCOPE_ONELEVEL, 3-LDAP_SCOPE_SUBTREE
ldap_scope = 3
#Timeout (in seconds)  when connecting to an LDAP Server. The default value (and most reasonable) is 5 seconds.
ldap_timeout = 5
#Turn on or off the self-registration feature
self_registration = on
#The expiration time (in minute) of token created by token service, default is 30 minutes
token_expiration = 30
#The flag to control what users have permission to create projects
#The default value "everyone" allows everyone to creates a project.
#Set to "adminonly" so that only admin user can create project.
project_creation_restriction = everyone
#Determine whether the job service should verify the ssl cert when it connects to a remote registry.
#Set this flag to off when the remote registry uses a self-signed or untrusted certificate.
verify_remote_cert = on
#END INITIAL PROPERTIES
#############
`
I'll check the hostname but it is named ui and linked to the other containers.

Updated hostname to the IP of the box running all the docker containers.

Provide your config.json under directory /data/config/.

{   "admin_initial_password": "\u003cenc-v1\u003eVYPpODVgzRgvkNWL3PsdWLgnQ+FDH33AUsrp",   "admiral_url": "NA",   "auth_mode": "db_auth",   "cfg_expiration": 5,   "clair_db_password": "\u003cenc-v1\u003eyTbKQhxebkn6fZ8ZLLZgHLCTJWKVD4WS",   "database_type": "mysql",   "email_from": "",   "email_host": "",   "email_identity": "",   "email_password": "\u003cenc-v1\u003ed17JvGJykwgvmfzSA4zr5w==",   "email_port": 0,   "email_ssl": false,   "email_username": "",   "ext_endpoint": "",   "ldap_base_dn": "",   "ldap_filter": "",   "ldap_scope": 0,   "ldap_search_dn": "",   "ldap_search_password": "\u003cenc-v1\u003ebHXYp/EIvp4BP5aSWSg8HA==",   "ldap_timeout": 0,   "ldap_uid": "",   "ldap_url": "",   "max_job_workers": 3,   "mysql_database": "registry",   "mysql_host": "mysql",   "mysql_password": "\u003cenc-v1\u003eeMMUPmUycMj75XvA+I+FyWBmzxE8m1M=",   "mysql_port": 3306,   "mysql_username": "root",   "project_creation_restriction": "everyone",   "registry_url": "http://registry:5000",   "self_registration": true,   "sqlite_file": "",   "token_expiration": 30,   "verify_remote_cert": true,   "with_clair": false,   "with_notary": false }

The root cause is that the property ext_endpoint  in config.json is null.
Run the following commands:
docker-compose down
./prepare
docker-compose up -d

These will reload configurations from harbor.cfg.
Please check whether the property has a valid value after you running the commands.

@ywk253100
When I run the prepare script I receive the below error:
Fail to generate key file: ./common/config/ui/private_key.pem, cert file: ./common/config/registry/root.crt
The root.crt file is not present on my system.
Please advise, thank you.

Is there any other output to explain why it failed?

There is no other output given, the only error received during the prepare phase is that root.crt file is not present on the system. I observed private_key.pem is 0kb in size, there are no other items which throw out errors.

We can not reproduce the issue, can you try to debug why the error occurred in your environment?

Good Morning,
I've gone over each container relevant to this, here is the docker log output. I cannot seem to find any particular item throwing any issues except for the out of range index error. If there are any additional debug steps I can take to help towards resolution, please let me know.
Environment: AWS ECS
Containers launch but exit after the habor-ui container fails.
No logging is enabled.
harbor-ui
docker logs -f 7287b746e62c
2017-10-31T13:24:22Z [INFO] Config path: /etc/ui/app.conf
2017-10-31T13:24:22Z [INFO] initializing configurations...
2017-10-31T13:24:22Z [INFO] key path: /etc/ui/key
2017-10-31T13:24:22Z [INFO] initializing client for adminserver http://adminserver ...
2017-10-31T13:24:22Z [INFO] initializing the project manager based on database...
2017-10-31T13:24:22Z [INFO] configurations initialization completed
panic: runtime error: index out of range

goroutine 1 [running]:
panic(0xb3ad40, 0xc42000c0b0)
	/usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/vmware/harbor/src/ui/config.ExtURL(0xb36640, 0xc420372780, 0xc420235ce8, 0xc420235cd8)
	/go/src/github.com/vmware/harbor/src/ui/config/config.go:215 +0xb7
github.com/vmware/harbor/src/ui/service/token.InitCreators()
	/go/src/github.com/vmware/harbor/src/ui/service/token/creator.go:52 +0x215
main.main()
	/go/src/github.com/vmware/harbor/src/ui/main.go:86 +0x22e

harbor-adminserver
docker logs -f 00fa68675278
2017-10-31T13:24:21Z [INFO] initializing system configurations...
2017-10-31T13:24:21Z [INFO] the path of json configuration storage: /etc/adminserver/config/config.json
2017-10-31T13:24:21Z [DEBUG] [driver_json.go:46]: path of configuration file: /etc/adminserver/config/config.json
2017-10-31T13:24:21Z [INFO] the path of key used by key provider: /etc/adminserver/key
2017-10-31T13:24:21Z [INFO] system initialization completed
<IP_ADDRESS> - - [31/Oct/2017:13:24:22 +0000] "GET /api/configurations HTTP/1.1" 200 786

harbor-db
docker logs 924d5cf426af
2017-10-31 13:24:21 0 [Note] mysqld (mysqld 5.6.35) starting as process 1 ...
2017-10-31 13:24:21 1 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2017-10-31 13:24:21 1 [Warning] Buffered warning: Changed limits: table_open_cache: 431 (requested 2000)

2017-10-31 13:24:21 1 [Note] Plugin 'FEDERATED' is disabled.
2017-10-31 13:24:21 1 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-10-31 13:24:21 1 [Note] InnoDB: The InnoDB memory heap is disabled
2017-10-31 13:24:21 1 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-10-31 13:24:21 1 [Note] InnoDB: Memory barrier is not used
2017-10-31 13:24:21 1 [Note] InnoDB: Compressed tables use zlib 1.2.8
2017-10-31 13:24:21 1 [Note] InnoDB: Using Linux native AIO
2017-10-31 13:24:21 1 [Note] InnoDB: Using CPU crc32 instructions
2017-10-31 13:24:21 1 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-10-31 13:24:21 1 [Note] InnoDB: Completed initialization of buffer pool
2017-10-31 13:24:21 1 [Note] InnoDB: Highest supported file format is Barracuda.
2017-10-31 13:24:21 1 [Note] InnoDB: 128 rollback segment(s) are active.
2017-10-31 13:24:21 1 [Note] InnoDB: Waiting for purge to start
2017-10-31 13:24:21 1 [Note] InnoDB: 5.6.35 started; log sequence number 1936846
2017-10-31 13:24:21 1 [Note] Server hostname (bind-address): '*'; port: 3306
2017-10-31 13:24:21 1 [Note] IPv6 is available.
2017-10-31 13:24:21 1 [Note]   - '::' resolves to '::';
2017-10-31 13:24:21 1 [Note] Server socket created on IP: '::'.
2017-10-31 13:24:21 1 [Warning] 'proxies_priv' entry '@ root@ip-172-16-0-227' ignored in --skip-name-resolve mode.
2017-10-31 13:24:21 1 [Note] Event Scheduler: Loaded 0 events
2017-10-31 13:24:21 1 [Note] mysqld: ready for connections.
 This may cause problems with uploads if multiple registries are behind a load-balancer. To provide a shared secret, fill in http.secret in the configuration file or set the REGISTRY_HTTP_SECRET environment variable." go.version=go1.7.3 instance.id=059576c3-29e1-4eed-bc3d-e3bdae2a9f94 version=v2.6.2
> time="2017-10-31T13:24:21Z" level=info msg="redis not configured" go.version=go1.7.3 instance.id=059576c3-29e1-4eed-bc3d-e3bdae2a9f94 version=v2.6.2
> time="2017-10-31T13:24:21Z" level=info msg="Starting upload purge in 26m0s" go.version=go1.7.3 instance.id=059576c3-29e1-4eed-bc3d-e3bdae2a9f94 version=v2.6.2
> time="2017-10-31T13:24:21Z" level=info msg="using inmemory blob descriptor cache" go.version=go1.7.3 instance.id=059576c3-29e1-4eed-bc3d-e3bdae2a9f94 version=v2.6.2
> time="2017-10-31T13:24:21Z" level=info msg="listening on [::]:5000" go.version=go1.7.3 instance.id=059576c3-29e1-4eed-bc3d-e3bdae2a9f94 version=v2.6.2

postgresql
docker logs 50862c5f2c7a
here1
LOG:  database system was shut down at 2017-10-31 13:24:09 UTC
LOG:  MultiXact member wraparound protections are now enabled
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

Session terminated, terminating shell...LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down
 ...terminated.

The root cause of the error panic: runtime error: index out of range is that the property ext_endpoint is null in /data/config/config.json as I mentioned above.
Run prepare should fix this, but another error occurred when you ran this command, so I mean you can debug why there was an error when you ran prepare.
Or you can just edit the /data/config/config.json to set the property ext_endpoint with ui_url_protocol://hostname. Replace the ui_url_protocol  and hostname with the values in harbor.cfg.

I modified those values earlier in our discussion, immediately after you brought them to my attention.
After inspecting the system it appears the /data/config/config.json file is overwritten by something, the values in harbor.cfg are set properly, and the prepare.sh script runs perfectly fine now.
So, what is causing this file /data/config/config.json to be overwritten and where do I modify it to ensure my changes stick so the containers stay online?

The script prepare populates the configuration items into env files under directory common/config/component_name/, and the key/value pairs in the env files are set as environment variables inside containers, the programs load the variables for some initialization work.
The ext_endpoint is one config of adminserver, but I don't see it in your JSON file https://github.com/Skewled/harbor/blob/master/harbor.json#L122.

That brought the containers online and produced a 502 gateway error, but at least the index error is resolved.
<IP_ADDRESS> - "GET / HTTP/1.1" 502 576 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 0.000 0.000 .
2017/11/02 13:35:01 [error] 6#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: <IP_ADDRESS>, server: , request: "GET /favicon.ico HTTP/1.1", upstream: "http://<IP_ADDRESS>:80/favicon.ico", host: "<IP_ADDRESS>", referrer: "http://<IP_ADDRESS>/"
<IP_ADDRESS> - "GET /favicon.ico HTTP/1.1" 502 576 "http://<IP_ADDRESS>/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36" 0.000 0.000 ```

I believe these errors are from missing variables in the config file, would you please tell me which variables are associated to which container so I can assign them appropriately?

I'm very thankful for your help and patience, seeing that 502 and the containers come online made my day.

You can refer to env files for each component under directory common/config/component_name/.

Thanks for the assistance! :)


added info for participants page to amm4108.yaml

Added some new things for my participants page to amm4108.yaml

:shipit:

/ME crosses fingers


Update readme to reflect new name and version

Let's use https://github.com/IBM/python-itoolkit/blob/master/README.md as a basis for the new README. We can get rid of the Prerequisites section as those should be pulled in automatically by setup.py. We do need an install section, but that can just be using pip (of course, it won't work until we release it to PyPI, so probably need to mark as "TODO" or something). The whole "local socket connection" doesn't make sense for the new interface, so we can drop that. We'll need to document how to use the PYODBC-based version instead. We can leave a TODO for later.
Credits should probably be made to a bulleted list.

Fixed by #10


[1.10.2] [<IP_ADDRESS>5] Logistical transporter inserting when set to none

Hello,
I set a logistical transport to none as it was connected to the bottom of an iron chest.  I then proceeded to give a default color in my logistical sorter.  I also put a restrictive transporter on the top of the chest so that it goes there if nothing else is available ( I am using bins ).  It colored the items green ( the color of my default sort direction ) and watched it proceed to go into the chest from the bottom ( transport set to none on the bottom with a restrictive transporter on top ).
The intended action would have been to go up to the next row of bins and into the chest from the top.  I have attached screenshots of my setup.  Please let me know if you need anything else.

Fixed in dev.


Do not use scanner protos in node.proto

Description
This PR is a prefactor for #3757. It contains all changes that are safe
to land as they do not affect other parts of the system than RHCOS node
scanning feature.
The changes here are:

No longer use scanner protos in the node.proto
Add rhel_content_sets field in storage.NodeInventory_Components -
see Scanner #1053
Use more realistic fake data in the fake node inventory

Checklist

[x] Investigated and inspected CI test results

Do not apply

[ ] Unit test and regression tests added
[ ] Evaluated and added CHANGELOG entry if required
[ ] Determined and documented upgrade steps
[ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

If any of these don't apply, please comment below.
Testing Performed

CI
Deployed a test cluster and investigated logs for errors

Current dependencies on/for this PR:

master

PR #4392   👈

This comment was auto-generated by Graphite.

Thank you for all the reviews. I will merge this as it is as this state is a good starting point for further changes.
After meeting with Mandar yesterday, we might need to abandon #3757, readd node_id to NodeInventory and use a separate message (not Node) to transfer inventory between Sensor and Central.
I will make necessary experiments and explain why in the next days. Once we agree on that, I will readd the node_id in a followup to this PR.


Fix Key::resolveParentKey traversal process

Hi @vinkla, I believe I found a simple edge-case bug in the Key::resolveParentKey method, where it traverses the parent key to find the potential parent key. Currently, the use of array_pop happens at the beginning of the loop, rather than at the end, resulting in not checking the first potential parent key. This has probably gone unnoticed because the method falls back to returning the $parentKey that was initially provided, which in probably 99% of cases is the correct key. If you step through the code with XDebug, you should notice that the traversal process never finds a key and the fallback return always occurs, unless it happens to find a valid key further up the parent key tree which likely causes incorrect conditional logic (which is what I experienced and led me to finding this). Moving array_pop to the end of the loop fixed the bug I was experiencing, doesn't break anything (as far as I could tell with manual tests in a large project), and should bring a tiny performance improvement because it should result in the parent key traversal process correctly cutting short in most cases.

Thanks Kaelan 🙌


ci: fix clippy warning on 1.83

Codecov Report
Attention: Patch coverage is 0% with 3 lines in your changes missing coverage. Please review.

Project coverage is 84.17%. Comparing base (9d72f5d) to head (370318b).

Files with missing lines
Patch %
Lines

src/common_union.rs
0.00%
2 Missing :warning:

src/common.rs
0.00%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #61   +/-   ##
=======================================
  Coverage   84.17%   84.17%
=======================================
  Files          15       15
  Lines         986      986
  Branches      986      986
=======================================
  Hits          830      830
  Misses        109      109
  Partials       47       47

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Unknown6 IAPs

It seems Unknown6 is much like the Request object. It seems like field 1 is the type of request, because when the server is sent 5, it returns everything that's in the shop (so, in-app purchases). I still have no idea what 7 is on the IAPs, it seems to always be 1 (or true). Maybe it's something like "is_active", so the client knows if it should show it or allow the user to buy it?
I've written some messages for IAPs, here are some examples of what the server sent the client:
1 Incense
2 {
  1: "pgorelease.incenseordinary.1" // item ID
  // field 2 is absent since this is buying an in game item with pokecoins
  3 { // currency to buy, in this case, 80 pokecoins
    1: "POKECOIN"
    2: 80
  }
  5 { // items that the player will get, in this case, 1 incense
    1: "ITEM_INCENSE_ORDINARY"
    2: 1
  }
  6 { // this is an item attribute with a key:value pattern
    1: "CATEGORY"
    2: "ITEMS"
  }
  6 {
    1: "SORT"
    2: "10" // we need to find out what this means!
  }
  7: 1 // probably success/status
}

100 Pokecoins
2 {
  1: "pgorelease.pokecoin.100"
  2: 1 // notice this, it's telling the client that this is buying currency with actual money
  // also notice the lack of field 3, the play store/app store tells the app how much it is based on the item ID
  4 {
    1: "POKECOIN"
    2: 100
  }
  6 {
    1: "CATEGORY"
    2: "POKECOINS"
  }
  6 {
    1: "SORT"
    2: "1"
  }
  7: 1
}

hmmm... let me see why that failed. it worked for me :stuck_out_tongue:

Oh, I know why. This repo doesn't have Item.proto. Ugh, this is going to be a pain to merge lol

Nice work

[<-] Request Envelope { status_code: 2,
request_id: 'REDACTED',
requests: [],
unknown6:
{ unknown1: 5,
unknown2: { unknown1: <Buffer [....]
[->] Response Envelope { status_code: 1,
request_id: 'REDACTED (same)',
unknown6: { unknown1: 5, unknown2: { unknown1: '1' } },
returns: [] }

And you're looking for POGOProtos/Inventory/Item/ItemData.proto

@Lennix Right... I'm using a slightly modified version of this proto and didn't look there. I'll change it now.
Also why are you censoring your request IDs? They're just random numbers so that the client knows what request a response corresponds to...

Sent to the server and since its a quite large number, its kinda unique. Just beeing paranoid here.

Oh also

That's before your PR, FYI:

What is? If you're talking about the issue, I know. Just wanted to contribute to the discussion!

This is looking really promising. Just address that note and I'll merge in the progress.

Done.

Awesome, thanks!

Just wondering why you changed Unknown6 to repeated? Did you encounter more than 1 Unknown6 in one request or response?

Yes I did. I found one with request_type = 6 and another one right after with request_type = 5.

Great discovery @tjhorner ❤