Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to python3 and elastalert v0.2.4 #174

Closed
wants to merge 1 commit into from

Conversation

Karql
Copy link

@Karql Karql commented Apr 28, 2020

Update elastalert to v0.2.4

I've tried to make as few changes as possible.

@hottwister
Copy link

Are this is not need any more?
RUN sed -i 's/jira>=1.0.10/jira>=1.0.10,<1.0.15/g' setup.py && \ python setup.py install && \ pip install -r requirements.txt

it solved the bug with jira 1.0.15 plugin and there are some requirements as i remember

@Karql
Copy link
Author

Karql commented Apr 29, 2020

@hottwister
I've taken it from here: https://github.com/bitsensor/elastalert/pull/157/files#diff-3254677a7917c6c01f55212f86c57fbfR22

Also in this issue Yelp/elastalert#1654 they wrote that it works ;)

@nsano-rururu nsano-rururu mentioned this pull request May 30, 2020
@rvignesh89
Copy link

rvignesh89 commented Jun 5, 2020

@balthazar is rite. I used the following Dockerfile is my environment. I didn't go uptown 0.2.4 since I only needed some features in 0.2.2.

# Yelp Elastalert 0.2.2 requires Python 3.6
FROM python:3.6-alpine as py-ea

ARG ELASTALERT_VERSION=v0.2.2
ARG ELASTALERT_URL=https://github.com/Yelp/elastalert/archive/$ELASTALERT_VERSION.zip

ENV ELASTALERT_VERSION=${ELASTALERT_VERSION}
ENV ELASTALERT_URL=${ELASTALERT_URL}
ENV ELASTALERT_HOME /opt/elastalert

WORKDIR /opt

RUN apk add --update ca-certificates openssl-dev openssl libffi-dev gcc musl-dev wget curl tzdata nodejs nodejs-npm make libmagic && \
    wget -O elastalert.zip "${ELASTALERT_URL}" && \
    unzip elastalert.zip && \
    rm elastalert.zip && \
    mv e* "${ELASTALERT_HOME}"

WORKDIR "${ELASTALERT_HOME}"

# Install Elastalert.
# see: https://github.com/Yelp/elastalert/issues/1654
RUN python setup.py install && \
    pip install -r requirements.txt

WORKDIR /opt/elastalert-server

COPY . /opt/elastalert-server

RUN npm install --production --quiet \
    && mkdir -p /opt/elastalert/rules /opt/elastalert/server_data/tests/ 

COPY elastalert_modules/ /opt/elastalert/elastalert_modules

EXPOSE 3030

ENTRYPOINT ["npm", "start"]

@rifqifatih
Copy link

Aren't you getting

22:48:31.513Z ERROR elastalert-server:
    ProcessController:  Traceback (most recent call last):
      File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
        return _run_code(code, main_globals, None,
      File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
        exec(code, run_globals)
      File "/opt/elastalert/elastalert/create_index.py", line 13, in <module>
        from auth import Auth
    ModuleNotFoundError: No module named 'auth'

or

22:48:31.838Z ERROR elastalert-server:
    ProcessController:  Traceback (most recent call last):
      File "/usr/lib/python3.8/runpy.py", line 184, in _run_module_as_main
        mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
      File "/usr/lib/python3.8/runpy.py", line 154, in _get_module_details
        code = loader.get_code(mod_name)
      File "<frozen importlib._bootstrap_external>", line 916, in get_code
      File "<frozen importlib._bootstrap_external>", line 846, in source_to_code
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "/opt/elastalert/elastalert/elastalert.py", line 137
        print len(self.rules), 'rules loaded'
              ^
    SyntaxError: invalid syntax

With this?

Is this after running docker run? I have no problem running from this branch

@nsano-rururu
Copy link

docker build error

Sending build context to Docker daemon  150.5kB
Step 1/29 : FROM alpine:3.11 as py-ea
3.11: Pulling from library/alpine
0a6724ff3fcd: Already exists 
Digest: sha256:0bd0e9e03a022c3b0226667621da84fc9bf562a9056130424b5bfbd8bcb0397f
Status: Downloaded newer image for alpine:3.11
 ---> 5c534be56eca
Step 2/29 : ARG ELASTALERT_VERSION=v0.2.4
 ---> Running in 6e4e74f3ed00
Removing intermediate container 6e4e74f3ed00
 ---> 0476bdab8ef0
Step 3/29 : ENV ELASTALERT_VERSION=${ELASTALERT_VERSION}
 ---> Running in 2f609addf25b
Removing intermediate container 2f609addf25b
 ---> 0f3c9fc5c0e8
Step 4/29 : ARG ELASTALERT_URL=https://github.com/Yelp/elastalert/archive/$ELASTALERT_VERSION.zip
 ---> Running in fd830e449b6d
Removing intermediate container fd830e449b6d
 ---> bfb52aacb7b5
Step 5/29 : ENV ELASTALERT_URL=${ELASTALERT_URL}
 ---> Running in e9cfc1cca3a9
Removing intermediate container e9cfc1cca3a9
 ---> ed5ccc083548
Step 6/29 : ENV ELASTALERT_HOME /opt/elastalert
 ---> Running in cfcf3cc621bf
Removing intermediate container cfcf3cc621bf
 ---> bb5215ffbf0d
Step 7/29 : WORKDIR /opt
 ---> Running in a4f7b4b3ad27
Removing intermediate container a4f7b4b3ad27
 ---> 4271867af588
Step 8/29 : RUN apk add --update --no-cache ca-certificates openssl-dev openssl python3-dev python3 py3-pip py3-yaml libffi-dev gcc musl-dev wget &&     wget -O elastalert.zip "${ELASTALERT_URL}" &&     unzip elastalert.zip &&     rm elastalert.zip &&     mv e* "${ELASTALERT_HOME}"
 ---> Running in a66e779c77a9
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
(1/31) Installing ca-certificates (20191127-r2)
(2/31) Installing libgcc (9.3.0-r0)
(3/31) Installing libstdc++ (9.3.0-r0)
(4/31) Installing binutils (2.33.1-r0)
(5/31) Installing gmp (6.1.2-r1)
(6/31) Installing isl (0.18-r0)
(7/31) Installing libgomp (9.3.0-r0)
(8/31) Installing libatomic (9.3.0-r0)
(9/31) Installing mpfr4 (4.0.2-r1)
(10/31) Installing mpc1 (1.1.0-r1)
(11/31) Installing gcc (9.3.0-r0)
(12/31) Installing linux-headers (4.19.36-r0)
(13/31) Installing libffi (3.2.1-r6)
(14/31) Installing pkgconf (1.6.3-r0)
(15/31) Installing libffi-dev (3.2.1-r6)
(16/31) Installing musl-dev (1.1.24-r3)
(17/31) Installing openssl (1.1.1i-r0)
(18/31) Installing openssl-dev (1.1.1i-r0)
(19/31) Installing libbz2 (1.0.8-r1)
(20/31) Installing expat (2.2.9-r1)
(21/31) Installing gdbm (1.13-r1)
(22/31) Installing xz-libs (5.2.4-r0)
(23/31) Installing ncurses-terminfo-base (6.1_p20200118-r4)
(24/31) Installing ncurses-libs (6.1_p20200118-r4)
(25/31) Installing readline (8.0.1-r0)
(26/31) Installing sqlite-libs (3.30.1-r2)
(27/31) Installing python3 (3.8.2-r1)
(28/31) Installing yaml (0.2.2-r1)
(29/31) Installing py3-yaml (5.3.1-r1)
(30/31) Installing python3-dev (3.8.2-r1)
(31/31) Installing wget (1.20.3-r0)
Executing busybox-1.31.1-r9.trigger
Executing ca-certificates-20191127-r2.trigger
OK: 227 MiB in 45 packages
--2021-02-11 04:57:05--  https://github.com/Yelp/elastalert/archive/v0.2.4.zip
Resolving github.com... 52.69.186.44
Connecting to github.com|52.69.186.44|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/Yelp/elastalert/zip/v0.2.4 [following]
--2021-02-11 04:57:05--  https://codeload.github.com/Yelp/elastalert/zip/v0.2.4
Resolving codeload.github.com... 13.112.159.149
Connecting to codeload.github.com|13.112.159.149|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/zip]
Saving to: 'elastalert.zip'

     0K .......... .......... .......... .......... ..........  285K
    50K .......... .......... .......... .......... .......... 4.57M
   100K .......... .......... .......... .......... ..........  306K
   150K .......... .......... .......... .......... .......... 12.0M
   200K .......... .........                                   95.6M=0.4s

2021-02-11 04:57:06 (621 KB/s) - 'elastalert.zip' saved [224847]

Archive:  elastalert.zip
   creating: elastalert-0.2.4/
  inflating: elastalert-0.2.4/.editorconfig
  inflating: elastalert-0.2.4/.gitignore
  inflating: elastalert-0.2.4/.pre-commit-config.yaml
  inflating: elastalert-0.2.4/.secrets.baseline
  inflating: elastalert-0.2.4/.travis.yml
  inflating: elastalert-0.2.4/Dockerfile-test
  inflating: elastalert-0.2.4/LICENSE
  inflating: elastalert-0.2.4/Makefile
  inflating: elastalert-0.2.4/README.md
  inflating: elastalert-0.2.4/changelog.md
  inflating: elastalert-0.2.4/config.yaml.example
  inflating: elastalert-0.2.4/docker-compose.yml
   creating: elastalert-0.2.4/docs/
  inflating: elastalert-0.2.4/docs/Makefile
   creating: elastalert-0.2.4/docs/source/
   creating: elastalert-0.2.4/docs/source/_static/
  inflating: elastalert-0.2.4/docs/source/_static/.gitkeep
  inflating: elastalert-0.2.4/docs/source/conf.py
  inflating: elastalert-0.2.4/docs/source/elastalert.rst
  inflating: elastalert-0.2.4/docs/source/elastalert_status.rst
  inflating: elastalert-0.2.4/docs/source/index.rst
   creating: elastalert-0.2.4/docs/source/recipes/
  inflating: elastalert-0.2.4/docs/source/recipes/adding_alerts.rst
  inflating: elastalert-0.2.4/docs/source/recipes/adding_enhancements.rst
  inflating: elastalert-0.2.4/docs/source/recipes/adding_loaders.rst
  inflating: elastalert-0.2.4/docs/source/recipes/adding_rules.rst
  inflating: elastalert-0.2.4/docs/source/recipes/signing_requests.rst
  inflating: elastalert-0.2.4/docs/source/recipes/writing_filters.rst
  inflating: elastalert-0.2.4/docs/source/ruletypes.rst
  inflating: elastalert-0.2.4/docs/source/running_elastalert.rst
   creating: elastalert-0.2.4/elastalert/
  inflating: elastalert-0.2.4/elastalert/__init__.py
  inflating: elastalert-0.2.4/elastalert/alerts.py
  inflating: elastalert-0.2.4/elastalert/auth.py
  inflating: elastalert-0.2.4/elastalert/config.py
  inflating: elastalert-0.2.4/elastalert/create_index.py
  inflating: elastalert-0.2.4/elastalert/elastalert.py
  inflating: elastalert-0.2.4/elastalert/enhancements.py
   creating: elastalert-0.2.4/elastalert/es_mappings/
   creating: elastalert-0.2.4/elastalert/es_mappings/5/
  inflating: elastalert-0.2.4/elastalert/es_mappings/5/elastalert.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/5/elastalert_error.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/5/elastalert_status.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/5/past_elastalert.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/5/silence.json
   creating: elastalert-0.2.4/elastalert/es_mappings/6/
  inflating: elastalert-0.2.4/elastalert/es_mappings/6/elastalert.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/6/elastalert_error.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/6/elastalert_status.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/6/past_elastalert.json
  inflating: elastalert-0.2.4/elastalert/es_mappings/6/silence.json
  inflating: elastalert-0.2.4/elastalert/kibana.py
  inflating: elastalert-0.2.4/elastalert/kibana_discover.py
  inflating: elastalert-0.2.4/elastalert/loaders.py
  inflating: elastalert-0.2.4/elastalert/opsgenie.py
  inflating: elastalert-0.2.4/elastalert/rule_from_kibana.py
  inflating: elastalert-0.2.4/elastalert/ruletypes.py
  inflating: elastalert-0.2.4/elastalert/schema.yaml
  inflating: elastalert-0.2.4/elastalert/test_rule.py
  inflating: elastalert-0.2.4/elastalert/util.py
  inflating: elastalert-0.2.4/elastalert/zabbix.py
   creating: elastalert-0.2.4/example_rules/
  inflating: elastalert-0.2.4/example_rules/example_cardinality.yaml
  inflating: elastalert-0.2.4/example_rules/example_change.yaml
  inflating: elastalert-0.2.4/example_rules/example_frequency.yaml
  inflating: elastalert-0.2.4/example_rules/example_new_term.yaml
  inflating: elastalert-0.2.4/example_rules/example_opsgenie_frequency.yaml
  inflating: elastalert-0.2.4/example_rules/example_percentage_match.yaml
  inflating: elastalert-0.2.4/example_rules/example_single_metric_agg.yaml
  inflating: elastalert-0.2.4/example_rules/example_spike.yaml
  inflating: elastalert-0.2.4/example_rules/example_spike_single_metric_agg.yaml
  inflating: elastalert-0.2.4/example_rules/jira_acct.txt
  inflating: elastalert-0.2.4/example_rules/ssh-repeat-offender.yaml
  inflating: elastalert-0.2.4/example_rules/ssh.yaml
  inflating: elastalert-0.2.4/pytest.ini
  inflating: elastalert-0.2.4/requirements-dev.txt
  inflating: elastalert-0.2.4/requirements.txt
  inflating: elastalert-0.2.4/setup.cfg
  inflating: elastalert-0.2.4/setup.py
  inflating: elastalert-0.2.4/supervisord.conf.example
   creating: elastalert-0.2.4/tests/
  inflating: elastalert-0.2.4/tests/__init__.py
  inflating: elastalert-0.2.4/tests/alerts_test.py
  inflating: elastalert-0.2.4/tests/auth_test.py
  inflating: elastalert-0.2.4/tests/base_test.py
  inflating: elastalert-0.2.4/tests/conftest.py
  inflating: elastalert-0.2.4/tests/create_index_test.py
  inflating: elastalert-0.2.4/tests/elasticsearch_test.py
  inflating: elastalert-0.2.4/tests/kibana_discover_test.py
  inflating: elastalert-0.2.4/tests/kibana_test.py
  inflating: elastalert-0.2.4/tests/loaders_test.py
  inflating: elastalert-0.2.4/tests/rules_test.py
  inflating: elastalert-0.2.4/tests/util_test.py
  inflating: elastalert-0.2.4/tox.ini
Removing intermediate container a66e779c77a9
 ---> d1e8ea2d0ded
Step 9/29 : WORKDIR "${ELASTALERT_HOME}"
 ---> Running in b14ad3bef50b
Removing intermediate container b14ad3bef50b
 ---> e0cc5f81b8ed
Step 10/29 : RUN python3 setup.py install
 ---> Running in d440da111ec4
running install
running bdist_egg
running egg_info
creating elastalert.egg-info
writing elastalert.egg-info/PKG-INFO
writing dependency_links to elastalert.egg-info/dependency_links.txt
writing entry points to elastalert.egg-info/entry_points.txt
writing requirements to elastalert.egg-info/requires.txt
writing top-level names to elastalert.egg-info/top_level.txt
writing manifest file 'elastalert.egg-info/SOURCES.txt'
reading manifest file 'elastalert.egg-info/SOURCES.txt'
writing manifest file 'elastalert.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib
creating build/lib/elastalert
copying elastalert/__init__.py -> build/lib/elastalert
copying elastalert/alerts.py -> build/lib/elastalert
copying elastalert/auth.py -> build/lib/elastalert
copying elastalert/config.py -> build/lib/elastalert
copying elastalert/create_index.py -> build/lib/elastalert
copying elastalert/elastalert.py -> build/lib/elastalert
copying elastalert/enhancements.py -> build/lib/elastalert
copying elastalert/kibana.py -> build/lib/elastalert
copying elastalert/kibana_discover.py -> build/lib/elastalert
copying elastalert/loaders.py -> build/lib/elastalert
copying elastalert/opsgenie.py -> build/lib/elastalert
copying elastalert/rule_from_kibana.py -> build/lib/elastalert
copying elastalert/ruletypes.py -> build/lib/elastalert
copying elastalert/test_rule.py -> build/lib/elastalert
copying elastalert/util.py -> build/lib/elastalert
copying elastalert/zabbix.py -> build/lib/elastalert
creating build/lib/tests
copying tests/__init__.py -> build/lib/tests
copying tests/alerts_test.py -> build/lib/tests
copying tests/auth_test.py -> build/lib/tests
copying tests/base_test.py -> build/lib/tests
copying tests/conftest.py -> build/lib/tests
copying tests/create_index_test.py -> build/lib/tests
copying tests/elasticsearch_test.py -> build/lib/tests
copying tests/kibana_discover_test.py -> build/lib/tests
copying tests/kibana_test.py -> build/lib/tests
copying tests/loaders_test.py -> build/lib/tests
copying tests/rules_test.py -> build/lib/tests
copying tests/util_test.py -> build/lib/tests
copying elastalert/schema.yaml -> build/lib/elastalert
creating build/lib/elastalert/es_mappings
creating build/lib/elastalert/es_mappings/5
copying elastalert/es_mappings/5/elastalert.json -> build/lib/elastalert/es_mappings/5
copying elastalert/es_mappings/5/elastalert_error.json -> build/lib/elastalert/es_mappings/5
copying elastalert/es_mappings/5/elastalert_status.json -> build/lib/elastalert/es_mappings/5
copying elastalert/es_mappings/5/past_elastalert.json -> build/lib/elastalert/es_mappings/5
copying elastalert/es_mappings/5/silence.json -> build/lib/elastalert/es_mappings/5
creating build/lib/elastalert/es_mappings/6
copying elastalert/es_mappings/6/elastalert.json -> build/lib/elastalert/es_mappings/6
copying elastalert/es_mappings/6/elastalert_error.json -> build/lib/elastalert/es_mappings/6
copying elastalert/es_mappings/6/elastalert_status.json -> build/lib/elastalert/es_mappings/6
copying elastalert/es_mappings/6/past_elastalert.json -> build/lib/elastalert/es_mappings/6
copying elastalert/es_mappings/6/silence.json -> build/lib/elastalert/es_mappings/6
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/__init__.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/alerts.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/auth.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/config.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/create_index.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/elastalert.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/enhancements.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/kibana.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/kibana_discover.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/loaders.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/opsgenie.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/rule_from_kibana.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/ruletypes.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/test_rule.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/util.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/zabbix.py -> build/bdist.linux-x86_64/egg/elastalert
copying build/lib/elastalert/schema.yaml -> build/bdist.linux-x86_64/egg/elastalert
creating build/bdist.linux-x86_64/egg/elastalert/es_mappings
creating build/bdist.linux-x86_64/egg/elastalert/es_mappings/5
copying build/lib/elastalert/es_mappings/5/elastalert.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/5
copying build/lib/elastalert/es_mappings/5/elastalert_error.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/5
copying build/lib/elastalert/es_mappings/5/elastalert_status.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/5
copying build/lib/elastalert/es_mappings/5/past_elastalert.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/5
copying build/lib/elastalert/es_mappings/5/silence.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/5
creating build/bdist.linux-x86_64/egg/elastalert/es_mappings/6
copying build/lib/elastalert/es_mappings/6/elastalert.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/6
copying build/lib/elastalert/es_mappings/6/elastalert_error.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/6
copying build/lib/elastalert/es_mappings/6/elastalert_status.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/6
copying build/lib/elastalert/es_mappings/6/past_elastalert.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/6
copying build/lib/elastalert/es_mappings/6/silence.json -> build/bdist.linux-x86_64/egg/elastalert/es_mappings/6
creating build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/__init__.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/alerts_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/auth_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/base_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/conftest.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/create_index_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/elasticsearch_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/kibana_discover_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/kibana_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/loaders_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/rules_test.py -> build/bdist.linux-x86_64/egg/tests
copying build/lib/tests/util_test.py -> build/bdist.linux-x86_64/egg/tests
byte-compiling build/bdist.linux-x86_64/egg/elastalert/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/alerts.py to alerts.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/auth.py to auth.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/config.py to config.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/create_index.py to create_index.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/elastalert.py to elastalert.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/enhancements.py to enhancements.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/kibana.py to kibana.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/kibana_discover.py to kibana_discover.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/loaders.py to loaders.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/opsgenie.py to opsgenie.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/rule_from_kibana.py to rule_from_kibana.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/ruletypes.py to ruletypes.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/test_rule.py to test_rule.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/util.py to util.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/elastalert/zabbix.py to zabbix.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/__init__.py to __init__.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/alerts_test.py to alerts_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/auth_test.py to auth_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/base_test.py to base_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/conftest.py to conftest.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/create_index_test.py to create_index_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/elasticsearch_test.py to elasticsearch_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/kibana_discover_test.py to kibana_discover_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/kibana_test.py to kibana_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/loaders_test.py to loaders_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/rules_test.py to rules_test.cpython-38.pyc
byte-compiling build/bdist.linux-x86_64/egg/tests/util_test.py to util_test.cpython-38.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying elastalert.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying elastalert.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying elastalert.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying elastalert.egg-info/entry_points.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying elastalert.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying elastalert.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
elastalert.__pycache__.create_index.cpython-38: module references __file__
elastalert.__pycache__.loaders.cpython-38: module references __file__
creating dist
creating 'dist/elastalert-0.2.4-py3.8.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing elastalert-0.2.4-py3.8.egg
creating /usr/lib/python3.8/site-packages/elastalert-0.2.4-py3.8.egg
Extracting elastalert-0.2.4-py3.8.egg to /usr/lib/python3.8/site-packages
Adding elastalert 0.2.4 to easy-install.pth file
Installing elastalert script to /usr/bin
Installing elastalert-create-index script to /usr/bin
Installing elastalert-rule-from-kibana script to /usr/bin
Installing elastalert-test-rule script to /usr/bin

Installed /usr/lib/python3.8/site-packages/elastalert-0.2.4-py3.8.egg
Processing dependencies for elastalert==0.2.4
Searching for cffi>=1.11.5
Reading https://pypi.org/simple/cffi/
Downloading https://files.pythonhosted.org/packages/66/6a/98e023b3d11537a5521902ac6b50db470c826c682be6a8c661549cb7717a/cffi-1.14.4.tar.gz#sha256=1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c
Best match: cffi 1.14.4
Processing cffi-1.14.4.tar.gz
Writing /tmp/easy_install-w_49hnhk/cffi-1.14.4/setup.cfg
Running cffi-1.14.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-w_49hnhk/cffi-1.14.4/egg-dist-tmp-qg48jua3
c/_cffi_backend.c: In function 'fb_prepare_cif':
c/_cffi_backend.c:5887:16: warning: comparison of integer expressions of different signedness: 'ffi_status' {aka 'enum <anonymous>'} and 'int' [-Wsign-compare]
 5887 |     if (status == -1) {
      |                ^~
creating /usr/lib/python3.8/site-packages/cffi-1.14.4-py3.8-linux-x86_64.egg
Extracting cffi-1.14.4-py3.8-linux-x86_64.egg to /usr/lib/python3.8/site-packages
Adding cffi 1.14.4 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/cffi-1.14.4-py3.8-linux-x86_64.egg
Searching for python-magic>=0.4.15
Reading https://pypi.org/simple/python-magic/
Downloading https://files.pythonhosted.org/packages/77/69/3b0f03037d91e591a8f2bca699b4b7bf85609a23e4b081df585fbce1c180/python_magic-0.4.20-py2.py3-none-any.whl#sha256=33ce94d9395aa269a9c5fac10ae124a5fb328ebe248f36efc5a43922edee662e
Best match: python-magic 0.4.20
Processing python_magic-0.4.20-py2.py3-none-any.whl
Installing python_magic-0.4.20-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding python-magic 0.4.20 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/python_magic-0.4.20-py3.8.egg
Searching for twilio<6.1,>=6.0.0
Reading https://pypi.org/simple/twilio/
Downloading https://files.pythonhosted.org/packages/f6/20/c6d72e0f29030206342e4b5bef9f573bdb7c305615ea77c11c81f5c0196d/twilio-6.0.0.tar.gz#sha256=2c284ed978b992b601914177746ba8afe29d9099fd6b4efaa1628e32951391d5
Best match: twilio 6.0.0
Processing twilio-6.0.0.tar.gz
Writing /tmp/easy_install-u2pk5r3r/twilio-6.0.0/setup.cfg
Running twilio-6.0.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-u2pk5r3r/twilio-6.0.0/egg-dist-tmp-2gfr7knk
zip_safe flag not set; analyzing archive contents...
twilio.http.__pycache__.__init__.cpython-38: module references __file__
creating /usr/lib/python3.8/site-packages/twilio-6.0.0-py3.8.egg
Extracting twilio-6.0.0-py3.8.egg to /usr/lib/python3.8/site-packages
Adding twilio 6.0.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/twilio-6.0.0-py3.8.egg
Searching for texttable>=0.8.8
Reading https://pypi.org/simple/texttable/
Downloading https://files.pythonhosted.org/packages/06/f5/46201c428aebe0eecfa83df66bf3e6caa29659dbac5a56ddfd83cae0d4a4/texttable-1.6.3-py2.py3-none-any.whl#sha256=f802f2ef8459058736264210f716c757cbf85007a30886d8541aa8c3404f1dda
Best match: texttable 1.6.3
Processing texttable-1.6.3-py2.py3-none-any.whl
Installing texttable-1.6.3-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding texttable 1.6.3 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/texttable-1.6.3-py3.8.egg
Searching for stomp.py>=4.1.17
Reading https://pypi.org/simple/stomp.py/
Downloading https://files.pythonhosted.org/packages/b3/37/4334e2d9cff027bec7eafa739c09cd3d45f979529954a974f1743d4abb87/stomp.py-6.1.0-py3-none-any.whl#sha256=8a1ed68cd8b12f41ba56a8dfeff995e7866d1d47ed7f53aaa78da3bea44696b8
Best match: stomp.py 6.1.0
Processing stomp.py-6.1.0-py3-none-any.whl
Installing stomp.py-6.1.0-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/stomp.py-6.1.0-py3.8.egg/EGG-INFO/requires.txt
Adding stomp.py 6.1.0 to easy-install.pth file
Installing stomp script to /usr/bin

Installed /usr/lib/python3.8/site-packages/stomp.py-6.1.0-py3.8.egg
Searching for requests>=2.10.0
Reading https://pypi.org/simple/requests/
Downloading https://files.pythonhosted.org/packages/29/c1/24814557f1d22c56d50280771a17307e6bf87b70727d975fd6b2ce6b014a/requests-2.25.1-py2.py3-none-any.whl#sha256=c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e
Best match: requests 2.25.1
Processing requests-2.25.1-py2.py3-none-any.whl
Installing requests-2.25.1-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/requests-2.25.1-py3.8.egg/EGG-INFO/requires.txt
Adding requests 2.25.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/requests-2.25.1-py3.8.egg
Searching for python-dateutil<2.7.0,>=2.6.0
Reading https://pypi.org/simple/python-dateutil/
Downloading https://files.pythonhosted.org/packages/4b/0d/7ed381ab4fe80b8ebf34411d14f253e1cf3e56e2820ffa1d8844b23859a2/python_dateutil-2.6.1-py2.py3-none-any.whl#sha256=95511bae634d69bc7329ba55e646499a842bc4ec342ad54a8cdb65645a0aad3c
Best match: python-dateutil 2.6.1
Processing python_dateutil-2.6.1-py2.py3-none-any.whl
Installing python_dateutil-2.6.1-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/python_dateutil-2.6.1-py3.8.egg/EGG-INFO/requires.txt
Adding python-dateutil 2.6.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/python_dateutil-2.6.1-py3.8.egg
Searching for PyStaticConfiguration>=0.10.3
Reading https://pypi.org/simple/PyStaticConfiguration/
Downloading https://files.pythonhosted.org/packages/d9/59/43b4f700c4727a858252d4e7cefcb8dbdc089f1e6aebebbefffec5cf172d/PyStaticConfiguration-0.10.5.tar.gz#sha256=6ac1ad09e6d40180d4e79e84a81c604b33ffd9ce5de96d217886ac598a695c37
Best match: PyStaticConfiguration 0.10.5
Processing PyStaticConfiguration-0.10.5.tar.gz
Writing /tmp/easy_install-lgfbd1qo/PyStaticConfiguration-0.10.5/setup.cfg
Running PyStaticConfiguration-0.10.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-lgfbd1qo/PyStaticConfiguration-0.10.5/egg-dist-tmp-arxaedgk
zip_safe flag not set; analyzing archive contents...
Moving PyStaticConfiguration-0.10.5-py3.8.egg to /usr/lib/python3.8/site-packages
Adding PyStaticConfiguration 0.10.5 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/PyStaticConfiguration-0.10.5-py3.8.egg
Searching for prison>=0.1.2
Reading https://pypi.org/simple/prison/
Downloading https://files.pythonhosted.org/packages/56/3d/10c7dfd83613dadc8388bdef8e8000ccfb2984134050ce9bea6a00c94296/prison-0.1.3-py2.py3-none-any.whl#sha256=58e972709e9e2feabc1aa06cb6493f9c43b55a8afd7d653cf0aa82e3923fbd35
Best match: prison 0.1.3
Processing prison-0.1.3-py2.py3-none-any.whl
Installing prison-0.1.3-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/prison-0.1.3-py3.8.egg/EGG-INFO/requires.txt
Adding prison 0.1.3 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/prison-0.1.3-py3.8.egg
Searching for mock>=2.0.0
Reading https://pypi.org/simple/mock/
Downloading https://files.pythonhosted.org/packages/5c/03/b7e605db4a57c0f6fba744b11ef3ddf4ddebcada35022927a2b5fc623fdf/mock-4.0.3-py3-none-any.whl#sha256=122fcb64ee37cfad5b3f48d7a7d51875d7031aaf3d8be7c42e2bee25044eee62
Best match: mock 4.0.3
Processing mock-4.0.3-py3-none-any.whl
Installing mock-4.0.3-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/mock-4.0.3-py3.8.egg/EGG-INFO/requires.txt
Adding mock 4.0.3 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/mock-4.0.3-py3.8.egg
Searching for jsonschema>=3.0.2
Reading https://pypi.org/simple/jsonschema/
Downloading https://files.pythonhosted.org/packages/c5/8f/51e89ce52a085483359217bc72cdbf6e75ee595d5b1d4b5ade40c7e018b8/jsonschema-3.2.0-py2.py3-none-any.whl#sha256=4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163
Best match: jsonschema 3.2.0
Processing jsonschema-3.2.0-py2.py3-none-any.whl
Installing jsonschema-3.2.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/jsonschema-3.2.0-py3.8.egg/EGG-INFO/requires.txt
Adding jsonschema 3.2.0 to easy-install.pth file
Installing jsonschema script to /usr/bin

Installed /usr/lib/python3.8/site-packages/jsonschema-3.2.0-py3.8.egg
Searching for jira>=2.0.0
Reading https://pypi.org/simple/jira/
Downloading https://files.pythonhosted.org/packages/2f/a1/7fccf289dc9e6e661e758e78a01917bd5580ef7ce94b5c44e7a85f1b50ee/jira-3.0a2-py3-none-any.whl#sha256=e2d4b48d21dd7dd7659f9aeac22cdfbe6cdc1825747eb3a7e276b9b6e41b1e4c
Best match: jira 3.0a2
Processing jira-3.0a2-py3-none-any.whl
Installing jira-3.0a2-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/jira-3.0a2-py3.8.egg/EGG-INFO/requires.txt
Adding jira 3.0a2 to easy-install.pth file
Installing jirashell script to /usr/bin

Installed /usr/lib/python3.8/site-packages/jira-3.0a2-py3.8.egg
Searching for exotel>=0.1.3
Reading https://pypi.org/simple/exotel/
Downloading https://files.pythonhosted.org/packages/c6/68/6373dedcc7f7eadc017f9629e2f1b33393e8f740fb9c801962a3ce4dfa91/exotel-0.1.5.tar.gz#sha256=db96e4b659e514da457364c6775c075d793fa90fab9d84f43575d1a5ee846bf4
Best match: exotel 0.1.5
Processing exotel-0.1.5.tar.gz
Writing /tmp/easy_install-zgvz12p2/exotel-0.1.5/setup.cfg
Running exotel-0.1.5/setup.py -q bdist_egg --dist-dir /tmp/easy_install-zgvz12p2/exotel-0.1.5/egg-dist-tmp-miagg5rf
zip_safe flag not set; analyzing archive contents...
Moving exotel-0.1.5-py3.8.egg to /usr/lib/python3.8/site-packages
Adding exotel 0.1.5 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/exotel-0.1.5-py3.8.egg
Searching for envparse>=0.2.0
Reading https://pypi.org/simple/envparse/
Downloading https://files.pythonhosted.org/packages/2f/8d/bee8a59732c169a455627ff1557d0db180f7c352b0274480267ad3e46875/envparse-0.2.0.tar.gz#sha256=4f3b9a27bb55d27f124eb4adf006fec05e4588891c9a054a183a112645056eb7
Best match: envparse 0.2.0
Processing envparse-0.2.0.tar.gz
Writing /tmp/easy_install-u6m5y105/envparse-0.2.0/setup.cfg
Running envparse-0.2.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-u6m5y105/envparse-0.2.0/egg-dist-tmp-icn94jdr
creating /usr/lib/python3.8/site-packages/envparse-0.2.0-py3.8.egg
Extracting envparse-0.2.0-py3.8.egg to /usr/lib/python3.8/site-packages
Adding envparse 0.2.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/envparse-0.2.0-py3.8.egg
Searching for elasticsearch==7.0.0
Reading https://pypi.org/simple/elasticsearch/
Downloading https://files.pythonhosted.org/packages/a8/27/d3a9ecd9f8f972d99da98672d4766b9f62ef64c323c40bb5e2557e538ea3/elasticsearch-7.0.0-py2.py3-none-any.whl#sha256=c621f2272bb2f000d228dc7016d058a1f90f15babdc938240b9f2d13690222db
Best match: elasticsearch 7.0.0
Processing elasticsearch-7.0.0-py2.py3-none-any.whl
Installing elasticsearch-7.0.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/elasticsearch-7.0.0-py3.8.egg/EGG-INFO/requires.txt
Adding elasticsearch 7.0.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/elasticsearch-7.0.0-py3.8.egg
Searching for croniter>=0.3.16
Reading https://pypi.org/simple/croniter/
Downloading https://files.pythonhosted.org/packages/e5/6a/6dc335a1d0fc7ea691b06ca84ad7ec9a8997e1180175f3dc082d6f83c8f9/croniter-1.0.6-py2.py3-none-any.whl#sha256=eb65415b5ffe85788b545dcb3e3f1bbaa1937662936a744e48265dc00fcfc82f
Best match: croniter 1.0.6
Processing croniter-1.0.6-py2.py3-none-any.whl
Installing croniter-1.0.6-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/croniter-1.0.6-py3.8.egg/EGG-INFO/requires.txt
Adding croniter 1.0.6 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/croniter-1.0.6-py3.8.egg
Searching for configparser>=3.5.0
Reading https://pypi.org/simple/configparser/
Downloading https://files.pythonhosted.org/packages/08/b2/ef713e0e67f6e7ec7d59aea3ee78d05b39c15930057e724cc6d362a8c3bb/configparser-5.0.1-py3-none-any.whl#sha256=08e8a59ef1817ac4ed810bb8e17d049566dd6e024e7566f6285c756db2bb4ff8
Best match: configparser 5.0.1
Processing configparser-5.0.1-py3-none-any.whl
Installing configparser-5.0.1-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/configparser-5.0.1-py3.8.egg/EGG-INFO/requires.txt
Adding configparser 5.0.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/configparser-5.0.1-py3.8.egg
Searching for boto3>=1.4.4
Reading https://pypi.org/simple/boto3/
Downloading https://files.pythonhosted.org/packages/ed/bc/536d4b84b83940ce5420f92fc269e58dbb2159a247849bc606d9ba63dd64/boto3-1.17.5-py2.py3-none-any.whl#sha256=0d126d429a8a9ea2c8409a1ee36ce5a34e11db788d7730a714016264f10bbb89
Best match: boto3 1.17.5
Processing boto3-1.17.5-py2.py3-none-any.whl
Installing boto3-1.17.5-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/boto3-1.17.5-py3.8.egg/EGG-INFO/requires.txt
Adding boto3 1.17.5 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/boto3-1.17.5-py3.8.egg
Searching for blist>=1.3.6
Reading https://pypi.org/simple/blist/
Downloading https://files.pythonhosted.org/packages/6b/a8/dca5224abe81ccf8db81f8a2ca3d63e7a5fa7a86adc198d4e268c67ce884/blist-1.3.6.tar.gz#sha256=3a12c450b001bdf895b30ae818d4d6d3f1552096b8c995f0fe0c74bef04d1fc3
Best match: blist 1.3.6
Processing blist-1.3.6.tar.gz
Writing /tmp/easy_install-u_x1c5qt/blist-1.3.6/setup.cfg
Running blist-1.3.6/setup.py -q bdist_egg --dist-dir /tmp/easy_install-u_x1c5qt/blist-1.3.6/egg-dist-tmp-4mhien8l
warning: no files found matching 'blist.rst'
blist/_blist.c: In function 'sort_ulong':
blist/_blist.c:5387:31: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare]
 5387 |                 for (j = 0; j < NUM_PASSES; j++) {
      |                               ^
blist/_blist.c:5393:31: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare]
 5393 |                 for (j = 0; j < NUM_PASSES; j++) {
      |                               ^
blist/_blist.c:5403:23: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare]
 5403 |         for (j = 0; j < NUM_PASSES; j++) {
      |                       ^
creating /usr/lib/python3.8/site-packages/blist-1.3.6-py3.8-linux-x86_64.egg
Extracting blist-1.3.6-py3.8-linux-x86_64.egg to /usr/lib/python3.8/site-packages
Adding blist 1.3.6 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/blist-1.3.6-py3.8-linux-x86_64.egg
Searching for aws-requests-auth>=0.3.0
Reading https://pypi.org/simple/aws-requests-auth/
Downloading https://files.pythonhosted.org/packages/af/11/5dc8be418e1d54bed15eaf3a7461797e5ebb9e6a34869ad750561f35fa5b/aws_requests_auth-0.4.3-py2.py3-none-any.whl#sha256=646bc37d62140ea1c709d20148f5d43197e6bd2d63909eb36fa4bb2345759977
Best match: aws-requests-auth 0.4.3
Processing aws_requests_auth-0.4.3-py2.py3-none-any.whl
Installing aws_requests_auth-0.4.3-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/aws_requests_auth-0.4.3-py3.8.egg/EGG-INFO/requires.txt
Adding aws-requests-auth 0.4.3 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/aws_requests_auth-0.4.3-py3.8.egg
Searching for apscheduler>=3.3.0
Reading https://pypi.org/simple/apscheduler/
Downloading https://files.pythonhosted.org/packages/5d/e9/b5e4f7aaea076bbfb241b04824c63cd42fe8029358103c27375e690bddc0/APScheduler-3.7.0-py2.py3-none-any.whl#sha256=c06cc796d5bb9eb3c4f77727f6223476eb67749e7eea074d1587550702a7fbe3
Best match: APScheduler 3.7.0
Processing APScheduler-3.7.0-py2.py3-none-any.whl
Installing APScheduler-3.7.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/APScheduler-3.7.0-py3.8.egg/EGG-INFO/requires.txt
Adding APScheduler 3.7.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/APScheduler-3.7.0-py3.8.egg
Searching for pycparser
Reading https://pypi.org/simple/pycparser/
Downloading https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl#sha256=7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705
Best match: pycparser 2.20
Processing pycparser-2.20-py2.py3-none-any.whl
Installing pycparser-2.20-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding pycparser 2.20 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/pycparser-2.20-py3.8.egg
Searching for pysocks
Reading https://pypi.org/simple/pysocks/
Downloading https://files.pythonhosted.org/packages/8d/59/b4572118e098ac8e46e399a1dd0f2d85403ce8bbaad9ec79373ed6badaf9/PySocks-1.7.1-py3-none-any.whl#sha256=2725bd0a9925919b9b51739eea5f9e2bae91e83288108a9ad338b2e3a4435ee5
Best match: PySocks 1.7.1
Processing PySocks-1.7.1-py3-none-any.whl
Installing PySocks-1.7.1-py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding PySocks 1.7.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/PySocks-1.7.1-py3.8.egg
Searching for PyJWT>=1.4.2
Reading https://pypi.org/simple/PyJWT/
Downloading https://files.pythonhosted.org/packages/b4/9b/8850f99027ed029af6828199cc87179eaccbbf1f9e6e373e7f0177d32dad/PyJWT-2.0.1-py3-none-any.whl#sha256=b70b15f89dc69b993d8a8d32c299032d5355c82f9b5b7e851d1a6d706dffe847
Best match: PyJWT 2.0.1
Processing PyJWT-2.0.1-py3-none-any.whl
Installing PyJWT-2.0.1-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/PyJWT-2.0.1-py3.8.egg/EGG-INFO/requires.txt
Adding PyJWT 2.0.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/PyJWT-2.0.1-py3.8.egg
Searching for pytz
Reading https://pypi.org/simple/pytz/
Downloading https://files.pythonhosted.org/packages/70/94/784178ca5dd892a98f113cdd923372024dc04b8d40abe77ca76b5fb90ca6/pytz-2021.1-py2.py3-none-any.whl#sha256=eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798
Best match: pytz 2021.1
Processing pytz-2021.1-py2.py3-none-any.whl
Installing pytz-2021.1-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding pytz 2021.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/pytz-2021.1-py3.8.egg
Searching for six
Reading https://pypi.org/simple/six/
Downloading https://files.pythonhosted.org/packages/ee/ff/48bde5c0f013094d729fe4b0316ba2a24774b3ff1c52d924a8a4cb04078a/six-1.15.0-py2.py3-none-any.whl#sha256=8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced
Best match: six 1.15.0
Processing six-1.15.0-py2.py3-none-any.whl
Installing six-1.15.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding six 1.15.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/six-1.15.0-py3.8.egg
Searching for docopt<0.7.0,>=0.6.2
Reading https://pypi.org/simple/docopt/
Downloading https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz#sha256=49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491
Best match: docopt 0.6.2
Processing docopt-0.6.2.tar.gz
Writing /tmp/easy_install-9emlgwna/docopt-0.6.2/setup.cfg
Running docopt-0.6.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-9emlgwna/docopt-0.6.2/egg-dist-tmp-5hwepdqb
zip_safe flag not set; analyzing archive contents...
Moving docopt-0.6.2-py3.8.egg to /usr/lib/python3.8/site-packages
Adding docopt 0.6.2 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/docopt-0.6.2-py3.8.egg
Searching for urllib3<1.27,>=1.21.1
Reading https://pypi.org/simple/urllib3/
Downloading https://files.pythonhosted.org/packages/23/fc/8a49991f7905261f9ca9df5aa9b58363c3c821ce3e7f671895442b7100f2/urllib3-1.26.3-py2.py3-none-any.whl#sha256=1b465e494e3e0d8939b50680403e3aedaa2bc434b7d5af64dfd3c958d7f5ae80
Best match: urllib3 1.26.3
Processing urllib3-1.26.3-py2.py3-none-any.whl
Installing urllib3-1.26.3-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/urllib3-1.26.3-py3.8.egg/EGG-INFO/requires.txt
Adding urllib3 1.26.3 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/urllib3-1.26.3-py3.8.egg
Searching for idna<3,>=2.5
Reading https://pypi.org/simple/idna/
Downloading https://files.pythonhosted.org/packages/a2/38/928ddce2273eaa564f6f50de919327bf3a00f091b5baba8dfa9460f3a8a8/idna-2.10-py2.py3-none-any.whl#sha256=b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0
Best match: idna 2.10
Processing idna-2.10-py2.py3-none-any.whl
Installing idna-2.10-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding idna 2.10 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/idna-2.10-py3.8.egg
Searching for chardet<5,>=3.0.2
Reading https://pypi.org/simple/chardet/
Downloading https://files.pythonhosted.org/packages/19/c7/fa589626997dd07bd87d9269342ccb74b1720384a4d739a1872bd84fbe68/chardet-4.0.0-py2.py3-none-any.whl#sha256=f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5
Best match: chardet 4.0.0
Processing chardet-4.0.0-py2.py3-none-any.whl
Installing chardet-4.0.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding chardet 4.0.0 to easy-install.pth file
Installing chardetect script to /usr/bin

Installed /usr/lib/python3.8/site-packages/chardet-4.0.0-py3.8.egg
Searching for certifi>=2017.4.17
Reading https://pypi.org/simple/certifi/
Downloading https://files.pythonhosted.org/packages/5e/a0/5f06e1e1d463903cf0c0eebeb751791119ed7a4b3737fdc9a77f1cdfb51f/certifi-2020.12.5-py2.py3-none-any.whl#sha256=719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830
Best match: certifi 2020.12.5
Processing certifi-2020.12.5-py2.py3-none-any.whl
Installing certifi-2020.12.5-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding certifi 2020.12.5 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/certifi-2020.12.5-py3.8.egg
Searching for pyrsistent>=0.14.0
Reading https://pypi.org/simple/pyrsistent/
Downloading https://files.pythonhosted.org/packages/4d/70/fd441df751ba8b620e03fd2d2d9ca902103119616f0f6cc42e6405035062/pyrsistent-0.17.3.tar.gz#sha256=2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e
Best match: pyrsistent 0.17.3
Processing pyrsistent-0.17.3.tar.gz
Writing /tmp/easy_install-xsle94xl/pyrsistent-0.17.3/setup.cfg
Running pyrsistent-0.17.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-xsle94xl/pyrsistent-0.17.3/egg-dist-tmp-6qcdx5mp
pvectorcmodule.c: In function 'nodeFor':
pvectorcmodule.c:152:21: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
  152 |   if((i >= 0) && (i < self->count)) {
      |                     ^
pvectorcmodule.c:153:10: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
  153 |     if(i >= TAIL_OFF(self)) {
      |          ^~
pvectorcmodule.c: In function 'PVector_repeat':
pvectorcmodule.c:428:17: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare]
  428 |       for(j=0; j<self->count; j++) {
      |                 ^
pvectorcmodule.c: In function 'extendWithItem':
pvectorcmodule.c:145:52: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
  145 | #define ROOT_NODE_FULL(vec) ((vec->count >> SHIFT) > (1 << vec->shift))
      |                                                    ^
pvectorcmodule.c:769:8: note: in expansion of macro 'ROOT_NODE_FULL'
  769 |     if(ROOT_NODE_FULL(newVec)) {
      |        ^~~~~~~~~~~~~~
pvectorcmodule.c: In function 'PVector_append':
pvectorcmodule.c:145:52: warning: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Wsign-compare]
  145 | #define ROOT_NODE_FULL(vec) ((vec->count >> SHIFT) > (1 << vec->shift))
      |                                                    ^
pvectorcmodule.c:919:6: note: in expansion of macro 'ROOT_NODE_FULL'
  919 |   if(ROOT_NODE_FULL(self)) {
      |      ^~~~~~~~~~~~~~
/usr/lib/python3.8/distutils/dist.py:274: UserWarning: Unknown distribution option: 'license_files'
  warnings.warn(msg)
zip_safe flag not set; analyzing archive contents...
__pycache__.pvectorc.cpython-38: module references __file__
creating /usr/lib/python3.8/site-packages/pyrsistent-0.17.3-py3.8-linux-x86_64.egg
Extracting pyrsistent-0.17.3-py3.8-linux-x86_64.egg to /usr/lib/python3.8/site-packages
Adding pyrsistent 0.17.3 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/pyrsistent-0.17.3-py3.8-linux-x86_64.egg
Searching for attrs>=17.4.0
Reading https://pypi.org/simple/attrs/
Downloading https://files.pythonhosted.org/packages/c3/aa/cb45262569fcc047bf070b5de61813724d6726db83259222cd7b4c79821a/attrs-20.3.0-py2.py3-none-any.whl#sha256=31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6
Best match: attrs 20.3.0
Processing attrs-20.3.0-py2.py3-none-any.whl
Installing attrs-20.3.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/attrs-20.3.0-py3.8.egg/EGG-INFO/requires.txt
Adding attrs 20.3.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/attrs-20.3.0-py3.8.egg
Searching for requests-toolbelt
Reading https://pypi.org/simple/requests-toolbelt/
Downloading https://files.pythonhosted.org/packages/60/ef/7681134338fc097acef8d9b2f8abe0458e4d87559c689a8c306d0957ece5/requests_toolbelt-0.9.1-py2.py3-none-any.whl#sha256=380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f
Best match: requests-toolbelt 0.9.1
Processing requests_toolbelt-0.9.1-py2.py3-none-any.whl
Installing requests_toolbelt-0.9.1-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/requests_toolbelt-0.9.1-py3.8.egg/EGG-INFO/requires.txt
Adding requests-toolbelt 0.9.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/requests_toolbelt-0.9.1-py3.8.egg
Searching for requests-oauthlib>=1.1.0
Reading https://pypi.org/simple/requests-oauthlib/
Downloading https://files.pythonhosted.org/packages/a3/12/b92740d845ab62ea4edf04d2f4164d82532b5a0b03836d4d4e71c6f3d379/requests_oauthlib-1.3.0-py2.py3-none-any.whl#sha256=7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d
Best match: requests-oauthlib 1.3.0
Processing requests_oauthlib-1.3.0-py2.py3-none-any.whl
Installing requests_oauthlib-1.3.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/requests_oauthlib-1.3.0-py3.8.egg/EGG-INFO/requires.txt
Adding requests-oauthlib 1.3.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/requests_oauthlib-1.3.0-py3.8.egg
Searching for keyring
Reading https://pypi.org/simple/keyring/
Downloading https://files.pythonhosted.org/packages/96/17/86e1e5b50dc14e5984a661dde2ed3b7f05efe1fdee32145a77708cf06904/keyring-22.0.1-py3-none-any.whl#sha256=9f44660a5d4931bdc14c08a1d01ef30b18a7a8147380710d8c9f9531e1f6c3c0
Best match: keyring 22.0.1
Processing keyring-22.0.1-py3-none-any.whl
Installing keyring-22.0.1-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/keyring-22.0.1-py3.8.egg/EGG-INFO/requires.txt
Adding keyring 22.0.1 to easy-install.pth file
Installing keyring script to /usr/bin

Installed /usr/lib/python3.8/site-packages/keyring-22.0.1-py3.8.egg
Searching for defusedxml
Reading https://pypi.org/simple/defusedxml/
Downloading https://files.pythonhosted.org/packages/30/b7/84b057e7437171d18c742d762cd42f44430624ddb459c9c02ab80295460d/defusedxml-0.7.0rc2-py2.py3-none-any.whl#sha256=a034ed41d090f2348e4ac209fb3796b54728f7bf5ba326b2c5c599c293c80659
Best match: defusedxml 0.7.0rc2
Processing defusedxml-0.7.0rc2-py2.py3-none-any.whl
Installing defusedxml-0.7.0rc2-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding defusedxml 0.7.0rc2 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/defusedxml-0.7.0rc2-py3.8.egg
Searching for natsort
Reading https://pypi.org/simple/natsort/
Downloading https://files.pythonhosted.org/packages/63/23/8b6acd2e9c0b427802dd45aacf0b2a0250893c3b26c7b1340589a588cc2a/natsort-7.1.1-py3-none-any.whl#sha256=d0f4fc06ca163fa4a5ef638d9bf111c67f65eedcc7920f98dec08e489045b67e
Best match: natsort 7.1.1
Processing natsort-7.1.1-py3-none-any.whl
Installing natsort-7.1.1-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/natsort-7.1.1-py3.8.egg/EGG-INFO/requires.txt
Adding natsort 7.1.1 to easy-install.pth file
Installing natsort script to /usr/bin

Installed /usr/lib/python3.8/site-packages/natsort-7.1.1-py3.8.egg
Searching for future
Reading https://pypi.org/simple/future/
Downloading https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz#sha256=b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d
Best match: future 0.18.2
Processing future-0.18.2.tar.gz
Writing /tmp/easy_install-pu1sohgc/future-0.18.2/setup.cfg
Running future-0.18.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-pu1sohgc/future-0.18.2/egg-dist-tmp-ibd57qx0
warning: no files found matching '*.au' under directory 'tests'
warning: no files found matching '*.gif' under directory 'tests'
warning: no files found matching '*.txt' under directory 'tests'
zip_safe flag not set; analyzing archive contents...
future.backports.test.__pycache__.ssl_servers.cpython-38: module references __file__
future.backports.test.__pycache__.support.cpython-38: module references __file__
future.standard_library.__pycache__.__init__.cpython-38: module references __file__
future.standard_library.__pycache__.__init__.cpython-38: module references __path__
future.utils.__pycache__.__init__.cpython-38: module MAY be using inspect.stack
past.builtins.__pycache__.misc.cpython-38: module MAY be using inspect.stack
past.translation.__pycache__.__init__.cpython-38: module references __file__
past.translation.__pycache__.__init__.cpython-38: module references __path__
creating /usr/lib/python3.8/site-packages/future-0.18.2-py3.8.egg
Extracting future-0.18.2-py3.8.egg to /usr/lib/python3.8/site-packages
Adding future 0.18.2 to easy-install.pth file
Installing futurize script to /usr/bin
Installing pasteurize script to /usr/bin

Installed /usr/lib/python3.8/site-packages/future-0.18.2-py3.8.egg
Searching for s3transfer<0.4.0,>=0.3.0
Reading https://pypi.org/simple/s3transfer/
Downloading https://files.pythonhosted.org/packages/ea/43/4b4a1b26eb03a429a4c37ca7fdf369d938bd60018fc194e94b8379b0c77c/s3transfer-0.3.4-py2.py3-none-any.whl#sha256=1e28620e5b444652ed752cf87c7e0cb15b0e578972568c6609f0f18212f259ed
Best match: s3transfer 0.3.4
Processing s3transfer-0.3.4-py2.py3-none-any.whl
Installing s3transfer-0.3.4-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/s3transfer-0.3.4-py3.8.egg/EGG-INFO/requires.txt
Adding s3transfer 0.3.4 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/s3transfer-0.3.4-py3.8.egg
Searching for jmespath<1.0.0,>=0.7.1
Reading https://pypi.org/simple/jmespath/
Downloading https://files.pythonhosted.org/packages/07/cb/5f001272b6faeb23c1c9e0acc04d48eaaf5c862c17709d20e3469c6e0139/jmespath-0.10.0-py2.py3-none-any.whl#sha256=cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f
Best match: jmespath 0.10.0
Processing jmespath-0.10.0-py2.py3-none-any.whl
Installing jmespath-0.10.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
Adding jmespath 0.10.0 to easy-install.pth file
Installing jp.py script to /usr/bin

Installed /usr/lib/python3.8/site-packages/jmespath-0.10.0-py3.8.egg
Searching for botocore<1.21.0,>=1.20.5
Reading https://pypi.org/simple/botocore/
Downloading https://files.pythonhosted.org/packages/5f/9a/9b453ac4c894906b956f1bf89a4e4ce541226cd177881848d03d38d83972/botocore-1.20.5-py2.py3-none-any.whl#sha256=3c55f0db5e08920727f4fa24a87aed60060643f4b0b5665c62ec762f79e82d6b
Best match: botocore 1.20.5
Processing botocore-1.20.5-py2.py3-none-any.whl
Installing botocore-1.20.5-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/botocore-1.20.5-py3.8.egg/EGG-INFO/requires.txt
Adding botocore 1.20.5 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/botocore-1.20.5-py3.8.egg
Searching for tzlocal~=2.0
Reading https://pypi.org/simple/tzlocal/
Downloading https://files.pythonhosted.org/packages/5d/94/d47b0fd5988e6b7059de05720a646a2930920fff247a826f61674d436ba4/tzlocal-2.1-py2.py3-none-any.whl#sha256=e2cb6c6b5b604af38597403e9852872d7f534962ae2954c7f35efcb1ccacf4a4
Best match: tzlocal 2.1
Processing tzlocal-2.1-py2.py3-none-any.whl
Installing tzlocal-2.1-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/tzlocal-2.1-py3.8.egg/EGG-INFO/requires.txt
Adding tzlocal 2.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/tzlocal-2.1-py3.8.egg
Searching for oauthlib>=3.0.0
Reading https://pypi.org/simple/oauthlib/
Downloading https://files.pythonhosted.org/packages/05/57/ce2e7a8fa7c0afb54a0581b14a65b56e62b5759dbc98e80627142b8a3704/oauthlib-3.1.0-py2.py3-none-any.whl#sha256=df884cd6cbe20e32633f1db1072e9356f53638e4361bef4e8b03c9127c9328ea
Best match: oauthlib 3.1.0
Processing oauthlib-3.1.0-py2.py3-none-any.whl
Installing oauthlib-3.1.0-py2.py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/oauthlib-3.1.0-py3.8.egg/EGG-INFO/requires.txt
Adding oauthlib 3.1.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/oauthlib-3.1.0-py3.8.egg
Searching for jeepney>=0.4.2
Reading https://pypi.org/simple/jeepney/
Downloading https://files.pythonhosted.org/packages/51/b0/a6ea72741aaac3f37fb96d195e4ee576a103c4c04e279bc6b446a70960e1/jeepney-0.6.0-py3-none-any.whl#sha256=aec56c0eb1691a841795111e184e13cad504f7703b9a64f63020816afa79a8ae
Best match: jeepney 0.6.0
Processing jeepney-0.6.0-py3-none-any.whl
Installing jeepney-0.6.0-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/jeepney-0.6.0-py3.8.egg/EGG-INFO/requires.txt
Adding jeepney 0.6.0 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/jeepney-0.6.0-py3.8.egg
Searching for SecretStorage>=3.2
Reading https://pypi.org/simple/SecretStorage/
Downloading https://files.pythonhosted.org/packages/d9/1e/29cd69fdac7391aa51510dfd42aa70b4e6a826c8cd019ee2a8ab9ec0777f/SecretStorage-3.3.1-py3-none-any.whl#sha256=422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f
Best match: SecretStorage 3.3.1
Processing SecretStorage-3.3.1-py3-none-any.whl
Installing SecretStorage-3.3.1-py3-none-any.whl to /usr/lib/python3.8/site-packages
writing requirements to /usr/lib/python3.8/site-packages/SecretStorage-3.3.1-py3.8.egg/EGG-INFO/requires.txt
Adding SecretStorage 3.3.1 to easy-install.pth file

Installed /usr/lib/python3.8/site-packages/SecretStorage-3.3.1-py3.8.egg
Searching for cryptography>=2.0
Reading https://pypi.org/simple/cryptography/
Downloading https://files.pythonhosted.org/packages/27/5a/007acee0243186123a55423d49cbb5c15cb02d76dd1b6a27659a894b13a2/cryptography-3.4.4.tar.gz#sha256=ee5e19f0856b6fbbdbab15c2787ca65d203801d2d65d0b8de6218f424206c848
Best match: cryptography 3.4.4
Processing cryptography-3.4.4.tar.gz
Writing /tmp/easy_install-d3kd2sa6/cryptography-3.4.4/setup.cfg
Running cryptography-3.4.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-d3kd2sa6/cryptography-3.4.4/egg-dist-tmp-eebl44u8

        =============================DEBUG ASSISTANCE==========================
        If you are seeing an error here please try the following to
        successfully install cryptography:

        Upgrade to the latest pip and try again. This will fix errors for most
        users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
        =============================DEBUG ASSISTANCE==========================
        
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 154, in save_modules
    yield saved
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 250, in run_setup
    _execfile(setup_script, ns)
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 45, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-d3kd2sa6/cryptography-3.4.4/setup.py", line 14, in <module>
    author_email='[email protected]',
ModuleNotFoundError: No module named 'setuptools_rust'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "setup.py", line 9, in <module>
    setup(
  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.8/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.8/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.8/site-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "/usr/lib/python3.8/site-packages/setuptools/command/install.py", line 117, in do_egg_install
    cmd.run()
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 418, in run
    self.easy_install(spec, not self.no_deps)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 660, in easy_install
    return self.install_item(None, spec, tmpdir, deps, True)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 707, in install_item
    self.process_distribution(spec, dist, deps)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 751, in process_distribution
    distros = WorkingSet([]).resolve(
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 780, in resolve
    dist = best[req.key] = env.best_match(
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1065, in best_match
    return self.obtain(req, installer)
  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1077, in obtain
    return installer(requirement)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 679, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 705, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 890, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 1158, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/usr/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 1144, in run_setup
    run_setup(setup_script, args)
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 253, in run_setup
    raise
  File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/usr/lib/python3.8/contextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 166, in save_modules
    saved_exc.resume()
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 141, in resume
    six.reraise(type, exc, self._tb)
  File "/usr/lib/python3.8/site-packages/setuptools/_vendor/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 154, in save_modules
    yield saved
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 250, in run_setup
    _execfile(setup_script, ns)
  File "/usr/lib/python3.8/site-packages/setuptools/sandbox.py", line 45, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-d3kd2sa6/cryptography-3.4.4/setup.py", line 14, in <module>
    author_email='[email protected]',
ModuleNotFoundError: No module named 'setuptools_rust'
The command '/bin/sh -c python3 setup.py install' returned a non-zero code: 1

@Karql
Copy link
Author

Karql commented Feb 11, 2021

The problem is with new cryptography lib (pyca/cryptography#5771)
I've made change to stick with version 2.*

Try now.

@nsano-rururu
Copy link

I have confirmed that the problem has been resolved.

@nsano-rururu
Copy link

Cryptography seems to be okay up to 3.3. The issue says alpine: 3.13 and installs rust and cargo. The docker image of node seems to be up to alpine: 3.12 so far, so I understood that it is correct to avoid the problem by installing the version before 3.0 or the version before 3.4 like this time.
No module named 'setuptools_rust' with cryptography==3.4

@nsano-rururu
Copy link

nsano-rururu commented Feb 11, 2021

npm WARN deprecated [email protected]: This module is no longer maintained, try this instead:
npm WARN deprecated   npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated [email protected]: 🙌  Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated [email protected]: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated [email protected]: Please use the native JSON object instead of JSON 3
npm WARN deprecated [email protected]: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated [email protected]: This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).
npm WARN deprecated [email protected]: This module has moved and is now available at @hapi/topo. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated [email protected]: This module has moved and is now available at @hapi/hoek. Please update your dependencies as this version is no longer maintained an may contain bugs and security issues.
npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor.
npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated

Babel Upgrade (6 → 7)

sudo npm i -g babel-upgrade
babel-upgrade --write --install

index.js

require('babel-register'); → require('@babel/register');

require('@babel/register');
require('src');

package.json

Library Update

{
  "name": "@bitsensor/elastalert",
  "version": "3.0.0-beta.0",
  "description": "A server that runs ElastAlert and exposes REST API's for manipulating rules and alerts.",
  "license": "MIT",
  "main": "index.js",
  "author": {
    "name": "BitSensor",
    "url": "https://bitsensor.io",
    "email": "[email protected]"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/bitsensor/elastalert.git"
  },
  "directories": {
    "lib": "./lib",
    "test": "./test"
  },
  "dependencies": {
    "@babel/cli": "^7.12.13",
    "@babel/core": "^7.12.13",
    "@babel/preset-env": "^7.12.13",
    "@babel/register": "^7.12.13",
    "body-parser": "^1.19.0",
    "bunyan": "^1.8.15",
    "cors": "^2.8.5",
    "elasticsearch": "^16.7.2",
    "express": "^4.17.1",
    "fs-extra": "^9.1.0",
    "joi": "^17.4.0",
    "lodash": "^4.17.20",
    "mkdirp": "^1.0.4",
    "object-resolve-path": "^1.1.1",
    "randomstring": "^1.1.5",
    "raven": "^2.6.4",
    "request": "^2.88.2",
    "request-promise-native": "^1.0.9",
    "tar": "^6.1.0",
    "ws": "^7.4.3"
  },
  "devDependencies": {
    "eslint": "^7.19.0",
    "husky": "^5.0.9",
    "istanbul": "^0.4.4",
    "mocha": "~8.2.1"
  },
  "scripts": {
    "build": "babel src -d lib",
    "start": "sh ./scripts/start.sh",
    "test": "./scripts/test.sh",
    "update-authors": "./scripts/update-authors.sh",
    "precommit": "./node_modules/eslint/bin/eslint.js ."
  }
}

src/common/config/server_config.js

  • delete 「import Joi from 'joi';」
  • edit

before

this._jsonConfig = Joi.validate(jsonConfig, schema).value; 

after

this._jsonConfig = schema.validate(JSON.parse(jsonConfig)).value;

src/common/file_system.js

  • delete 「import mkdirp from 'mkdirp';」
  • edit

before

mkdirp(pathToFolder, function (error) {

after

fs.mkdir(pathToFolder, { recursive: true }, function (error) {

src/controllers/rules/index.js

  • delete 「import mkdirp from 'mkdirp';」
  • edit

before

mkdirp(fullPath, function(error) {

after

fs.mkdir(fullPath, { recursive: true }, function(error) {

src/controllers/templates/index.js

  • delete 「import mkdirp from 'mkdirp';」
  • add「import fs from 'fs';」
  • edit

before

mkdirp(fullPath, function (error) {

after

fs.mkdir(fullPath, { recursive: true }, function (error) {

src/handlers/test/post.js

before

const validationResult = Joi.validate(request.body.options, optionsSchema);

after

const validationResult = optionsSchema.validate(request.body.options);

Makefile

before

v ?= v0.2.0b2

all: build

build:
	docker pull alpine:latest && docker pull node:alpine
	docker build --build-arg ELASTALERT_VERSION=$(v) -t elastalert .

server: build
	docker run -it --rm -p 3030:3030  \
	--net="host" \
	elastalert:latest

.PHONY: build

after

v ?= v0.2.4

all: build

build:
	docker pull alpine:3.13 && docker pull node:14-alpine
	docker build --build-arg ELASTALERT_VERSION=$(v) -t elastalert .

server: build
	docker run -it --rm -p 3030:3030 -p 3333:3333 \
	--net="host" \
	elastalert:latest

.PHONY: build

@Karql
Copy link
Author

Karql commented Feb 11, 2021

There was a resone for using 3.11 version - don't remember why now.
Probably issues with newer version of python.

cryptography 2.9.2 was the latest version when i've made changes to Dockerfile so now I stick to this version.

image

You can always made your own version and use the latest stuff if you want.

@nsano-rururu
Copy link

cryptography 2.9.2 was the latest version when i've made changes to Dockerfile so now I stick to this version.

The latest cryptography is 3.4.4.

キャプチャ

@nsano-rururu
Copy link

I found that the following method works.

  • alpine:3.11 to alpine:3.13
FROM alpine:3.13 as py-ea
  • add「rust carge」
RUN apk add --update --no-cache ca-certificates openssl-dev openssl python3-dev python3 py3-pip py3-yaml libffi-dev gcc musl-dev wget rust cargo && \
  • comment out
# stick to the last 2.* version (problem with Rust dependency: https://github.com/pyca/cryptography/issues/5771)
#RUN sed -i "s/install_requires=\[/install_requires=\[\n        'cryptography<3.0'/" setup.py
  • add setup_rust install
RUN python3 -m pip install setuptools-rust

Dockerfile

FROM alpine:3.13 as py-ea
ARG ELASTALERT_VERSION=v0.2.4
ENV ELASTALERT_VERSION=${ELASTALERT_VERSION}
# URL from which to download Elastalert.
ARG ELASTALERT_URL=https://github.com/Yelp/elastalert/archive/$ELASTALERT_VERSION.zip
ENV ELASTALERT_URL=${ELASTALERT_URL}
# Elastalert home directory full path.
ENV ELASTALERT_HOME /opt/elastalert

WORKDIR /opt

RUN apk add --update --no-cache ca-certificates openssl-dev openssl python3-dev python3 py3-pip py3-yaml libffi-dev gcc musl-dev wget rust cargo && \
# Download and unpack Elastalert.
    wget -O elastalert.zip "${ELASTALERT_URL}" && \
    unzip elastalert.zip && \
    rm elastalert.zip && \
    mv e* "${ELASTALERT_HOME}"

WORKDIR "${ELASTALERT_HOME}"

# stick to the last 2.* version (problem with Rust dependency: https://github.com/pyca/cryptography/issues/5771)
#RUN sed -i "s/install_requires=\[/install_requires=\[\n        'cryptography<3.0'/" setup.py

RUN python3 -m pip install setuptools-rust

# Install Elastalert.
RUN python3 setup.py install

FROM node:14-alpine
LABEL maintainer="BitSensor <[email protected]>"
# Set timezone for this container
ENV TZ Etc/UTC

RUN apk add --update --no-cache curl tzdata python3 make libmagic && \
    ln -s /usr/bin/python3 /usr/bin/python

COPY --from=py-ea /usr/lib/python3.8/site-packages /usr/lib/python3.8/site-packages
COPY --from=py-ea /opt/elastalert /opt/elastalert
COPY --from=py-ea /usr/bin/elastalert* /usr/bin/

WORKDIR /opt/elastalert-server
COPY . /opt/elastalert-server

RUN npm install --production --quiet
COPY config/elastalert.yaml /opt/elastalert/config.yaml
COPY config/elastalert-test.yaml /opt/elastalert/config-test.yaml
COPY config/config.json config/config.json
COPY rule_templates/ /opt/elastalert/rule_templates
COPY elastalert_modules/ /opt/elastalert/elastalert_modules

# Add default rules directory
# Set permission as unpriviledged user (1000:1000), compatible with Kubernetes
RUN mkdir -p /opt/elastalert/rules/ /opt/elastalert/server_data/tests/ \
    && chown -R node:node /opt

USER node

EXPOSE 3030
ENTRYPOINT ["npm", "start"]

@Karql
Copy link
Author

Karql commented Feb 11, 2021

i've made changes to Dockerfile

Means when I created this PR
image

Ok I remembered - python version was other problem: #122 (comment)

alpine:3.11 was also the latest version then.
I like to specify version to avoid problems in futures like this one (something that build now wont build one monthe later etc.).

I checked now:

  • change alpine:3.11 -> alpine:3.13
  • change elastaalert to latest version 1dc4f30f30d39a689f419ce19c7e2e4d67a50be3
  • add cargo to apk add
  • add RUN pip3 install --upgrade pip
  • add RUN pip3 install cryptography

It is build successfuly but don't try does it works correctly.
You can check it here: Karql/elastalert2-server@874df91

@nsano-rururu
Copy link

nsano-rururu commented Feb 11, 2021

It is build successfuly but don't try does it works correctly.
You can check it here: Karql@874df91

I just confirmed that the docker image was created successfully.

alpine: 3.11・・・rust 1.39.0-r0
alpine: 3.12・・・rust 1.44.0-r0
alpine: 3.13・・・rust 1.47.0-r2

alpine: By setting 3.13, I was able to clear the condition of rust> = 1.45, so I found that no error occurred.

  error: Rust 1.44.0 does not match extension requirement >=1.45.0
  ----------------------------------------
  ERROR: Failed building wheel for cryptography

@Karql Karql closed this Mar 15, 2021
@Karql Karql deleted the update-elastalert branch March 15, 2021 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants