Commit Graph

13 Commits

Author SHA1 Message Date
Florian Pelgrim 891f5da3b5 Refactor UserDB config files (#874)
The data_path has changed to etc/. I'm not really happy with this but
I didn't had a better idea since we allow configs to be in ., etc/ and
/etc. Maybe we wanna changes this behaviour when we have a stable docker
release.

If the userdb.txt is not found Cowrie will load a default list.
The parser is now also a bit less error prone when parsing this file.
2018-09-07 18:45:13 +04:00
Michel Oosterhof 1ad42e09be Merge branch 'master' of http://www.github.com/micheloosterhof/cowrie 2018-09-07 13:43:18 +04:00
Florian Pelgrim 42416a4fb6 Fix permissions inside Docker image (#873)
Some developers have different file permissions in their source
directory. This could lead to unusable Docker images.
We enforce now the correct file permissions during our Docker build.
2018-09-06 19:36:08 +04:00
Michel Oosterhof 046bdb9c21 change 775 to a+rX 2018-09-06 17:04:24 +04:00
Florian Pelgrim cd83929ff2 Fix python path (#872) 2018-09-06 16:52:55 +04:00
Florian Pelgrim cf0c3affe9 Docker devel image (#871)
* Docker devel image

TL;DR Providing an docker image for local development.

I wanted to have a container which has all the needed tools installed
while developming (eg flake8, pytest, pydev, etc).

The intermediate container `devel` can now be used by PyCharm as a
Remote Interpreter and for debugging. No need to setup any local test
environments because we can now use a pre-release image.
Build the container with `docker build --target devel -t cowrie:devel
.` from within the project root directory.

While building the container I encountered a bug with the
`python:2-alpine3.8` image and (at least, could be other OS also beeing
affected) the macOS kernel trying to use `socket.SO_REUSEPORT`.
After some testing I found out that the problem is just this image. So I
could have just gone and downgraded to `python:2-alpine3.7` or switched over to
`alpine:latest`. But none of them really convinced me after some
research so I decided to switch the Docker image to
`debian:stable-slim`. The resulting image is now slightly bigger then
our previous image but should give a better experience while
debugging stuff. Bonus point is that we have a functional installation
description for Debian based systems.

* New path for twisteds dropin.cache
2018-09-06 16:35:37 +04:00
Florian Pelgrim a8c936d32a Docker output (#869)
* Full Docker support for output plugins

cowrie makes more fun if there are also all the output plugins available
inside the docker image. And now they are!

* Fixing wrong requirements: snappy vs python-snappy

snappy: “SnapPy is a package for studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures. It is based on the SnapPea kernel written by Jeff Weeks.”

python-snappy: “Python bindings for the snappy compression library from Google.”

We want python-snappy. ;)

* MAINTAINER argument deprecated in Docker

The MAINTAINER keyword is deprecated in Docker and is replaced with the
new syntax.
Also it is now attached to the right container and not to one we
actually throw away.
2018-09-02 09:57:21 +04:00
Florian Pelgrim 1418d660a0 Fixing tty log path (#861)
Log paths had still some different paths inside the Dockerfile and the
cowrie configuration. This is now fixed and the Docker image fully
functional.
2018-08-26 22:07:40 +04:00
Florian Pelgrim be3a7235a5 Small config changes (#845)
* Adding /etc/cowrie/cowrie.cfg to possible configurations

We want also to look for /etc/cowrie/cowrie.cfg as a possible
configuration.

* Write ssh host keys into /var/lib/cowrie

Dynamical data should be written into /var/lib/cowrie.
I know that OpenSSH is doing this but we are not OpenSSH and we should
have only stuff written below /var.
So /var/log/cowrie and /var/lib/cowrie.

* Moving log and dl below var/, cleanup old folders

This helps keeping the writes of the daemon in one place and makes it
easier later when building a cowrie package.

Old paths have been removed from the repository to keep it clean.

* Fixing wrong log path

Path should be var/log/cowrie not var/log

* Fixing json output

The json output was not configured to use the default log path. This has
been fixed now.

* Change order of config reads

According to @micheloosterhof there is an order of precedence here.
2018-08-25 03:02:56 +04:00
Florian Pelgrim 6c7417393a Flake8 fixes (#857)
* Adding flake8-import-order to linters

We need some kind of linter to enforce the code style.
Doing this by hand is error prone and no one will really watch for it.

I decieded to use the default style since it's from my point of view the
best to read and more strictes version.

* Enforcing imports order on bin/

* Enforcing imports order on src/twisted/

* Enforcing imports order on setup.py

* Enforcing imports order on src/cowrie/commands

* Enforcing imports order on src/cowrie/core

* Enforcing imports order on src/cowrie/dblog

* Enforcing imports order on src/cowrie/insults

* Enforcing imports order on src/cowrie/output

* Enforcing imports order on src/cowrie/proxy

* Enforcing imports order on src/cowrie/python

* Enforcing imports order on src/cowrie/shell

* Enforcing imports order on src/cowrie/ssh

* Enforcing imports order on src/cowrie/telnet

* Enforcing imports order on src/cowrie/test

* Reformat file, improved readability

* flake8 E5,E701 src/cowrie/commands/base.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/base.py
src/cowrie/commands/base.py:47:121: E501 line too long (180 > 120 characters)
src/cowrie/commands/base.py:48:121: E501 line too long (182 > 120 characters)
src/cowrie/commands/base.py:49:121: E501 line too long (149 > 120 characters)
src/cowrie/commands/base.py:50:121: E501 line too long (175 > 120 characters)
src/cowrie/commands/base.py:52:121: E501 line too long (127 > 120 characters)
src/cowrie/commands/base.py:54:121: E501 line too long (185 > 120 characters)
src/cowrie/commands/base.py:56:121: E501 line too long (130 > 120 characters)
src/cowrie/commands/base.py:57:121: E501 line too long (122 > 120 characters)
src/cowrie/commands/base.py:59:121: E501 line too long (188 > 120 characters)
src/cowrie/commands/base.py:60:121: E501 line too long (188 > 120 characters)
src/cowrie/commands/base.py:61:121: E501 line too long (145 > 120 characters)
src/cowrie/commands/base.py:63:121: E501 line too long (142 > 120 characters)
src/cowrie/commands/base.py:64:121: E501 line too long (152 > 120 characters)
src/cowrie/commands/base.py:66:121: E501 line too long (128 > 120 characters)
src/cowrie/commands/base.py:67:121: E501 line too long (123 > 120 characters)
src/cowrie/commands/base.py:72:121: E501 line too long (130 > 120 characters)
src/cowrie/commands/base.py:74:121: E501 line too long (125 > 120 characters)
src/cowrie/commands/base.py:75:121: E501 line too long (140 > 120 characters)
src/cowrie/commands/base.py:76:121: E501 line too long (133 > 120 characters)
src/cowrie/commands/base.py:78:121: E501 line too long (124 > 120 characters)
src/cowrie/commands/base.py:79:121: E501 line too long (122 > 120 characters)
src/cowrie/commands/base.py:80:121: E501 line too long (129 > 120 characters)
src/cowrie/commands/base.py:81:121: E501 line too long (150 > 120 characters)
src/cowrie/commands/base.py:83:121: E501 line too long (129 > 120 characters)
src/cowrie/commands/base.py:544:68: E502 the backslash is redundant between brackets
src/cowrie/commands/base.py:553:68: E502 the backslash is redundant between brackets
src/cowrie/commands/base.py:582:66: E502 the backslash is redundant between brackets
src/cowrie/commands/base.py:696:78: E502 the backslash is redundant between brackets
24    E501 line too long (180 > 120 characters)
4     E502 the backslash is redundant between brackets
28

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/commands/curl.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/curl.py
src/cowrie/commands/curl.py:413:106: E502 the backslash is redundant between brackets
1     E502 the backslash is redundant between brackets
1

* Reformat code, improved readability

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/commands/fs.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/fs.py
src/cowrie/commands/fs.py:438:74: E502 the backslash is redundant between brackets
src/cowrie/commands/fs.py:465:67: E502 the backslash is redundant between brackets
2     E502 the backslash is redundant between brackets
2

* flake8 E5, E701 src/cowrie/commands/gcc.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/gcc.py
src/cowrie/commands/gcc.py:167:121: E501 line too long (635 > 120 characters)
1     E501 line too long (635 > 120 characters)
1

* flake8 E5, E701 src/cowrie/commands/ifconfig.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/ifconfig.py
src/cowrie/commands/ifconfig.py:11:121: E501 line too long (145 > 120 characters)
src/cowrie/commands/ifconfig.py:13:121: E501 line too long (138 > 120 characters)
2     E501 line too long (145 > 120 characters)
2

* Reformat code, improved readability

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/commands/netstat.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/netstat.py
src/cowrie/commands/netstat.py:21:121: E501 line too long (126 > 120 characters)
1     E501 line too long (126 > 120 characters)
1

* flake8 E5, E701 src/cowrie/commands/ping.py

flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/ping.py
src/cowrie/commands/ping.py:81:74: E502 the backslash is redundant between brackets
1     E502 the backslash is redundant between brackets
1

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/commands/ssh.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/ssh.py
src/cowrie/commands/ssh.py:79:87: E502 the backslash is redundant between brackets
src/cowrie/commands/ssh.py:99:81: E502 the backslash is redundant between brackets
2     E502 the backslash is redundant between brackets
2

* flake8 E5, E701 src/cowrie/commands/sudo.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/sudo.py
src/cowrie/commands/sudo.py:14:121: E501 line too long (133 > 120 characters)
src/cowrie/commands/sudo.py:15:121: E501 line too long (166 > 120 characters)
src/cowrie/commands/sudo.py:16:121: E501 line too long (122 > 120 characters)
src/cowrie/commands/sudo.py:24:121: E501 line too long (133 > 120 characters)
src/cowrie/commands/sudo.py:25:121: E501 line too long (166 > 120 characters)
src/cowrie/commands/sudo.py:26:121: E501 line too long (122 > 120 characters)
6     E501 line too long (133 > 120 characters)
6

* Reformat code, improved readability

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/commands/wget.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/wget.py
src/cowrie/commands/wget.py:50:19: E701 multiple statements on one line (colon)
src/cowrie/commands/wget.py:264:69: E502 the backslash is redundant between brackets
1     E502 the backslash is redundant between brackets
1     E701 multiple statements on one line (colon)
2

* flake8 E5, E701 src/cowrie/commands/yum.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/commands/yum.py
src/cowrie/commands/yum.py:8:1: F401 'datetime.datetime' imported but unused
src/cowrie/commands/yum.py:223:121: E501 line too long (193 > 120 characters)
src/cowrie/commands/yum.py:228:121: E501 line too long (193 > 120 characters)
src/cowrie/commands/yum.py:237:121: E501 line too long (193 > 120 characters)
3     E501 line too long (193 > 120 characters)
1     F401 'datetime.datetime' imported but unused
4

* flake8 E5, E701 src/cowrie/core/cef.py

flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/core
src/cowrie/core/cef.py:53:121: E501 line too long (122 > 120 characters)
1     E501 line too long (122 > 120 characters)
1

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/output/hpfeeds.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/output/hpfeeds.py
src/cowrie/output/hpfeeds.py:61:26: E701 multiple statements on one line (colon)
src/cowrie/output/hpfeeds.py:80:29: E701 multiple statements on one line (colon)
src/cowrie/output/hpfeeds.py:147:22: E701 multiple statements on one line (colon)
src/cowrie/output/hpfeeds.py:166:22: E701 multiple statements on one line (colon)
src/cowrie/output/hpfeeds.py:173:26: E701 multiple statements on one line (colon)
src/cowrie/output/hpfeeds.py:180:30: E701 multiple statements on one line (colon)
src/cowrie/output/hpfeeds.py:186:34: E701 multiple statements on one line (colon)
7     E701 multiple statements on one line (colon)
7

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/output/sqlite.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/output/sqlite.py
src/cowrie/output/sqlite.py:73:62: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:74:60: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:82:62: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:83:60: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:91:41: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:92:67: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py💯41: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:101:67: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:109:62: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:116:45: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:117:75: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:125:45: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:126:75: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:134:41: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:135:65: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:143:67: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:149:69: E502 the backslash is redundant between brackets
src/cowrie/output/sqlite.py:165:57: E502 the backslash is redundant between brackets
18    E502 the backslash is redundant between brackets
18

* flake8 E5, E701 src/cowrie/output/mysql.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/output/mysql.py
src/cowrie/output/mysql.py:108:77: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:109:71: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:115:75: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:116:73: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:122:75: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:127:54: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:128:80: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:133:54: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:134:80: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:139:58: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:140:88: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:147:58: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:148:88: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:154:58: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:155:88: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:161:54: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:162:78: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:169:68: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:175:70: E502 the backslash is redundant between brackets
src/cowrie/output/mysql.py:191:73: E502 the backslash is redundant between brackets
20    E502 the backslash is redundant between brackets
20

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* flake8 E5, E701 src/cowrie/shell/shlex.py

Before
flake8 --count --select=E1,E2,E3,E5,E701,E901,E999,F401,F821,F822,F823 --max-line-length=120 --statistics src/cowrie/shell
src/cowrie/shell/protocol.py:37:121: E501 line too long (144 > 120 characters)
src/cowrie/shell/shlex.py:111:51: E502 the backslash is redundant between brackets
1     E501 line too long (144 > 120 characters)
1     E502 the backslash is redundant between brackets
2

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Reformat code, improved readability

* Update linters to check for E5 and E701

* Update travis file to the current state

- Removed every checker we do not use. That means twistedchecker
and pytest.
- Updated the flake8 command to match our current clean state
- Removed unused old code

* Fix format typo of cowrie.direct-tcpip.data log event

* Update travis to match the current state

Travis checks now every fixed flake8 error.
Also I removed unused code from it to keep it clean.

* Removed vim file markers

We don't want to have editor specific code in our source files.
Fix your IDE but don't do it in the code.

* src/cowrie/test/test_echo.py removed trailing whitespace

* src/cowrie/commands/yum.py removed trailing whitespace

* src/cowrie/commands/netstat.py removed trailing whitespace

* Checking for flake8 W291, W293

* flake8 F811 ./src/cowrie/commands/scp.py

I made sure to delete only the oldest version of the code.

Before
flake8 --count --select=F811 --application-import-names cowrie --max-line-length=120 --statistics .
./src/cowrie/commands/scp.py:209:5: F811 redefinition of unused 'handle_CTRL_D' from line 192
1     F811 redefinition of unused 'handle_CTRL_D' from line 192
1

* Update flake8 checks

* Fix flake8 E722, F841 src/cowrie/commands/wget.py

* Fix flake8 E722 src/cowrie/commands/ping.py

* Fix flake8 E722,F841 src/cowrie/commands/nc.py

* Fix flake8 E722, E741, F841 src/cowrie/commands/base.py

* Flake8 E731 src/cowrie/commands/base.py

I removed all lambda functions and replaced them with proper code.
That means straight function calls or not calling anything because it's
not needed.

* Fix flake8 E722, F841 src/cowrie/commands/scp.py

* Fix flake8 E722, F841 src/cowrie/commands/ssh.py

* Fix flake8 E712 src/cowrie/commands/iptables.py

* Fix flake8 E741 src/cowrie/commands/adduser.py

* Fix flake8 F841 src/cowrie/commands/tftp.py

* Fix flake8 E722 in all files

* Fix flake8 E711 bin/createdynamicprocess.py

* Fix flake8 E712, E713 src/cowrie/core/dblog.py

* Fix flake8 E712, E713 src/cowrie/shell/avatar.py

* Fix flake8 E712 src/cowrie/shell/fs.py

* Fix flake8 E712, E741 src/cowrie/commands/ls.py

* Fix flake8 E712, E713 src/cowrie/dblog/xmpp.py

* Fix flake8 E731, F841 src/cowrie/commands/gcc.py

* Fix flake8 F841 src/cowrie/insults/insults.py

* Fix flake8 F841 src/cowrie/telnet/session.py

* Fix flake8 F841 src/cowrie/commands/fs.py

* Fix flake8 E741,F841 src/cowrie/commands/last.py

* Fix flake8 E741 src/cowrie/commands/netstat.py

* Fix flake8 F841 src/cowrie/commands/free.py

* Fix flake8 F841 src/cowrie/commands/sudo.py

* Fix flake8 F841 src/cowrie/commands/curl.py

* Fix flake8 F841 src/cowrie/commands/base64.py

* Fix flake8 F841 src/cowrie/commands/service.py

* Fix flake8 F841 src/cowrie/ssh/factory.py

* Fix flake8 F841 src/cowrie/ssh/transport.py

* Fix flake8 F841 src/cowrie/output/csirtg.py

* Fix flake8 F841 src/cowrie/output/kafka.py

* Fix flake8 F841 src/cowrie/output/mongodb.py

* Fix flake8 F741 src/cowrie/output/hpfeeds.py

* Fix flake8 F741 src/cowrie/output/hpfeeds.py

* Fix flake8 F841 src/proxy/session.py

* Fix flake8 F841 src/cowrie/core/utils.py

* Update travis and Dockerfile for flake8 checks
2018-08-18 15:52:45 +04:00
Florian Pelgrim 8489080ead Optimize imports, removed pseudo docstrings (#850)
Imports are now pep8 compatible.
Unfortunally there is no check in flake8. So this is a generall work
which has to be done manually.

Imports are now splitted into built-ins, third-party and own code.
Within this groups they are ordered alphabetical and grouped by `import`
and `from` import syntax.

Empty or not usefull docstrings has been removed from the code.
We don't need nonsense documentation eating up space.
2018-08-12 02:31:45 +04:00
Florian Pelgrim d857be6232 Fixing Flake8 E3 (#846)
* flake8 E3 src/twisted/plugins/cowrie_plugin.py

flake8 --count --select=E1,E2,E3 --statistics src/twisted/plugins/cowrie_plugin.py
src/twisted/plugins/cowrie_plugin.py:62:1: E303 too many blank lines (3)
src/twisted/plugins/cowrie_plugin.py:67:1: E303 too many blank lines (3)
src/twisted/plugins/cowrie_plugin.py:80:1: E303 too many blank lines (3)
src/twisted/plugins/cowrie_plugin.py:218:1: E305 expected 2 blank lines after class or function definition, found 1
3     E303 too many blank lines (3)
1     E305 expected 2 blank lines after class or function definition, found 1
4

* flake8 E3 src/cowrie/insults/insults.py

flake8 --count --select=E1,E2,E3 --statistics src/cowrie/insults/insults.py
src/cowrie/insults/insults.py:56:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:64:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:89:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:99:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:121:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:129:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:136:5: E303 too many blank lines (2)
src/cowrie/insults/insults.py:225:1: E303 too many blank lines (3)
8     E303 too many blank lines (2)
8

* flake8 E3 src/cowrie/telnet/session.py

flake8 --count --select=E1,E2,E3 --statistics src/cowrie/telnet/session.py
src/cowrie/telnet/session.py:67:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:86:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:95:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:102:1: E303 too many blank lines (3)
src/cowrie/telnet/session.py:104:1: E302 expected 2 blank lines, found 3
src/cowrie/telnet/session.py:119:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:125:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:135:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:142:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:147:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:156:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:163:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:170:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:174:5: E303 too many blank lines (2)
src/cowrie/telnet/session.py:178:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 3
14    E303 too many blank lines (2)
15

* flake8 E3 src/cowrie/telnet/transport.py

flake8 --count --select=E1,E2,E3 --statistics src/cowrie/telnet/transport.py
src/cowrie/telnet/transport.py:44:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:63:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:71:1: E303 too many blank lines (3)
src/cowrie/telnet/transport.py:95:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:102:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:115:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:120:9: E306 expected 1 blank line before a nested definition, found 0
src/cowrie/telnet/transport.py:141:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:148:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:171:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:181:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:192:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:204:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:219:1: E303 too many blank lines (3)
src/cowrie/telnet/transport.py:247:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:259:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:271:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:277:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:283:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:289:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:295:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:317:5: E303 too many blank lines (2)
21    E303 too many blank lines (2)
1     E306 expected 1 blank line before a nested definition, found 0
22

* flake8 E3 src/cowrie/telnet/transport.py

flake8 --count --select=E1,E2,E3 --statistics src/cowrie/telnet/transport.py
src/cowrie/telnet/transport.py:44:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:63:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:71:1: E303 too many blank lines (3)
src/cowrie/telnet/transport.py:95:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:102:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:115:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:120:9: E306 expected 1 blank line before a nested definition, found 0
src/cowrie/telnet/transport.py:141:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:148:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:171:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:181:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:192:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:204:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:219:1: E303 too many blank lines (3)
src/cowrie/telnet/transport.py:247:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:259:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:271:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:277:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:283:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:289:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:295:5: E303 too many blank lines (2)
src/cowrie/telnet/transport.py:317:5: E303 too many blank lines (2)
21    E303 too many blank lines (2)
1     E306 expected 1 blank line before a nested definition, found 0
22

* flake8 E3 src/cowrie/dblog/xmpp.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/dblog/xmpp.py
./src/cowrie/dblog/xmpp.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/dblog/xmpp.py:55:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/dblog/xmpp.py:61:1: E302 expected 2 blank lines, found 1
2     E302 expected 2 blank lines, found 1
1     E305 expected 2 blank lines after class or function definition, found 1
3

* flake8 E3 ./src/cowrie/commands/adduser.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/adduser.py
./src/cowrie/commands/adduser.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/adduser.py:65:5: E303 too many blank lines (2)
./src/cowrie/commands/adduser.py:85:5: E303 too many blank lines (2)
./src/cowrie/commands/adduser.py:92:5: E303 too many blank lines (2)
./src/cowrie/commands/adduser.py:108:1: E305 expected 2 blank lines after class or function definition, found 1
1     E302 expected 2 blank lines, found 1
3     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
5

* flake8 E3 ./src/cowrie/commands/apt.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/apt.py
./src/cowrie/commands/apt.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/apt.py:24:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/apt.py:176:1: E305 expected 2 blank lines after class or function definition, found 1
2     E302 expected 2 blank lines, found 1
1     E305 expected 2 blank lines after class or function definition, found 1
3

* flake8 E3 ./src/cowrie/commands/base.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/base.py
./src/cowrie/commands/base.py:31:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:90:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:94:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:108:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:113:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:125:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:130:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:180:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:213:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:224:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:229:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:234:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:242:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:249:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:263:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:268:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:499:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:504:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:513:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:518:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:530:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:537:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:551:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:561:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:566:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:615:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:622:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:631:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:645:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:652:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:657:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:676:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:680:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:689:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:694:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:703:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:713:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:719:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:724:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:746:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:766:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:783:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:788:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:852:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:861:5: E303 too many blank lines (2)
./src/cowrie/commands/base.py:866:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:871:1: E303 too many blank lines (3)
./src/cowrie/commands/base.py:887:1: E305 expected 2 blank lines after class or function definition, found 1
./src/cowrie/commands/base.py:892:1: E303 too many blank lines (3)
31    E303 too many blank lines (3)
18    E305 expected 2 blank lines after class or function definition, found 1
49

* flake8 E3 ./src/cowrie/commands/busybox.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/busybox.py
./src/cowrie/commands/busybox.py:53:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/busybox.py:66:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/commands/cat.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/cat.py
./src/cowrie/commands/cat.py:21:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/cat.py:68:5: E303 too many blank lines (2)
./src/cowrie/commands/cat.py:82:5: E303 too many blank lines (2)
./src/cowrie/commands/cat.py:94:5: E303 too many blank lines (2)
./src/cowrie/commands/cat.py:101:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
4     E303 too many blank lines (2)
5

* flake8 E3 ./src/cowrie/commands/curl.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/curl.py
./src/cowrie/commands/curl.py:104:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:265:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:298:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:305:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:343:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:356:1: E303 too many blank lines (3)
./src/cowrie/commands/curl.py:376:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:386:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:413:5: E303 too many blank lines (2)
./src/cowrie/commands/curl.py:441:5: E303 too many blank lines (2)
10    E303 too many blank lines (2)
10

* flake8 E3 ./src/cowrie/commands/dd.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/dd.py
./src/cowrie/commands/dd.py:17:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/dd.py:85:5: E303 too many blank lines (3)
./src/cowrie/commands/dd.py:93:5: E303 too many blank lines (2)
./src/cowrie/commands/dd.py💯5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
3     E303 too many blank lines (3)
4

* flake8 E3 ./src/cowrie/commands/du.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/du.py
./src/cowrie/commands/du.py:14:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/du.py:132:1: E305 expected 2 blank lines after class or function definition, found 1
1     E302 expected 2 blank lines, found 1
1     E305 expected 2 blank lines after class or function definition, found 1
2

* flake8 E3 ./src/cowrie/commands/ethtool.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/ethtool.py
./src/cowrie/commands/ethtool.py:11:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/ethtool.py:29:5: E303 too many blank lines (2)
./src/cowrie/commands/ethtool.py:37:5: E303 too many blank lines (2)
./src/cowrie/commands/ethtool.py:44:5: E303 too many blank lines (2)
./src/cowrie/commands/ethtool.py:77:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
4     E303 too many blank lines (2)
5

* flake8 E3 ./src/cowrie/commands/free.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/free.py
./src/cowrie/commands/free.py:31:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/free.py:56:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/commands/fs.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/fs.py
./src/cowrie/commands/fs.py:23:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/fs.py:36:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:46:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:53:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:85:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:92:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:115:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:128:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:156:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:163:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:185:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:193:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:221:5: E303 too many blank lines (2)
./src/cowrie/commands/fs.py:226:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
13    E303 too many blank lines (2)
14

* flake8 E3 ./src/cowrie/commands/gcc.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/gcc.py
./src/cowrie/commands/gcc.py:19:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/gcc.py:144:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/commands/iptables.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/iptables.py
./src/cowrie/commands/iptables.py:11:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/iptables.py:15:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/iptables.py:20:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/iptables.py:119:9: E303 too many blank lines (2)
3     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/commands/ls.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/ls.py
./src/cowrie/commands/ls.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/ls.py:29:5: E303 too many blank lines (2)
./src/cowrie/commands/ls.py:38:5: E303 too many blank lines (2)
./src/cowrie/commands/ls.py:73:5: E303 too many blank lines (2)
./src/cowrie/commands/ls.py:118:5: E303 too many blank lines (2)
./src/cowrie/commands/ls.py:206:1: E305 expected 2 blank lines after class or function definition, found 1
1     E302 expected 2 blank lines, found 1
4     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
6

* flake8 E3 ./src/cowrie/commands/nc.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/nc.py
./src/cowrie/commands/nc.py:18:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/nc.py:24:1: E303 too many blank lines (3)
./src/cowrie/commands/nc.py:30:1: E303 too many blank lines (3)
./src/cowrie/commands/nc.py:36:1: E303 too many blank lines (3)
./src/cowrie/commands/nc.py:57:5: E303 too many blank lines (2)
./src/cowrie/commands/nc.py💯5: E303 too many blank lines (2)
./src/cowrie/commands/nc.py:116:5: E303 too many blank lines (2)
./src/cowrie/commands/nc.py:122:5: E303 too many blank lines (2)
./src/cowrie/commands/nc.py:129:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
8     E303 too many blank lines (3)
9

* flake8 E3 ./src/cowrie/commands/netstat.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/netstat.py
./src/cowrie/commands/netstat.py:11:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/netstat.py:171:1: E305 expected 2 blank lines after class or function definition, found 1
1     E302 expected 2 blank lines, found 1
1     E305 expected 2 blank lines after class or function definition, found 1
2

* flake8 E3 ./src/cowrie/commands/nohup.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/nohup.py
./src/cowrie/commands/nohup.py:11:1: E302 expected 2 blank lines, found 1
1     E302 expected 2 blank lines, found 1
1

* flake8 E3 ./src/cowrie/commands/perl.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/perl.py
./src/cowrie/commands/perl.py:41:5: E303 too many blank lines (2)
./src/cowrie/commands/perl.py:79:5: E303 too many blank lines (2)
./src/cowrie/commands/perl.py:112:5: E303 too many blank lines (2)
./src/cowrie/commands/perl.py:121:5: E303 too many blank lines (2)
4     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/commands/ping.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/ping.py
./src/cowrie/commands/ping.py:18:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/ping.py:32:5: E303 too many blank lines (2)
./src/cowrie/commands/ping.py:85:5: E303 too many blank lines (2)
./src/cowrie/commands/ping.py:102:5: E303 too many blank lines (2)
./src/cowrie/commands/ping.py:110:5: E303 too many blank lines (2)
./src/cowrie/commands/ping.py:121:1: E305 expected 2 blank lines after class or function definition, found 1
1     E302 expected 2 blank lines, found 1
4     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
6

* flake8 E3 ./src/cowrie/commands/python.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/python.py
./src/cowrie/commands/python.py:18:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/python.py:26:5: E303 too many blank lines (2)
./src/cowrie/commands/python.py:77:5: E303 too many blank lines (2)
./src/cowrie/commands/python.py:122:5: E303 too many blank lines (2)
./src/cowrie/commands/python.py:131:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
4     E303 too many blank lines (2)
5

* flake8 E3 ./src/cowrie/commands/scp.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/scp.py
./src/cowrie/commands/scp.py:224:5: E303 too many blank lines (2)
./src/cowrie/commands/scp.py:241:9: E303 too many blank lines (2)
./src/cowrie/commands/scp.py:243:1: E305 expected 2 blank lines after class or function definition, found 1
2     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
3

* flake8 E3 ./src/cowrie/commands/service.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/service.py
./src/cowrie/commands/service.py:88:5: E303 too many blank lines (2)
./src/cowrie/commands/service.py:95:5: E303 too many blank lines (2)
2     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/commands/sleep.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/sleep.py
./src/cowrie/commands/sleep.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/sleep.py:27:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/commands/ssh.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/ssh.py
./src/cowrie/commands/ssh.py:22:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/ssh.py:36:5: E303 too many blank lines (2)
./src/cowrie/commands/ssh.py:87:5: E303 too many blank lines (2)
./src/cowrie/commands/ssh.py:97:5: E303 too many blank lines (2)
./src/cowrie/commands/ssh.py:103:5: E303 too many blank lines (2)
./src/cowrie/commands/ssh.py:123:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
5     E303 too many blank lines (2)
6

* flake8 E ./src/cowrie/commands/sudo.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/sudo.py
./src/cowrie/commands/sudo.py:57:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/sudo.py:69:5: E303 too many blank lines (2)
./src/cowrie/commands/sudo.py:77:5: E303 too many blank lines (2)
./src/cowrie/commands/sudo.py:89:5: E303 too many blank lines (2)
./src/cowrie/commands/sudo.py:135:1: E305 expected 2 blank lines after class or function definition, found 1
1     E302 expected 2 blank lines, found 1
3     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
5

* flake8 E3 ./src/cowrie/commands/tar.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/tar.py
./src/cowrie/commands/tar.py:31:5: E303 too many blank lines (2)
./src/cowrie/commands/tar.py:85:1: E305 expected 2 blank lines after class or function definition, found 1
1     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
2

* flake8 E3 ./src/cowrie/commands/tftp.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/tar.py
./src/cowrie/commands/tar.py:31:5: E303 too many blank lines (2)
./src/cowrie/commands/tar.py:85:1: E305 expected 2 blank lines after class or function definition, found 1
1     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
2

* flake8 E3 ./src/cowrie/commands/ulimit.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/ulimit.py
./src/cowrie/commands/ulimit.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/ulimit.py:44:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/commands/uname.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/uname.py
./src/cowrie/commands/uname.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/commands/uname.py:26:1: E303 too many blank lines (3)
./src/cowrie/commands/uname.py:36:1: E303 too many blank lines (3)
./src/cowrie/commands/uname.py:46:1: E303 too many blank lines (3)
./src/cowrie/commands/uname.py:56:1: E303 too many blank lines (3)
./src/cowrie/commands/uname.py:66:1: E303 too many blank lines (3)
./src/cowrie/commands/uname.py:92:1: E303 too many blank lines (3)
./src/cowrie/commands/uname.py:106:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
7     E303 too many blank lines (3)
8

* flake8 E3 ./src/cowrie/commands/wget.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/wget.py
./src/cowrie/commands/wget.py:247:1: E303 too many blank lines (4)
./src/cowrie/commands/wget.py:248:1: E302 expected 2 blank lines, found 4
./src/cowrie/commands/wget.py:274:5: E303 too many blank lines (2)
./src/cowrie/commands/wget.py:311:5: E303 too many blank lines (2)
./src/cowrie/commands/wget.py:344:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 4
4     E303 too many blank lines (4)
5

* flake8 E3 ./src/cowrie/commands/which.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/commands/which.py
./src/cowrie/commands/which.py:9:1: E302 expected 2 blank lines, found 1
1     E302 expected 2 blank lines, found 1
1

* flake8 E3 ./src/cowrie/core/artifact.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/artifact.py
./src/cowrie/core/artifact.py:57:5: E303 too many blank lines (2)
./src/cowrie/core/artifact.py:63:5: E303 too many blank lines (2)
./src/cowrie/core/artifact.py:69:5: E303 too many blank lines (2)
./src/cowrie/core/artifact.py:75:5: E303 too many blank lines (2)
4     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/core/auth.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/auth.py
./src/cowrie/core/auth.py:20:1: E302 expected 2 blank lines, found 1
./src/cowrie/core/auth.py:33:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:55:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:68:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:77:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:91:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:113:1: E303 too many blank lines (3)
./src/cowrie/core/auth.py:140:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:152:5: E303 too many blank lines (2)
./src/cowrie/core/auth.py:162:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
9     E303 too many blank lines (2)
10

* flake8 E3 ./src/cowrie/core/cef.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/cef.py
./src/cowrie/core/cef.py:50:1: E302 expected 2 blank lines, found 1
1     E302 expected 2 blank lines, found 1
1

* flake8 E3 ./src/cowrie/core/checkers.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/checkers.py
./src/cowrie/core/checkers.py:27:1: E302 expected 2 blank lines, found 1
./src/cowrie/core/checkers.py:50:1: E303 too many blank lines (3)
./src/cowrie/core/checkers.py:65:1: E303 too many blank lines (3)
./src/cowrie/core/checkers.py:88:5: E303 too many blank lines (2)
./src/cowrie/core/checkers.py:95:5: E303 too many blank lines (2)
./src/cowrie/core/checkers.py:104:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
5     E303 too many blank lines (3)
6

* flake8 E3 ./src/cowrie/core/credentials.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/credentials.py
./src/cowrie/core/credentials.py:40:1: E302 expected 2 blank lines, found 1
./src/cowrie/core/credentials.py:50:1: E303 too many blank lines (3)
./src/cowrie/core/credentials.py:66:1: E303 too many blank lines (3)
./src/cowrie/core/credentials.py:73:1: E303 too many blank lines (3)
./src/cowrie/core/credentials.py:86:1: E303 too many blank lines (3)
./src/cowrie/core/credentials.py:95:1: E303 too many blank lines (3)
1     E302 expected 2 blank lines, found 1
5     E303 too many blank lines (3)
6

* flake8 E3 ./src/cowrie/core/dblog.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/dblog.py
./src/cowrie/core/dblog.py:19:1: E302 expected 2 blank lines, found 1
1     E302 expected 2 blank lines, found 1
1

* flake8 E3 ./src/cowrie/core/output.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/output.py
./src/cowrie/core/output.py:108:5: E303 too many blank lines (2)
./src/cowrie/core/output.py:118:5: E303 too many blank lines (2)
./src/cowrie/core/output.py:126:5: E303 too many blank lines (2)
./src/cowrie/core/output.py:134:5: E303 too many blank lines (2)
./src/cowrie/core/output.py:142:5: E303 too many blank lines (2)
5     E303 too many blank lines (2)
5

* flake8 E3 ./src/cowrie/core/ttylog.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/ttylog.py
./src/cowrie/core/ttylog.py:33:1: E303 too many blank lines (3)
./src/cowrie/core/ttylog.py:50:1: E303 too many blank lines (3)
./src/cowrie/core/ttylog.py:63:1: E303 too many blank lines (3)
3     E303 too many blank lines (3)
3

* flake8 E3 ./src/cowrie/core/utils.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/core/utils.py
./src/cowrie/core/utils.py:50:1: E303 too many blank lines (3)
./src/cowrie/core/utils.py:70:1: E303 too many blank lines (3)
2     E303 too many blank lines (3)
2

* flake8 E3 ./src/cowrie/output/cuckoo.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/cuckoo.py
./src/cowrie/output/cuckoo.py:48:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/cuckoo.py:60:5: E303 too many blank lines (2)
./src/cowrie/output/cuckoo.py:67:5: E303 too many blank lines (2)
./src/cowrie/output/cuckoo.py:74:5: E303 too many blank lines (2)
./src/cowrie/output/cuckoo.py:98:5: E303 too many blank lines (2)
./src/cowrie/output/cuckoo.py:152:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
5     E303 too many blank lines (2)
6

* flake8 E3 ./src/cowrie/output/dshield.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/dshield.py
./src/cowrie/output/dshield.py:38:5: E303 too many blank lines (2)
./src/cowrie/output/dshield.py:42:5: E303 too many blank lines (2)
./src/cowrie/output/dshield.py:46:5: E303 too many blank lines (2)
./src/cowrie/output/dshield.py:64:5: E303 too many blank lines (2)
./src/cowrie/output/dshield.py:70:5: E303 too many blank lines (2)
./src/cowrie/output/dshield.py:118:9: E303 too many blank lines (2)
6     E303 too many blank lines (2)
6

* flake8 E3 ./src/cowrie/output/elasticsearch.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/elasticsearch.py
./src/cowrie/output/elasticsearch.py:13:1: E303 too many blank lines (3)
./src/cowrie/output/elasticsearch.py:28:5: E303 too many blank lines (2)
./src/cowrie/output/elasticsearch.py:34:5: E303 too many blank lines (2)
./src/cowrie/output/elasticsearch.py:40:5: E303 too many blank lines (2)
4     E303 too many blank lines (3)
4

* flake8 E3 ./src/cowrie/output/hpfeeds.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/hpfeeds.py
./src/cowrie/output/hpfeeds.py:68:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:69:1: E302 expected 2 blank lines, found 3
./src/cowrie/output/hpfeeds.py:75:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:80:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:85:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:91:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:97:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:102:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:106:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:110:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:114:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:131:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:145:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:157:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:165:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:170:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:182:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:223:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:233:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:242:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:250:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:264:1: E303 too many blank lines (3)
./src/cowrie/output/hpfeeds.py:274:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:286:5: E303 too many blank lines (2)
./src/cowrie/output/hpfeeds.py:292:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 3
24    E303 too many blank lines (3)
25

* flake8 E3 ./src/cowrie/output/hpfeeds3.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/hpfeeds3.py
./src/cowrie/output/hpfeeds3.py:62:5: E303 too many blank lines (2)
1     E303 too many blank lines (2)
1

* flake8 E3 ./src/cowrie/output/influx.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/influx.py
./src/cowrie/output/influx.py:13:1: E303 too many blank lines (3)
1     E303 too many blank lines (3)
1

* flake8 E3 ./src/cowrie/output/jsonlog.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/jsonlog.py
./src/cowrie/output/jsonlog.py:43:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/jsonlog.py:56:5: E303 too many blank lines (2)
./src/cowrie/output/jsonlog.py:62:5: E303 too many blank lines (2)
./src/cowrie/output/jsonlog.py:68:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
3     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/output/kafka.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/kafka.py
./src/cowrie/output/kafka.py:52:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/kafka.py:127:1: E303 too many blank lines (3)
./src/cowrie/output/kafka.py:143:5: E303 too many blank lines (2)
./src/cowrie/output/kafka.py:149:5: E303 too many blank lines (2)
./src/cowrie/output/kafka.py:155:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
4     E303 too many blank lines (3)
5

* flake8 E3 ./src/cowrie/output/localsyslog.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/localsyslog.py
./src/cowrie/output/localsyslog.py:52:5: E303 too many blank lines (2)
./src/cowrie/output/localsyslog.py:58:5: E303 too many blank lines (2)
./src/cowrie/output/localsyslog.py:64:5: E303 too many blank lines (2)
3     E303 too many blank lines (2)
3

* flake8 E3 ./src/cowrie/output/malshare.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/malshare.py
./src/cowrie/output/malshare.py:46:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/malshare.py:55:5: E303 too many blank lines (2)
./src/cowrie/output/malshare.py:62:5: E303 too many blank lines (2)
./src/cowrie/output/malshare.py:69:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
3     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/output/mongodb.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/mongodb.py
./src/cowrie/output/mongodb.py:58:5: E303 too many blank lines (2)
./src/cowrie/output/mongodb.py:64:5: E303 too many blank lines (2)
2     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/output/mysql.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/mysql.py
./src/cowrie/output/mysql.py:47:1: E303 too many blank lines (3)
./src/cowrie/output/mysql.py:62:5: E303 too many blank lines (2)
./src/cowrie/output/mysql.py:87:5: E303 too many blank lines (2)
./src/cowrie/output/mysql.py:94:5: E303 too many blank lines (2)
./src/cowrie/output/mysql.py:101:5: E303 too many blank lines (2)
./src/cowrie/output/mysql.py:111:5: E303 too many blank lines (2)
6     E303 too many blank lines (3)
6

* flake8 E3 ./src/cowrie/output/redis.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/redis.py
./src/cowrie/output/redis.py:16:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/redis.py:49:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/output/rethinkdblog.py

lake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/rethinkdblog.py
./src/cowrie/output/rethinkdblog.py:13:1: E303 too many blank lines (3)
1     E303 too many blank lines (3)
1

* flake8 E3 ./src/cowrie/output/s3.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/s3.py
./src/cowrie/output/s3.py:19:1: E303 too many blank lines (3)
1     E303 too many blank lines (3)
1

* flake8 E3 ./src/cowrie/output/slack.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/slack.py
./src/cowrie/output/slack.py:45:1: E303 too many blank lines (3)
./src/cowrie/output/slack.py:56:5: E303 too many blank lines (2)
./src/cowrie/output/slack.py:62:5: E303 too many blank lines (2)
./src/cowrie/output/slack.py:68:5: E303 too many blank lines (2)
4     E303 too many blank lines (3)
4

* flake8 E3 ./src/cowrie/output/socketlog.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/socketlog.py
./src/cowrie/output/socketlog.py:13:1: E303 too many blank lines (3)
1     E303 too many blank lines (3)
1

* flake8 E3 ./src/cowrie/output/splunk.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/splunk.py
./src/cowrie/output/splunk.py:57:5: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:64:5: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:70:5: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:93:5: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:109:9: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:117:9: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:128:9: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:132:9: E303 too many blank lines (2)
./src/cowrie/output/splunk.py:142:1: E303 too many blank lines (3)
9     E303 too many blank lines (2)
9

* flake8 E3 ./src/cowrie/output/splunklegacy.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/splunklegacy.py
./src/cowrie/output/splunklegacy.py:39:5: E303 too many blank lines (2)
./src/cowrie/output/splunklegacy.py:50:5: E303 too many blank lines (2)
./src/cowrie/output/splunklegacy.py:56:5: E303 too many blank lines (2)
3     E303 too many blank lines (2)
3

* flake8 E3 ./src/cowrie/output/sqlite.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/sqlite.py
./src/cowrie/output/sqlite.py:26:5: E303 too many blank lines (2)
./src/cowrie/output/sqlite.py:45:5: E303 too many blank lines (2)
./src/cowrie/output/sqlite.py:52:5: E303 too many blank lines (2)
./src/cowrie/output/sqlite.py:60:5: E303 too many blank lines (2)
./src/cowrie/output/sqlite.py:68:5: E303 too many blank lines (2)
5     E303 too many blank lines (2)
5

* flake8 E3 ./src/cowrie/output/textlog.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/textlog.py
./src/cowrie/output/textlog.py:35:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/textlog.py:45:5: E303 too many blank lines (2)
./src/cowrie/output/textlog.py:51:5: E303 too many blank lines (2)
./src/cowrie/output/textlog.py:57:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
3     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/output/virustotal.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/virustotal.py
./src/cowrie/output/virustotal.py:62:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/virustotal.py:75:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:82:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:89:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:125:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:132:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:139:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:144:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:180:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:203:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:210:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:223:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:229:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:248:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:271:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:278:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:285:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:290:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:315:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:335:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:342:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:355:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:361:9: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:375:1: E303 too many blank lines (3)
./src/cowrie/output/virustotal.py:383:1: E303 too many blank lines (3)
./src/cowrie/output/virustotal.py:393:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:400:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:406:5: E303 too many blank lines (2)
./src/cowrie/output/virustotal.py:413:1: E303 too many blank lines (3)
1     E302 expected 2 blank lines, found 1
28    E303 too many blank lines (2)
29

* flake8 E3 ./src/cowrie/output/xmpp.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/output/xmpp.py
./src/cowrie/output/xmpp.py:20:1: E302 expected 2 blank lines, found 1
./src/cowrie/output/xmpp.py:59:1: E302 expected 2 blank lines, found 1
2     E302 expected 2 blank lines, found 1
2

* flake8 E3 ./src/cowrie/proxy/avatar.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/proxy/avatar.py
./src/cowrie/proxy/avatar.py:47:5: E303 too many blank lines (2)
./src/cowrie/proxy/avatar.py:52:1: E305 expected 2 blank lines after class or function definition, found 1
1     E303 too many blank lines (2)
1     E305 expected 2 blank lines after class or function definition, found 1
2

* flake8 E3 ./src/cowrie/proxy/endpoints.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/proxy/endpoints.py
./src/cowrie/proxy/endpoints.py:47:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:48:1: E302 expected 2 blank lines, found 3
./src/cowrie/proxy/endpoints.py:60:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:78:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:108:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:132:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:172:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:180:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:190:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:201:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:225:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:237:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:251:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:264:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:278:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:312:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:320:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:329:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:338:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:350:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:372:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:384:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:398:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:411:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:425:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:440:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:452:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:485:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:499:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:511:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:523:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:532:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:547:9: E306 expected 1 blank line before a nested definition, found 0
./src/cowrie/proxy/endpoints.py:554:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:564:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:585:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:598:9: E306 expected 1 blank line before a nested definition, found 0
./src/cowrie/proxy/endpoints.py:605:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:627:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:642:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:665:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:685:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:710:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:768:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:786:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:806:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:821:9: E306 expected 1 blank line before a nested definition, found 0
./src/cowrie/proxy/endpoints.py:835:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:872:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:932:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:954:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:974:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:989:9: E306 expected 1 blank line before a nested definition, found 0
./src/cowrie/proxy/endpoints.py:1004:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:1017:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1025:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1038:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1045:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:1081:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1096:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1107:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1127:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1147:1: E303 too many blank lines (3)
./src/cowrie/proxy/endpoints.py:1163:5: E303 too many blank lines (2)
./src/cowrie/proxy/endpoints.py:1172:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 3
60    E303 too many blank lines (3)
4     E306 expected 1 blank line before a nested definition, found 0
65

* flake8 E3 ./src/cowrie/proxy/session.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/proxy/session.py
./src/cowrie/proxy/session.py:22:1: E302 expected 2 blank lines, found 1
./src/cowrie/proxy/session.py:32:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:39:1: E303 too many blank lines (3)
./src/cowrie/proxy/session.py:55:1: E303 too many blank lines (3)
./src/cowrie/proxy/session.py:69:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:76:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:87:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:95:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:101:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:107:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:114:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:122:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:129:1: E303 too many blank lines (3)
./src/cowrie/proxy/session.py:175:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:192:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:199:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:206:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:220:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:228:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:235:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:243:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:254:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:264:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:270:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:277:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:284:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:291:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:299:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:305:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:311:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:318:5: E303 too many blank lines (2)
./src/cowrie/proxy/session.py:325:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
31    E303 too many blank lines (2)
32

* flake8 E3 ./src/cowrie/python/logfile.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/python/logfile.py
./src/cowrie/python/logfile.py:34:1: E302 expected 2 blank lines, found 1
1     E302 expected 2 blank lines, found 1
1

* flake8 E3 ./src/cowrie/shell/avatar.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/avatar.py
./src/cowrie/shell/avatar.py:64:5: E303 too many blank lines (2)
1     E303 too many blank lines (2)
1

* flake8 E3 ./src/cowrie/shell/command.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/command.py
./src/cowrie/shell/command.py:30:1: E303 too many blank lines (3)
./src/cowrie/shell/command.py:81:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:88:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:95:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:102:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:115:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:121:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:130:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:136:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:144:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:150:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:173:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:181:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:190:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:196:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:202:5: E303 too many blank lines (2)
./src/cowrie/shell/command.py:208:5: E303 too many blank lines (2)
17    E303 too many blank lines (3)
17

* flake8 E3 ./src/cowrie/shell/customparser.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/customparser.py
./src/cowrie/shell/customparser.py:5:1: E302 expected 2 blank lines, found 1
./src/cowrie/shell/customparser.py:55:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (2)
2

* flake8 E3 ./src/cowrie/shell/filetransfer.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/filetransfer.py
./src/cowrie/shell/filetransfer.py:73:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:81:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:87:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:97:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:104:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:111:1: E303 too many blank lines (3)
./src/cowrie/shell/filetransfer.py:121:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:127:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:134:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:170:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:177:1: E303 too many blank lines (3)
./src/cowrie/shell/filetransfer.py:188:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:195:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:206:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:219:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:225:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:232:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:239:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:246:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:256:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:263:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:270:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:282:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:290:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:298:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:307:5: E303 too many blank lines (2)
./src/cowrie/shell/filetransfer.py:313:5: E303 too many blank lines (2)
27    E303 too many blank lines (2)
27

* flake8 E3 ./src/cowrie/shell/fs.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/fs.py
./src/cowrie/shell/fs.py:56:1: E303 too many blank lines (3)
./src/cowrie/shell/fs.py:65:1: E303 too many blank lines (3)
./src/cowrie/shell/fs.py:73:1: E303 too many blank lines (3)
./src/cowrie/shell/fs.py:81:1: E303 too many blank lines (3)
./src/cowrie/shell/fs.py:103:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:119:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:145:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:156:9: E306 expected 1 blank line before a nested definition, found 0
./src/cowrie/shell/fs.py:172:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:194:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:204:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:214:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:223:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:255:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:279:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:295:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:313:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:325:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:338:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:398:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:405:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:411:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:434:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:442:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:452:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:473:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:482:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:491:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:503:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:513:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:524:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:530:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:546:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:553:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:559:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:580:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:586:5: E303 too many blank lines (2)
./src/cowrie/shell/fs.py:598:1: E303 too many blank lines (3)
37    E303 too many blank lines (3)
1     E306 expected 1 blank line before a nested definition, found 0
38

* flake8 E3 ./src/cowrie/shell/honeypot.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/honeypot.py
./src/cowrie/shell/honeypot.py:28:1: E303 too many blank lines (3)
./src/cowrie/shell/honeypot.py:41:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:119:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:131:9: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:141:9: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:233:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:241:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:266:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:275:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:284:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:294:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:369:1: E303 too many blank lines (3)
./src/cowrie/shell/honeypot.py:386:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:392:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:412:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:420:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:428:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:434:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:446:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:452:5: E303 too many blank lines (2)
./src/cowrie/shell/honeypot.py:458:5: E303 too many blank lines (2)
21    E303 too many blank lines (3)
21

* flake8 E3 ./src/cowrie/shell/protocol.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/protocol.py
./src/cowrie/shell/protocol.py:28:1: E302 expected 2 blank lines, found 1
./src/cowrie/shell/protocol.py:63:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:72:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:81:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:118:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:126:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:142:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:153:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:160:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:192:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:206:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:219:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:228:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:238:1: E303 too many blank lines (3)
./src/cowrie/shell/protocol.py:254:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:263:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:267:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:285:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:314:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:323:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:331:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:339:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:346:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:354:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:367:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:377:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:384:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:391:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:398:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:405:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:415:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:425:5: E303 too many blank lines (2)
./src/cowrie/shell/protocol.py:431:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
32    E303 too many blank lines (2)
33

* flake8 E3 ./src/cowrie/shell/pwd.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/pwd.py
./src/cowrie/shell/pwd.py:50:5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py:89:5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py💯5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py:110:5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py:121:1: E303 too many blank lines (3)
./src/cowrie/shell/pwd.py:132:5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py:163:5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py:174:5: E303 too many blank lines (2)
./src/cowrie/shell/pwd.py:184:5: E303 too many blank lines (2)
9     E303 too many blank lines (2)
9

* flake8 E3 ./src/cowrie/shell/server.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/server.py
./src/cowrie/shell/server.py:46:1: E302 expected 2 blank lines, found 1
./src/cowrie/shell/server.py:71:5: E303 too many blank lines (2)
./src/cowrie/shell/server.py:80:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
2     E303 too many blank lines (2)
3

* flake8 E3 ./src/cowrie/shell/session.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/session.py
./src/cowrie/shell/session.py:61:5: E303 too many blank lines (2)
./src/cowrie/shell/session.py:75:5: E303 too many blank lines (2)
./src/cowrie/shell/session.py:84:5: E303 too many blank lines (2)
./src/cowrie/shell/session.py:94:5: E303 too many blank lines (2)
./src/cowrie/shell/session.py:101:5: E303 too many blank lines (2)
5     E303 too many blank lines (2)
5

* flake8 E3 ./src/cowrie/shell/shlex.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/shell/shlex.py
./src/cowrie/shell/shlex.py:23:1: E302 expected 2 blank lines, found 1
./src/cowrie/shell/shlex.py:312:1: E302 expected 2 blank lines, found 1
./src/cowrie/shell/shlex.py:321:1: E303 too many blank lines (3)
./src/cowrie/shell/shlex.py:322:1: E305 expected 2 blank lines after class or function definition, found 3
./src/cowrie/shell/shlex.py:324:1: E302 expected 2 blank lines, found 1
3     E302 expected 2 blank lines, found 1
1     E303 too many blank lines (3)
1     E305 expected 2 blank lines after class or function definition, found 3
5

* flake8 E3 ./src/cowrie/ssh/channel.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/channel.py
./src/cowrie/ssh/channel.py:34:5: E303 too many blank lines (2)
./src/cowrie/ssh/channel.py:44:5: E303 too many blank lines (2)
./src/cowrie/ssh/channel.py:63:5: E303 too many blank lines (2)
./src/cowrie/ssh/channel.py:76:5: E303 too many blank lines (2)
./src/cowrie/ssh/channel.py:88:5: E303 too many blank lines (2)
./src/cowrie/ssh/channel.py:111:5: E303 too many blank lines (2)
6     E303 too many blank lines (2)
6

* flake8 E3 ./src/cowrie/ssh/connection.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/connection.py
./src/cowrie/ssh/connection.py:43:1: E302 expected 2 blank lines, found 1
1     E302 expected 2 blank lines, found 1
1

* flake8 E3 ./src/cowrie/ssh/factory.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/factory.py
./src/cowrie/ssh/factory.py:53:5: E303 too many blank lines (2)
./src/cowrie/ssh/factory.py:88:5: E303 too many blank lines (2)
./src/cowrie/ssh/factory.py:94:5: E303 too many blank lines (2)
./src/cowrie/ssh/factory.py:106:9: E303 too many blank lines (2)
4     E303 too many blank lines (2)
4

* flake8 E3 ./src/cowrie/ssh/forwarding.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/forwarding.py
./src/cowrie/ssh/forwarding.py:17:1: E302 expected 2 blank lines, found 1
./src/cowrie/ssh/forwarding.py:90:1: E303 too many blank lines (3)
./src/cowrie/ssh/forwarding.py:97:5: E303 too many blank lines (2)
./src/cowrie/ssh/forwarding.py:102:1: E303 too many blank lines (3)
./src/cowrie/ssh/forwarding.py:114:5: E303 too many blank lines (2)
./src/cowrie/ssh/forwarding.py:130:5: E303 too many blank lines (2)
./src/cowrie/ssh/forwarding.py:139:5: E303 too many blank lines (2)
./src/cowrie/ssh/forwarding.py:149:5: E303 too many blank lines (2)
./src/cowrie/ssh/forwarding.py:158:5: E303 too many blank lines (2)
./src/cowrie/ssh/forwarding.py:182:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
9     E303 too many blank lines (3)
10

* flake8 E3 ./src/cowrie/ssh/keys.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/keys.py
./src/cowrie/ssh/keys.py:43:1: E303 too many blank lines (3)
1     E303 too many blank lines (3)
1

* flake8 E3 ./src/cowrie/ssh/session.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/session.py
./src/cowrie/ssh/session.py:38:5: E303 too many blank lines (2)
./src/cowrie/ssh/session.py:45:5: E303 too many blank lines (2)
./src/cowrie/ssh/session.py:52:5: E303 too many blank lines (2)
./src/cowrie/ssh/session.py:60:5: E303 too many blank lines (2)
./src/cowrie/ssh/session.py:70:5: E303 too many blank lines (2)
./src/cowrie/ssh/session.py:77:5: E303 too many blank lines (2)
./src/cowrie/ssh/session.py:84:5: E303 too many blank lines (2)
7     E303 too many blank lines (2)
7

* flake8 E3 ./src/cowrie/ssh/transport.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/transport.py
./src/cowrie/ssh/transport.py:30:1: E303 too many blank lines (3)
./src/cowrie/ssh/transport.py:46:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:81:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:90:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:98:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:134:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:169:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:187:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:196:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:218:5: E303 too many blank lines (2)
./src/cowrie/ssh/transport.py:232:5: E303 too many blank lines (2)
11    E303 too many blank lines (3)
11

* flake8 E3 ./src/cowrie/ssh/userauth.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/ssh/userauth.py
./src/cowrie/ssh/userauth.py:48:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:67:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:74:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:86:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:95:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:105:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:121:5: E303 too many blank lines (2)
./src/cowrie/ssh/userauth.py:154:5: E303 too many blank lines (2)
8     E303 too many blank lines (2)
8

* flake8 E3 ./src/cowrie/test/fake_server.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/test/fake_server.py
./src/cowrie/test/fake_server.py:14:1: E302 expected 2 blank lines, found 1
./src/cowrie/test/fake_server.py:28:1: E302 expected 2 blank lines, found 1
2     E302 expected 2 blank lines, found 1
2

* flake8 E3 ./src/cowrie/test/fake_transport.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/test/fake_transport.py
./src/cowrie/test/fake_transport.py:74:5: E301 expected 1 blank line, found 0
./src/cowrie/test/fake_transport.py:79:5: E303 too many blank lines (2)
./src/cowrie/test/fake_transport.py:93:5: E303 too many blank lines (2)
./src/cowrie/test/fake_transport.py:97:5: E303 too many blank lines (2)
./src/cowrie/test/fake_transport.py:105:5: E303 too many blank lines (2)
./src/cowrie/test/fake_transport.py:143:5: E303 too many blank lines (2)
./src/cowrie/test/fake_transport.py:147:5: E303 too many blank lines (2)
1     E301 expected 1 blank line, found 0
6     E303 too many blank lines (2)
7

* flake8 E3 ./src/cowrie/test/test_base_commands.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/test/test_base_commands.py
./src/cowrie/test/test_base_commands.py:21:1: E302 expected 2 blank lines, found 1
./src/cowrie/test/test_base_commands.py:24:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:31:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:36:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:41:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:45:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:49:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:53:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:58:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:62:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:67:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:72:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:79:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:83:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:87:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:93:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:98:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:103:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:108:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:113:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:118:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:123:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:128:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:133:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:138:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:143:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:148:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:153:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:158:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:163:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:168:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:173:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:178:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:183:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:195:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:201:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:207:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:213:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:219:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:225:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:231:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:237:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:243:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:250:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:256:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:262:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:278:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:285:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:292:5: E303 too many blank lines (2)
./src/cowrie/test/test_base_commands.py:296:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
49    E303 too many blank lines (2)
50

* flake8 E3 ./src/cowrie/test/test_echo.py

flake8 --count --select=E1,E2,E3 --statistics ./src/cowrie/test/test_echo.py
./src/cowrie/test/test_echo.py:24:1: E302 expected 2 blank lines, found 1
./src/cowrie/test/test_echo.py:36:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:44:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:52:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:60:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:68:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:76:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:84:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:92:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py💯5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:108:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:116:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:124:5: E303 too many blank lines (2)
./src/cowrie/test/test_echo.py:132:5: E303 too many blank lines (2)
1     E302 expected 2 blank lines, found 1
13    E303 too many blank lines (2)
14

* Add flake8 E3 check

Checking now in every travis run and docker build for flake8 E3xx
errors.
2018-08-08 11:27:31 +04:00
Florian Pelgrim 53b49c501d Full docker support (#830)
* Full docker support

Currently Docker images are build by a second git repository.
Changes to installation or starting cowrie would need to be done on
both. Merging this into one repository prevents that those will be
forgotten and makes it easier to understand why changes happen.

The dockerfile is a different one then the one from the docker-cowrie
repository.
I chose to use a python2-alpine linux. In the end this image has 55%
smaller image size than the Debian image. The build process is split
into to parts. The first image has everything installed to compile the
python modules. The second one has only things installed which are
needed to run the daemon.
There is no need to install python-virtualenv because we are using
docker. We don't need that much layers.
Twisted can drop his privileges when starting the daemon when `--uid`
and `--gid` is passed. This works only with numerical id. The user
nobody is used for this. This is on Docker a good idea since there
should be only one service with this user running. In other systems
there might be several services using this daemon which is not a good
choise.

When building a new Docker image for cowrie Docker multistage build
images are created running flake8 and unittests to ensure that all
future releases are stable and matching our code guidelines.

Bonus effect is when using this as a git pre-push-hook a developer
doesn't need to wait for travis to fail on an error.

Based on the current project structure we need a lot of `COPY`
instructions inside the dockerfile which has negative sideeffects.
- bloading the dockerfile up
- longer buildtimes
- more layers are created
- more diskspace is used

We should find a way to reduce this. Best way for doing this is keeping
the static files like `honeyfs` and `share` right next to the source
code.

* Removing UID 0 check

Cowrie checked on startup if it was started with root privileges.
This conflicts with the option to let cowrie drop his privileges on
startup using the twisted option `--uid` and `--gid`.

I tested it a day ago without removing the code block and it run through
but now it is for some reasons blocking. My feeling is that the code for
droping privileges is also asynchron and sometimes the check is faster
then the dropping of the privileges. But I might be wrong here.

The solution is to remove the hole check.
Considering that the check is there for preventing new users to shoot
their feet we fixed this problem on different levels.
New users should the docker images which are far easier to control and
deploy then everything else because we take care.
If a user wants to deploy it from scratch onto their serves there is a
install instruction with detailed steps. This steps includes creating a
special system user for cowrie and starting it with this user.

* Fix missing directory, simplify path

I missed to create the TTY log path. That's now fixed.

Also the path for the trial command has been simplified.

* Revert "Removing UID 0 check"

This reverts commit f76329cd79.

* Introducint ENV var COWRIE_DOCKER

The variable is used inside the docker image to let cowrie know that it
is running inside docker and don't need to perform the "running as root"
check.
Inside the docker image cowrie is started with the `--uid` and `--gid`
option and will drop to a different user then root.

* Restructured Dockerfile, Added cowrie user

The image is now builded with a user and group for running in the later
image cowrie.

Also the build steps are re-aranged to save build time.
We assume that static files like `honeyfs` and `share` are less
frequently updated and can be build into the base image where every
other images is based on.

* Renamed directory src -> cowrie

The name cowrie should be more self-explaining then src.

* Update cowrie_plugin.py
2018-08-06 12:27:32 +04:00