Projet

Général

Profil

Bug #2596 » traceback.txt

Jérôme Schneider, 15 mars 2013 09:05

 
1
Exception:
2
  type = '<type 'exceptions.ValueError'>', value = 'form already has 'timeout' widget'
3

    
4
Stack trace (most recent call first):
5
  File "/usr/lib/pymodules/python2.6/quixote/form/form.py", line 233, in add
6
   231     def add(self, widget_class, name, *args, **kwargs):
7
   232         if name in self._names:
8
>  233             raise ValueError, "form already has '%s' widget" % name
9
   234         widget = widget_class(name, *args, **kwargs)
10
   235         self._names[name] = widget
11

    
12
  locals: 
13
     widget_class = <class 'quixote.form.widget.StringWidget'>
14
     self = <qommon.form.Form object at 0x2414dd0>
15
     args = ()
16
     name = 'timeout'
17
     kwargs = {'title': 'Expiration', 'value': '', 'render_br': False, 'hint': <htmltext 'ex.: 7 jours et 1 minute<br/> Unit\xc3\xa9s de temps utilisables: jour,jours,heure,heures,mois,mois,ann\xc3\xa9e,ann\xc3\xa9es,minute,minutes,seconde,secondes. <br/><span class="warning">Attention la dur\xc3\xa9e minimale est 20 minutes</span>'>}
18

    
19
  File "/usr/lib/pymodules/python2.6/wcs/qommon/form.py", line 222, in add
20
   220         if kwargs and not kwargs.has_key('render_br'):
21
   221             kwargs['render_br'] = False
22
>  222         return QuixoteForm.add(self, widget_class, name, *args, **kwargs)
23
   223 
24
   224     def remove(self, name):
25

    
26
  locals: 
27
     widget_class = <class 'quixote.form.widget.StringWidget'>
28
     self = <qommon.form.Form object at 0x2414dd0>
29
     args = ()
30
     name = 'timeout'
31
     kwargs = {'hint': <htmltext 'ex.: 7 jours et 1 minute<br/> Unit\xc3\xa9s de temps utilisables: jour,jours,heure,heures,mois,mois,ann\xc3\xa9e,ann\xc3\xa9es,minute,minutes,seconde,secondes. <br/><span class="warning">Attention la dur\xc3\xa9e minimale est 20 minutes</span>'>, 'render_br': False, 'value': '', 'title': 'Expiration'}
32

    
33
  File "/usr/lib/pymodules/python2.6/wcs/wf/timeout_jump.py", line 51, in add_parameters_widgets
34
    49                         'granularity': seconds2humanduration(self._granularity)}
35
    50             form.add(StringWidget, 'timeout', title=_('Timeout'),
36
>   51                         value=seconds2humanduration(self.timeout), hint=_hint)
37
    52 
38
    53     def timeout_parse(self, value):
39

    
40
  locals: 
41
     parameters = ['timeout']
42
     form = <qommon.form.Form object at 0x2414dd0>
43
     formdef = <FormDef 'D\xc3\xa9bit de boissons temporaire (buvette)' id:4>
44
     self = <wcs.wf.timeout_jump.TimeoutWorkflowStatusItem instance at 0x2bd8560>
45
     prefix = <htmltext '0*2*'>
46
     _hint = <htmltext 'ex.: 7 jours et 1 minute<br/> Unit\xc3\xa9s de temps utilisables: jour,jours,heure,heures,mois,mois,ann\xc3\xa9e,ann\xc3\xa9es,minute,minutes,seconde,secondes. <br/><span class="warning">Attention la dur\xc3\xa9e minimale est 20 minutes</span>'>
47

    
48
  File "/usr/lib/pymodules/python2.6/wcs/admin/forms.ptl", line 941, in workflow_options
49
   939                 label = getattr(item, str('label'), None) or _(item.description)
50
   940                 form.widgets.append(HtmlWidget('<h4>%s</h4>' % label))
51
>  941                 item.add_parameters_widgets(form, parameters, prefix=prefix, formdef=self.formdef)
52
   942         form.add_submit('submit', _('Submit'))
53
   943         form.add_submit('cancel', _('Cancel'))
54

    
55
  locals: 
56
     status = <wcs.workflows.WorkflowStatus instance at 0x2bd8320>
57
     pristine_workflow = <Workflow 'Par d\xc3\xa9faut avec relance' id:10>
58
     form = <qommon.form.Form object at 0x2414dd0>
59
     parameters = ['timeout']
60
     pristine_item = <wcs.wf.timeout_jump.TimeoutWorkflowStatusItem instance at 0x12d20e0>
61
     self = <wcs.admin.forms.FormDefPage object at 0x234a8d0>
62
     request = <qommon.http_request.HTTPRequest instance at 0x2548560>
63
     label = 'Changer de statut apr\xc3\xa8s expiration'
64
     item = <wcs.wf.timeout_jump.TimeoutWorkflowStatusItem instance at 0x2bd8560>
65
     prefix = <htmltext '0*2*'>
66
     had_options = True
67
     x = 'timeout'
68
     _q_output = <TemplateIO object at 0x2114230>
69

    
70
  File "/usr/lib/pymodules/python2.6/quixote/directory.py", line 67, in _q_traverse
71
    65                 raise TraversalError
72
    66         elif hasattr(obj, '__call__'):
73
>   67             return obj()
74
    68         else:
75
    69             return obj
76

    
77
  locals: 
78
     component = 'workflow-options'
79
     self = <wcs.admin.forms.FormDefPage object at 0x234a8d0>
80
     obj = <bound method FormDefPage.workflow_options of <wcs.admin.forms.FormDefPage object at 0x234a8d0>>
81
     name = 'workflow_options'
82
     path = []
83

    
84
  File "/usr/lib/pymodules/python2.6/quixote/directory.py", line 63, in _q_traverse
85
    61         if path:
86
    62             if hasattr(obj, '_q_traverse'):
87
>   63                 return obj._q_traverse(path)
88
    64             else:
89
    65                 raise TraversalError
90

    
91
  locals: 
92
     component = '4'
93
     self = <wcs.admin.forms.FormsDirectory object at 0x2502610>
94
     obj = <wcs.admin.forms.FormDefPage object at 0x234a8d0>
95
     name = None
96
     path = ['workflow-options']
97

    
98
  File "/usr/lib/pymodules/python2.6/quixote/directory.py", line 63, in _q_traverse
99
    61         if path:
100
    62             if hasattr(obj, '_q_traverse'):
101
>   63                 return obj._q_traverse(path)
102
    64             else:
103
    65                 raise TraversalError
104

    
105
  locals: 
106
     component = 'forms'
107
     self = <modules.admin.AdminRootDirectory object at 0x1df1690>
108
     obj = <wcs.admin.forms.FormsDirectory object at 0x2502610>
109
     name = 'forms'
110
     path = ['4', 'workflow-options']
111

    
112
  File "/usr/lib/pymodules/python2.6/quixote/directory.py", line 91, in _q_traverse
113
    89     def _q_traverse(self, path):
114
    90         self._q_access()
115
>   91         return super(AccessControlled, self)._q_traverse(path)
116
    92 
117
    93 
118

    
119
  locals: 
120
     path = ['forms', '4', 'workflow-options']
121
     self = <modules.admin.AdminRootDirectory object at 0x1df1690>
122

    
123
  File "/usr/lib/pymodules/python2.6/quixote/directory.py", line 63, in _q_traverse
124
    61         if path:
125
    62             if hasattr(obj, '_q_traverse'):
126
>   63                 return obj._q_traverse(path)
127
    64             else:
128
    65                 raise TraversalError
129

    
130
  locals: 
131
     component = 'admin'
132
     self = <modules.root.AlternateRootDirectory object at 0x2116d10>
133
     obj = <modules.admin.AdminRootDirectory object at 0x1df1690>
134
     name = 'admin'
135
     path = ['forms', '4', 'workflow-options']
136

    
137
  File "/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/modules/root.ptl", line 787, in _q_traverse
138
   785                     return redirect('%s%s/%s' % (base_url, f.category.url_name, uri_rest))
139
   786 
140
>  787             raise e
141
   788 
142
   789 
143

    
144
  locals: 
145
     path = ['admin', 'forms', '4', 'workflow-options']
146
     self = <modules.root.AlternateRootDirectory object at 0x2116d10>
147
     session = <BasicSession at 3014f50: 79e1dd17fd557126>
148
     response = <qommon.http_response.HTTPResponse instance at 0x2548c68>
149

    
150
  File "/usr/lib/pymodules/python2.6/quixote/publish.py", line 253, in try_publish
151
   251                 permanent=True)
152
   252         components = path[1:].split('/')
153
>  253         output = self.root_directory._q_traverse(components)
154
   254         # The callable ran OK, commit any changes to the session
155
   255         self.finish_successful_request()
156

    
157
  locals: 
158
     path = '/admin/forms/4/workflow-options'
159
     self = <publisher.WcsPublisher instance at 0x1e72488>
160
     request = <qommon.http_request.HTTPRequest instance at 0x2548560>
161
     components = ['admin', 'forms', '4', 'workflow-options']
162

    
163
  File "/usr/lib/pymodules/python2.6/wcs/qommon/publisher.py", line 492, in try_publish
164
   490         for extra_source in self.extra_sources:
165
   491             self.substitutions.feed(extra_source(self, request))
166
>  492         return Publisher.try_publish(self, request)
167
   493 
168
   494     def get_site_language(self):
169

    
170
  locals: 
171
     pystatsd = <module 'qommon.vendor.pystatsd' from '/usr/lib/pymodules/python2.6/wcs/qommon/vendor/pystatsd.py'>
172
     request = <qommon.http_request.HTTPRequest instance at 0x2548560>
173
     script_name = ''
174
     extra_source = <class 'modules.abelium_domino_vars.DominoVariables'>
175
     canonical_hostname = 'koshie.test.au-quotidien.com'
176
     self = <publisher.WcsPublisher instance at 0x1e72488>
177

    
178
  File "/usr/lib/pymodules/python2.6/wcs/publisher.py", line 140, in try_publish
179
   138         if request.get_header('X_WCS_IFRAME_MODE', '') in ('true', 'yes'):
180
   139             request.response.iframe_mode = True
181
>  140         return QommonPublisher.try_publish(self, request)
182
   141 
183
   142 set_publisher_class(WcsPublisher)
184

    
185
  locals: 
186
     self = <publisher.WcsPublisher instance at 0x1e72488>
187
     request = <qommon.http_request.HTTPRequest instance at 0x2548560>
188

    
189
  File "/usr/lib/pymodules/python2.6/quixote/publish.py", line 281, in process_request
190
   279         except:
191
   280             # Some other exception, generate error messages to the logs, etc.
192
>  281             output = self.finish_failed_request()
193
   282         output = self.filter_output(request, output)
194
   283         self.logger.log_request(request, start_time)
195

    
196
  locals: 
197
     start_time = 1363332347.3219571
198
     request = <qommon.http_request.HTTPRequest instance at 0x2548560>
199
     self = <publisher.WcsPublisher instance at 0x1e72488>
200

    
201
  File "/usr/lib/pymodules/python2.6/wcs/qommon/publisher.py", line 784, in process
202
   782     def process(self, stdin, env):
203
   783         request = HTTPRequest(stdin, env)
204
>  784         self.response = self.process_request(request)
205
   785         return self.response
206
   786 
207

    
208
  locals: 
209
     self = <publisher.WcsPublisher instance at 0x1e72488>
210
     stdin = <open file '<socket>', mode 'r' at 0x2bf9f60>
211
     request = <qommon.http_request.HTTPRequest instance at 0x2548560>
212
     env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://koshie.test.au-quotidien.com/admin/forms/4/', 'SERVER_SOFTWARE': 'Apache/2.2.16 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/admin/forms/4/workflow-options', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'koshie.test.au-quotidien.com', 'CONTENT_LENGTH': '0', 'HTTP_USER_AGENT': 'Opera/9.80 (X11; Linux x86_64; Edition Next) Presto/2.12.388 Version/12.14', 'HTTP_CONNECTION': 'Keep-Alive', 'HTTP_COOKIE': 'wcs-6346ef="79e1dd17fd557126"', 'SERVER_NAME': 'koshie.test.au-quotidien.com', 'REMOTE_ADDR': '109.190.108.22', 'SERVER_PORT': '443', 'SERVER_ADDR': '81.93.255.234', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://koshie.test.au-quotidien.com/admin/forms/4/workflow-options', 'REMOTE_USER': '2', 'HTTP_HOST': 'koshie.test.au-quotidien.com', 'SCRIPT_URL': '/admin/forms/4/workflow-options', 'HTTPS': 'on'
213
 , 'HTTP_CACHE_CONTROL': 'no-cache', 'REQUEST_URI': '/admin/forms/4/workflow-options', 'HTTP_ACCEPT': 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1', 'REMOTE_PORT': '41386', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.9,en;q=0.8', 'SCGI': '1', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate'}
214

    
215
  File "/usr/lib/pymodules/python2.6/quixote/server/scgi_server.py", line 27, in handle_connection
216
    25             env['PATH_INFO'] = path[len(prefix):] + env.get('PATH_INFO', '')
217
    26 
218
>   27         response = self.publisher.process(input, env)
219
    28         try:
220
    29             response.write(output)
221

    
222
  locals: 
223
     output = <open file '<socket>', mode 'w' at 0x2bf9db0>
224
     self = <qommon.scgi_server.QommonHandler instance at 0x184c998>
225
     conn = <socket object, fd=6, family=2, type=1, protocol=0>
226
     env = {'HTTP_X_AU_QUOTIDIEN_LOCKED': 'False', 'HTTP_REFERER': 'https://koshie.test.au-quotidien.com/admin/forms/4/', 'SERVER_SOFTWARE': 'Apache/2.2.16 (Debian)', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/admin/forms/4/workflow-options', 'SERVER_PROTOCOL': 'HTTP/1.1', 'QUERY_STRING': '', 'SSL_TLS_SNI': 'koshie.test.au-quotidien.com', 'CONTENT_LENGTH': '0', 'HTTP_USER_AGENT': 'Opera/9.80 (X11; Linux x86_64; Edition Next) Presto/2.12.388 Version/12.14', 'HTTP_CONNECTION': 'Keep-Alive', 'HTTP_COOKIE': 'wcs-6346ef="79e1dd17fd557126"', 'SERVER_NAME': 'koshie.test.au-quotidien.com', 'REMOTE_ADDR': '109.190.108.22', 'SERVER_PORT': '443', 'SERVER_ADDR': '81.93.255.234', 'DOCUMENT_ROOT': '/usr/share/wcs/web/', 'SERVER_ADMIN': 'webmaster@au-quotidien.com', 'SCRIPT_URI': 'https://koshie.test.au-quotidien.com/admin/forms/4/workflow-options', 'REMOTE_USER': '2', 'HTTP_HOST': 'koshie.test.au-quotidien.com', 'SCRIPT_URL': '/admin/forms/4/workflow-options', 'HTTPS': 'on'
227
 , 'HTTP_CACHE_CONTROL': 'no-cache', 'REQUEST_URI': '/admin/forms/4/workflow-options', 'HTTP_ACCEPT': 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1', 'REMOTE_PORT': '41386', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.9,en;q=0.8', 'SCGI': '1', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate'}
228
     input = <open file '<socket>', mode 'r' at 0x2bf9f60>
229

    
230
  File "/usr/lib/pymodules/python2.6/wcs/qommon/scgi_server.py", line 39, in handle_connection
231
    37     def handle_connection(self, conn):
232
    38         self.number_of_connection_handled = self.number_of_connection_handled + 1
233
>   39         quixote.server.scgi_server.QuixoteHandler.handle_connection(self, conn)
234
    40         # input, output and conn are closed, long running jobs could be done
235
    41         # here.
236

    
237
  locals: 
238
     self = <qommon.scgi_server.QommonHandler instance at 0x184c998>
239
     conn = <socket object, fd=6, family=2, type=1, protocol=0>
240

    
241
  File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 71, in serve
242
    69             conn.setblocking(1)
243
    70             os.close(fd)
244
>   71             self.handle_connection(conn)
245
    72 
246
    73 
247

    
248
  locals: 
249
     self = <qommon.scgi_server.QommonHandler instance at 0x184c998>
250
     fd = 5
251
     conn = <socket object, fd=6, family=2, type=1, protocol=0>
252

    
253
  File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 194, in spawn_child
254
   192                              # the connection in the child
255
   193             os.close(child_fd)
256
>  194             self.handler_class(parent_fd).serve()
257
   195             sys.exit(0)
258
   196         else:
259

    
260
  locals: 
261
     self = <qommon.scgi_server.SCGIServer instance at 0x12c6ab8>
262
     pid = 0
263
     flags = 2
264
     child_fd = 4
265
     parent_fd = 3
266
     conn = None
267

    
268
  File "/usr/lib/pymodules/python2.6/scgi/scgi_server.py", line 172, in __init__
269
   170         self.max_children = max_children
270
   171         self.children = {} # { pid : fd }
271
>  172         self.spawn_child()
272
   173         self.restart = 0
273
   174 
274

    
275
  locals: 
276
     max_children = 5
277
     host = 'localhost'
278
     handler_class = <function create_handler at 0x161a488>
279
     port = 3001
280
     self = <qommon.scgi_server.SCGIServer instance at 0x12c6ab8>
281

    
282
  File "/usr/lib/pymodules/python2.6/wcs/qommon/scgi_server.py", line 77, in run
283
    75 
284
    76     s = SCGIServer(create_handler, host=host, port=port,
285
>   77                                max_children=max_children)
286
    78     s.serve()
287
    79 
288

    
289
  locals: 
290
     create_handler = <function create_handler at 0x161a488>
291
     handler_connection_limit = -1
292
     max_children = 5
293
     create_publisher = <bound method classobj.create_publisher of <class publisher.WcsPublisher at 0x1bb5f50>>
294
     script_name = None
295
     host = 'localhost'
296
     spawn_cron = True
297
     port = 3001
298

    
299
  File "/usr/lib/pymodules/python2.6/wcs/ctl/start.py", line 67, in execute
300
    65 
301
    66         try:
302
>   67             run_function(publisher.WcsPublisher.create_publisher, **run_kwargs)
303
    68         except socket.error, e:
304
    69             if e[0] == 98:
305

    
306
  locals: 
307
     publisher = <module 'publisher' from '/usr/lib/pymodules/python2.6/wcs/publisher.py'>
308
     self = <wcs.ctl.start.CmdStart instance at 0x1849098>
309
     args = []
310
     sub_options = <Values at 0x184c9e0: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'data_dir': None, 'port': 3001}>
311
     run_function = <function run at 0x19fdf50>
312
     base_options = <Values at 0x184a7e8: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}>
313
     run_kwargs = {'port': 3001, 'spawn_cron': True}
314

    
315
  File "/usr/lib/pymodules/python2.6/wcs/qommon/ctl.py", line 65, in run
316
    63         if sub_options.data_dir:
317
    64             self.config.set("main", "data_dir", sub_options.data_dir)
318
>   65         return self.execute(base_options, sub_options, args)
319
    66 
320
    67     def parse_args(self, args):
321

    
322
  locals: 
323
     sub_options = <Values at 0x184c9e0: {'http': False, 'silent': False, 'app_dir': None, 'extra': ['/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/'], 'max_children': None, 'handler_connection_limit': None, 'script_name': None, 'data_dir': None, 'port': 3001}>
324
     args = []
325
     base_options = <Values at 0x184a7e8: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}>
326
     self = <wcs.ctl.start.CmdStart instance at 0x1849098>
327

    
328
  File "/usr/lib/pymodules/python2.6/wcs/qommon/ctl.py", line 140, in run
329
   138         command_class = qommon._commands[command]
330
   139         cmd = command_class()
331
>  140         return cmd.run(args, options)
332
   141 
333

    
334
  locals: 
335
     cmd = <wcs.ctl.start.CmdStart instance at 0x1849098>
336
     args = ['--extra', '/usr/lib/pymodules/python2.6/extra-wcs-au-quotidien/']
337
     self = <wcs.qommon.ctl.Ctl instance at 0x161bd40>
338
     command_class = <class wcs.ctl.start.CmdStart at 0x19b6c50>
339
     command = 'start'
340
     cmd_prefix = 'wcs.ctl'
341
     options = <Values at 0x184a7e8: {'configfile': '/etc/wcs/wcs-au-quotidien.cfg'}>
342

    
343
  File "/usr/sbin/wcsctl", line 8, in <module>
344
     6 
345
     7 ctl = wcs.qommon.ctl.Ctl(cmd_prefixes=['wcs.ctl'])
346
>    8 ctl.run(sys.argv[1:])
347
     9 
348

    
349
  locals: 
350
     wcs = <module 'wcs' from '/usr/lib/pymodules/python2.6/wcs/__init__.pyc'>
351
     __builtins__ = <module '__builtin__' (built-in)>
352
     __file__ = '/usr/sbin/wcsctl'
353
     __package__ = None
354
     sys = <module 'sys' (built-in)>
355
     ctl = <wcs.qommon.ctl.Ctl instance at 0x161bd40>
356
     __name__ = '__main__'
357
     __doc__ = None
358

    
359

    
360
Form:
361

    
362
Cookies:
363
wcs-6346ef      '79e1dd17fd557126'
364

    
365
Environment:
366
CONTENT_LENGTH  '0'
367
DOCUMENT_ROOT   '/usr/share/wcs/web/'
368
HTTPS           'on'
369
HTTP_ACCEPT     'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'
370
HTTP_ACCEPT_ENCODING 'gzip, deflate'
371
HTTP_ACCEPT_LANGUAGE 'fr-FR,fr;q=0.9,en;q=0.8'
372
HTTP_CACHE_CONTROL 'no-cache'
373
HTTP_CONNECTION 'Keep-Alive'
374
HTTP_COOKIE     'wcs-6346ef="79e1dd17fd557126"'
375
HTTP_HOST       'koshie.test.au-quotidien.com'
376
HTTP_REFERER    'https://koshie.test.au-quotidien.com/admin/forms/4/'
377
HTTP_USER_AGENT 'Opera/9.80 (X11; Linux x86_64; Edition Next) Presto/2.12.388 Version/12.14'
378
HTTP_X_AU_QUOTIDIEN_LOCKED 'False'
379
PATH_INFO       '/admin/forms/4/workflow-options'
380
QUERY_STRING    ''
381
REMOTE_ADDR     '109.190.108.22'
382
REMOTE_PORT     '41386'
383
REMOTE_USER     '2'
384
REQUEST_METHOD  'GET'
385
REQUEST_URI     '/admin/forms/4/workflow-options'
386
SCGI            '1'
387
SCRIPT_NAME     ''
388
SCRIPT_URI      'https://koshie.test.au-quotidien.com/admin/forms/4/workflow-options'
389
SCRIPT_URL      '/admin/forms/4/workflow-options'
390
SERVER_ADDR     '81.93.255.234'
391
SERVER_ADMIN    'webmaster@au-quotidien.com'
392
SERVER_NAME     'koshie.test.au-quotidien.com'
393
SERVER_PORT     '443'
394
SERVER_PROTOCOL 'HTTP/1.1'
395
SERVER_SOFTWARE 'Apache/2.2.16 (Debian)'
396
SSL_TLS_SNI     'koshie.test.au-quotidien.com'
397