Skip to content

Commit b32a0f5

Browse files
committed
Adding CLI Capabilities
🐛 Trying to fix failing tests on TravisCI. Added a bunch of logging for CLI functions to try and debug. Working on #3
1 parent 6715b15 commit b32a0f5

File tree

8 files changed

+138
-61
lines changed

8 files changed

+138
-61
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ before_script:
1616
env:
1717
- process_tracking_data_store_host=localhost process_tracking_data_store_port=5432
1818
process_tracking_data_store_name=process_tracking process_tracking_data_store_type=postgresql
19-
process_tracking_data_store_password=Testing1! process_tracking_data_store_username=pt_admin
19+
process_tracking_data_store_password=Testing1! process_tracking_data_store_username=pt_admin log_level=INFO
2020
deploy:
2121
- provider: releases
2222
api_key:

process_tracker/cli.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
data_store = DataStore()
1010
logger = logging.getLogger('Process Tracker')
11+
logger.level(os.environ.get('log_level', 'error').upper())
1112

1213

1314
@click.group()

process_tracker/data_store.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def __init__(self):
2828
Need to initialize the data store connection when starting to access the data store.
2929
"""
3030
self.logger = logging.getLogger(__name__)
31+
self.logger.level(os.environ.get('log_level', 'error').upper())
3132

3233
data_store = self.verify_and_connect_to_data_store()
3334
self.session = data_store['session']
@@ -120,27 +121,39 @@ def topic_creator(self, topic, name):
120121
:param name:
121122
:return:
122123
"""
124+
self.logger.info('Attempting to create %s item: %s' % (topic, name))
123125

124126
if self.topic_validator(topic=topic):
125127
if topic == 'actor':
126128
item = self.get_or_create_item(model=Actor, actor_name=name)
129+
self.logger.info('Actor created: %s' % item.__repr__)
127130
elif topic == 'extract status':
128131
item = self.get_or_create_item(model=ExtractStatus, extract_status_name=name)
132+
self.logger.info('Extract Status created: %s' % item.__repr__)
129133
elif topic == 'error type':
130134
item = self.get_or_create_item(model=ErrorType, error_type_name=name)
135+
self.logger.info('Error Type created: %s' % item.__repr__)
131136
elif topic == 'process type':
132137
item = self.get_or_create_item(model=ProcessType, process_type_name=name)
138+
self.logger.info('Process Type created: %s' % item.__repr__)
133139
elif topic == 'process status':
134140
item = self.get_or_create_item(model=ProcessStatus, process_status_name=name)
141+
self.logger.info('Process Status created: %s' % item.__repr__)
135142
elif topic == 'source':
136143
item = self.get_or_create_item(model=Source, source_name=name)
144+
self.logger.info('Source created: %s' % item.__repr__)
137145
elif topic == 'tool':
138146
item = self.get_or_create_item(model=Tool, tool_name=name)
147+
self.logger.info('Tool created: %s' % item.__repr__)
139148
else:
140149
ClickException('Invalid topic type.').show()
150+
151+
self.logger.error('Invalid topic type.')
141152
else:
142153
ClickException('Invalid topic type.').show()
143154

155+
self.logger.error('Invalid topic type.')
156+
144157
return item
145158

146159
def topic_deleter(self, topic, name):
@@ -154,39 +167,50 @@ def topic_deleter(self, topic, name):
154167
"""
155168
item_delete = False
156169

170+
self.logger.info('Attempting to delete %s item %s' % (topic, name))
171+
157172
if self.topic_validator(topic=topic):
158173
if topic == 'actor':
159174
item_delete = True
160175
self.session.query(Actor).filter(Actor.actor_name == name).delete()
176+
self.logger.info('%s %s deleted.' % (topic, name))
161177

162178
elif topic == 'extract status' and name not in preload_extract_status_types:
163179
item_delete = True
164180
self.session.query(ExtractStatus).filter(ExtractStatus.extract_status_name == name).delete()
181+
self.logger.info('%s %s deleted.' % (topic, name))
165182

166183
elif topic == 'error type' and name not in preload_error_types:
167184
item_delete = True
168185
self.session.query(ErrorType).filter(ErrorType.error_type_name == name).delete()
186+
self.logger.info('%s %s deleted.' % (topic, name))
169187

170188
elif topic == 'process type' and name not in preload_process_types:
171189
item_delete = True
172190
self.session.query(ProcessType).filter(ProcessType.process_type_name == name).delete()
191+
self.logger.info('%s %s deleted.' % (topic, name))
173192

174193
elif topic == 'process status' and name not in preload_process_status_types:
175194
item_delete = True
176195
self.session.query(ProcessStatus).filter(ProcessStatus.process_status_name == name).delete()
196+
self.logger.info('%s %s deleted.' % (topic, name))
177197

178198
elif topic == 'source':
179199
item_delete = True
180200
self.session.query(Source).filter(Source.source_name == name).delete()
201+
self.logger.info('%s %s deleted.' % (topic, name))
181202

182203
elif topic == 'tool':
183204
item_delete = True
184205
self.session.query(Tool).filter(Tool.tool_name == name).delete()
206+
self.logger.info('%s %s deleted.' % (topic, name))
185207

186208
else:
187209
ClickException('The item could not be deleted because it is a protected record.').show()
210+
self.logger.error('%s %s could not be deleted because it is a protected record.' % (topic, name))
188211
else:
189212
ClickException('Invalid topic. Unable to delete instance.').show()
213+
self.logger.error('%s is an invalid topic. Unable to delete.' % topic)
190214

191215
if item_delete:
192216
self.session.commit()
@@ -206,35 +230,47 @@ def topic_updater(self, topic, initial_name, name):
206230
if topic == 'actor':
207231
item = self.get_or_create_item(model=Actor, create=False, actor_name=initial_name)
208232
item.actor_name = name
233+
self.logger.info('%s %s updated.' % (topic, name))
209234

210235
elif topic == 'extract status' and initial_name not in preload_extract_status_types:
211236
item = self.get_or_create_item(model=ExtractStatus, create=False, extract_status_name=initial_name)
212237
item.extract_status_name = name
238+
self.logger.info('%s %s updated.' % (topic, name))
213239

214240
elif topic == 'error type' and initial_name not in preload_error_types:
215241
item = self.get_or_create_item(model=ErrorType, create=False, error_type_name=initial_name)
216242
item.error_type_name = name
243+
self.logger.info('%s %s updated.' % (topic, name))
217244

218245
elif topic == 'process type' and initial_name not in preload_process_types:
219246
item = self.get_or_create_item(model=ProcessType, create=False, process_type_name=initial_name)
220247
item.process_type_name = name
248+
self.logger.info('%s %s updated.' % (topic, name))
221249

222250
elif topic == 'process status' and initial_name not in preload_process_status_types:
223251
item = self.get_or_create_item(model=ProcessStatus, create=False, process_status_name=initial_name)
224252
item.process_status_name = name
253+
self.logger.info('%s %s updated.' % (topic, name))
254+
225255
elif topic == 'source':
226256
item = self.get_or_create_item(model=Source, create=False, source_name=initial_name)
227257
item.source_name = name
258+
self.logger.info('%s %s updated.' % (topic, name))
259+
228260
elif topic == 'tool':
229261
item = self.get_or_create_item(model=Tool, create=False, tool_name=initial_name)
230262
item.tool_name = name
263+
self.logger.info('%s %s updated.' % (topic, name))
264+
231265
else:
232266
ClickException('The item could not be updated because it is a protected record.').show()
267+
self.logger.error('%s %s could not be updated because it is a protected record.' % (topic, name))
233268

234269
self.session.commit()
235270

236271
else:
237272
ClickException('Invalid topic. Unable to update instance.').show()
273+
self.logger.error('%s is an invalid topic. Unable to update.' % topic)
238274

239275
def topic_validator(self, topic):
240276
"""

process_tracker/extract_tracker.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# Used in the creation and editing of extract records. Used in conjunction with process tracking.
33
from datetime import datetime
44
import logging
5+
import os
56
from os.path import join
67

78
from sqlalchemy.orm import Session
@@ -31,6 +32,7 @@ def __init__(self, process_run, filename, location=None, location_name=None, loc
3132
:type status: string
3233
"""
3334
self.logger = logging.getLogger(__name__)
35+
self.logger.level(os.environ.get('log_level', 'error').upper())
3436

3537
self.data_store = DataStore()
3638
self.session = self.data_store.session

process_tracker/location_tracker.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Location
22
# For processes dealing with Extract Locations.
3-
3+
import logging
4+
import os
45
from os.path import basename, normpath
56

67
from process_tracker.data_store import DataStore
@@ -10,6 +11,8 @@
1011
class LocationTracker:
1112

1213
def __init__(self, location_path, location_name=None):
14+
self.logger = logging.getLogger(__name__)
15+
self.logger.level(os.environ.get('log_level', 'error').upper())
1316

1417
self.data_store = DataStore()
1518

process_tracker/process_tracker.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ def __init__(self, process_name, process_type, actor_name, tool_name, sources, t
3333
"""
3434

3535
self.logger = logging.getLogger(__name__)
36+
self.logger.level(os.environ.get('log_level', 'error').upper())
3637

3738
self.data_store = DataStore()
3839
self.session = self.data_store.session

0 commit comments

Comments
 (0)