Skip to content

Commit aa3a4b0

Browse files
committed
added log messages to various fme modules
1 parent bf18470 commit aa3a4b0

File tree

2 files changed

+48
-38
lines changed

2 files changed

+48
-38
lines changed

FMEUtil/FMEUtil/FMEScheduleLib.py

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@
33
44
@author: kjnether
55
'''
6-
import logging
7-
import FMEUtil.PyFMEServerV2
6+
import copy
87
import datetime
9-
import os.path
108
import json
11-
import deepdiff
12-
import copy
9+
import logging
10+
import os.path
1311
import pprint
1412

13+
import FMEUtil.PyFMEServerV2
14+
import deepdiff
15+
16+
1517
class Schedules(object):
1618

1719
'''
@@ -37,7 +39,8 @@ class Schedules(object):
3739
:type flds2Ignore: list
3840
'''
3941

40-
def __init__(self, fmeServUrl, fmeServToken, cacheLabel, cacheDir, refreshCache=False, ignorePP=False):
42+
def __init__(self, fmeServUrl, fmeServToken, cacheLabel, cacheDir,
43+
refreshCache=False, ignorePP=False):
4144
'''
4245
:param fmeServUrl: url to fme server, don't include paths
4346
:param fmeServToken: token to fme server
@@ -68,7 +71,7 @@ def __init__(self, fmeServUrl, fmeServToken, cacheLabel, cacheDir, refreshCache=
6871
# when doing comparisons between the two structures
6972
self.flds2Ignore = ['begin', 'enabled']
7073
# this switch can be set using the method setIgnoredFields()
71-
# when set to true published parameters are not considered in the
74+
# when set to true published parameters are not considered in the
7275
# comparison of the schedules.
7376
self.ignorePP = ignorePP
7477
# this data struct will get populated with everything in self.schedStruct
@@ -90,6 +93,13 @@ def getPyFME(self):
9093
'''
9194
return self.fme
9295

96+
def getScheduleData(self):
97+
'''
98+
:return: the data structure that describes the schedules in this
99+
object.
100+
'''
101+
return self.schedStruct
102+
93103
def setIgnoredFields(self, flds, ignorePublishedParameters=True):
94104
'''
95105
When doing a comparison between schedule objects you can set a
@@ -102,7 +112,7 @@ def setIgnoredFields(self, flds, ignorePublishedParameters=True):
102112
self.ignorePP = ignorePublishedParameters
103113
self.flds2Ignore = flds
104114
schedStructCleaned = []
105-
#schedIterator = self.schedStruct[0:]
115+
# schedIterator = self.schedStruct[0:]
106116
schedIterator = copy.deepcopy(self.schedStruct)
107117
for schedRef in schedIterator:
108118
sched = schedRef.copy()
@@ -112,12 +122,16 @@ def setIgnoredFields(self, flds, ignorePublishedParameters=True):
112122
del sched[fld2Del]
113123
if self.ignorePP:
114124
# getting rid of published parameters too!
115-
#self.pp.pprint(sched)
125+
# self.pp.pprint(sched)
116126
del sched['request']['publishedParameters']
117127
schedStructCleaned.append(sched)
118128
self.schedStructComparison = schedStructCleaned
119129

120130
def isEnabled(self, scheduleName):
131+
'''
132+
:return: indicates if the schedule is enabled or not
133+
:rtype: boolean
134+
'''
121135
schedStruct = self.getScheduleByName(scheduleName)
122136
return schedStruct['enabled']
123137

@@ -140,6 +154,7 @@ def getSchedules(self):
140154
self.logger.info("retrieving the schedules from fme server, this" + \
141155
"may take a while")
142156
schedStruct = self.scheds.getSchedules()
157+
self.logger.debug("schedStruct: {0}".format(schedStruct))
143158
with open(self.cacheFile, 'w') as outfile:
144159
msg = "dumping the schedules to the cache file {0}"
145160
self.logger.info(msg.format(cacheFile))
@@ -164,7 +179,7 @@ def getScheduleByName(self, scheduleName):
164179
break
165180
return retVal
166181

167-
def __contains__(self, sched):
182+
def __contains__(self, sched): # pylint: disable=invalid-name
168183
'''
169184
:param sched: returns true or false based on whether the sched
170185
object exists in this collection of schedules
@@ -177,7 +192,7 @@ def __contains__(self, sched):
177192
for fld in sched.keys():
178193
if fld not in self.flds2Ignore:
179194
schedCleaned[fld] = copy.deepcopy(sched[fld])
180-
# if the ignore published parameters flag is set then
195+
# if the ignore published parameters flag is set then
181196
# don't look at them if they are defined.
182197
if self.ignorePP:
183198
if 'request' in schedCleaned:
@@ -190,10 +205,10 @@ def __contains__(self, sched):
190205
for curSched in self.schedStructComparison:
191206
if curSched['name'] == schedCleaned['name']:
192207
diffs = deepdiff.DeepDiff(schedCleaned, curSched)
193-
self.logger.info("differences for {1}: {0}".format(diffs, curSched['name']))
208+
self.logger.info("differences for {1}: {0}".format(diffs, curSched['name']))
194209
return retVal
195210

196-
def __sub__(self, schedules):
211+
def __sub__(self, schedules): # pylint: disable=invalid-name
197212
'''
198213
identifies schedules that are in self, but not in supplied
199214
schedules
@@ -223,6 +238,11 @@ def __init__(self, schedule, scheduleName):
223238
self.scheduleStruct = self.schedule.getScheduleByName(scheduleName)
224239

225240
def getPublishedParameters(self):
241+
'''
242+
:return: the published parameters associated with the specified schedule.
243+
These are retrieved not from the schedule but from the FMW that the
244+
schedule calls.
245+
'''
226246
workspcName = self.scheduleStruct['workspace']
227247
repoName = self.scheduleStruct['repository']
228248

@@ -232,10 +252,10 @@ def getPublishedParameters(self):
232252
pubParams = wrkspcs.getPublishedParams4Schedule(workspcName)
233253
return pubParams
234254

235-
def fixSchedulePublishedParameters(self, setEnabled=True):
255+
def fixSchedulePublishedParameters(self):
236256
'''
237-
Returns a schedule json struct that can be sent to FME Server to define
238-
a new schedule.
257+
:return: a schedule json struct that can be sent to FME Server to define
258+
a new schedule.
239259
'''
240260
# published parameters retrieved from the workspace on fme server
241261
pubParams = self.getPublishedParameters()
@@ -246,7 +266,7 @@ def fixSchedulePublishedParameters(self, setEnabled=True):
246266
pp.pprint(self.scheduleStruct)
247267
schedulePubParams = self.scheduleStruct['request']['publishedParameters']
248268

249-
fixedSchedule = self.scheduleStruct['request']['publishedParameters'][0:]
269+
# fixedSchedule = self.scheduleStruct['request']['publishedParameters'][0:]
250270

251271
# Iterating through the published parameters associated with the
252272
# workspace and overriding values with values that were retrieved
@@ -270,22 +290,3 @@ def fixSchedulePublishedParameters(self, setEnabled=True):
270290
# raise
271291
self.scheduleStruct['request']['publishedParameters'] = params4Schedule
272292
return self.scheduleStruct
273-
274-
def setDisabled(self, schedule):
275-
'''
276-
:param schedule: the schedule json object
277-
:return: the same schedule as was recieved but with the enabled
278-
parameter set to false.
279-
'''
280-
281-
pass
282-
283-
def setDestDbEnvKey(self, schedule, key):
284-
'''
285-
searches the schedule for the DEST_DB_ENV_KEY if one is found
286-
then the parameter is set to the value defined in 'key'
287-
288-
:param key: the value to assign to DEST_DB_ENV_KEY if it exists.
289-
'''
290-
pass
291-

FMEUtil/FMEUtil/PyFMEServerV2.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434

3535
import requests
3636

37+
# pylint: disable=logging-format-interpolation
38+
3739

3840
class FMERestBase(object):
3941
'''
@@ -314,6 +316,7 @@ class Logs(object): # pylint: disable=too-few-public-methods
314316
'''
315317

316318
def __init__(self, baseObj):
319+
self.logger = logging.getLogger(__name__)
317320
self.baseObj = baseObj
318321
# example of v1 url to a log
319322
# V2 logs are moved under the jobs.
@@ -323,7 +326,7 @@ def __init__(self, baseObj):
323326
self.url = self.baseObj.fixUrlPath(self.url)
324327
self.url = urlparse.urljoin(self.url, 'jobs', True)
325328
self.url = self.baseObj.fixUrlPath(self.url)
326-
329+
self.logger.debug("url is: {0}".format(self.url))
327330
# self.url = urlparse.urljoin(self.url, 'complete', True)
328331
# self.url = self.baseObj.fixUrlPath(self.url)
329332

@@ -332,6 +335,7 @@ def getLog(self, logId):
332335
Returns a Log object for a given log id. Job id?
333336
'''
334337
log = Log(self, logId)
338+
self.logger.debug("getting the log: {0}".format(logId))
335339
return log
336340

337341

@@ -341,8 +345,10 @@ class Schedules(object):
341345
'''
342346

343347
def __init__(self, baseObj):
348+
self.logger = logging.getLogger(__name__)
344349
self.baseObj = baseObj
345350
self.url = urlparse.urljoin(self.baseObj.restUrl, self.baseObj.scheduleDir, True)
351+
self.logger.debug("base url: {0}".format(self.url))
346352

347353
def getSchedule(self):
348354
'''
@@ -367,6 +373,7 @@ def exists(self, schedName, category=None):
367373
'''
368374
schedsList = self.getSchedules(detail='low')
369375
retVal = False
376+
self.logger.debug("schedule list: {0}".format(schedsList))
370377
# print 'schedList:', schedsList
371378
for sched in schedsList:
372379
# self.logger.debug("current sched in iteration %s", sched)
@@ -1225,6 +1232,8 @@ def deleteWorkspace(self, wrkspcName):
12251232
'''
12261233
url = self.baseObj.fixUrlPath(self.url)
12271234
url = urlparse.urljoin(url, wrkspcName)
1235+
self.logger.debug("url: {0}".format(url))
1236+
self.logger.info("attempting to delete: {0}".format(wrkspcName))
12281237
# print 'url', url
12291238
# print 'wrkspcName', wrkspcName
12301239
header = {'Accept': 'application/json'}
@@ -1396,7 +1405,7 @@ def getResourceInfo(self, dirType, dirList):
13961405
itemUrl = self.__calcURL(dirType, dirList)
13971406
# print 'url:', itemUrl
13981407
response = self.baseObj.getResponse(itemUrl)
1399-
pp = pprint.PrettyPrinter(indent=4)
1408+
# pp = pprint.PrettyPrinter(indent=4)
14001409
# pp.pprint(response)
14011410
return response
14021411

0 commit comments

Comments
 (0)