Skip to content

Conversation

@polldo
Copy link
Contributor

@polldo polldo commented Aug 5, 2021

Motivation

iot-cloud-cli should provide a command to create things on arduino iot cloud.
things could be created by:

  • starting from a template. templates can be extracted from existing things
  • cloning another thing, already available on arduino iot cloud

Change description

the parameters to create a new thing are:

  • thing name - mandatory
  • device (id) to bind the thing to - optional
  • thing template - mandatory if no thing to clone is passed
  • thing to clone (id) - mandatory if no template

Additional Notes

note that:
iot client has been refactored

Reviewer checklist

  • PR address a single concern.
  • PR title and description are properly filled.
  • Changes will be merged in main.
  • Changes are covered by tests.
  • Logging is meaningful in case of troubleshooting.
  • History is clean, commit messages are meaningful (see CONTRIBUTING.md) and are well formatted.

@polldo polldo requested review from eclipse1985, glumia and zmoog August 5, 2021 15:02
polldo added 3 commits August 23, 2021 14:50
The parameters to create a new thing are:
- thing name - mandatory
- device (id) to bind the thing to - optional
- thing template - mandatory if no thing to clone is passed
- thing to clone (id) - mandatory if no template

note that:
- iot client is really ugly and should be refactored -> the problem is that iot-client-go doesn't accept the 'properties' field when creating a new thing. For this reason a standard http request has been performed.

todos and questions:
- improve naming of create flags and create params (maybe it's not clear that IDs should be used)
- is template or thing to be cloned a real requirement? An empty thing could also make sense
- refactor iot client AddThing -> prerequisite: add the properties parameter in iot-client-go
- thing Create function stores the thing parameters into an empty interface -> this will be replaced into a proper structure as soon as iot-client-go can handle properties
Given that iot-client-go has been updated and now supports the creation of things with a slice of properties, it's been here employed to create a thing.
Issue: response's error details, coming from arduino iot cloud, are masked by iot-client-go
@polldo polldo force-pushed the polldo/thing-create branch from 2137817 to 05f124a Compare August 26, 2021 11:29
@polldo polldo marked this pull request as ready for review August 26, 2021 11:44
@polldo polldo force-pushed the polldo/thing-create branch 2 times, most recently from 27f570e to 10723b7 Compare August 26, 2021 11:53
@polldo polldo force-pushed the polldo/thing-create branch from 10723b7 to 4e7348c Compare August 26, 2021 12:00
@polldo polldo merged commit 626cc19 into main Aug 26, 2021
@polldo polldo deleted the polldo/thing-create branch August 26, 2021 12:04
polldo added a commit that referenced this pull request Sep 2, 2022
things can be created in two ways:
    - starting from a template. templates can be extracted from existing things
    - cloning another thing, already available on arduino iot cloud

The parameters to create a new thing are:
- thing name - mandatory
- device (id) to bind the thing to - optional
- thing template - mandatory if no thing to clone is passed
- thing to clone (id) - mandatory if no template

commits history:
* Add thing create command

* Check clone params before copying

* Thing create uses updated iot-client-go

Given that iot-client-go has been updated and now supports the creation of things with a slice of properties, it's been here employed to create a thing.
Issue: response's error details, coming from arduino iot cloud, are masked by iot-client-go

* Add optional

* fix thing create - improve flags

* Update readme
polldo added a commit that referenced this pull request Sep 2, 2022
things can be created in two ways:
    - starting from a template. templates can be extracted from existing things
    - cloning another thing, already available on arduino iot cloud

The parameters to create a new thing are:
- thing name - mandatory
- device (id) to bind the thing to - optional
- thing template - mandatory if no thing to clone is passed
- thing to clone (id) - mandatory if no template

commits history:
* Add thing create command

* Check clone params before copying

* Thing create uses updated iot-client-go

Given that iot-client-go has been updated and now supports the creation of things with a slice of properties, it's been here employed to create a thing.
Issue: response's error details, coming from arduino iot cloud, are masked by iot-client-go

* Add optional

* fix thing create - improve flags

* Update readme
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant