Skip to content

Add thing create command #20

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Aug 26, 2021
Merged

Add thing create command #20

merged 6 commits into from
Aug 26, 2021

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 zmoog, eclipse1985 and glumia 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