Sjoerd Langkemper
Sjoerd Langkemper
I got bitten by this again. This works as expected: ``` $ semgrep scan --validate --config . ``` This doesn't work. It doesn't show an error, but also doesn't validate...
[Another example](https://github.com/openjamoses/EASE2022/blob/f5a993bdf220db2435b98018f33d167e1bd95dd5/Datasets/raw-data/Dockerfiles/logs/equinor/gordo/latest/Dockerfile#L45-L46): ``` RUN --mount=type=secret,id=pip_index_url \ pip install --extra-index-url "$(cat /run/secrets/pip_index_url)" -r full_requirements.txt --no-cache-dir ``` [Another one](https://github.com/Cray-HPE/uas-mgr/blob/40308041fca66162823c9221f8635f5dc375dd8f/Dockerfile#L47-L49): ``` RUN --mount=type=secret,id=netrc,target=/root/.netrc pip3 install --no-cache-dir \ --extra-index-url https://artifactory.algol60.net/artifactory/csm-python-modules/simple \ --trusted-host artifactory.algol60.net -r...
This seems more like Growatt is blocking the user agent. The error message "denied by UA ACL = blacklist" hints towards the user agent blacklist. This is a known problem...
Error originates [here](https://github.com/vasi/qcow2-rs/blob/2f668ace065f703c6db12106e05dcdaaf8b323d8/src/header.rs#L271-L275). ``` let actual_length = io.position(); try!(self.read_extensions(io)); ... if self.v3.header_length as u64 != actual_length { return Err(Error::FileFormat(format!("header is {} bytes, file claims {}", io.position(), self.v3.header_length))); } ``` It...
No, unfortunately I didn't find a fix for this.
[SPA solution · Issue #50 · indykoning/PyPi\_GrowattServer](https://github.com/indykoning/PyPi_GrowattServer/issues/50)
Growatt recently began blocking certain user-agents. It seems they don't want us to use this API. That's probably what you're experiencing.
`get_storage_params` only takes a storage serial number. That method still works for certain storage_sns, so it's not always broken. It doesn't work for some other storage_sns, which make me suspect...
Apparently, the SPA3000 doesn't use the storage API, but the newSpaApi.do endpoint. Currently there are no methods in this project that call that endpoint.
I have made a few methods. Please check out the storage branch, and try something like this: ``` with GrowattApi() as api: api.login(username, password) spa = api.spa(plant_id, device_sn) print(spa.get_energy_overview()) print(spa.get_system_status())...