Adds driver ID lookup

This commit is contained in:
Patrick McDonagh
2017-11-03 12:34:40 -05:00
parent 0253e5275d
commit bcc1799e0e

View File

@@ -3,6 +3,8 @@
import json
import click
import boto3
import csv
import urllib2
CONFIG_FILE_NAME = "driverConfig.json"
CONFIG_OUTPUT_FILENAME = "config.txt"
@@ -28,6 +30,36 @@ def get_driver_files():
files.append(x)
return files
def get_driver_ids():
"""Retrieve the master list of driver IDs from the S3 bucket."""
ids = []
url = 'https://s3.amazonaws.com/{}/deviceIds.csv'.format(DRIVER_BUCKET)
response = urllib2.urlopen(url)
csvreader = csv.DictReader(response)
for row in csvreader:
ids.append(row)
return ids
def check_driver_id(driver_name):
"""Check if a driver ID exists and if not, create an ID for it."""
id_list = get_driver_ids()
for id in id_list:
if id['driver'] == driver_name:
return id['id']
# if you get here, you didn't find the driver in the list
last_id = int(id_list[-1]['id'])
new_id = ("0000" + str(last_id + 10))[-4:]
new_csv_contents = "driver,id\n"
for id in id_list:
new_csv_contents += "{},{}\n".format(id['driver'], id['id'])
new_csv_contents += "{},{}\n".format(driver_name, new_id)
file_key = "deviceIds.csv"
s3.Bucket(DRIVER_BUCKET).put_object(Key=file_key, Body=new_csv_contents)
s3.ObjectAcl(DRIVER_BUCKET, file_key).put(ACL='public-read')
return new_id
@click.group()
def cli():
pass
@@ -70,10 +102,12 @@ def prepare(dry_run, version):
else:
version = driver_config['version']
driver_id = check_driver_id(driver_config['name'])
config_object = {
"driverFileName": driver_config['driverFilename'],
"deviceName": driver_config['name'],
"driverId": driver_config['driverId'],
"driverId": driver_id,
"releaseVersion": "{}".format(version),
"files": file_object
}