Advertisement
Guest User

Untitled

a guest
Feb 5th, 2015
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.10 KB | None | 0 0
  1. UNHANDLED EXCEPTION (2015-02-05 22:18:53.804262)
  2. BRANCH: develop TIP: f95b08941cb0
  3. PROCESS: ./scripts/noc-web.py
  4. ERROR FINGERPRINT: a6d701cb-b9f6-51f3-b265-6705dfebdae0
  5. WORKING DIRECTORY: /opt/noc
  6. EXCEPTION: <class 'django.db.utils.DatabaseError'> column "cust_location" does not exist
  7.  
  8. START OF TRACEBACK
  9. ------------------------------------------------------------------------
  10. File: lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py (Line: 52)
  11. Function: execute
  12. 45 """
  13. 46
  14. 47 def __init__(self, cursor):
  15. 48 self.cursor = cursor
  16. 49
  17. 50 def execute(self, query, args=None):
  18. 51 try:
  19. 52 ==> return self.cursor.execute(query, args)
  20. 53 except Database.IntegrityError, e:
  21. 54 raise utils.IntegrityError, utils.IntegrityError(*tuple(e)), sys.exc_info()[2]
  22. 55 except Database.DatabaseError, e:
  23. 56 raise utils.DatabaseError, utils.DatabaseError(*tuple(e)), sys.exc_info()[2]
  24. 57
  25. 58 def executemany(self, query, args):
  26. Variables:
  27. query =
  28. 'CREATE INDEX sa_managedobject_location ON sa_managedobject(cust_location)'
  29. self =
  30. <django.db.backends.postgresql_psycopg2.base.CursorWrapper object at 0x5417f90>
  31. args = None
  32. e = ProgrammingError('column "cust_location" does not exist\n',)
  33. ------------------------------------------------------------------------
  34. File: main/models/customfield.py (Line: 150)
  35. Function: exec_commit
  36. 143 @property
  37. 144 def db_drop_statement(self):
  38. 145 return "ALTER TABLE %s DROP COLUMN \"%s\"" % (
  39. 146 self.table, self.db_column)
  40. 147
  41. 148 def exec_commit(self, sql):
  42. 149 c = connection.cursor()
  43. 150 ==> c.execute(sql)
  44. 151 c.execute("COMMIT")
  45. 152
  46. 153 def activate_field(self):
  47. 154 self.exec_commit(self.db_create_statement)
  48. 155
  49. 156 def deactivate_field(self):
  50. Variables:
  51. c = <django.db.backends.util.CursorWrapper object at 0x56c4210>
  52. self = <CustomField: sa_managedobject.location>
  53. sql =
  54. 'CREATE INDEX sa_managedobject_location ON sa_managedobject(cust_location)'
  55. ------------------------------------------------------------------------
  56. File: main/models/customfield.py (Line: 161)
  57. Function: create_index
  58. 154 self.exec_commit(self.db_create_statement)
  59. 155
  60. 156 def deactivate_field(self):
  61. 157 self.exec_commit(self.db_drop_statement)
  62. 158
  63. 159 def create_index(self):
  64. 160 self.exec_commit("CREATE INDEX %s ON %s(%s)" % (
  65. 161 ==> self.index_name, self.table, self.db_column))
  66. 162
  67. 163 def drop_index(self):
  68. 164 self.exec_commit("DROP INDEX %s" % self.index_name)
  69. 165
  70. 166 def rename(self, old_name):
  71. 167 self.exec_commit("ALTER TABLE %s RENAME \"%s\" TO \"%s\"" % (
  72. Variables:
  73. self = <CustomField: sa_managedobject.location>
  74. ------------------------------------------------------------------------
  75. File: main/models/customfield.py (Line: 197)
  76. Function: save
  77. 190 self.activate_field()
  78. 191 if self.is_indexed:
  79. 192 self.create_index()
  80. 193 else:
  81. 194 self.deactivate_field()
  82. 195 elif self.is_indexed != old_indexed:
  83. 196 if self.is_indexed:
  84. 197 ==> self.create_index()
  85. 198 else:
  86. 199 self.drop_index()
  87. 200
  88. 201 def delete(self):
  89. 202 if self.is_active:
  90. 203 self.deactivate_field()
  91. Variables:
  92. old = <CustomField: sa_managedobject.location>
  93. self = <CustomField: sa_managedobject.location>
  94. args = ()
  95. old_active = True
  96. kwargs = {}
  97. old_indexed = False
  98. ------------------------------------------------------------------------
  99. File: lib/app/extmodelapplication.py (Line: 437)
  100. Function: _update_object
  101. 430
  102. 431 @view(method=["PUT"], url="^(?P<id>\d+)/?$", access="update", api=True)
  103. 432 def api_update(self, request, id):
  104. 433 def _update_object(o, attrs, m2m_attrs):
  105. 434 for k, v in attrs.items():
  106. 435 setattr(o, k, v)
  107. 436 try:
  108. 437 ==> o.save()
  109. 438 if m2m_attrs:
  110. 439 self.update_m2ms(o, m2m_attrs)
  111. 440 except IntegrityError:
  112. 441 return self.render_json(
  113. 442 {
  114. 443 "success": False,
  115. Variables:
  116. self =
  117. <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>
  118. request =
  119. <WSGIRequest
  120. path:/main/customfield/1/,
  121. GET:<QueryDict: {}>,
  122. POST:<QueryDict: {}>,
  123. COOKIES:{'csrftoken': 'lobFi4YNoBDu02croPBFXJLEI1WdOssR',
  124. 'sessionid': 'ecd2e1471b80b37f0db09ffac5f5ff49'},
  125. META:{'CONTENT_LENGTH': '261',
  126. 'CONTENT_TYPE': 'application/json; charset=UTF-8',
  127. 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  128. 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  129. 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5',
  130. 'HTTP_CONNECTION': 'close',
  131. 'HTTP_COOKIE': 'csrftoken=lobFi4YNoBDu02croPBFXJLEI1WdOssR; sessionid=ecd2e1471b80b37f0db09ffac5f5ff49',
  132. 'HTTP_HOST': '127.0.0.1:8000',
  133. 'HTTP_REFERER': 'http://172.18.255.111/main/desktop/',
  134. 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0',
  135. 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
  136. 'PATH_INFO': u'/main/customfield/1/',
  137. 'QUERY_STRING': '',
  138. 'REMOTE_ADDR': '127.0.0.1',
  139. 'REQUEST_METHOD': 'PUT',
  140. 'SCRIPT_NAME': u'',
  141. 'SERVER_NAME': '127.0.0.1',
  142. 'SERVER_PORT': '8000',
  143. 'SERVER_PROTOCOL': 'HTTP/1.0',
  144. 'wsgi.errors': <open file '/dev/null', mode 'a+' at 0x1a0fed0>,
  145. 'wsgi.input': <_io.BytesIO object at 0x56ea5f0>,
  146. 'wsgi.multiprocess': True,
  147. 'wsgi.multithread': False,
  148. 'wsgi.run_once': False,
  149. 'wsgi.url_scheme': 'http',
  150. 'wsgi.version': (1, 0)}>
  151. o = <CustomField: sa_managedobject.location>
  152. m2m_attrs = {}
  153. attrs =
  154. {'description': 'Geographic location',
  155. 'enum_group': None,
  156. 'is_active': True,
  157. 'is_filtered': False,
  158. 'is_hidden': False,
  159. 'is_indexed': True,
  160. 'is_searchable': True,
  161. 'label': 'location',
  162. 'max_length': 60,
  163. 'name': 'location',
  164. 'regexp': None,
  165. 'table': 'sa_managedobject',
  166. 'type': 'str'}
  167. v = 'Geographic location'
  168. k = 'description'
  169. ------------------------------------------------------------------------
  170. File: lib/python2.7/site-packages/concurrent/futures/thread.py (Line: 61)
  171. Function: run
  172. 54 self.kwargs = kwargs
  173. 55
  174. 56 def run(self):
  175. 57 if not self.future.set_running_or_notify_cancel():
  176. 58 return
  177. 59
  178. 60 try:
  179. 61 ==> result = self.fn(*self.args, **self.kwargs)
  180. 62 except BaseException:
  181. 63 e, tb = sys.exc_info()[1:]
  182. 64 self.future.set_exception_info(e, tb)
  183. 65 else:
  184. 66 self.future.set_result(result)
  185. 67
  186. Variables:
  187. e = DatabaseError('column "cust_location" does not exist\n',)
  188. self = <concurrent.futures.thread._WorkItem object at 0x56e7e50>
  189. tb = <traceback object at 0x5523a28>
  190. ------------------------------------------------------------------------
  191. File: lib/python2.7/site-packages/concurrent/futures/_compat.py (Line: 107)
  192. Function: reraise
  193. 100
  194. 101 return result
  195. 102
  196. 103
  197. 104 if _sys.version_info[0] < 3:
  198. 105 def reraise(exc, traceback):
  199. 106 locals_ = {'exc_type': type(exc), 'exc_value': exc, 'traceback': traceback}
  200. 107 ==> exec('raise exc_type, exc_value, traceback', {}, locals_)
  201. 108 else:
  202. 109 def reraise(exc, traceback):
  203. 110 # Tracebacks are embedded in exceptions in Python 3
  204. 111 raise exc
  205. Variables:
  206. locals_ =
  207. {'exc_type': <class 'django.db.utils.DatabaseError'>,
  208. 'exc_value': DatabaseError('column "cust_location" does not exist\n',),
  209. 'traceback': <traceback object at 0x5523a28>}
  210. traceback = <traceback object at 0x5523a28>
  211. exc = DatabaseError('column "cust_location" does not exist\n',)
  212. ------------------------------------------------------------------------
  213. File: lib/python2.7/site-packages/concurrent/futures/_base.py (Line: 359)
  214. Function: __get_result
  215. 352 def done(self):
  216. 353 """Return True of the future was cancelled or finished executing."""
  217. 354 with self._condition:
  218. 355 return self._state in [CANCELLED, CANCELLED_AND_NOTIFIED, FINISHED]
  219. 356
  220. 357 def __get_result(self):
  221. 358 if self._exception:
  222. 359 ==> reraise(self._exception, self._traceback)
  223. 360 else:
  224. 361 return self._result
  225. 362
  226. 363 def add_done_callback(self, fn):
  227. 364 """Attaches a callable that will be called when the future finishes.
  228. 365
  229. Variables:
  230. self = <Future at 0x56e7f90 state=finished raised DatabaseError>
  231. ------------------------------------------------------------------------
  232. File: lib/python2.7/site-packages/concurrent/futures/_base.py (Line: 407)
  233. Function: result
  234. 400 return self.__get_result()
  235. 401
  236. 402 self._condition.wait(timeout)
  237. 403
  238. 404 if self._state in [CANCELLED, CANCELLED_AND_NOTIFIED]:
  239. 405 raise CancelledError()
  240. 406 elif self._state == FINISHED:
  241. 407 ==> return self.__get_result()
  242. 408 else:
  243. 409 raise TimeoutError()
  244. 410
  245. 411 def exception_info(self, timeout=None):
  246. 412 """Return a tuple of (exception, traceback) raised by the call that the
  247. 413 future represents.
  248. Variables:
  249. self = <Future at 0x56e7f90 state=finished raised DatabaseError>
  250. timeout = 5.0
  251. ------------------------------------------------------------------------
  252. File: main/models/slowop.py (Line: 73)
  253. Function: submit
  254. 66 so.duration = time.time() - t0
  255. 67 so.save()
  256. 68
  257. 69 so = None
  258. 70 t0 = time.time()
  259. 71 future = cls.pool.submit(fn, *args, **kwargs)
  260. 72 try:
  261. 73 ==> future.result(cls.SLOW_TIMEOUT)
  262. 74 except concurrent.futures.TimeoutError:
  263. 75 logger.debug("Continuing slow operation %s (app=%s, user=%s)",
  264. 76 fn, app_id, user)
  265. 77 # Save slow op
  266. 78 now = datetime.datetime.now()
  267. 79 so = SlowOp(
  268. Variables:
  269. args =
  270. (<CustomField: sa_managedobject.location>,
  271. {'description': 'Geographic location',
  272. 'enum_group': None,
  273. 'is_active': True,
  274. 'is_filtered': False,
  275. 'is_hidden': False,
  276. 'is_indexed': True,
  277. 'is_searchable': True,
  278. 'label': 'location',
  279. 'max_length': 60,
  280. 'name': 'location',
  281. 'regexp': None,
  282. 'table': 'sa_managedobject',
  283. 'type': 'str'},
  284. {})
  285. app_id = 'main.customfield'
  286. t0 = 1423163933.532948
  287. future = <Future at 0x56e7f90 state=finished raised DatabaseError>
  288. so = None
  289. user = u'snake'
  290. kwargs = {}
  291. on_complete = <function on_complete at 0x56f29b0>
  292. fn = <function _update_object at 0x56f2a28>
  293. cls = <class 'noc.main.models.slowop.SlowOp'>
  294. ------------------------------------------------------------------------
  295. File: lib/app/extapplication.py (Line: 258)
  296. Function: submit_slow_op
  297. 251 else:
  298. 252 return self.response_accepted(request.path)
  299. 253
  300. 254 def submit_slow_op(self, request, fn, *args, **kwargs):
  301. 255 f = SlowOp.submit(
  302. 256 fn,
  303. 257 self.get_app_id(), request.user.username,
  304. 258 ==> *args, **kwargs
  305. 259 )
  306. 260 if f.done():
  307. 261 return f.result()
  308. 262 else:
  309. 263 return self.response_accepted(
  310. 264 location="%sfutures/%s/" % (self.base_url, f.slow_op.id)
  311. Variables:
  312. self =
  313. <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>
  314. args =
  315. (<CustomField: sa_managedobject.location>,
  316. {'description': 'Geographic location',
  317. 'enum_group': None,
  318. 'is_active': True,
  319. 'is_filtered': False,
  320. 'is_hidden': False,
  321. 'is_indexed': True,
  322. 'is_searchable': True,
  323. 'label': 'location',
  324. 'max_length': 60,
  325. 'name': 'location',
  326. 'regexp': None,
  327. 'table': 'sa_managedobject',
  328. 'type': 'str'},
  329. {})
  330. request =
  331. <WSGIRequest
  332. path:/main/customfield/1/,
  333. GET:<QueryDict: {}>,
  334. POST:<QueryDict: {}>,
  335. COOKIES:{'csrftoken': 'lobFi4YNoBDu02croPBFXJLEI1WdOssR',
  336. 'sessionid': 'ecd2e1471b80b37f0db09ffac5f5ff49'},
  337. META:{'CONTENT_LENGTH': '261',
  338. 'CONTENT_TYPE': 'application/json; charset=UTF-8',
  339. 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  340. 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  341. 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5',
  342. 'HTTP_CONNECTION': 'close',
  343. 'HTTP_COOKIE': 'csrftoken=lobFi4YNoBDu02croPBFXJLEI1WdOssR; sessionid=ecd2e1471b80b37f0db09ffac5f5ff49',
  344. 'HTTP_HOST': '127.0.0.1:8000',
  345. 'HTTP_REFERER': 'http://172.18.255.111/main/desktop/',
  346. 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0',
  347. 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
  348. 'PATH_INFO': u'/main/customfield/1/',
  349. 'QUERY_STRING': '',
  350. 'REMOTE_ADDR': '127.0.0.1',
  351. 'REQUEST_METHOD': 'PUT',
  352. 'SCRIPT_NAME': u'',
  353. 'SERVER_NAME': '127.0.0.1',
  354. 'SERVER_PORT': '8000',
  355. 'SERVER_PROTOCOL': 'HTTP/1.0',
  356. 'wsgi.errors': <open file '/dev/null', mode 'a+' at 0x1a0fed0>,
  357. 'wsgi.input': <_io.BytesIO object at 0x56ea5f0>,
  358. 'wsgi.multiprocess': True,
  359. 'wsgi.multithread': False,
  360. 'wsgi.run_once': False,
  361. 'wsgi.url_scheme': 'http',
  362. 'wsgi.version': (1, 0)}>
  363. fn = <function _update_object at 0x56f2a28>
  364. kwargs = {}
  365. ------------------------------------------------------------------------
  366. File: lib/app/extmodelapplication.py (Line: 478)
  367. Function: api_update
  368. 471 "traceback": str(why)
  369. 472 }, status=self.BAD_REQUEST)
  370. 473 try:
  371. 474 o = self.queryset(request).get(**{self.pk: int(id)})
  372. 475 except self.model.DoesNotExist:
  373. 476 return HttpResponse("", status=self.NOT_FOUND)
  374. 477 return self.submit_slow_op(request, _update_object,
  375. 478 ==> o, attrs, m2m_attrs)
  376. 479
  377. 480 @view(method=["DELETE"], url="^(?P<id>\d+)/?$", access="delete", api=True)
  378. 481 def api_delete(self, request, id):
  379. 482 def _delete_object(o):
  380. 483 o.delete() # @todo: Detect errors
  381. 484 return HttpResponse(status=self.DELETED)
  382. Variables:
  383. _update_object = <function _update_object at 0x56f2a28>
  384. self =
  385. <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>
  386. request =
  387. <WSGIRequest
  388. path:/main/customfield/1/,
  389. GET:<QueryDict: {}>,
  390. POST:<QueryDict: {}>,
  391. COOKIES:{'csrftoken': 'lobFi4YNoBDu02croPBFXJLEI1WdOssR',
  392. 'sessionid': 'ecd2e1471b80b37f0db09ffac5f5ff49'},
  393. META:{'CONTENT_LENGTH': '261',
  394. 'CONTENT_TYPE': 'application/json; charset=UTF-8',
  395. 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  396. 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  397. 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5',
  398. 'HTTP_CONNECTION': 'close',
  399. 'HTTP_COOKIE': 'csrftoken=lobFi4YNoBDu02croPBFXJLEI1WdOssR; sessionid=ecd2e1471b80b37f0db09ffac5f5ff49',
  400. 'HTTP_HOST': '127.0.0.1:8000',
  401. 'HTTP_REFERER': 'http://172.18.255.111/main/desktop/',
  402. 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0',
  403. 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
  404. 'PATH_INFO': u'/main/customfield/1/',
  405. 'QUERY_STRING': '',
  406. 'REMOTE_ADDR': '127.0.0.1',
  407. 'REQUEST_METHOD': 'PUT',
  408. 'SCRIPT_NAME': u'',
  409. 'SERVER_NAME': '127.0.0.1',
  410. 'SERVER_PORT': '8000',
  411. 'SERVER_PROTOCOL': 'HTTP/1.0',
  412. 'wsgi.errors': <open file '/dev/null', mode 'a+' at 0x1a0fed0>,
  413. 'wsgi.input': <_io.BytesIO object at 0x56ea5f0>,
  414. 'wsgi.multiprocess': True,
  415. 'wsgi.multithread': False,
  416. 'wsgi.run_once': False,
  417. 'wsgi.url_scheme': 'http',
  418. 'wsgi.version': (1, 0)}>
  419. m2m_attrs = {}
  420. o = <CustomField: sa_managedobject.location>
  421. id = u'1'
  422. attrs =
  423. {'description': 'Geographic location',
  424. 'enum_group': None,
  425. 'is_active': True,
  426. 'is_filtered': False,
  427. 'is_hidden': False,
  428. 'is_indexed': True,
  429. 'is_searchable': True,
  430. 'label': 'location',
  431. 'max_length': 60,
  432. 'name': 'location',
  433. 'regexp': None,
  434. 'table': 'sa_managedobject',
  435. 'type': 'str'}
  436. ------------------------------------------------------------------------
  437. File: lib/app/site.py (Line: 248)
  438. Function: inner
  439. 241 a = dict((k, v[0] if len(v) == 1 else v)
  440. 242 for k, v in request.GET.lists())
  441. 243 app_logger.debug("API %s %s %s",
  442. 244 request.method, request.path, a)
  443. 245 # Call handler
  444. 246 v.__dict__["hits_metric"] += 1
  445. 247 with v.__dict__["time_metric"].timer():
  446. 248 ==> r = v(request, *args, **kwargs)
  447. 249 # Dump SQL statements
  448. 250 if self.log_sql_statements:
  449. 251 from django.db import connections
  450. 252 tsc = 0
  451. 253 sc = defaultdict(int)
  452. 254 for conn in connections.all():
  453. Variables:
  454. args = ()
  455. view_map =
  456. {'DELETE': <bound method CustomFieldApplication.api_delete of <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>>,
  457. 'GET': <bound method CustomFieldApplication.api_read of <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>>,
  458. 'PUT': <bound method CustomFieldApplication.api_update of <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>>}
  459. Form = <class 'django.forms.forms.Form'>
  460. PermissionDenied = <class 'noc.lib.app.access.PermissionDenied'>
  461. DictParameter = <class 'noc.sa.interfaces.base.DictParameter'>
  462. self = <noc.lib.app.site.Site object at 0x2154090>
  463. v =
  464. <bound method CustomFieldApplication.api_update of <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>>
  465. request =
  466. <WSGIRequest
  467. path:/main/customfield/1/,
  468. GET:<QueryDict: {}>,
  469. POST:<QueryDict: {}>,
  470. COOKIES:{'csrftoken': 'lobFi4YNoBDu02croPBFXJLEI1WdOssR',
  471. 'sessionid': 'ecd2e1471b80b37f0db09ffac5f5ff49'},
  472. META:{'CONTENT_LENGTH': '261',
  473. 'CONTENT_TYPE': 'application/json; charset=UTF-8',
  474. 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  475. 'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
  476. 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.5',
  477. 'HTTP_CONNECTION': 'close',
  478. 'HTTP_COOKIE': 'csrftoken=lobFi4YNoBDu02croPBFXJLEI1WdOssR; sessionid=ecd2e1471b80b37f0db09ffac5f5ff49',
  479. 'HTTP_HOST': '127.0.0.1:8000',
  480. 'HTTP_REFERER': 'http://172.18.255.111/main/desktop/',
  481. 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:35.0) Gecko/20100101 Firefox/35.0',
  482. 'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
  483. 'PATH_INFO': u'/main/customfield/1/',
  484. 'QUERY_STRING': '',
  485. 'REMOTE_ADDR': '127.0.0.1',
  486. 'REQUEST_METHOD': 'PUT',
  487. 'SCRIPT_NAME': u'',
  488. 'SERVER_NAME': '127.0.0.1',
  489. 'SERVER_PORT': '8000',
  490. 'SERVER_PROTOCOL': 'HTTP/1.0',
  491. 'wsgi.errors': <open file '/dev/null', mode 'a+' at 0x1a0fed0>,
  492. 'wsgi.input': <_io.BytesIO object at 0x56ea5f0>,
  493. 'wsgi.multiprocess': True,
  494. 'wsgi.multithread': False,
  495. 'wsgi.run_once': False,
  496. 'wsgi.url_scheme': 'http',
  497. 'wsgi.version': (1, 0)}>
  498. app_logger = <logging.Logger object at 0x3dc1310>
  499. InterfaceTypeError = <class 'noc.sa.interfaces.base.InterfaceTypeError'>
  500. to_log_api_call = False
  501. kwargs = {'id': u'1'}
  502. nq = <function nq at 0x56f2050>
  503. app =
  504. <noc.main.apps.customfield.views.CustomFieldApplication object at 0x3dc1150>
  505. ------------------------------------------------------------------------
  506. END OF TRACEBACK
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement