/usr/lib/python2.7/dist-packages/stetl/outputs/wfsoutput.py is in python-stetl 1.0.9+ds-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# POST data via WFS Transactional protocol (WFS-T).
#
# Author: Just van den Broecke
#
from stetl.output import Output
from stetl.util import Util
from stetl.packet import FORMAT
import httplib
log = Util.get_log('wfsoutput')
class WFSTOutput(Output):
"""
Insert features via WFS-T (WFS Transaction) OGC protocol from an etree doc.
consumes=FORMAT.etree_doc
"""
wfst_req = '''<?xml version="1.0" encoding="UTF-8"?>
<wfs:Transaction version="1.1.0" service="WFS"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Insert handle="insert" idgen="%s">
%s
</wfs:Insert>
</wfs:Transaction>
'''
headers = {"Content−type": 'Content-type: text/xml', "Accept": "text/xml"}
def __init__(self, configdict, section):
Output.__init__(self, configdict, section, consumes=FORMAT.etree_doc)
self.wfs_host = self.cfg.get('host')
self.wfs_port = self.cfg.get('port', '80')
self.wfs_path = self.cfg.get('path')
self.idgen = self.cfg.get('idgen', 'GenerateNew')
def write(self, packet):
if packet.data is None:
return packet
conn = httplib.HTTPConnection(self.wfs_host, self.wfs_port)
conn.request("POST", self.wfs_path,
WFSTOutput.wfst_req % (self.idgen, packet.to_string()), WFSTOutput.headers)
response = conn.getresponse()
log.info('status=%s msg=%s' % (response.status, response.msg))
log.info('response=%s' % response.read(1024))
conn.close()
return packet
|