Skip to content

Commit d4717ff

Browse files
authored
feat: provisioning mode (#423)
expose command for toggling feed provisioning mode
1 parent defb9a4 commit d4717ff

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

contxt/cli/commands/iot.py

+15
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,21 @@ def feeds(clients: Clients, fields: List[str], sort: str, facility_id: Optional[
7474
print_table(items=items, keys=fields, sort_by=sort)
7575

7676

77+
@iot.command()
78+
@click.argument("feed_key")
79+
@click.argument("enabled", type=bool)
80+
@click.pass_obj
81+
def provisioning_mode(clients: Clients, feed_key: str, enabled: bool) -> None:
82+
"""Enable/Disable provisioning mode for a feed"""
83+
feed = clients.iot.get_feed_with_key(key=feed_key)
84+
if not feed:
85+
raise click.ClickException(f"Feed with key {feed_key} does not exist.")
86+
87+
clients.iot.update_feed_provisioning_mode(feed.id, enabled)
88+
newState = "enabled" if enabled else "disabled"
89+
print(f"Provisioning mode is now {newState}")
90+
91+
7792
@fields.command()
7893
@click.argument("feed_key", type=str)
7994
@fields_option(default="id, feed_key, name, field_human_name", obj=Field)

contxt/services/iot.py

+4
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,10 @@ def get_feed_with_key(self, key: str) -> Optional[Feed]:
105105
return feeds[0] # type: ignore
106106
raise KeyError(f"Expected singleton feed with key {key}, not {N}")
107107

108+
def update_feed_provisioning_mode(self, id: int, enabled: bool):
109+
"""Enable/Disable provisioning mode for a feed"""
110+
return self.put(uri=f"feeds/{id}", json={"provisioning_mode": enabled})
111+
108112
def get_feeds(
109113
self,
110114
facility_id: Optional[int] = None,

0 commit comments

Comments
 (0)