Sonoff after restart HA fail to configure

The Sonoff intergation was no problem until i restart my HA ,it showing RECONFIGURE
But when when login my id and pwd it showing like pic i attatched below:

Attached log:
This error originated from a custom integration.
Logger: custom_components.sonoff
Source: custom_components/sonoff/core/ewelink/cloud.py:150
Integration: Sonoff (documentation, issues)
First occurred: 1:12:38 PM (1 occurrences)
Last logged: 1:12:38 PM
Can't login with mode: auto
Traceback (most recent call last):
File "/config/custom_components/sonoff/init.py", line 206, in async_setup_entry
await registry.cloud.login(username, password)
File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 150, in login
raise AuthError(resp["msg"])
custom_components.sonoff.core.ewelink.cloud.AuthError: appid is unauthorized! KOBxGJna5qkk3JLXw3LHLX3wSNiPjAVi
Logger: homeassistant.config_entries
Source: config_entries.py:414
First occurred: 1:12:38 PM (1 occurrences)
Last logged: 1:12:38 PM
Config entry 'Sonoff' for sonoff integration could not authenticate: appid is unauthorized! KOBxGJna5qkk3JLXw3LHLX3wSNiPjAVi

Also getting exactly the same error.

getting same error after restart.

Just had the same issue.
DId the line changing edit (line 107 and 157) in the /custom_components/sonoff/core/ewelink/cloud.py restarted HA and all good now
https://github.com/AlexxIT/SonoffLAN/issues/887

You have to reconfigure the addon using only your email, leave the password blank, it has worked for me.

after edited line 107 and 157) in the /custom_components/sonoff/core/ewelink/cloud.py restarted HA
my devices become Unavailable like pic show

2023-07-26 14:50:58 [D] SysInfo: {'installation_type': 'Home Assistant OS', 'version': '2023.7.1', 'dev': False, 'hassio': True, 'virtualenv': False, 'python_version': '3.11.4', 'docker': True, 'arch': 'aarch64', 'timezone': ', 'os_name': 'Linux', 'os_version': '6.1.21-v8', 'user': 'root', 'supervisor': '2023.07.1', 'host_os': 'Home Assistant OS 10.3', 'docker_version': '23.0.6', 'chassis': 'embedded', 'sonoff_version': '3.5.1 (5b48a81)'}
2023-07-26 14:51:09 [D] 0 devices loaded from Cloud
2023-07-26 14:51:20 [D] AUTO mode start
2023-07-26 14:51:21 [D] CLOUD None => True
2023-07-26 14:51:24 [D] 10016bb404 !! skip setup for encrypted device
2023-07-26 15:00:14 [D] CLOUD True => None
2023-07-26 15:00:14 [W] Can't load devices|  File "/config/custom_components/sonoff/init.py", line 242, in internal_normal_setup|    devices = await registry.cloud.get_devices(homes)|              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|Exception: cannot found access token info|
2023-07-26 15:00:14 [D] AUTO mode start
2023-07-26 15:00:14 [D] 10016bb404 !! skip setup for encrypted device
2023-07-26 15:00:14 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690354814904', 'actionName': 'userOnline'}|
2023-07-26 15:00:14 [D] CLOUD None => False
2023-07-26 15:00:14 [D] Cloud connection retrying in 15 seconds
2023-07-26 15:00:30 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690354830103', 'actionName': 'userOnline'}|
2023-07-26 15:00:30 [D] CLOUD False => False
2023-07-26 15:00:30 [D] Cloud connection retrying in 60 seconds
2023-07-26 15:01:30 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690354890314', 'actionName': 'userOnline'}|
2023-07-26 15:01:30 [D] CLOUD False => False
2023-07-26 15:01:30 [D] Cloud connection retrying in 300 seconds
2023-07-26 15:06:30 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690355190794', 'actionName': 'userOnline'}|
2023-07-26 15:06:30 [D] CLOUD False => False
2023-07-26 15:06:30 [D] Cloud connection retrying in 900 seconds
2023-07-26 15:06:31 [D] CLOUD False => None
2023-07-26 15:06:31 [W] Can't load devices|  File "/config/custom_components/sonoff/init.py", line 242, in internal_normal_setup|    devices = await registry.cloud.get_devices(homes)|              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^|Exception: cannot found access token info|
2023-07-26 15:06:31 [D] AUTO mode start
2023-07-26 15:06:31 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690355191586', 'actionName': 'userOnline'}|
2023-07-26 15:06:31 [D] CLOUD None => False
2023-07-26 15:06:31 [D] Cloud connection retrying in 15 seconds
2023-07-26 15:06:34 [D] 10016bb404 <= Local0 | Can't get zeroconf info
2023-07-26 15:06:34 [D] 10016bb404 !! skip setup for encrypted device
2023-07-26 15:06:46 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690355206805', 'actionName': 'userOnline'}|
2023-07-26 15:06:46 [D] CLOUD False => False
2023-07-26 15:06:46 [D] Cloud connection retrying in 60 seconds
2023-07-26 15:07:47 [E] Cloud WS exception|  File "/config/custom_components/sonoff/core/ewelink/cloud.py", line 322, in connect|    raise Exception(resp)|Exception: {'error': 406, 'reason': 'Authentication Failed', 'apikey': '1ad9b710-c23d-44a6-8eb9-7803b327db1b', 'sequence': '1690355267241', 'actionName': 'userOnline'}|
2023-07-26 15:07:47 [D] CLOUD False => False
2023-07-26 15:07:47 [D] Cloud connection retrying in 300 seconds

same error here

You have to reconfigure the addon using only your email, leave the password blank, it has worked for me.

@jordisco I did the same and it removed the request for reconfigure, but if I check my system information my devices are not available through cloud... are they available  you?

You have to reconfigure the addon using only your email, leave the password blank, it has worked for me.

@jordisco I did the same and it removed the request for reconfigure, but if I check my system information my devices are not available through cloud... are they available you?

I can indeed control them with the eWeLink app without any problems and from Home Assistant, do you have your devices configured for "LAN control"?

You have to reconfigure the addon using only your email, leave the password blank, it has worked for me.

@jordisco I did the same and it removed the request for reconfigure, but if I check my system information my devices are not available through cloud... are they available you?

I can indeed control them with the eWeLink app without any problems and from Home Assistant, do you have your devices configured for "LAN control"?

@jordisco I can control them through my ewelink app, also the devices are available in HA through local control, only they are not available if you configure the integration to use cloud instead of auto or lan.... also if you check system information in HA it shows 0/10 cloud devices are online

You have to reconfigure the addon using only your email, leave the password blank, it has worked for me.

@jordisco I did the same and it removed the request for reconfigure, but if I check my system information my devices are not available through cloud... are they available you?

I followed the same steps and get the same: no error but SonOff still not working on HA (but working on eWeLink app)

work for me

@laverdone are your devices also available when you configure cloud instead of auto or local.... and do your devices show up as online cloud devices in system information?

I have it in auto mode and not in cloud, this option is fine for me.

i set in auto mode,but stil the same.
in eWelink app are fine ,can control the device.

I have it in auto mode and not in cloud, this option is fine for me.

@jordisco I also have it in auto and I can control my devices the thing is only that my devices can not be reached by cloud anymore and not show as online cloud device in HA system information... so actually this not solves the problem it just solves the part of the error not showing up but it not connect to the cloud to check your devices falling back to your last known list stored in config/.storage and neither you have cloud control..... MEANING IF YOU ADD A NEW DEVICE TO YOUR EWELINK APP IT WILL NOT BE ADDED TO THE INTEGRATION

same behavior

energy data is also gathered from cloud I think .which is not available with LAN control.

Same error here

This shows now in my system information
Version | 3.5.1 (122751c)
Cloud devices online | 0 / 10
Local devices online | 10 / 10

same error here

Did the line changing edit (line 107 and 157) in the /custom_components/sonoff/core/ewelink/cloud.py restarted HA and all good now
https://github.com/AlexxIT/SonoffLAN/issues/887

This worked :-)
Changing the /config/custom_components/sonoff/core/ewelink/cloud.py in line 158 from
async def login(self, username: str, password: str, app=0) -> bool:
to
async def login(self, username: str, password: str, app=1) -> bool:
https://github.com/AlexxIT/SonoffLAN/issues/887#issuecomment-1175897133

@eriklysoe and @Bastiencc can you confirm that your devices also show online within your system information under the Sonoff section at "cloud devices online"

@eriklysoe and @Bastiencc can you confirm that your devices also show online within your system information under the Sonoff section at "cloud devices online"

Yes, devices are again online in ha.
Only need to change line 108

Did the line changing edit (line 107 and 157) in the /custom_components/sonoff/core/ewelink/cloud.py restarted HA and all good now
#887

This also worked for me!
@jordisco and anyone else letting the password field blank (DIY), doing so only removes the error but not let you connect to cloud to get device updates, if you use the above quoted solution ONLY THEN all works like it did before again.... you can change the lines and re-authentificate the integration (just add integration again using same login credentials as you original used)

I'm having this problem. I have tried the edit fix, and I have tried reconfiguring without password. Both methods allow the integration to start, and both give me control of a couple of basic R2 switches, but I also have a 4-way relay, and trying both methods, that device is found, but there are no working entities, the previous switches for the 4 relays are now unavailable.

+1

I'm having this problem. I have tried the edit fix, and I have tried reconfiguring without password. Both methods allow the integration to start, and both give me control of a couple of basic R2 switches, but I also have a 4-way relay, and trying both methods, that device is found, but there are no working entities, the previous switches for the 4 relays are now unavailable.

yes I actually find out that at me also not all devices bacame available again :( ..... so seems both "fixes" only partly fix this issue

I'm having this problem. I have tried the edit fix, and I have tried reconfiguring without password. Both methods allow the integration to start, and both give me control of a couple of basic R2 switches, but I also have a 4-way relay, and trying both methods, that device is found, but there are no working entities, the previous switches for the 4 relays are now unavailable.

yes I actually find out that at me also not all devices bacame available again :( ..... so seems both "fixes" only partly fix this issue

in debug log I get
2 devices loaded from Cache

for the 2 switches that work, and
!! skip setup for encrypted device

for the 4-way that does not work.

It works! (I'm using a simple R2). Thank you!.

#1201

This also worked for me! Only at me the changes had to be done in line 108 and line 157.

Can you please tell me how can I log in again with a password without deleting the integration?

This also worked for me! Only at me the changes had to be done in line 108 and line 157.

Can you please tell me how can I log in again with a password without deleting the integration?

Just delete and add again

delete and add again

And the name of the objects and the use of these objects in automations do not follow?

same error here

This also worked for me! Only at me the changes had to be done in line 108 and line 157.

Can you please tell me how can I log in again with a password without deleting the integration?

@ChapayTv just add the integration again from within UI without deleting the old integration

I used the workaround and removed the second API key. It worked but I have only original Sonoff devices

@msavazzi just update to latest version, it has the fix for this issue.

@smarthomefamilyverrips thank you!


[Bug] all Endpoints shown offline if one Endpoint is offline

Describe the issue
HA shows both Endpoints as offline if one Endpoint is offline.
How to reproduce the issue
Steps to reproduce the behavior:

Shutdown one Endpoint, here the Endpoint "PBS":

Click on Portainer Card:

Start the previously stopped Endpoint:

Expected behavior
HA Portainer integration shows only the offline Endpoint as offline.
Screenshots
Software versions

Home Assistant version:
Core 2024.3.3
Supervisor 2024.03.1
Operating System 12.1
Frontend 20240307.0

Portainer integration version: v1.0.2

Portainer software version:
Endpoint Homeserver 24.0.5
Endpoint PBS              25.0.3

Diagnostics data
Traceback/Error logs
Additional context
The second integration is on another system, witch is online only every 3 days.

I also see all my sensors as Unavailable. Not sure if this is the reason why, but have tried all the usual remediations, including rebooting, uninstalled and reinstalled the plugin, and generating a new API key.

@tomaae  any sugesstions?

Experiencing the same issue at the moment. In preparation of a move I have shut down one of my Portainer servers already. Now everything shows as unavailable within Home Assistant.

Experienced the same issue and found a fix.

bump


encodeURIComponent

Where is encodeURIComponent defined? I couldn't find it in the project or any of its NPM packages.

Never mind, it's a standard JS language thing.
My bad.

Never mind, it's a standard JS language thing.
My bad.


Manage featured attachment ordering

https://trello.com/c/UDEgwkWF/1556-apply-featured-attachment-order-everywhere
This extends the updater module for file attachments to manage the featured
attachment ordering when file attachments are added or removed, so that it
is always representative of the file attachments that are currently
associated with a revision.
We have arbitrarily decided to append new file attachments to the existing
ordering. Please see the commits for more details.

Thanks for reviewing @ChrisBAshton! I realised that there was an issue with this, and I've added an extra commit. Could you take another look?


Fix to properly support graylog 2.0

Due to changes in elasticsearch, dots should no longer be used in GL 2.0.  This change is to change the field names from dots to underscores.

thanks!


Fixed some French localization

Fixed French localization for Kulve Taroth gamma head and Guild Guidance skill

Cool, thanks!


Trigger is associated to multiple items that have graphs defined, but graphs are not attached to the message?

v1.15
Testing on graph.get revealed an issue when specifying specific itemids we are looking for within the graphs for that host. No results are returned! More detailed information to follow - for now working on a workaround by retreiving all graphs for that host with query selectGraphItems = 'extend' and from here filter the ones we are looking for.
If the (possible/not confirmed) bug is fixed, the graph.get query can be adjusted accordingly to only retrieve the graph items associated to these itemids.

v1.16
Fixed through a workaround.


Merging of segmented output classes

Hi Wasserth,
Thank you for this open access segmentation model.
The model currently outputs one nii file for each segmented class. I was wondering if there is a shortcut to combine the segmentation masks of each class into one nii file containing all masks?
Kind regards

To combine the segmentation masks of each class into one nii file containing all masks, TotalSegmentator provides a convenient --ml flag that can be used during the segmentation process. By adding this flag to your command, TotalSegmentator will output a single multilabel nifti file that contains all classes with different label indices.
Here's how you can modify your command to output a single multilabel nifti file:
TotalSegmentator -i <input_file> -o <output_multilabel_file> --ml [other options]

For example, if your original command is:
TotalSegmentator -i ct_scan.nii.gz -o segmentations

You can change it to:
TotalSegmentator -i ct_scan.nii.gz -o segmentations_multilabel.nii.gz --ml

Make sure to replace ct_scan.nii.gz with the path to your input CT Nifti file, and segmentations_multilabel.nii.gz with the desired output path for the multilabel segmentation file.
If you have already generated individual class segmentations and wish to combine them after the fact, you would need to use a separate script or software tool that is capable of merging multiple nii files into one multilabel nifti file. One option could be to use a Python script with the nibabel library to manually load each segmentation nii file, assign unique labels, and save them into a single nifti file. However, using the --ml flag during the segmentation process is the simplest approach provided by TotalSegmentator.

Thank you Mr Wasserthal! It works perfectly!

When i use --ml flag it does not give me an output file and any error?

hi, 4lparslan,  u should enter the complete command line, especially the output file name after "-o" , such as "-o segmentations_multilabel.nii.gz --ml".


Replace Moq with NSubstitute

Relates to https://github.com/moq/moq/issues/1372

coverage: 95.865%. remained the same when pulling 3e72155a619e13f972d49e1ba74ff1e10df0e7cf on feature/replace-moq-with-nsubstitute into f576353126d03ea4ed51ee035743488911b8297d on main.


added latest Zanata translations for drools-wb 6.3.x

please merge this PR before the next tag for the 6.2 ER5

+1 to merge.

Thanks.
6.3.x: d52e8cb68326fab6e0f66f937b54b93e34fe43c1


Unable to change or set any passwords

Note: Please always try reproducing the issue on the :edge build. There is a chance that it was already fixed. If it's an UI issue, you can try reporducing it on the demo page.

Describe the bug
unable to click username to open menu, unable to find a password change option in settings, and there's no enforced users in config.  the options simply do not exist.  I'm stuck with the default admin/admin because there's no way to change it provided anywhere in the interface.
Photo/video (optional) that causes the bug
If error is in connection with a particular photo/video, It would help a lot with the debugging if you can attach that file too.
Environment (please complete the following information):

OS: docker, linux, unraid
Browser any, tried them all

Used app version:

docker-2.0.0

Yeah that is not implemented.
Feel free to do so and send a PR.
For now you can create an other account and delete the default admin
-- Sorry for being brief, sent from my phone.
On Thu, 15 Feb 2024, 13:45 bstone108, @.***> wrote:

Note: Please always try reproducing the issue on the :edge build. There
is a chance that it was already fixed. If it's an UI issue, you can try
reporducing it on the demo page https://pigallery2.onrender.com/.
Describe the bug
unable to click username to open menu, unable to find a password change
option in settings, and there's no enforced users in config. the options
simply do not exist. I'm stuck with the default admin/admin because there's
no way to change it provided anywhere in the interface.
Photo/video (optional) that causes the bug
If error is in connection with a particular photo/video, It would help a
lot with the debugging if you can attach that file too.
Environment (please complete the following information):

OS: docker, linux, unraid
Browser any, tried them all

Used app version:

docker-2.0.0

—
Reply to this email directly, view it on GitHub
https://github.com/bpatrik/pigallery2/issues/831, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZKA5RN5PMG2DGMSIC3H7TYTX7NLAVCNFSM6AAAAABDKGBMAGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGEZTMNBTGM3TONI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Yeah I figured it out right after opening ticket.  I just haven't had
chance to update it yet.  Thanks
On Thu, Feb 15, 2024, 7:51 AM Patrik J. Braun @.***>
wrote:

Yeah that is not implemented.
Feel free to do so and send a PR.
For now you can create an other account and delete the default admin
-- Sorry for being brief, sent from my phone.
On Thu, 15 Feb 2024, 13:45 bstone108, @.***> wrote:

Note: Please always try reproducing the issue on the :edge build.
There
is a chance that it was already fixed. If it's an UI issue, you can try
reporducing it on the demo page https://pigallery2.onrender.com/.
Describe the bug
unable to click username to open menu, unable to find a password change
option in settings, and there's no enforced users in config. the options
simply do not exist. I'm stuck with the default admin/admin because
there's
no way to change it provided anywhere in the interface.
Photo/video (optional) that causes the bug
If error is in connection with a particular photo/video, It would help a
lot with the debugging if you can attach that file too.
Environment (please complete the following information):

OS: docker, linux, unraid
Browser any, tried them all

Used app version:

docker-2.0.0

—
Reply to this email directly, view it on GitHub
https://github.com/bpatrik/pigallery2/issues/831, or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/ABZKA5RN5PMG2DGMSIC3H7TYTX7NLAVCNFSM6AAAAABDKGBMAGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGEZTMNBTGM3TONI>

.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/bpatrik/pigallery2/issues/831#issuecomment-1946039178,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABP7RFOGMQDOFFGHUJPCM7DYTYAFZAVCNFSM6AAAAABDKGBMAGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBWGAZTSMJXHA
.
You are receiving this because you authored the thread.Message ID:
@.***>


AsyncCommand

I have done a bit of work relating to AsyncCommand which I am hoping the community can benefit from.
I had the following objectives and approaches:

To provide built-in support for cancellation, i.e. a bindable Cancel command is provided automatically as part of the AsyncCommand, if a CancellationToken is accepted by the execution delegate.
To provide built-in support for progress notification. This was accomplished using the bindable ProgressReport class referenced in my other post.
To allow a variety of execution delegates -- whether async or sync, and allowing any combination of CancellationToken, ProgressReport, or command parameter object as an input to the execution delegate. This was achieved by having a number of constructors which take the various possible execution delegates and convert them privately into a unified form.
To be able to execute the delegate either on the current thread (await execution(...)) or on a different thread (await Task.Run(()=>execution(...))). The latter is suitable for executing CPU-bound synchronous tasks in the background. It is captured by a boolean property, RunOnDifferentThread.
To move away from the CanExecute paradigm toward something more up-to-date, i.e. consistent with property notifications. This was accomplished by allowing the user to bind a boolean function (updated by property notifications) with the meaning that the command can execute only if the function is true. Naturally the method in AsyncCommand to set this function is called CanExecuteOnlyIf( boundFunction). What this does is move us from an async paradigm that requires a lot of special events and handlers to an approach based on binding.
Note: The solution to this problem (5) involved creating a BoundFunction class which defines a function and binds properties to the inputs of the function. When a bound input is updated then the BoundFunction recalculates and provides a PropertyChanged notification for the result. This is a general-purpose class which is useful, for example, in view-models to combine a number of bindable inputs into a bindable output. (The old way of doing this was to use a MultiBinding, which in addition to being awkward also resulted in moving view-model concepts into the view). To support the type-safe binding of properties in code and to have the compiler check the names of property paths, an additional method Property.Path is needed to extract property paths from lambda expressions.
To have a simple way of ensuring that by default a command cannot be executed if it is already executing. This was achieved by creating a boolean property CanExecuteWhileExecuting. An extension of this is to have a way to make a set of commands mutually exclusive, which is captured by calling a method, AreMutuallyExclusive, and passing in the list of mutually exclusive commands.  A typical use would be to make, for example, FileNew, FileSave, FileOpen all mutually exclusive.
While the resulting class is somewhat complex, it also provides a high level of functionality. The public footprint is not excessive:
public bool CanExecuteWhileExecuting { get; set; }
public static void AreMutuallyExclusive( IEnumerable commands)
public void CanExecuteOnlyIf(BoundFunction boundFunction)
public void CanExecuteOnlyIf( Tsrc source, Expression<Func<Tsrc,bool>> propertyPath)
public NotifyTask Execution
public bool IsExecuting { get; }
override public async void Execute(object parameter = null)
public async Task ExecuteAsync(object parameter)
public bool RunOnDifferentThread { get; set; }
public ProgressReport  ProgressReport { get; }
public ICommand CancelCommand { get; }

I am providing source code that accomplishes all this, and I am hereby entering it into the public domain for anyone to use without restriction. Please also refer to my other post discussing NotifyTask and ProgressReport.
sjb
AsyncCommand.txt
BoundFunction.txt
BoundAction.txt
Property.txt

Closing: Too complex to maintain.
I've gone down this path with AsyncCommand before. In my article on the subject, I go far enough to support cancellation built-in, and in my own projects I've gone further still with more "useful" options, including progress reports. The type followed a similar approach to your code.
The problem is, adding options to the AsyncCommand class quickly causes maintainability problems. For this reason, with Mvvm.Async, I've split out CancelCommand from AsyncCommand in an attempt to make the types smaller and more maintainable while retaining functionality.
A large part of this decision is my personal preference of writing small, composable classes rather than semantically complex classes controlled with flags. However, this is the third (or fourth?) iteration of AsyncCommand, and I'm not pretending it's perfect yet.
To address each of the points individually:
Cancellation is enabled by combining AsyncCommand with CancelCommand. Earlier versions of AsyncCommand did have CancelCommand built-in, but I think it's cleaner split out.
Progress is best done using the standard IProgress API.
Running on a background thread is better with an explicit call to Task.Run in the application code, rather than as a flag.
CanExecute is definitely a horrible design, in particular because some genius decided to violate the standard C# event pattern. However, it is way too late to fix it now. Introducing a different paradign is an appropriate step for an MVVM framework, but not for a library like Mvvm.Async which is intended for use with any MVVM app.
Preventing commands from concurrently executing is already supported by AsyncCommand. By default, multiple executions of the same command are not allowed, but the user may override this by specifying a custom implementation of CanExecute (and calling OnCanExecuteChanged when the return value may change).

Hi Stephen,
Thanks for your comments here and in the other post, which I will respond to separately.
I think you do have to be more careful as a framework designer than I need to be as an application developer.
I don't want to argue against your approach. Having said that, since I've put the effort into the code already I may as well make a few comments.
On cancellation, when I first looked at the Mvvm.Async version, I had not read up on cancellation generally. I looked at it and didn't immediately see how to use it in connection with AsyncCommand. Of course now I realize that it is by handing the token in to the command delegate, which is what I do in the more complex version. The point is that simpler classes can sometimes be more complex to use. Because of this, I'm actually not fully convinced that simpler classes make the total application easier to maintain. Say we have two simple classes and maybe 3 lines of code are needed to use them together, vs one complex class that has the three lines built in, or maybe it takes 5 extra lines instead of 3 to get the single-class version. Say I use it 10 times in my application, then I've got 30 lines sprinkled around my application in the "simple" version vs 5 built into the "complex" class. Saying that I could always just make a third class containing the tie between the two simple classes doesn't really answer this conundrum, because that third class would basically be equal to what the more "complex" solution is: the two 'simple' classes just being subclasses defined within the 'complex' class. Just because the end class delivered to the user is complex doesn't mean that it has to be poorly designed internally -- it should define private subclasses when that is appropriate for good design. So the question is not how much overall maintenance there is, but where does the maintenance effort lie -- in the framework or in the application code.
What matters, in my view, isn't how simple or complex the individual pieces of code are, but whether they collectively deliver the functionality that is needed, and how much work the user has to do to access that functionality. The risk in delivering larger chunks of code as the end product isn't that the solution is more complex in aggregate -- as just discussed, it isn't more complex. The risk is that if the larger chunk of code doesn't hit the target then it will be harder for the user to reconfigure it into a different delivery package. If you're comfortable that you've delivered what is needed then the larger solution is better because it delivers more integrated functionality, eliminating the need for the user to tie the smaller classes together over and over again.
About preventing commands from executing simultaneously, I wanted to be able to have mutual exclusion between different commands, such as FileOpen, FileClose, FileSave. Of course I can roll it myself by defining all those CanExecutes and calling OnCanExecuteChanged everywhere. But that doesn't lead me at all toward a simpler application, especially if I have to do it repeatedly throughout my application -- see the comments above.
On Progress and IProgress, I took another look and they seem almost as retrograde as CanCancel. Specifically, they don't really tie in to the property notification system.  On a more philosophical note, I always get a "?" in my head when I see a class that seems to be all structure with no content. I'm of the view that classes should focus on delivering content; the structure of the code should be the means not the end.
All the best & happy coding
Steve

I looked at it and didn't immediately see how to use it in connection with AsyncCommand

I am planning to write docs specifically for this, since it will definitely be a common use case.
I am also considering adding a creation method that will create an AsyncCommand/CancelCommand pair. I believe only a static method would be necessary, but a wrapper class may be easier. Note that there's a big difference in maintainability between merging CancelCommand into AsyncCommand (difficult to maintain) and keeping them separate and providing an AsyncCommand.CreateCancelableAsyncCommand() method or a CancelableAsyncCommand wrapper type (both easier to maintain).
On a side note, keeping classes smaller and more focused can increase usability. For example, if I wanted two or three AsyncCommands to be triggered independently, but have a single CancelCommand to cancel them all.

I wanted to be able to have mutual exclusion between different commands

I think that's a very interesting use case! I'll play around with your AreMutuallyExclusive approach - it'd be great to have a solution that does use CanExecute and friends (since they're standard, not because they're good), and also be sufficiently generic.

Specifically, they don't really tie in to the property notification system.

Neither of those types are specifically for MVVM apps. I do have some other IProgress<T> implementations that do support property notification, that I am planning to add to this library shortly.

Well, I agree with your comment about the value of having a CancellableAsyncCommand wrapper type. I suppose I could have, or perhaps should have, designed my version of AsyncCommand so that it had two subclasses rather than one.
On the mutually exclusive commands, here is how I actually use it (and also how I use the property notifications for controlling CanExecute):
    public FileCommands()

    {

        this.ReopenCommand = new AsyncCommand( this.XX.FileReopenAsync);

        this.FileOpenCommand = new AsyncCommand( this.XX.FileOpenAsync);

        this.FileNewCommand = new AsyncCommand( this.XX.FileNewAsync);

        this.FileCloseCommand = new AsyncCommand( this.XX.FileCloseAsync);

        this.FileNewCommand.CanExecuteOnlyIf(

            BoundFunction.Create(

                this,

                (canInitialize, fileIsOpen) => (canInitialize && !fileIsOpen),

                (@this) => @this.XX.CanFileInitialize,

                (@this) => @this.XX.FileIsOpen

            )

        );

        this.FileOpenCommand.CanExecuteOnlyIf(

            BoundFunction.Create(

               this,

                (fileIsOpen) => !fileIsOpen,

                (@this) => @this.XX.FileIsOpen

            )

        );

        this.FileCloseCommand.CanExecuteOnlyIf(

            this, (@this) => @this.XX.FileIsOpen

        );

        AsyncCommand.AreMutuallyExclusive(

            new AsyncCommand[] { ReopenCommand, FileOpenCommand, FileNewCommand, FileCloseCommand }

        );

        this.ExecutingCommand = BoundFunction.Create(

            this,

            (reopenIsExecuting, fileOpenIsExecuting, fileNewIsExecuting, fileCloseIsExecuting) => (IAsyncCommand)(reopenIsExecuting? this.ReopenCommand: (fileNewIsExecuting? this.FileNewCommand: (fileOpenIsExecuting? this.FileOpenCommand: (fileCloseIsExecuting? this.FileCloseCommand: null)))),

            (@this) => @this.ReopenCommand.IsExecuting,

            (@this) => @this.FileOpenCommand.IsExecuting,

            (@this) => @this.FileNewCommand.IsExecuting,

            (@this) => @this.FileCloseCommand.IsExecuting

        );

        this.ReopenCommand.Execute();

    }

From: Stephen Cleary<EMAIL_ADDRESS>Sent: August 20, 2016 8:14 AM
To: StephenCleary/Mvvm.Async
Cc: sjb; Author
Subject: Re: [StephenCleary/Mvvm.Async] AsyncCommand (#3)
I looked at it and didn't immediately see how to use it in connection with AsyncCommand
I am planning to write docs specifically for this, since it will definitely be a common use case.
I am also considering adding a creation method that will create an AsyncCommand/CancelCommand pair. I believe only a static method would be necessary, but a wrapper class may be easier. Note that there's a big difference in maintainability between merging CancelCommand into AsyncCommand (difficult to maintain) and keeping them separate and providing an AsyncCommand.CreateCancelableAsyncCommand() method or a CancelableAsyncCommand wrapper type (both easier to maintain).
On a side note, keeping classes smaller and more focused can increase usability. For example, if I wanted two or three AsyncCommands to be triggered independently, but have a single CancelCommand to cancel them all.
I wanted to be able to have mutual exclusion between different commands
I think that's a very interesting use case! I'll play around with your AreMutuallyExclusive approach - it'd be great to have a solution that does use CanExecute and friends (since they're standard, not because they're good), and also be sufficiently generic.
Specifically, they don't really tie in to the property notification system.
Neither of those types are specifically for MVVM apps. I do have some other IProgress implementations that do support property notification, that I am planning to add to this library shortly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/StephenCleary/Mvvm.Async/issues/3#issuecomment-241196865 , or mute the thread https://github.com/notifications/unsubscribe-auth/ASQzRslnk0ZxEfXSdGoBMzvzyAGvS4v3ks5qhu91gaJpZM4JEyZi .Image removed by sender.

Hi Stephen,
Thought I would give you an update on my use case. What I found was that I wanted two distinct types of functionality.
One, I wanted a really robust, general-purpose delegate wrapper. The constructor input is either an async or sync delegate, which it can then execute either sync or async (well, not sync for an async delegate) and wrapping it in NotifyTask when appropriate. It can have a return value, it can execute on a background thread or the original thread. It creates a cancellation token if needed and a progress reporter object if needed. It moves the exceptions from the sync or async execution into the progress reporter. Also, via a derived class, I keep track of all the delegates and notify the application when interesting things happen.
Two, the command. It's a delegate wrapper that then deals with the various requirements of ICommand such as CanExecute, etc.  I did stick with the approach of switching CanExecute to something based on INotifyPropertyChanged.
Thanks again for all the great code you have out there & for your dedication to the world of async!
sjb


ScanJobPodPriorityClassName not used fo Node-Collector Jobs

What steps did you take and what happened:
Hi,
looks like the PriorityClass is not used for the Node Collector Job. ScanJobPodPriorityClassName is set, but only used for Vulnerability Jobs
apiVersion: v1
data:
  compliance.failEntriesLimit: "10"
  configAuditReports.scanner: Trivy
  node.collector.imageRef: ghcr.io/aquasecurity/node-collector:0.0.6
  nodeCollector.volumeMounts: '[{"mountPath":"/var/lib/etcd","name":"var-lib-etcd","readOnly":true},{"mountPath":"/var/lib/kubelet","name":"var-lib-kubelet","readOnly":true},{"mountPath":"/var/lib/kube-scheduler","name":"var-lib-kube-scheduler","readOnly":true},{"mountPath":"/var/lib/kube-controller-manager","name":"var-lib-kube-controller-manager","readOnly":true},{"mountPath":"/etc/systemd","name":"etc-systemd","readOnly":true},{"mountPath":"/lib/systemd/","name":"lib-systemd","readOnly":true},{"mountPath":"/etc/kubernetes","name":"etc-kubernetes","readOnly":true},{"mountPath":"/etc/cni/net.d/","name":"etc-cni-netd","readOnly":true}]'
  nodeCollector.volumes: '[{"hostPath":{"path":"/var/lib/etcd"},"name":"var-lib-etcd"},{"hostPath":{"path":"/var/lib/kubelet"},"name":"var-lib-kubelet"},{"hostPath":{"path":"/var/lib/kube-scheduler"},"name":"var-lib-kube-scheduler"},{"hostPath":{"path":"/var/lib/kube-controller-manager"},"name":"var-lib-kube-controller-manager"},{"hostPath":{"path":"/etc/systemd"},"name":"etc-systemd"},{"hostPath":{"path":"/lib/systemd"},"name":"lib-systemd"},{"hostPath":{"path":"/etc/kubernetes"},"name":"etc-kubernetes"},{"hostPath":{"path":"/etc/cni/net.d/"},"name":"etc-cni-netd"}]'
  report.recordFailedChecksOnly: "true"
  scanJob.automountServiceAccountToken: "true"
  scanJob.compressLogs: "true"
  scanJob.nodeSelector: '{"kubernetes.io/os":"linux"}'
  scanJob.podPriorityClassName: system-node-critical
  scanJob.podTemplateContainerSecurityContext: '{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsUser":0}'
  trivy.serverURL: http://trivy-service.trivy-system:4954
  vulnerabilityReports.scanner: Trivy
kind: ConfigMap
metadata:
  annotations:
    meta.helm.sh/release-name: trivyoperator
    meta.helm.sh/release-namespace: trivy-system
  labels:
    app.kubernetes.io/instance: trivyoperator
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: trivy-operator
    app.kubernetes.io/version: 0.15.1
    helm.sh/chart: trivy-operator-0.15.1
  name: trivy-operator
  namespace: trivy-system

apiVersion: v1
kind: Pod
metadata:
  annotations:
    policies.kyverno.io/last-applied-patches: |
      add-default-nodeselector.mutating-add-default-nodeselector.kyverno.io: added /spec/nodeSelector
  creationTimestamp: "2023-07-31T09:24:53Z"
  generateName: node-collector-749dbc6cfb-
  labels:
    app: node-collector
    batch.kubernetes.io/controller-uid: fdbf00ca-7b5c-4633-a656-e9067805803d
    batch.kubernetes.io/job-name: node-collector-749dbc6cfb
    controller-uid: fdbf00ca-7b5c-4633-a656-e9067805803d
    job-name: node-collector-749dbc6cfb
  name: node-collector-749dbc6cfb-glsnc
  namespace: trivy-system
  ownerReferences:
  - apiVersion: batch/v1
    blockOwnerDeletion: true
    controller: true
    kind: Job
    name: node-collector-749dbc6cfb
    uid: fdbf00ca-7b5c-4633-a656-e9067805803d
  resourceVersion: "2080012"
  uid: 58091dad-3013-47ac-80ad-c43f31b3c3a4
spec:
  automountServiceAccountToken: true
  containers:
  - command:
    - node-collector
    env:
    - name: AWS_STS_REGIONAL_ENDPOINTS
      value: regional
    - name: AWS_WEB_IDENTITY_TOKEN_FILE
      value: /var/run/secrets/eks.amazonaws.com/serviceaccount/token
    image: ghcr.io/aquasecurity/node-collector:0.0.6
    imagePullPolicy: IfNotPresent
    name: node-collector
    resources:
      limits:
        cpu: 100m
        memory: 100M
      requests:
        cpu: 50m
        memory: 50M
    securityContext:
      allowPrivilegeEscalation: false
      capabilities:
        drop:
        - ALL
      privileged: false
      readOnlyRootFilesystem: true
      runAsUser: 0
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/lib/etcd
      name: var-lib-etcd
      readOnly: true
    - mountPath: /var/lib/kubelet
      name: var-lib-kubelet
      readOnly: true
    - mountPath: /var/lib/kube-scheduler
      name: var-lib-kube-scheduler
      readOnly: true
    - mountPath: /var/lib/kube-controller-manager
      name: var-lib-kube-controller-manager
      readOnly: true
    - mountPath: /etc/systemd
      name: etc-systemd
      readOnly: true
    - mountPath: /lib/systemd/
      name: lib-systemd
      readOnly: true
    - mountPath: /etc/kubernetes
      name: etc-kubernetes
      readOnly: true
    - mountPath: /etc/cni/net.d/
      name: etc-cni-netd
      readOnly: true
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-jbg6x
      readOnly: true
    - mountPath: /var/run/secrets/eks.amazonaws.com/serviceaccount
      name: aws-iam-token
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  hostPID: true
  nodeSelector:
    kubernetes.io/os: linux
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Never
  schedulerName: default-scheduler
  securityContext:
    runAsGroup: 0
    runAsUser: 0
    seccompProfile:
      type: RuntimeDefault
  serviceAccount: trivy-operator
  serviceAccountName: trivy-operator
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: aws-iam-token
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          audience: sts.amazonaws.com
          expirationSeconds: 86400
          path: token
  - hostPath:
      path: /var/lib/etcd
      type: ""
    name: var-lib-etcd
  - hostPath:
      path: /var/lib/kubelet
      type: ""
    name: var-lib-kubelet
  - hostPath:
      path: /var/lib/kube-scheduler
      type: ""
    name: var-lib-kube-scheduler
  - hostPath:
      path: /var/lib/kube-controller-manager
      type: ""
    name: var-lib-kube-controller-manager
  - hostPath:
      path: /etc/systemd
      type: ""
    name: etc-systemd
  - hostPath:
      path: /lib/systemd
      type: ""
    name: lib-systemd
  - hostPath:
      path: /etc/kubernetes
      type: ""
    name: etc-kubernetes
  - hostPath:
      path: /etc/cni/net.d/
      type: ""
    name: etc-cni-netd
  - name: kube-api-access-jbg6x
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
status:
  message: 'Pod was rejected: Node didn''t have enough resource: cpu, requested: 50,
    used: 1480, capacity: 1500'
  phase: Failed
  reason: OutOfcpu
  startTime: "2023-07-31T09:24:53Z"

What did you expect to happen:
ScanJobPodPriorityClassName is also used for the Node Collector Jobs.
Environment:

Trivy-Operator version (use trivy-operator version): v0.15.1
Kubernetes version (use kubectl version):  v1.27.3-eks-a5565ad
OS (macOS 10.15, Windows 10, Ubuntu 19.10 etc): AMZN2

Hi, Is anyone working on this?

@dschunack you pick it up if you have time


Separate healthcheck plugin

We should create separate neofs-health plugin (that uses healht logic from geodns plugin).

More like nns-health. There is nothing about neofs, if I understand correctly.

By neofs-nealth I mean it belongs to nspcc. This plugin will be general so maybe it can be called healthchecker (just health is already taken)


Computation notifications → 🔕

Problem: See #137.
Solution: Drop comp run end notifications from bg-services.js
Testing: Run a computation.

So much nicer now:

:wave:

This PR modifies code minimally, so I’m just doing it. 💪


Provide Amazon Aurora database support for our products

Description:
We need to provide Amazon Aurora support for our products in future releases with relevant DB scripts.
Suggested Labels:
database
Suggested Assignees:
Ishara Karunarathna
Affected Product Version:
Future

whats the resolution ?


#62 solve celery incompatibility

Replaces multiprocess by billiard
Tested on python 2.7 and 3.5

@pnpnpn Any thoughts/comments?

@pnpnpn Any thoughts/comments?

I opened another pull request ( #67 ) for the above issue that builds on top of this PR.

I opened another pull request ( #67 ) for the above issue that builds on top of this PR.


feat: test if content is scrollable before set tabindex for modal body

Signed-off-by: KingMario<EMAIL_ADDRESS>PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)
[ ] If applicable, have a visual design approval

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] clarity.design website / infrastructure changes
[ ] Other... Please describe:

What is the current behavior?

tabindex is set for modal body for no condition.
Issue Number: N/A
What is the new behavior?
test if content is scrollable before set tabindex for modal body
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

Could you please provide us more context about this feature?
Why we would need to add a new class and how is this class going to stop the keyboard scrolling functionality?

Hi @bbogdanov,
We have a VPAT jira ticket complains that while using tab key to navigate inside a modal dialog, the focus is moved to a hidden element before the first input field. It turns out that, the hidden element is the modal body element.
From the WCAG document, the tab stop should be set to an operable element.
The ClrModalBody directive helps add the tabindex attribute to the modal body, so that the element can be focused. And when focused, it can be scrolled by up and down arrow keys.
But if the modal content is not higher than the modal height, the modal body is not operable and should not be focusable.
The updated selector won't affect the original behavior of an element with modal-body class as usual. When the additional no-tab-stop class is added to a .modal-body element, the element doesn't match the updated selector .modal-body:not(.no-tab-stop), hence, the directive is not hit and the focusable behavior is not applied.

Hi @bbogdanov,
I've just update the directive to test if content is scrollable before set tabindex for modal body. Please review again.
Thanks

This is interesting but I'm concerned about how it is actually executing, and what side effects might be caused particularly in wizards. My concern is mostly on performance, if we are running this check at the right times.

ResizeObserver is not supported in all browsers and we may have to add a polyfill depending on our browser support (https://caniuse.com/resizeobserver)

We do not support IE11 and ResizeObserver is in all the versions of all the browsers we support. So no. 1 here is a non-concern.
As for adding a new element inside of .modal-body. I think it's possible to do that without a breaking change to the end users. But it's been a while since I've been in the @clr/angular modal code.

closing this as it should be fixed with https://github.com/vmware/clarity/pull/6546


analyze page made the changes mentioned

Ive made the changes mentioned previously on the PR
issue.: #71

let me remerge and check it..

still the hidden container issue persists....


MyBatis and JDK 9: Illegal reflective access

After updating from JDK 8 to JDK 9, I'm getting following warnings:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector (file:/C:/Java%20Libs/MyBatis/mybatis-3.4.5.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.reflection.Reflector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
This happens because of new modular arch of JDK 9.

Thanks for your reporting!
We'll plan support JDK 9 officially since next minor version up(3.5).

This issue has been fixed via 3.4.6.

With 3.4.6 I'm still getting a "reflective" error but just on a different method:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector (file:/..../.m2/repository/org/mybatis/mybatis/3.4.6/mybatis-3.4.6.jar) to method java.lang.String.coder()
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.reflection.Reflector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

@jgprospect thanks for your reaction! This issue keeps the open status.

BTW, I the only places for this problem seem to be in org.apache.ibatis.reflection.Reflector.addUniqueMethods(Reflector.java:344) and org.apache.ibatis.reflection.Reflector.addFields(Reflector.java:259) (see stacktraces above).
At least in my code, I couldn't find any other place.

Hi @cristian-mocanu-mob ,
Please read the comments on #1180 .
The change was applied as a general optimization, not as a fix for the warnings.

I think the additional property suggested by @cristian-mocanu-mob is a good solution. JDK11 will be released soon and it will be LTS so a lot of people will migrate to this version. It would be good to have this option already.

I am still doing my research, but simple ON/OFF switch may be insufficient.
Calling setAccessible() is not a problem if the developer exported their module to MyBatis and we should support this scenario.
I think the right fix would be to check if a field/method is accessible only when it's requested by user's code (e.g. the field/property is referenced from a mapper).
Please give us some more time.

Hi all,
I have merged #1321 which should resolve the warning.
Please verify the fix with the latest 3.5.0-SNAPSHOT and let us know if there is any problem.
Thank you!

I do have those warnings with Java 11 and MyBatis 3.5.1:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.ognl.OgnlRuntime (file:/C:/Users/thomas.boerkel/.m2/repository/org/mybatis/mybatis/3.5.1/mybatis-3.5.1.jar) to method java.util.HashMap$KeySet.size()
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.ognl.OgnlRuntime
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

3.5.1 with JDK11.0.2 ，still has this waining：
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.reflection.invoker.GetFieldInvoker (file:/C:/Users/liunewshine/.m2/repository/org/mybatis/mybatis/3.5.1/mybatis-3.5.1.jar) to field java.lang.reflect.Proxy.h
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.reflection.invoker.GetFieldInvoker
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

3.5.2 with openjdk version "11.0.4" 2019-07-16
WARNING: Illegal reflective access by org.apache.ibatis.binding.MapperProxy (file:/C:/Users/dlj335/.m2/repository/org/mybatis/mybatis/3.5.2/mybatis-3.5.2.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)

@Verdoso ,
Please try 3.5.3-SNAPSHOT .
The issue was reported and fixed via #1636 .

Yep, confirmed!
Thanks @harawata

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.reflection.invoker.GetFieldInvoker (file:/Users/zzq/.m2/repository/org/mybatis/mybatis/3.5.5/mybatis-3.5.5.jar) to field java.lang.reflect.Proxy.h
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.reflection.invoker.GetFieldInvoker
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

the warning still exists in 3.5.7 (with mybatis-plu <IP_ADDRESS>)
List<Datasource> userList = datasourceMapper.selectList(datasourceWrapper.lambda()
            .select(Datasource::getId, Datasource::getName, Datasource::getUserDefined)

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction (file:/C:/Users/ldw/.m2/repository/com/baomidou/mybatis-plus-core/<IP_ADDRESS>/mybatis-plus-core-<IP_ADDRESS>.jar) to field java.lang.invoke.SerializedLambda.capturingClass
WARNING: Please consider reporting this to the maintainers of com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

@ldwnt ,
The maintainer of com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction would be https://github.com/baomidou/mybatis-plus
I'm going to lock this issue.
If you found another case, please report it as a new issue.
Note that we need to know exactly how to reproduce the warning.


[TASK] Drop the CI action that requires test coverage

This tool has turned out to be less helpful for our project that we had hoped.

coverage: 38.583%. remained the same
when pulling c434fb144bace89d8e3064e2d4b0a35dd2358aeb on task/drop-test-action
into fe2eaa0c1b1325191bc9ccffdeda6ee9cf1f7fae on main.


NIFI-10953: fix default value and update docs

Summary
NIFI-10953
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[x] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 8
[x] JDK 11
[x] JDK 17

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[x] Documentation formatting appears as expected in rendered files

One additional note, these changes should reference a new Jira issue, not the existing Jira issue, which is already resolved.

Instead of relying on a parameter context for the output bucket we could add a property on the processor.
For that property and the incoming flowfile attributes we could build a custom map and add that as parameter to the evaluateAttributeExpression call when getting the value of the payload JSON.
When both the property and a similar flowfile attribute is set, flowfile attributes should have precedence.
Also the type of Vision action (like DOCUMENT_TEXT_DETECTION) could come from a property as well.

Instead of relying on a parameter context for the output bucket we could add a property on the processor. For that property and the incoming flowfile attributes we could build a custom map and add that as parameter to the evaluateAttributeExpression call when getting the value of the payload JSON. When both the property and a similar flowfile attribute is set, flowfile attributes should have precedence.
Also the type of Vision action (like DOCUMENT_TEXT_DETECTION) could come from a property as well.

Thank you for the suggestion. I have updated the PR based on your suggestion.

LGTM
@exceptionfactory if you are okay with the recent changes I'll merge into main.

LGTM
Thank you for your work @KalmanJantner and @exceptionfactory for your review!
Merged into main.


Fixed deprecation warnings

#9

Can you provide a screen shot of what this looks like?

It just remove the deprecation warnings due to recent Atom changes.

Starting from Atom v1.13.0, the contents of atom-text-editor elements are no longer encapsulated within a shadow DOM boundary. This means you should stop using :host and ::shadow pseudo-selectors, and prepend all your syntax selectors with syntax--.


Added backdrop parameter

Fixes #680
Notes

May need to change class to no-modal-backdrop instead of no-backdrop
This still has the error with long text as mentioned in #679
Independent from #654

Looks very nice!

Backdrop removal means that the window isn't modal anymore and the document is accessible. Should the document be scrollable as well?
Since there's no backdrop and the default background is white, should we introduce a box-shadow for nonmodal windows? Something like box-shadow: 0 0 10px $swal2-overlay.

@limonte I agree with both of those, I'll add it in!


Is it possible to run N convos while keeping the browser open?

Describe the bug
We are running 4 convos. For each convo, the browser opens, executes, and closes. And the opening time of the browser compromises the execution time of the tests. Would it be possible to close only after the execution of the last convo?
Botium Flavour:

Botium Bindings ?

Botium Version

"botium-bindings": "^2.1.13",
"botium-connector-webdriverio": "^0.3.25",

No


The night mode of the Stranger

It's ok if you have a plan to light off on some part again, but if not, please, please reconsider it.
I believe a part of concept of this mod is a shadow (or shade as stated by Slate).
The night mode of the Stranger emphasizes this concept through the whole atmosphere.
In terms of the game mechanics: players starting this mod must be thinking "I am an expert of the Stranger more than Acetate."
But, they would be surprised at their unknown appearance of the Stranger when launching the raft from the entrance.
So, they have to be more cautious to find clues of Acetate not to missing out anything.
In terms of the background, i.e., why the artificial sun is off: there should be some hypotheses.
My main hypothesis is it is something of an alert for the inhabitants (like this post reacted by Alex Beachum).
Acetate accessed the Mainframe and transmission for the signal blocker, and launched one of light spacecrafts.
It can be a reason for making an alert on the Stranger.
And, ... it is a so cool appearance:

(we can walk here with a lantern as drawn in the main concept art)

Thanks.

I tried making it by Enhance Divergence Mod.
As a result, it is partially realized, but it seems not sufficient because the intention to emphasize the records of Acetate is not achieved yet.
Maybe, in future, I would do it. Maybe.
Thanks.


Recreate form logic

A good portion of the form logic is contained on the paper version of the form:
LarkCamp_2019Brochure_v3b.pdf
There are a few changes that we plan on making this year though:

Vehicle camping spaces like tent camping spaces
Changes in the way we discount for cash/check

Basic registration object idea:
{
   // ... Reg level attributes here
  campers : [
     // ... campers level attributes here

  ],
}

CSV headings for what needs to be sent:

"{$_submission_id}","{$_submission_time}","{$16825792-first}","{$16825792-last}","{$16825793 Address}","{$17016397 City}","{$17016398 State/Province}","{$17016399 Zipcode or Postal Code}","{$16994538 Country}","{$16825794 Phone }","{$16825795 Email}","{$16842365 How did you hear about Lark Camp?}","{$16842420 Comments}","{$16876173 How Many People Are You Registering For}","{$16825796 Payment Type}","{$16842442 Quantity Parking Passes Discount Price}","{$16842475 Quantity Parking Passes Full Price}","{$16842478 Who Gets The Parking Pass(es)?}","{$16842487 MAKE A NON-TAX DEDUCTIBLE DONATION}","{$16947955 Friends Of The Woodlands}","{$16825797-first}","{$16825797-last}","{$16825798 Address}","{$17016409 City}","{$17016417 State/Province}","{$17016418 Zipcode or Postal Code}","{$16994462 Country}","{$16825799 Phone}","{$16825800 Email}","{$16937965 Gender}","{$16937981 If registrant is under 18 please note age here.}","{$16937985 I want to be lodged in:}","{$16937989 Lodging Preference:}","{$16937993 Who would you like to be in a cabin with? Let u...}","{$16937999 If you are tent or vehicle camping who will be ...}","{$16992085 TENTING AREA PREFERENCE}","{$16938020 Length Of Stay:}","{$16826311 Registrant One Tuition Discount Price}","{$16937824 Registrant One Tuition Full Price}","{$16937875 Registrant One Meals Discount Price}","{$16937914 Registrant One Meals Full Price}","{$16938033 If you are purchasing meals at this time please...}","{$16994706-first}","{$16994706-last}","{$16994707 Address}","{$17016424 City}","{$17016425 State/Province}","{$17016426 Zipcode or Postal Code}","{$16994708 Country}","{$16994709 Phone}","{$16994710 Email}","{$16994711 Gender}","{$16994712 If registrant is under 18 please note age here.}","{$16994714 I want to be lodged in:}","{$16994715 Lodging Preference:}","{$16994716 Who would you like to be in a cabin with? Let u...}","{$16994717 If you are tent or vehicle camping who will be ...}","{$16994718 TENTING AREA PREFERENCE}","{$16994720 Length Of Stay:}","{$16994722 Registrant Two Tuition Discount Price}","{$16994723 Registrant Two Tuition Full Price}","{$16994725 Registrant Two Meals Discount Price}","{$16994726 Registrant Two Meals Full Price}","{$16994727 If you are purchasing meals at this time please...}","{$16994760-first}","{$16994760-last}","{$16994761 Address}","{$17016728 City}","{$17016729 State/Province}","{$17016730 Zipcode or Postal Code}","{$16994762 Country}","{$16994763 Phone}","{$16994764 Email}","{$16994765 Gender}","{$16994766 If registrant is under 18 please note age here.}","{$16994768 I want to be lodged in:}","{$16994769 Lodging Preference:}","{$16994770 Who would you like to be in a cabin with? Let u...}","{$16994771 If you are tent or vehicle camping who will be ...}","{$16994772 TENTING AREA PREFERENCE}","{$16994774 Length Of Stay:}","{$16994776 Registrant Three Tuition Discount Price}","{$16994777 Registrant Three Tuition Full Price}","{$16994779 Registrant Three Meals Discount Price}","{$16994780 Registrant Three Meals Full Price}","{$16994781 If you are purchasing meals at this time please...}","{$16994848-first}","{$16994848-last}","{$16994849 Address}","{$17016737 City}","{$17016736 State/Province}","{$17016735 Zipcode or Postal Code}","{$16994850 Country}","{$16994851 Phone}","{$16994852 Email}","{$16994853 Gender}","{$16994854 If registrant is under 18 please note age here.}","{$16994856 I want to be lodged in:}","{$16994857 Lodging Preference:}","{$16994858 Who would you like to be in a cabin with? Let u...}","{$16994859 If you are tent or vehicle camping who will be ...}","{$16994860 TENTING AREA PREFERENCE}","{$16994862 Length Of Stay:}","{$16994864 Registrant Four Tuition Discount Price }","{$16994865 Registrant Four Tuition Full Price}","{$16994867 Registrant Four Meals Discount Price}","{$16994868 Registrant Four Meals Full Price}","{$16994869 If you are purchasing meals at this time please...}","{$16994881-first}","{$16994881-last}","{$16994882 Address}","{$17016742 City}","{$17016740 State/Province}","{$17016739 Zipcode or Postal Code}","{$16994883 Country}","{$16994884 Phone}","{$16994885 Email}","{$16994886 Gender}","{$16994887 If registrant is under 18 please note age here.}","{$16994889 I want to be lodged in:}","{$16994890 Lodging Preference:}","{$16994891 Who would you like to be in a cabin with? Let u...}","{$16994892 If you are tent or vehicle camping who will be ...}","{$16994893 TENTING AREA PREFERENCE}","{$16994895 Length Of Stay:}","{$16994897 Registrant Five Tuition Discount Price}","{$16994898 Registrant Five Tuition Full Price}","{$16994900 Registrant Five Meals Discount Price}","{$16994901 Registrant Five Meals Full Price}","{$16994902 If you are purchasing meals at this time please...}","{$16995001-first}","{$16995001-last}","{$16995002 Address}","{$17016752 City}","{$17016749 State/Province}","{$17016748 Zipcode or Postal Code}","{$16995003 Country}","{$16995004 Phone}","{$16995005 Email}","{$16995006 Gender}","{$16995007 If registrant is under 18 please note age here.}","{$16995009 I want to be lodged in:}","{$16995010 Lodging Preference:}","{$16995011 Who would you like to be in a cabin with? Let u...}","{$16995012 If you are tent or vehicle camping who will be ...}","{$16995013 TENTING AREA PREFERENCE}","{$16995015 Length Of Stay:}","{$16995017 Registrant Six Tuition Discount Price}","{$16995018 Registrant Six Tuition Full Price}","{$16995020 Registrant Six Meals Discount Price}","{$16995021 Registrant Six Meals Full Price}","{$16995022 If you are purchasing meals at this time please...}","{$16938088 Tshirt Small Discount Price}","{$16938148 Tshirt Medium Discount Price}","{$16947413 Tshirt Large Discount Price}","{$16947415 Tshirt EX Large Discount Price}","{$16947417 Tshirt 2EX Large Discount Price}","{$16947445 Sweatshirt Small Discount Price}","{$16947501 Sweatshirt Medium Discount Price}","{$16947506 Sweatshirt Large Discount Price}","{$16947551 Sweatshirt EX Large Discount Price}","{$16947555 Sweatshirt 2EX Large Discount Price}","{$16938093 Tshirt Small Full Price}","{$16938156 Tshirt Medium Full Price}","{$16947428 Tshirt Large Full Price}","{$16947431 Tshirt EX Large Full Price}","{$16947434 Tshirt 2EX Large Full Price}","{$16947564 Sweatshirt Small Full Price}","{$16947832 Sweatshirt Medium Full Price}","{$16947836 Sweatshirt Large Full Price}","{$16947837 Sweatshirt EX Large Full Price}","{$16947838 Sweatshirt 2EX Large Full Price}","{$16825808 Total Cost}","{$16947905 This box must be ticked...ting your registration.}","{$16947944 If you intend on vehicle camping, please tell u...}"

"{$_submission_id}",
"{$_submission_time}",
"{$16825792-first}",
"{$16825792-last}",
"{$16825793 Address}",
"{$17016397 City}",
"{$17016398 State/Province}",
"{$17016399 Zipcode or Postal Code}",
"{$16994538 Country}",
"{$16825794 Phone }",
"{$16825795 Email}",
"{$16842365 How did you hear about Lark Camp?}",
"{$16842420 Comments}",
"{$16876173 How Many People Are You Registering For}",
"{$16825796 Payment Type}",
"{$16842442 Quantity Parking Passes Discount Price}",
"{$16842475 Quantity Parking Passes Full Price}",
"{$16842478 Who Gets The Parking Pass(es)?}",
"{$16842487 MAKE A NON-TAX DEDUCTIBLE DONATION}",
"{$16947955 Friends Of The Woodlands}",
"{$16825797-first}",
"{$16825797-last}",
"{$16825798 Address}",
"{$17016409 City}",
"{$17016417 State/Province}",
"{$17016418 Zipcode or Postal Code}",
"{$16994462 Country}",
"{$16825799 Phone}",
"{$16825800 Email}",
"{$16937965 Gender}",
"{$16937981 If registrant is under 18 please note age here.}",
"{$16937985 I want to be lodged in:}",
"{$16937989 Lodging Preference:}",
"{$16937993 Who would you like to be in a cabin with? Let u...}",
"{$16937999 If you are tent or vehicle camping who will be ...}",
"{$16992085 TENTING AREA PREFERENCE}",
"{$16938020 Length Of Stay:}",
"{$16826311 Registrant One Tuition Discount Price}",
"{$16937824 Registrant One Tuition Full Price}",
"{$16937875 Registrant One Meals Discount Price}",
"{$16937914 Registrant One Meals Full Price}",
"{$16938033 If you are purchasing meals at this time please...}",
"{$16994706-first}",
"{$16994706-last}",
"{$16994707 Address}",
"{$17016424 City}",
"{$17016425 State/Province}",
"{$17016426 Zipcode or Postal Code}",
"{$16994708 Country}",
"{$16994709 Phone}",
"{$16994710 Email}",
"{$16994711 Gender}",
"{$16994712 If registrant is under 18 please note age here.}",
"{$16994714 I want to be lodged in:}",
"{$16994715 Lodging Preference:}",
"{$16994716 Who would you like to be in a cabin with? Let u...}",
"{$16994717 If you are tent or vehicle camping who will be ...}",
"{$16994718 TENTING AREA PREFERENCE}",
"{$16994720 Length Of Stay:}",
"{$16994722 Registrant Two Tuition Discount Price}",
"{$16994723 Registrant Two Tuition Full Price}",
"{$16994725 Registrant Two Meals Discount Price}",
"{$16994726 Registrant Two Meals Full Price}",
"{$16994727 If you are purchasing meals at this time please...}",
"{$16994760-first}",
"{$16994760-last}",
"{$16994761 Address}",
"{$17016728 City}",
"{$17016729 State/Province}",
"{$17016730 Zipcode or Postal Code}",
"{$16994762 Country}",
"{$16994763 Phone}",
"{$16994764 Email}",
"{$16994765 Gender}",
"{$16994766 If registrant is under 18 please note age here.}",
"{$16994768 I want to be lodged in:}",
"{$16994769 Lodging Preference:}",
"{$16994770 Who would you like to be in a cabin with? Let u...}",
"{$16994771 If you are tent or vehicle camping who will be ...}",
"{$16994772 TENTING AREA PREFERENCE}",
"{$16994774 Length Of Stay:}",
"{$16994776 Registrant Three Tuition Discount Price}",
"{$16994777 Registrant Three Tuition Full Price}",
"{$16994779 Registrant Three Meals Discount Price}",
"{$16994780 Registrant Three Meals Full Price}",
"{$16994781 If you are purchasing meals at this time please...}",
"{$16994848-first}",
"{$16994848-last}",
"{$16994849 Address}",
"{$17016737 City}",
"{$17016736 State/Province}",
"{$17016735 Zipcode or Postal Code}",
"{$16994850 Country}",
"{$16994851 Phone}",
"{$16994852 Email}",
"{$16994853 Gender}",
"{$16994854 If registrant is under 18 please note age here.}",
"{$16994856 I want to be lodged in:}",
"{$16994857 Lodging Preference:}",
"{$16994858 Who would you like to be in a cabin with? Let u...}",
"{$16994859 If you are tent or vehicle camping who will be ...}",
"{$16994860 TENTING AREA PREFERENCE}",
"{$16994862 Length Of Stay:}",
"{$16994864 Registrant Four Tuition Discount Price }",
"{$16994865 Registrant Four Tuition Full Price}",
"{$16994867 Registrant Four Meals Discount Price}",
"{$16994868 Registrant Four Meals Full Price}",
"{$16994869 If you are purchasing meals at this time please...}",
"{$16994881-first}",
"{$16994881-last}",
"{$16994882 Address}",
"{$17016742 City}",
"{$17016740 State/Province}",
"{$17016739 Zipcode or Postal Code}",
"{$16994883 Country}",
"{$16994884 Phone}",
"{$16994885 Email}",
"{$16994886 Gender}",
"{$16994887 If registrant is under 18 please note age here.}",
"{$16994889 I want to be lodged in:}",
"{$16994890 Lodging Preference:}",
"{$16994891 Who would you like to be in a cabin with? Let u...}",
"{$16994892 If you are tent or vehicle camping who will be ...}",
"{$16994893 TENTING AREA PREFERENCE}",
"{$16994895 Length Of Stay:}",
"{$16994897 Registrant Five Tuition Discount Price}",
"{$16994898 Registrant Five Tuition Full Price}",
"{$16994900 Registrant Five Meals Discount Price}",
"{$16994901 Registrant Five Meals Full Price}",
"{$16994902 If you are purchasing meals at this time please...}",
"{$16995001-first}",
"{$16995001-last}",
"{$16995002 Address}",
"{$17016752 City}",
"{$17016749 State/Province}",
"{$17016748 Zipcode or Postal Code}",
"{$16995003 Country}",
"{$16995004 Phone}",
"{$16995005 Email}",
"{$16995006 Gender}",
"{$16995007 If registrant is under 18 please note age here.}",
"{$16995009 I want to be lodged in:}",
"{$16995010 Lodging Preference:}",
"{$16995011 Who would you like to be in a cabin with?

Tackling in #3
What does "16938033 If you are purchasing meals at this time please [...]" refer to?

It refers to meal type.  I've attached the values that these actually
produced from last years lark so you know the actual data to produce.
I'm going to get started on the app to submit to tonight.
--Will
On Thu, Sep 19, 2019 at 12:02 AM Evin Sellin<EMAIL_ADDRESS>wrote:

Tackling in #3 https://github.com/willfulbard/larkcamp_reg/pull/3
What does "16938033 If you are purchasing meals at this time please [...]"
refer to?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/willfulbard/larkcamp_reg/issues/1?email_source=notifications&email_token=ADXFLZF43LOUT45M6EP3G33QKMPXPA5CNFSM4IXYM6R2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7COEHQ#issuecomment-532996638,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADXFLZFILN47QE66MMRDXX3QKMPXPANCNFSM4IXYM6RQ
.

I'm going to close this in favor of smaller better defined issues since we got the basic working.


Dashboard button is visible over full screen visualization

Discord username
No response
What type of issue is this?
Permanent – Occurring repeatably
Is this issue blocking you from using Enso?

[ ] Yes, I can't use Enso because of this issue.

Is this a regression?

[ ] Yes, previous version of Enso did not have this issue.

What issue are you facing?

Expected behaviour
Dashboard button should be hide when opening full screen vis just like other buttons.
How we can reproduce it?
No response
Screenshots or screencasts
No response
Logs
No response
Enso Version
nightly 25.05
Browser or standalone distribution
Standalone distribution (local project)
Browser Version or standalone distribution
standalone
Operating System
MacOS
Operating System Version
No response
Hardware you are using
No response

Merging with #6722


fixed access check for non-administrators

First off, thanks a bunch for the SAML implementation! I noticed however, non-administrator users ran into errors when trying to manage their domains. I'm not sure what you were trying to do with the get_domain_query() call, but I believe this fixes the issue.

the second commit also implements a workaround for https://github.com/thomasDOTde/PowerDNS-Admin/issues/6 (full SLO functionality would still remain on the wish-list, but at least this way you can make sure the SAML session will be ended on logout).

Hey,
thanks for your contribution and enhancements! I haven't even recognized that the whole standard users access permission check is broken since a long time. I've done a little optimization to it in a way that the database will do the work for us.
Second:
For SAML logout I implemented the standard SAML logout process using the url inside the SAML metadata. Since my SAML idp isn't able to process unsigned logout request could you give it a try.
I've made the final url which will be redirected to after SAML logout configurable. It can also be configured if SAML logout should be performed.
Could you review the changes I've made and give me some feedback on the code and the SAML logout test?
Thanks
Thomas

Great, this is starting to really look like actual SLO :)
While testing I noticed an incorrect parameter name, which the last commit fixes.
I've also patched the sls mechanism to respect the redirect url. If I understood things correctly, after logout is called, a request is sent to the IdP, which sends a response that is handled by saml_logout, calling process_slo.
saml_logout hopes to get a url from process_slo, which should be the case for SAMLRequests, but not in this case of SAMLResponse. Hence another check whether we have a redirect url configured locally.
Finally, it might be worth documenting that a signed logout response from the IdP is mandatory, which for simplesamlphp users like me means adding 'sign.logout' => TRUE to the metadata.

I would merge the pr and implement signed requests in a separate pr.
I've already tested it locally with some problems of Case-Sensitivity for ADFS 3.
That was already addressed in the utils library.
https://github.com/thomasDOTde/PowerDNS-Admin/blob/b55833bd2a439c21c202eb4d409bbe0dbc8e696f/app/lib/utils.py#L206

Thank you!


camera plugin not work

Steps to Reproduce

... Android device samsung s8 and oneplus 5
... use camera plugin https://pub.dartlang.org/packages/camera
... use it

Logs
this is s8

this is oneplus 5

Please add the output of flutter doctor -v.

use it

To investigate we would need a minimal runnable reproduction
as a single file so that we can just copy your code into lib/main.dart of a new project and run to reproduce.
You should get the error output in the console as well
and there it should be complete (in contrary to the truncated text in your screenshots)
Please post the full error output.

@zoechi
[√] Flutter (Channel dev, v0.11.13, on Microsoft Windows [Version 10.0.16299.402], locale zh-CN)
    • Flutter version 0.11.13 at C:\flutter
    • Framework revision 58c8489fcd (7 days ago), 2018-11-29 19:20:18 -0500
    • Engine revision 7375a0f414
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at C:\Users\Aranya\AppData\Local\Android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: D:\android studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[√] Android Studio (version 3.2)
    • Android Studio at D:\android studio
    • Flutter plugin version 31.1.1
    • Dart plugin version 181.5540.11
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[√] VS Code, 64-bit edition (version 1.22.1)
    • VS Code at C:\Program Files\Microsoft VS Code
    • Flutter extension version 2.21.1

[√] Connected device (1 available)
    • vivo NEX S • bc4e5b46 • android-arm64 • Android 8.1.0 (API 27)

• No issues found!

Please also add the error output from the console.

@zoechi
W/com.aranya.ykcb(12322): type=1400 audit(0.0:1983380): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=17340 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc    (12322): Access denied finding property "persist.camera.cfa.packagelist"
W/CameraDevice-JV-0(12322): Stream configuration failed due to: endConfigure:380: Camera 0: Unsupported set of inputs/outputs provided
E/CameraCaptureSession(12322): Session 0: Failed to create capture session; configuration failed

Hi @vvkkhjt
if you're still experiencing this problem with latest stable, please create a new issue and provide the information required in the template.
Thank you


glitchy left eye/view

not getting any console errors in simulation: but the glitch happens on the iPHone 6 FF as well as simulation mode in Chrome and FF
you can go here to see the problem (make sure you enter simulation mode)
http://www.vrdoodler.com/doodleverse.html
and hit the cardboard view...

Not sure what's going on, but I think it's your code. In fullscreen mode I see this:

it actually works fine when you first come into fullscreen. Only after cardboard mode does the above happen in fullscreen mode.

it was this line that was causing the left eye to glitch.
renderer.autoClear = false;


Measuring the inference time of the model on a single image

I am successfully able to train and reproduce the results. However, I was wondering if there is a way in your code to measure the inference time? Or if I would like to measure the inference time using following code (given as an example), where exactly should I insert it ?
from torch.profiler import profile, record_function, ProfilerActivity

x, y = next(train_data)
x = x.chunk(config.world_size, 0)[global_rank].cuda(model_engine.local_rank)
y = y.chunk(config.world_size, 0)[global_rank].cuda(model_engine.local_rank)
with profile(
    activities= [ProfilerActivity.CPU, ProfilerActivity.CUDA],
    schedule = torch.profiler.schedule(wait=1, warmup=10, active=4)
) as prof:
    for _ in range(15):
        with record_function("forward"):
            loss = model_engine(x, y)
        with record_function("backward"):
            model_engine.backward(loss)
            # torch.cuda.synchronize()
        with record_function("update"):
            model_engine.step()
        # dist.barrier()
        prof.step()

Happy to see you manage to reproduce the results. I haven't properly evaluated the runtime for this work but only look at the FLOPs reduction.
But it could be done with something like that:
class Net(nn.Module):

    def __init__(self, encoder, decoder):
        super(Net, self).__init__()
        # 1 input image channel, 6 output channels, 5x5 square convolution
        # kernel
        self.encoder = encoder
        self.decoder = decoder

    def forward(self, x):
        features = self.encoder(x)
        out = self.decoder(features)
        return out

## TBD:  Load encoder and decoder

model = Net(encoder, decoder)

image_path = "path/to/images"
paths = glob.glob(os.path.join(image_path, '*.{}'.format("jpg")))

for idx, image_path in enumerate(paths):
    input_image = pil.open(image_path).convert('RGB')
    input_image_resized = input_image.resize((width, height), pil.LANCZOS)
    input_image_pytorch = transforms.ToTensor()(input_image_resized).unsqueeze(0).to(device)

    starter, ender = torch.cuda.Event(enable_timing=True), torch.cuda.Event(enable_timing=True)
    repetitions = 300
    timings=np.zeros((repetitions,1))
    #GPU-WARM-UP
    for _ in range(10):
        _ = model(input_image_pytorch)
    # MEASURE PERFORMANCE
    with torch.no_grad():
        for rep in range(repetitions):
            starter.record()
            model(input_image_pytorch)
            ender.record()
            # WAIT FOR GPU SYNC
            torch.cuda.synchronize()
            curr_time = starter.elapsed_time(ender)
            timings[rep] = curr_time
    mean_syn = np.sum(timings) / repetitions
    std_syn = np.std(timings)
    print(mean_syn)
    print(std_syn)

    print(f"Execution = {mean_syn} ms")

    t.append(mean_syn)

t = np.concatenate([t]).mean()
print(f"Mean = {t} ms")
print(f"fps: {1000/t}")

Normally a dummy image would be enough. But since the compression depend on the scene's geometry, the results will be more realistic when tested on a set of images.
I'm curious to see what results you'll obtain.

Sure will try that and share the results.


Small change：add a variable to  function "_generate_test_data" to make it easier to read

Hello，I review  the function _generate_test_data in  test_vcompressor.py. I think it is better to add a variable to replace extern function get_tests_data_file_path. After that the code become easier to read and reduce the number of function calls.
its  my first time to create pull request.Please tell me how to correct it if  I make many mistakes，Thanks！

Your PR contains 32 commits to 80+ files. Also trace_log_compressor has been merged already so it should not be the target.


Access PropertyValue with RuleForEach and WithState

I use a RuleForEach predicate to validate the existence of a child in a collection
I then want to return an error state object as I do with all my other validation, however I cannot access the Property Value being validated.
I would like a method to look something like:
WithState(Func<T, TProperty, object> stateProvider)
At the moment I create a string messages, but I really need a custom state object.
I realise I could write a validator for the items in the collection but I have 2 draw backs to this.

the validation method is really simple and a new validator seems too much for something so straight forward
The parent has a collection of objects that I would like to validate against and if I create a validator I believe I would have to pass this collection in through a constructor, which then requires a factory and a lot of messing around.

Here is an example of what I am trying to achieve:
RuleForEach(itemContainer => itemContainer.RequiredItems).Must((itemContainer, requiredItem) => itemContainer.GivenItems.Contains(requiredItem)).WithState((itemContainer, requiredItem) => new MissingItemErrorState { ContainerName = itemContainer.Name, RequiredItem = requiredItem });
Sorry if this is a duplicate request, or this has been/soon to be implemented.
Thanks
Kieran

That's not really possible at the moment I'm afraid...WithState can only act upon an entire property, in the same way it acts for RuleFor. I'll take a look at the feasibility of this for a future release, but this probably won't be until we're done with the .NET core integration.
For now I'd suggest using a custom property validator, and override its Validate method. This would allow you to return your own collection of ValidationFailure instances that have custom state attached.

ok, I'll give it a go


Fixed the DataFrame conversion of y in PolynomialWrapper's fit method

Fixes #
Proposed Changes
Changed from y = pd.DataFrame(y, columns=['target']) to y = pd.DataFrame(y.rename('target')).
This is because if the original y is a pd.Series with a name other than 'target', pd.DataFrame(y, columns=['target']) returns an empty DataFrame.
The root cause of this problem is that in the function of utils.convert_input_vector(y, index) -> pd.Series, when a pd.Series or a single-column pd.DataFrame is passed as an argument, the process is designed to inherit the column name from the column name of the passed pd.Series or pd.DataFrame.

Neat! well spotted. I'll merge it if the pipeline succeeds


Dreambooth training with image captions

Hi all,
I would like to fine-tune a Dreambooth model with my own dataset, and I want the model to learn the captions (description of pictures) as well.
I tried using Datasets but it doesn't recognize the metadata.csv file.
Can you please let me know if it is possible to train a Dreambooth model while incorporating the picture descriptions (captions)?
Thanks

You can modify Dreambooth-Stable-Diffusion-main\ldm\data\personalized.py to read your own data.


Add biblion to pinax-blog migration

either in docs or somehow as something runnable via management command:
https://gist.github.com/paltman/73cf67290df3e92790c29934fa8a56e5

Is this still a thing that needs to happen? @paltman

Closing issue. Does not seem relevant at this point. Feel free to re-open if I'm wrong.


Fix samples

Fix samples with recent AndroidX migration
Add assembleAndroidTest to CircleCI to prevent future issues.

It looks like CircleCI needs Android SDK

@tasomaniac yep it did! seems all good now

Thanks. 🤘


Doesn't play well with trailpack-autoreload

When autoreload is triggered traiplack-bookshelf fails with error ValidationError: "orm" is not allowed

Fixed in PR #6


Add Linkerd project ideas

@grampelberg can you rebase? This looks good to go otherwise.

@nikhita rebased. Thank you!


SideNav

The SideNav component does not seem to meet the developer guide lines, as described here:
https://developer.dxc.com/design/components/sidenav
There is no documentation on how to open and close the SideNav here:
https://developer.dxc.com/tools/react/2/#/components/sidenav
It seems the SideNav is fixed, even in the design documentation it states it should be possible to open and close the SideNav.
In contrast the Material UI Drawer components offers many more options for side navigation and comes with excellent examples on how to open and close the component using a hamburger widget here:
https://material-ui.com/components/drawers/

@mmascord we have implemented that functionality as part of our application layout component:
https://developer.dxc.com/tools/react/2/#/components/applicationLayout
Guidelines:
https://developer.dxc.com/design/principles/layout


Error: Invalid count argument when password comes from an aws_ssm_parameter resource

Describe the Bug
│ Error: Invalid count argument
│
│   on .terraform/modules/cms.db/main.tf line 54, in resource "random_password" "password":
│   54:   count   = module.this.enabled && var.master_password == "" ? 1 : 0
│
│ The "count" value depends on resource attributes that cannot be determined until apply, so Terraform cannot predict how many instances will be created. To work around this, use the -target argument to first apply only the resources that the count depends on.

Expected Behavior
Terraform plan can be applied without resource targeting.
Steps to Reproduce
set password to the value of an ssm param, for example:
master_password  = aws_ssm_parameter.db_password.value

Screenshots
No response
Environment
Terraform 1.5
Additional Context
No response

In further testing, the same thing happens with a random_password resource:
master_password     = random_password.db_password.result

...

resource "random_password" "db_password" {
  length  = 100
  special = false
}

same issue


Change bug template to ask for Node version

Pull Request Test Coverage Report for Build 6273

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 93.654%

Totals

Change from base Build 6272:
0.0%

Covered Lines:
1018

Relevant Lines:
1047

💛  - Coveralls

thanks 👍


Update README.md to explain QR code format (IDFGH-4830)

Add examples of how to create a QR code that will be recognised by the iOS or Android app

Thanks for your contribution.

Fixed with https://github.com/espressif/esp-idf/commit/b3e384272a224f3d4e6122f9628ae8c9e6d54bfb


Force eonasdan-bootstrap-datetimepicker to a version that does not pollute module.exports

eonasdan-bootstrap-datetimepicker 4.17.42 when run with angular-mocks decides that module means it can module.export, which in turn makes toastr expect to be able to use require..
Forcing explicitly 4.17.37 (the minimum requirement for patternfly), which doesn't have this problem.
Related: https://github.com/Eonasdan/bootstrap-datetimepicker/pull/1771
This thus fixes the javascript test failure..
  ReferenceError: Can't find variable: require
  at /home/travis/build/ManageIQ/manageiq-ui-self_service/bower_components/toastr/toastr.js:472

  ReferenceError: Can't find variable: toastr
  at /home/travis/build/ManageIQ/manageiq-ui-self_service/client/app/core/constants.js:9

@miq-bot add_label ui, bug

@miq-bot assign @dclarizio

@miq-bot add_label darga/no

darga/no because eonasdan-bootstrap-datetimepicker is not used by patternfly 2.3


Update email rule: Allow new domains

The form filter blocks new domains in emails. I can't submit, if I use for example .software (since the domain is too long for the filter)

Can't reproduce.


Fixes #6

I haven't provided a test since I'm not aware how to simulate a race-condition here.

Fixed a bug where we were using read-only locks when removing stuff on GetAndRemove and RemoveWithValue.


Excessive repetition of transfer message during call transfer process

Describe the bug
When performing a call transfer, the transfer message is repeated too many times, leading to a poor customer experience.
To Reproduce
Steps to reproduce the behavior:

Initiate a call transfer.
Listen for the transfer message.
Notice that the transfer message is repeated too many times, leading to a poor customer experience.

Expected behavior
The transfer message should only be played once during the call transfer process.
Screenshots
NA.
Actual result
The transfer message is repeated too many times, causing a poor customer experience.

Any traction on this ticket ?

I haven't had much time lately.


Simplify error return in getProviderFromRequestOrDefault

Summary
This was feedback in https://github.com/stacklok/minder/pull/2802
Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[x] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[ ] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 47.717% (+0.006%) from 47.711%
when pulling 0b54abbb062a131438a43ede8357e20ebba41b1d on simple-error-getprov
into 867e4c0026d87c19a81ff1a4beadf733219e7469 on main.


fix: render_lazy can't handle components

This PR changes render_lazy to use the virtual dom's create_nodes method which progress component lifecycles. This is important for render_lazy to be able to handle components.
Be warned though - there's no concept of "suspense" with Dioxus-core, so all futures will end up as empty nodes in render_lazy.
Fixes #355

This API is changing in 0.3, making this PR moot.


Auto-increment MAC address for bulk interface creation

Issue type
[X] Feature request
[ ] Bug report
[ ] Documentation

Environment

Python version: 3.6.5
NetBox version: 2.3.2

Description
Currently, if a MAC address is entered, and interfaces are created in bulk, lets say GigabitEthernet1/0/[1-24], it is simply applied to all interfaces in the range.
If the MAC address were to increment by one for each interface given the starting MAC address, it would be extremely useful for devices like switches.

Rejecting this as MAC addresses are not necessarily sequential. Potential use case for #822 if you want to add it there.


Argo CLI command to support SSH to the container

Summary
Often time, we need login to the container /pod to do some troubleshooting,  it could be done by kubectl exec , however if argo can do it, example "argo ssh taskid" , that will help a lot dev engineer who may not know k8s.
Use Cases
Argo ssh taskid
When would you use this?
troubleshooting and debug

Message from the maintainers:
Love this enhancement proposal? Give it a 👍. We prioritise the proposals with the most 👍.

You should be able to use
kubctl exec -ti $nodeId sh -