Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 11 11:56

    bogdan-bondar on master

    Set DdiActionFeedback ID deprec… (compare)

  • Jun 11 11:56
    bogdan-bondar closed #1091
  • Jun 11 10:12
    VladimirSvoboda commented #1025
  • Jun 09 10:05
    aktivk synchronize #1131
  • Jun 09 09:57
    hawkbit-bot commented #1131
  • Jun 09 09:50
    aktivk opened #1131
  • Jun 09 09:36
    aktivk closed #1130
  • Jun 09 09:34
    a-sayyed synchronize #1126
  • Jun 09 09:17
    hawkbit-bot commented #1130
  • Jun 09 09:09
    aktivk opened #1130
  • Jun 09 08:19
    a-sayyed synchronize #1126
  • Jun 08 15:56
    a-sayyed synchronize #1126
  • Jun 08 15:25
    a-sayyed synchronize #1126
  • Jun 08 13:17
    a-sayyed synchronize #1126
  • Jun 08 13:06
    a-sayyed synchronize #1126
  • Jun 08 12:37
    a-sayyed synchronize #1126
  • Jun 08 12:25
    a-sayyed synchronize #1126
  • Jun 08 12:08
    a-sayyed synchronize #1126
  • Jun 08 10:33
    a-sayyed synchronize #1126
  • Jun 08 10:25

    bogdan-bondar on master

    Remove wrong license header (#1… (compare)

Laurentiu-Cristian Duca
@laurentiuduca
Hi,
I know that the hawkBit docker container can be launched with
the option
--hawkbit.server.ddi.security.authentication.anonymous.enabled=true
in order to allow anonymous targets.
Please tell me what option allows to set the polling delay.
I think it is something like
--hawkbit.server.ddi.pollingTime=30
but this does not work.
Thanks!
Bondar Bogdan
@bogdan-bondar
Laurentiu-Cristian Duca
@laurentiuduca
@bogdan-bondar It works --hawkbit.controller.pollingTime=00:00:30, thanks
Martijn Verbakel
@mhverbakel

Hello. I'm trying to get started with Eclipse hawkBit. The company I work at is buying hardware from a supplier which allows us to install debian packages on their hardware using hawkBit. They provide the hawkBit installation, and they will provide us with a relevant API. However, it is still a bit unclear to me what the preferred way of working is in our set-up.

The hardware is configured based on many key-value pairs, which control what software packages must be installed on the hardware. Let me provide a concrete example:

Device A:
Settings: client = mqtt, interface = touchscreen, sensor = gps
Required software modules: base-application v1.0, mqtt-client v1.2, user-interface-base v1.0, user-interface-touchscreen v2.0, sensor-reader-gps v1.0

Device B:
Settings: client = mqtt, interface = none, sensor = none
Required software modules: base-application v1.0, mqtt-client v1.2

et cetera...

Our proposal to implement this is to have a distribution set per configuration (e.g. distribution-mqtt-touchscreen-gps and distribution-mqtt-none-none) which is then automatically allocated to a device. When a new device is enrolled by our application, we assign it to the given distribution set if it exists, or we leave it unassigned and we send an email to the development team. If software needs to be updated, the developers can add a new version of the software module and assign that to the software distribution and update the existing devices through the UI. If the settings of a device change, we will (automatically) try to assign it to the correct distribution group.

Is this a preferred way of working? Or are we completely misinterpreting the architecture of this system?

Thank you in advance for your reply,
Kind regards,
Martijn Verbakel

Malal884
@Malal884
Hello! Is it possible to get statistics on how many software updates have been successful in total and how many have been successful per day?
goliath's github
@gwgoliath
Hi All! It's quit common for OTA server to rollout distributions for devices which listed in a "MAC address list " file or a "SN list" file. But it seems hawkbit don't support such behavior. Is there any plan for it?
Malal884
@Malal884
Found out that the limit of targets in one rollout group is 20000 targets. Is this configurable? Is there some documentation somewhere? What is the maximum of number of groups in one rollout?
ganeshprabhum
@ganeshprabhum
Is there any documentation to follow sandbox installation demo ?
Bondar Bogdan
@bogdan-bondar
@ganeshprabhum you can find all of the relevant files and instructions under https://github.com/bosch-io/hawkbit/tree/master/hawkbit-runtime/.sandbox
Florian Ruschbaschan
@floruschbaschan

@Malal884 , Hawkbit does not have a dedicated API that can be used for information about statistics. You could make use of the MGMT API to get details about e.g. Targets or Rollouts. But this can become quite cumbersome and expensive depending on your use-case. Contributions are always welcome :-)

Yes, the limits are configurable via properties but there is no documentation for it. Please try setting hawkbit.server.security.dos.maxTargetsPerRolloutGroup (see HawkbitSecurityProperties ). Also the maximum number of groups in a Rollouts (by default 500) is defined here and can be overridden.

ganeshprabhum
@ganeshprabhum

@ganeshprabhum you can find all of the relevant files and instructions under https://github.com/bosch-io/hawkbit/tree/master/hawkbit-runtime/.sandbox

Thank you. Is this hawkbit can be deployed in private network ? Is it requires any other cloud components for its production deployment ?

Florian Ruschbaschan
@floruschbaschan

@gwgoliath yes you are right hawkbit does not support such behavior directly. But what I could think of is the following:
First you have to create a Distribution Set. The next step depends on your target management.
If you already have targets, each of them contains a field called attributes and metadata which can represent a MAC address or SN. attributes are given by a controller, whereas metadata are defined by the target itself (by the MGMT API).
If you need to initially create targets by a file (.csv), you could use the bulk target upload function. Here you could create a tag that summarizes your targets e.g. by a SN.
Now to automatically assign your distribution, create a target filter referring to these properties (attributes/metadata or tag). Such a filter can now be used by a Rollout with a configured Auto assignment.

This approach would require a pattern of your targets by e.g. SN. I know this answer is not what you have asked for, but perhaps it is an alternative solution for your problem.

goliath's github
@gwgoliath
@floruschbaschan Thanks. I solve the problem exactly as you suggested, but with little modification in the code.
Daniele Sergio
@danielesergio
Hi all,
after the upgrade to 0.3.0M7 the hawkbit-custom-theme-example (https://github.com/eclipse/hawkbit-examples) doesn't work correctly.
After the login each page shows the "No access to view" message or the popup with the following error:
"An authentication object was not found in the security context"
Have you any idea how to fix this?
Bondar Bogdan
@bogdan-bondar
@gwgoliath would you mind sharing which code modification are you refering to?
@danielesergio thanks for reporting, we will take a look at it
goliath's github
@gwgoliath
@bogdan-bondar ,my problem is : some of the devices contains in the device-list already on-line registered and these devices could not be created any more and won't be assigned any tags. I want to make every device in the device-list could be assigned a tag. So I did the modification in as following:
hawkbit-0.3.0M6\hawkbit\hawkbit-ui\src\main\java\org\eclipse\hawkbit\ui\management\targettable\BulkUploadHandler.java\
    // Exception squid:S1166 - Targets that exist already are simply ignored
    @SuppressWarnings("squid:S1166")
    private void addNewTarget(final String controllerId, final String name) {
        final String newControllerId = controllerId;
        final String description = descTextArea.getValue();
        managementUIState.getTargetTableFilters().getBulkUpload().getTargetsCreated().add(newControllerId);
        try {
            targetManagement.create(entityFactory.target().create().controllerId(newControllerId).name(name)
                    .description(description));


            successfullTargetCount++;

        } catch (final EntityAlreadyExistsException ex) {
            // Targets that exist already are simply ignored
            LOG.info("Entity {} - {} already exists and will be ignored", newControllerId, name);
        }
    }
}
Ashish Chugh
@ashish_chugh_gitlab
run_hawkbit_server.png
Ashish Chugh
@ashish_chugh_gitlab
rollout_mgmt.jpg
Hi all,
I am running hawkBit Update Server via Docker on Ubuntu VM as shown in the screenshot from the last 2 years.
I am facing issues in creating new rollouts for the last 2-3 days. All new rollouts are getting stucked in creating status. When I tried to delete them from the dashboard as well as management API, then they are stuck in deleting status as shown in the screenshot.
Does anyone know how to fix this issue?
Bondar Bogdan
@bogdan-bondar
@ashish_chugh_gitlab which version of Hawkbit are you using (milestone, latest master)? Without the detailed logs of rollout handling it is impossible to tell what is going wrong, you would need to activate them for org.eclipse.hawkbit.repository.jpa.JpaRolloutManagement and if it is not enough debug the code for rollout creation
Ashish Chugh
@ashish_chugh_gitlab
@bogdan-bondar I am using 0.3.0M6 version of Hawkbit. Attached are some logs of hawkbit docker container.
Ashish Chugh
@ashish_chugh_gitlab
@bogdan-bondar There are some error messages in the attached logs. Does this help you?
mangexl
@mangexl
Hello, is there any data archiving functionality in hawkbit, moving data from tables into archive tables? We are running some test-riggs which hits limits like "Cannot assign 1 more Action entities to Target 'XXXX'. The maximum is 2000." We can for sure extend the quotas, but I would like to check if there is some archiving or deleting of data (in test environment)
Bondar Bogdan
@bogdan-bondar
@ashish_chugh_gitlab seems like the action history for action “145017” has reached the quota limit of 1000 action status messages. Now the question is if problems with rollout are caused by the quota or it is just a consequense, I would take a look at the action status messages of the actions that belong to your rollout (specifically the action history of action with id 145017)
Ashish Chugh
@ashish_chugh_gitlab

@bogdan-bondar I am getting this warning log for multiple action ids.

2021-05-03 09:00:27.109 WARN 1 --- [2054757222-9640] o.e.h.repository.jpa.utils.QuotaHelper : Cannot assign 1 ActionStatus entities to Action '145017' because of the configured quota limit 1000. Currently, there are 1001 ActionStatus entities assigned.
2021-05-03 09:00:29.369 WARN 1 --- [054757222-14505] o.e.h.repository.jpa.utils.QuotaHelper : Cannot assign 1 ActionStatus entities to Action '134443' because of the configured quota limit 1000. Currently, there are 1001 ActionStatus entities assigned.
2021-05-03 09:00:31.535 WARN 1 --- [054757222-14723] o.e.h.repository.jpa.utils.QuotaHelper : Cannot assign 1 ActionStatus entities to Action '142168' because of the configured quota limit 1000. Currently, there are 1000 ActionStatus entities assigned.

Is there any way to increase this limit?

Also, Is there any API to fetch the action history of a given action id (without target id) because I could find only this endpoint <GET /rest/v1/targets/{targetId}/actions/{actionId}> as per the APIs mentioned in the hawkbit documentation which requires both target id and action id?

8 replies
Diego Rondini
@diegorondini

@danielesergio thanks for reporting, we will take a look at it

@bogdan-bondar here's the proposed fix:
eclipse/hawkbit-examples#56

Bondar Bogdan
@bogdan-bondar
:+1:
Ashish Chugh
@ashish_chugh_gitlab
Hi all,
Do different rollouts in hawkbit are dependent on each other? I am asking this because I have one rollout (screenshot attached) which is blocking all new rollouts to move into ready state. As soon as I pause this rollout, all newly created rollouts automatically move into ready state.
paused_rollout.png
Bondar Bogdan
@bogdan-bondar
@ashish_chugh_gitlab yes, they are handled sequentially, the issue is known: eclipse/hawkbit#1049 and will be resolved soon with this PR: eclipse/hawkbit#1052
Ashish Chugh
@ashish_chugh_gitlab
Thanks @bogdan-bondar , but the screenshot of rollout which I have attached has no error. It's successfully created & running also but it is blocking any new rollout to move into ready state.
Bondar Bogdan
@bogdan-bondar
@ashish_chugh_gitlab it will handle your use-case as well
Ashish Chugh
@ashish_chugh_gitlab
@bogdan-bondar Okay, thanks for the clarification.
BBitsupport
@BBitsupport

Hi,

I need some help with setting up hawkbit on a Linux server Kubuntu version 20.04.
What I know when you install docker and run the below command that you get a running hawkbit container.
docker run -p 8080:8080 hawkbit/hawkbit-update-server:latest

But what I want is a running hawkbit that is saving his information in a database(mariadb)
Is there a clear step by step guide how to do this? Must only hawkbit run in docker or is it also better to run mariadb in docker? And when this is setup is this than enough to rollout software to a raspberrypi on the same subnet?

The problem is a bit that I am not the one that is going to use it but they asked to ours department setup a server with hawkbit installed.

I really hope some can help me in the right direction to get this done.

Florian Ruschbaschan
@floruschbaschan
@BBitsupport you can find all information about supported databases of hawkbit in our github README. Please notice that not everyone has a production grade status.
I personally would run the database in docker, but this depends on your needs and requirements. Just clearly think about persistence, storage and backup strategies if you are going to run it in a production like environment.
If you want to run a mariadb server with docker, docker hub provides quite good information about how to start the instance (e.g. docker run -p 127.0.0.1:3306:3306 --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag).
Once your database container is up and running just establish a connection to your environment by specifying the following properties spring.jpa.database, spring.datasource.url, spring.datasource.username, spring.datasource.password or by using one of the existing profiles while starting hawkbit.
SongweiFu-ITEM
@SongweiFu-ITEM
Hi, I have a question about updating uboot setting. Sofar hawkbit works great for me till I made some changes in the bootargs for uboot. It seems that hawkbit does not update that part for me. Is it possible to update bootargs via hawkbit? or is there a way that I change the bootargs so that the hawkbit can update it?
Ulf Hesselbarth
@UlfHesselbarth

Hi, has anybody experienced problems when trying to download artifacts from Hawkbit? We're using 0.3.0M6 currently with the Azure extensions.
Artifact storage is MSSQL via Azure Blob storage.

I'm basically just doing this:

curl 'http://host:port/rest/v1/softwaremodules/99/artifacts/119/download' -i -X GET --user user:password --output image.swu

And most of the times I would get connection resets:

curl: (56) Recv failure: Connection reset by peer

I can download the artifacts directly from the storage no problem - so it looks like there is an issue in Hawkbit or in the connection to Azure.

The logs show this:

2021-04-26 08:07:18.357  INFO 1 --- [tp2109027570-15] o.e.h.a.r.AzureStorageRepository         : Loading Azure Storage blob from container artifactrepository and hash f2079eaf81ca1cacef1ea6a2f9b7a21f87600ee3 for tenant DEFAULT
2021-04-26 08:07:35.340  INFO 1 --- [109027570-18454] c.vaadin.spring.server.SpringUIProvider  : Checking the application context for Vaadin UIs
2021-04-26 08:07:35.343  INFO 1 --- [109027570-18454] c.vaadin.spring.server.SpringUIProvider  : Found Vaadin UI [org.eclipse.hawkbit.app.AzureLoginUI]
2021-04-26 08:07:35.343  INFO 1 --- [109027570-18454] c.vaadin.spring.server.SpringUIProvider  : Found Vaadin UI [org.eclipse.hawkbit.app.AzureUI]
2021-04-26 08:07:57.161  WARN 1 --- [tp2109027570-15] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler public org.springframework.http.ResponseEntity<org.eclipse.hawkbit.rest.json.model.ExceptionInfo> org.eclipse.hawkbit.rest.exception.ResponseExceptionHandler.handleSpServerRtExceptions(javax.servlet.http.HttpServletRequest,java.lang.Exception)

org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:307) ~[spring-webmvc-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:223) ~[spring-webmvc-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82) ~[spring-web-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletvocableHandlerMethod.invokeAndHandle(ServletvocableHandlerMethod.java:119) ~[spring-webmvc-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver.doResolveHandlerMethodException(ExceptionHandlerExceptionResolver.java:408) ~[spring-webmvc-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver.doResolveException(AbstractHandlerMethodExceptionResolver.java:61) [spring-webmvc-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:139) [spring-webmvc-5.1.6.RELEASE.jar!/:5.1.6.RELEASE]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]

2021-04-26 08:07:57.162  WARN 1 --- [tp2109027570-15] org.eclipse.jetty.server.HttpChannel     : /rest/v1/softwaremodules/99/artifacts/119/download java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired: 30001/30000 ms

Any ideas on how to proceed with this issue? Are the Azure extensions stable at all or should we consider using a DB directly?

amol4394
@amol4394
hi All,
Can anyone let me know what will be basic requirement to host hawkbit on aws or digitalocean or google colud? which one is best?
1 reply
nazim-trivediat
@nazim-trivediat
11 replies
but getting Socket fail to connect to host:mysql, port:3306. Connection refused I am trying this in redhat8
Any one can help on this?
AalokSharma
@AalokSharma
HI
is there any way to speed up the execution of autoassignscheduler thread ?
Currently on a server with 140K + devices, it takes almost a minute for Hawkbit to assign a DS to a device
Bondar Bogdan
@bogdan-bondar
Hi @AalokSharma, I would suggest adding debug/trace logs to measure code parts execution time within autoassign scheduler. In that case you would better understand where the bottleneck is. I could assume that you have either complicated target filter that can lead to high select DB latency or the DB itself is not powerfull enough to process all transactions in a reasonable time
Tom Stewart
@twstewart42
Hi, where might active .swu files be saved to? We're experiencing a problem with them disappearing after a reboot, we have java app + rabbitmq on a single node, with mysql separate
Tom Stewart
@twstewart42
We figured it out. Stores files to /artifactrepo on our setup, files are named after thier sha1 to avoid collission