mgmt: hawkbit: do not prepend custom controllerId
This commit changes how the controllerId is generated based on device id, and disentangles the two. The controllerId is what hawkbit uses to uniquely identify a device, and is not necessarily the same as the device id, and should be fully customizeable by the user if needed. Previously, all custom device ids were being prepended with `CONFIG_BOARD`. When a user selects `CONFIG_HAWKBIT_CUSTOM_DEVICE_ID`, they should be able to specify the full controllerId used with hawkbit, without a forced prepend. Signed-off-by: Neal Jackson <neal@blueirislabs.com>
This commit is contained in:
parent
ff26592272
commit
d07f8eed55
3 changed files with 15 additions and 11 deletions
|
@ -803,7 +803,8 @@ int hawkbit_set_custom_data_cb(hawkbit_config_device_data_cb_handler_t cb)
|
||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hawkbit_default_config_data_cb(const char *device_id, uint8_t *buffer, const size_t buffer_size)
|
int hawkbit_default_config_data_cb(const char *device_id, uint8_t *buffer,
|
||||||
|
const size_t buffer_size)
|
||||||
{
|
{
|
||||||
struct hawkbit_cfg cfg = {
|
struct hawkbit_cfg cfg = {
|
||||||
.mode = "merge",
|
.mode = "merge",
|
||||||
|
@ -1328,8 +1329,7 @@ static void s_probe(void *o)
|
||||||
|
|
||||||
LOG_INF("Polling target data from hawkBit");
|
LOG_INF("Polling target data from hawkBit");
|
||||||
|
|
||||||
snprintk(url_buffer, sizeof(url_buffer), "%s/%s-%s", HAWKBIT_JSON_URL, CONFIG_BOARD,
|
snprintk(url_buffer, sizeof(url_buffer), "%s/%s", HAWKBIT_JSON_URL, s->device_id);
|
||||||
s->device_id);
|
|
||||||
|
|
||||||
if (!send_request(&s->hb_context, HAWKBIT_PROBE, url_buffer, NULL)) {
|
if (!send_request(&s->hb_context, HAWKBIT_PROBE, url_buffer, NULL)) {
|
||||||
LOG_ERR("Send request failed (%s)", "HAWKBIT_PROBE");
|
LOG_ERR("Send request failed (%s)", "HAWKBIT_PROBE");
|
||||||
|
@ -1519,9 +1519,8 @@ static void s_report(void *o)
|
||||||
uint8_t status_buffer[CONFIG_HAWKBIT_STATUS_BUFFER_SIZE] = {0};
|
uint8_t status_buffer[CONFIG_HAWKBIT_STATUS_BUFFER_SIZE] = {0};
|
||||||
char url_buffer[URL_BUFFER_SIZE] = {0};
|
char url_buffer[URL_BUFFER_SIZE] = {0};
|
||||||
|
|
||||||
snprintk(url_buffer, sizeof(url_buffer), "%s/%s-%s/%s/%d/%s", HAWKBIT_JSON_URL,
|
snprintk(url_buffer, sizeof(url_buffer), "%s/%s/%s/%d/%s", HAWKBIT_JSON_URL,
|
||||||
CONFIG_BOARD, s->device_id, "deploymentBase", s->hb_context.json_action_id,
|
s->device_id, "deploymentBase", s->hb_context.json_action_id, "feedback");
|
||||||
"feedback");
|
|
||||||
|
|
||||||
LOG_INF("Reporting deployment feedback %s (%s) for action %d",
|
LOG_INF("Reporting deployment feedback %s (%s) for action %d",
|
||||||
feedback.status.result.finished, feedback.status.execution,
|
feedback.status.result.finished, feedback.status.execution,
|
||||||
|
|
|
@ -21,15 +21,20 @@ static bool hawkbit_get_device_identity_default(char *id, int id_max_len)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_HAWKBIT_HWINFO_DEVICE_ID
|
#ifdef CONFIG_HAWKBIT_HWINFO_DEVICE_ID
|
||||||
uint8_t hwinfo_id[DEVICE_ID_BIN_MAX_SIZE];
|
uint8_t hwinfo_id[DEVICE_ID_BIN_MAX_SIZE];
|
||||||
ssize_t length;
|
ssize_t id_length, length;
|
||||||
|
|
||||||
length = hwinfo_get_device_id(hwinfo_id, DEVICE_ID_BIN_MAX_SIZE);
|
memset(id, 0, id_max_len);
|
||||||
|
length = snprintk(id, id_max_len, "%s-", CONFIG_BOARD);
|
||||||
if (length <= 0) {
|
if (length <= 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(id, 0, id_max_len);
|
id_length = hwinfo_get_device_id(hwinfo_id, DEVICE_ID_BIN_MAX_SIZE);
|
||||||
length = bin2hex(hwinfo_id, (size_t)length, id, id_max_len);
|
if (id_length <= 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
length = bin2hex(hwinfo_id, (size_t)id_length, &id[length], id_max_len - length);
|
||||||
|
|
||||||
return length > 0;
|
return length > 0;
|
||||||
#else /* CONFIG_HAWKBIT_HWINFO_DEVICE_ID */
|
#else /* CONFIG_HAWKBIT_HWINFO_DEVICE_ID */
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
#define DEVICE_ID_HEX_MAX_SIZE (CONFIG_HAWKBIT_DEVICE_ID_MAX_LENGTH + 1)
|
#define DEVICE_ID_HEX_MAX_SIZE (CONFIG_HAWKBIT_DEVICE_ID_MAX_LENGTH + 1)
|
||||||
#else
|
#else
|
||||||
#define DEVICE_ID_BIN_MAX_SIZE 16
|
#define DEVICE_ID_BIN_MAX_SIZE 16
|
||||||
#define DEVICE_ID_HEX_MAX_SIZE ((DEVICE_ID_BIN_MAX_SIZE * 2) + 1)
|
#define DEVICE_ID_HEX_MAX_SIZE (sizeof(CONFIG_BOARD) + (DEVICE_ID_BIN_MAX_SIZE * 2) + 1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool hawkbit_get_device_identity(char *id, int id_max_len);
|
bool hawkbit_get_device_identity(char *id, int id_max_len);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue