{"id":13647384,"url":"https://github.com/rauc/rauc-hawkbit","last_synced_at":"2025-04-22T02:31:31.096Z","repository":{"id":53448050,"uuid":"92058356","full_name":"rauc/rauc-hawkbit","owner":"rauc","description":"RAUC hawkBit Client","archived":true,"fork":false,"pushed_at":"2021-03-30T12:53:37.000Z","size":55,"stargazers_count":38,"open_issues_count":6,"forks_count":16,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-10-28T15:40:34.425Z","etag":null,"topics":["iot","rauc","software-provisioning","updating"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rauc.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-22T13:44:22.000Z","updated_at":"2023-11-07T18:10:12.000Z","dependencies_parsed_at":"2022-08-28T15:10:36.665Z","dependency_job_id":null,"html_url":"https://github.com/rauc/rauc-hawkbit","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rauc%2Frauc-hawkbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rauc%2Frauc-hawkbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rauc%2Frauc-hawkbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rauc%2Frauc-hawkbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rauc","download_url":"https://codeload.github.com/rauc/rauc-hawkbit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223887573,"owners_count":17219953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["iot","rauc","software-provisioning","updating"],"created_at":"2024-08-02T01:03:32.063Z","updated_at":"2024-11-09T21:30:34.289Z","avatar_url":"https://github.com/rauc.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"RAUC hawkBit Client\n===================\n\n|license| |build-status| |coverage-status| |docs-status|\n\nThe RAUC hawkBit client is a simple python-based library and **demo\napplication** that runs on your target and operates as an interface between the\n`RAUC \u003chttps://github.com/rauc/rauc\u003e`_ D-Bus API\nand the `hawkBit \u003chttps://github.com/eclipse/hawkbit\u003e`_ DDI API.\n\n**Important:**\nThis project is not intended for production use.\nConsider using `rauc-hawkbit-updater \u003chttps://github.com/rauc/rauc-hawkbit-updater\u003e`_ instead.\n\nQuickstart\n----------\n\nDespite the rauc-hawkbit client is primarily meant to be used as a library,\nit also provides a simple example application that allows you to instantly\nstart with a small configuration file.\n\nTo quickly build and start a hawkBit server, follow\n`this \u003chttps://github.com/eclipse/hawkbit#build-and-start-hawkbit-update-server\u003e`_\ninstruction.\n\nThen setup your configuration file:\n\n.. code-block:: ini\n\n  [client]\n  hawkbit_server = 127.0.0.1:8080\n  ssl = false\n  tenant_id = DEFAULT\n  target_name = test-target\n  auth_token = bhVahL1Il1shie2aj2poojeChee6ahShu\n  mac_address = 12:34:56:78:9A:BC\n  bundle_download_location = /tmp/bundle.raucb\n\nFinally start the client application:\n\n.. code-block:: sh\n\n  ./rauc-hawkbit-client -c config.cfg\n\nDocumentation\n-------------\n`Read the Docs \u003chttp://rauc-hawkbit.readthedocs.io/en/latest/\u003e`_\n\nContributing\n------------\n`Development Docs \u003chttp://rauc-hawkbit.readthedocs.io/en/latest/contributing.html\u003e`_\n\nBackground\n----------\nWork on the RAUC hawkBit client started at `Pengutronix\n\u003chttp://pengutronix.de/\u003e`_ in the middle of 2016 as part of a customer's project\nand for demonstration purposes. In May 2017 the decision was made to restructure\nand clean up the code and publish it as Open Source software.\n\nExample Usage\n-------------\n\nThe ``RaucDBUSDDIClient`` class from the ``rauc_hawkbit`` module allows you to\nsimply setup an interface between RAUC and hawkBit.\n\n.. code-block:: python\n\n  from rauc_hawkbit.rauc_dbus_ddi_client import RaucDBUSDDIClient\n\n  ...\n\n  async with aiohttp.ClientSession() as session:\n      client = RaucDBUSDDIClient(session, HOST, SSL, TENANT_ID, TARGET_NAME,\n                                 AUTH_TOKEN, ATTRIBUTES, BUNDLE_DL_LOCATION,\n                                 result_callback, step_callback)\n      await client.start_polling()\n\nIf you only want use the hawkBit interface from your python project, you can\nuse the DDIClient class.\n\n.. code-block:: python\n\n   from rauc_hawkbit.ddi.client import DDIClient\n\n   ...\n\n   ddi = DDIClient(session, host, ssl, auth_token, tenant_id, target_name)\n   base = await self.ddi()\n\n   if '_links' in base:\n       if 'configData' in base['_links']:\n           await self.identify(base)\n\n\nDebugging\n---------\n\nWhen setting the log level to 'debug' the RAUC hawkBit client will print API\nURLs and JSON payload sent and received. This can be done either by setting\n``log_level`` from the config file\n\n.. code-block:: ini\n\n  [client]\n  ...\n  log_level = debug\n\nor by providing the ``-d`` (``--debug``) switch when calling the client.\n\n.. code-block:: sh\n\n  ./rauc-hawkbit-client -d\n\nCopyright\n---------\n\n| Copyright (C) 2016-2020 Pengutronix, Enrico Joerns \u003centwicklung@pengutronix.de\u003e\n| Copyright (C) 2016-2020 Pengutronix, Bastian Stender \u003centwicklung@pengutronix.de\u003e\n|\n| This library is free software; you can redistribute it and/or\n| modify it under the terms of the GNU Lesser General Public\n| License as published by the Free Software Foundation; either\n| version 2.1 of the License, or (at your option) any later version.\n|\n| This library is distributed in the hope that it will be useful,\n| but WITHOUT ANY WARRANTY; without even the implied warranty of\n| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n| Lesser General Public License for more details.\n|\n| You should have received a copy of the GNU Lesser General Public\n| License along with this library; if not, write to the Free Software\n| Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n\n.. |license| image:: https://img.shields.io/badge/license-LGPLv2.1-blue.svg\n    :alt: LGPLv2.1\n    :target: https://raw.githubusercontent.com/rauc/rauc-hawkbit/master/COPYING\n\n.. |build-status| image:: https://img.shields.io/travis/com/rauc/rauc-hawkbit/master.svg?style=flat\n    :alt: build status\n    :target: https://travis-ci.com/rauc/rauc-hawkbit\n\n.. |coverage-status| image:: https://codecov.io/gh/rauc/rauc-hawkbit/branch/master/graph/badge.svg\n    :alt: coverage status\n    :target: https://codecov.io/gh/rauc/rauc-hawkbit\n\n.. |docs-status| image:: https://readthedocs.org/projects/rauc-hawkbit/badge/?version=latest\n    :alt: documentation status\n    :target: https://rauc-hawkbit.readthedocs.io/en/latest/?badge=latest\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frauc%2Frauc-hawkbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frauc%2Frauc-hawkbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frauc%2Frauc-hawkbit/lists"}