bogdan-bondar on master
Avoid using RegexRequestMatcher… (compare)
Anyone knows what might cause this to happen?
2021-08-11 08:39:56.966 WARN 1 --- [qtp178604517-18] o.e.h.r.e.ResponseExceptionHandler : File streaming failed: fullfileRequest zephyr.signed.bin
What Im seeing at my client is that the download might still happen after I read this message at the server, but it is extremely slow. It isn't like the 1 bytes per second that kind of slow, it is just that the transfer of the firmware chunks happens in a pretty long interval (2 min, ie every 2 mins the device will receive a chunk of 650 bytes, out of 251 KiB)
Hi @KOTTIRAMSAI,
For the OpenId auth with KeyCloak, I've posted on your issue : eclipse/hawkbit#1147. Hope it helps.
GET /rest/v1/targetfilters/{targetFilterQueryId}
to retrieve your targetFilter and the query value itself and put it as parameter q
to GET /rest/v1/targets
. Of course if the query value is already known you can skip the first GET request.
@sbabic Could you please explain those ways to balance load? Also please confirm whether this server is completely open source or we have to pay for managing this server to deploy more than 1000 devices
@sbabic Awaiting for your reply. Please confirm this because it is higher priority for us
@sheikajith hawkBit is an open source software, but deploying it is to scale is not an overnight effort. You can either do it the hard way by deploying everything on your own (months and months of work I would say), or go with one of the cloud platforms mentioned in:
https://www.eclipse.org/hawkbit/gettingstarted/
Can you please elaborate on the effort to deploy bulk clients in server side? Do we have to implement and handle this deployment process in hawkbit server open source available, if so could you help us in implementing this.
what do you mean for "bulk clients"?
We are planning to use hawkbit server for production, mainly deploying thousands of clients. Whether hawkbit server supports that? With this particular plan, what is available for free and what features will have a cost? Whether testing OTA update with hawkbit server is free?
what do you mean for "bulk clients"?
We are planning to use hawkbit server for production, mainly deploying thousands of clients. Whether hawkbit server supports that? With this particular plan, what is available for free and what features will have a cost? Whether testing OTA update with hawkbit server is free?
Again: hawkBit is a software, not a service. To have a hawkBit service you need to run it on a server. You can either run it on your own server or pay companies that provide hawkBit as a service. Wheter it scales depends on the features of the server or the service selected (e.g. servers performences, use of CDN, load balancing, etc). There's no "free plan" or "paid plain": hawkBit is an open source software.
@diegorondini Can we use hawkbit through docker? Do we need to maintain any database if we use it through docker?
https://gitter.im/eclipse/hawkbit?at=5a0bff5271ad3f8736e7baa2
@DominikDSSchneider Hi, the referenced stack in the tutorial (similar to the stacks in the official hawkbit repo) suffer from recent changes to both the official mysql and rabbitmq containers. They discourage usage of certain environment variables and as a consequence fail to start. As hawkbit then cannot connect to the database it fails to start fully too.
See Hawkbit PR for stack changes for RabbitMQ and MySQL
To shorten it, you have to delete the following lines in the environment entry of the mysql respectively the rabbitmq service in the stack file:
- RABBITMQ_DEFAULT_VHOST: "/"
- MYSQL_USER: "root"
Transport.WEBSOCKET
to Transport.WEBSOCKET_XHR
resolved the issue! I can now access all devices/distribution sets/rollouts as usual. This is running in local docker container, next step will be to push the change to Google Cloud Run and see if this works in GCP K8 cluster too. Thank you guys!
@All,
In case anyone downgrades from 0.3.0M7 to 0.3.0M6 with MySQL as data backend... However rare that may be.
The upgrade to M7 alters 2 tables in database definition used by M6. This is fine for upgrade path M6->M7 but when reverted/downgraded back to M6 the new data table definitions prevent any Distribution Set to be assigned to any target. Effectively the OTA service is not functional at that point even though UI is accessible and shows all previously assigned Distribution Sets info correctly.
There is no error produced by UI when new Distribution Set fails to be assigned via UI. Clue to root cause was found in Hawkbit container logs where JDBC SQL exception was logged for "Field 'initiated_by' doesn't have a default value;".
In order to restore ability to assign new Distribution Sets to targets you'll need to DROP COLUMNS in MySQL database used by Hawkbit as follows:
This can be done on live database. Of course create copies of both tables just in case or backup the database before altering anything in database.
Hope this helps.
Hello,
I've implemented an hawkbit amqp client, which receives correctly the download instruction, download the files to local storage, and verify the hashes. However, in the dmf documentation, there's only modules id, never a name : https://www.eclipse.org/hawkbit/apis/dmf_api/
Which is not exactly usefull to give meaning to the modules directory. Can we retrieve the modules name directly from a target ?
2021-09-24 10:17:05.654 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : GET "/", parameters={},
2021-09-24 10:17:06.346 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : Exiting from "ERROR" dispatch, status 404,
2021-09-24 10:17:05.655 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.view.RedirectView : View name 'redirect:', model {},
2021-09-24 10:17:05.654 DEBUG 1 --- [qtp634638280-26] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped to org.eclipse.hawkbit.autoconfigure.mgmt.ui.RedirectController#home(),
2021-09-24 10:17:05.655 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : Completed 302 FOUND,
2021-09-24 10:17:05.857 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : HTTP POST https://login.microsoftonline.com/06846365-0bcb-4951-b004-9ace50ff7b85/oauth2/v2.0/token,
2021-09-24 10:17:05.858 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Accept=[application/json, application/*+json],
2021-09-24 10:17:05.858 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Writing [{grant_type=[authorization_code], code=[0.AS8AZWOEBssLUUmwBJrOUP97hXO6B[.....]HXUw9S7xL5q2Kd4sTbbJJsh_OC1PgDJp8T-G70yJikguICqkgQ5MyAA], redirect_uri=[http://localhost:8080/login/oauth2/code/oidc]}] as "application/x-www-form-urlencoded;charset=UTF-8",
2021-09-24 10:17:06.076 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Reading to [org.springframework.security.oauth2.core.endpoint.OAuth2AccessTokenResponse] as "application/json;charset=utf-8",
2021-09-24 10:17:06.075 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Response 200 OK,
2021-09-24 10:17:06.084 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : HTTP GET https://graph.microsoft.com/oidc/userinfo,
2021-09-24 10:17:06.084 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Accept=[application/json, application/cbor, application/*+json],
2021-09-24 10:17:06.252 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Response 200 OK,
2021-09-24 10:17:06.253 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Reading to [java.util.Map<java.lang.String, java.lang.Object>],
2021-09-24 10:17:06.265 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : HTTP GET https://login.microsoftonline.com/06846365-0bcb-4951-b004-9ace50ff7b85/discovery/v2.0/keys,
2021-09-24 10:17:06.266 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Accept=[text/plain, application/json, application/cbor, application/*+json, */*],
2021-09-24 10:17:06.336 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Response 200 OK,
2021-09-24 10:17:06.336 DEBUG 1 --- [qtp634638280-25] o.s.web.client.RestTemplate : Reading to [java.lang.String] as "application/json;charset=utf-8",
2021-09-24 10:17:06.342 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : GET "/login?error", parameters={masked},
2021-09-24 10:17:06.343 DEBUG 1 --- [qtp634638280-26] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped to ResourceHttpRequestHandler ["classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/", "/"],
2021-09-24 10:17:06.344 DEBUG 1 --- [qtp634638280-26] o.s.w.s.r.ResourceHttpRequestHandler : Resource not found,
2021-09-24 10:17:06.344 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : Completed 404 NOT_FOUND,
2021-09-24 10:17:06.345 DEBUG 1 --- [qtp634638280-26] o.s.web.servlet.DispatcherServlet : "ERROR" dispatch for GET "/error?error", parameters={masked},
Hello Everyone,
I'm trying to set up a reverse proxy to allow certificate authentication.
For testing purpose I'm using self signed certificate. Client and Server are kept at same local network.
I'm using swupdate from client side, when trying to connect the hawkbit server, I get the following error.
Client logs:
ERROR: Channel operation returned HTTP error code 401.
- Connected to 192.168.1.121 (192.168.1.121) port 8443 (#2)
- found 1 certificates in /root/caroot.cer
- found 592 certificates in /etc/ssl/certs
- ALPN, offering http/1.1
- SSL re-using session ID
- SSL connection using TLS1.2 / ECDHE_RSA_AES_128_GCM_SHA256
- server certificate verification OK
- server certificate status verification SKIPPED
- common name: 192.168.1.121 (matched)
- server certificate expiration date OK
- server certificate activation date OK
- certificate public key: RSA
- certificate version: #1
- subject: C=IN,ST=MH,L=MU,O=Test,OU=Development,CN=192.168.1.121,EMAIL=test@gmail.com
- start date: Mon, 27 Sep 2021 09:51:04 GMT
- expire date: Tue, 27 Sep 2022 09:51:04 GMT
- issuer: C=IN,ST=MH,L=MU,O=Test,OU=Development,CN=192.168.1.121,EMAIL=test@gmail.com
- compression: NULL
- ALPN, server did not agree to a protocol
> GET /DEFAULT/controller/v1/scv HTTP/1.1
Hawkbit server logs:
2021-09-27 18:47:00.907 INFO 52737 --- [ main] o.e.jetty.server.AbstractConnector : Started SslValidatingServerConnector@2e34384c{SSL, (ssl, alpn, h2, http/1.1)}{0.0.0.0:8443}
2021-09-27 18:47:00.909 INFO 52737 --- [ main] o.s.b.web.embedded.jetty.JettyWebServer : Jetty started on port(s) 8443 (ssl, alpn, h2, http/1.1) with context path '/'
Can anyone please confirm this is failing just because of ALPN offering http/1.1, If yes please guide me.
Is there any documentation available for allowing targets to authenticate via a certificate authenticated by a reverse proxy?