Skip to content

Commit b082991

Browse files
committed
Final additions in private beta
1 parent b9e2401 commit b082991

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

iot/api-client/manager/manager.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def get_client(service_account_json, api_key):
6969
provided API key and creating a service object using the service account
7070
credentials JSON."""
7171
api_scopes = ['https://www.googleapis.com/auth/cloud-platform']
72-
api_version = 'v1beta1'
72+
api_version = 'v1'
7373
discovery_api = 'https://cloudiot.googleapis.com/$discovery/rest'
7474
service_name = 'cloudiotcore'
7575

@@ -216,6 +216,23 @@ def get_device(
216216
return device
217217

218218

219+
def get_state(
220+
service_account_json, api_key, project_id, cloud_region, registry_id,
221+
device_id):
222+
"""Retrieve a device's state blobs."""
223+
client = get_client(service_account_json, api_key)
224+
registry_name = 'projects/{}/locations/{}/registries/{}'.format(
225+
project_id, cloud_region, registry_id)
226+
227+
device_name = '{}/devices/{}'.format(registry_name, device_id)
228+
devices = client.projects().locations().registries().devices()
229+
state = devices.states().list(name=device_name, numStates=5).execute()
230+
231+
print('State: {}\n'.format(state))
232+
233+
return state
234+
235+
219236
def list_devices(
220237
service_account_json, api_key, project_id, cloud_region, registry_id):
221238
"""List all devices in the registry."""
@@ -274,6 +291,8 @@ def create_registry(
274291
print('Created registry')
275292
return response
276293
except HttpError:
294+
print(dir(HttpError))
295+
print('Error {}'.format(HttpError))
277296
return ""
278297

279298

@@ -425,7 +444,8 @@ def parse_command_line_args():
425444
command.add_parser('delete-device', help=delete_device.__doc__)
426445
command.add_parser('delete-registry', help=delete_registry.__doc__)
427446
command.add_parser('get', help=get_device.__doc__)
428-
command.add_parser('get-registry', help=get_device.__doc__)
447+
command.add_parser('get-registry', help=get_registry.__doc__)
448+
command.add_parser('get-state', help=get_state.__doc__)
429449
command.add_parser('list', help=list_devices.__doc__)
430450
command.add_parser('list-registries', help=list_registries.__doc__)
431451
command.add_parser('patch-es256', help=patch_es256_auth.__doc__)
@@ -436,6 +456,10 @@ def parse_command_line_args():
436456

437457
def run_command(args):
438458
"""Calls the program using the specified command."""
459+
if args.project_id is None:
460+
print ("You must specify a project ID or set the environment variable.")
461+
return
462+
439463
if args.command == 'create-rsa256':
440464
create_rs256_device(
441465
args.service_account_json, args.api_key, args.project_id,
@@ -476,6 +500,11 @@ def run_command(args):
476500
args.service_account_json, args.api_key, args.project_id,
477501
args.cloud_region, args.registry_id, args.device_id)
478502

503+
elif args.command == 'get-state':
504+
get_state(
505+
args.service_account_json, args.api_key, args.project_id,
506+
args.cloud_region, args.registry_id, args.device_id)
507+
479508
elif args.command == 'list':
480509
list_devices(
481510
args.service_account_json, args.api_key, args.project_id,

iot/api-client/manager/manager_test.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,10 @@ def test_add_delete_rs256_device(test_topic, capsys):
101101
service_account_json, api_key, project_id, cloud_region,
102102
registry_id, device_id)
103103

104+
manager.get_state(
105+
service_account_json, api_key, project_id, cloud_region,
106+
registry_id, device_id)
107+
104108
manager.delete_device(
105109
service_account_json, api_key, project_id, cloud_region,
106110
registry_id, device_id)
@@ -111,6 +115,7 @@ def test_add_delete_rs256_device(test_topic, capsys):
111115

112116
out, _ = capsys.readouterr()
113117
assert 'format : RSA_X509_PEM' in out
118+
assert 'State : {}' in out
114119

115120

116121
def test_add_delete_es256_device(test_topic, capsys):
@@ -127,6 +132,10 @@ def test_add_delete_es256_device(test_topic, capsys):
127132
service_account_json, api_key, project_id, cloud_region,
128133
registry_id, device_id)
129134

135+
manager.get_state(
136+
service_account_json, api_key, project_id, cloud_region,
137+
registry_id, device_id)
138+
130139
manager.delete_device(
131140
service_account_json, api_key, project_id, cloud_region,
132141
registry_id, device_id)
@@ -137,6 +146,7 @@ def test_add_delete_es256_device(test_topic, capsys):
137146

138147
out, _ = capsys.readouterr()
139148
assert 'format : ES256_PEM' in out
149+
assert 'State : {}' in out
140150

141151

142152
def test_add_patch_delete_rs256(test_topic, capsys):

0 commit comments

Comments
 (0)