Giter VIP home page Giter VIP logo

iris-relay's Introduction

Build Status License

Iris relay

Stateless reverse proxy for thirdparty service integration with Iris API.

Setup dev environment

  1. create & source your virtualenv
  2. run python setup.py develop
  3. run pip install -r dev_requirements.txt
  4. edit ./configs/config.dev.yaml to setup API credential and other settings

Tests

Run tests:

make unit  # unit tests
make e2e  # e2e tests
make test  # all tests, e2e + unit

NOTE: e2e tests requires a running API instance. You can tweak the api host, port and key setting in configs/config.dev.yaml.

Generate test coverage reports:

make e2e-cov
make unit-cov

iris-relay's People

Contributors

allwyn-pradip avatar arunsathiya avatar c-raj avatar colinxy avatar cshelke52889 avatar dependabot[bot] avatar diegocepedaw avatar dwang159 avatar fellyns avatar houqp avatar jrgp avatar jwon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iris-relay's Issues

Incoming PRs, but iris-relay no longer compiles

Hi,

I'm about to send in about 6-10 patches via PRs for Oncall and Iris to fix OWA sync, add pushover.net support, include SSL support in SMTP, add a Microsoft Teams compatible endpoint, include incident creation from inbound support emails, etc.

However, for the life of me I can't get iris-relay to compile. I've followed the Dockerfile, no luck. I've rebuilt on newer versions of Ubuntu, no luck. My only guess is that it only runs on a version of Python 2.x that simply isn't available anymore. The error I hit now, after manually including pathlib and other required updates to the commands in the Dockerfile is:

Traceback (most recent call last):
  File "/home/iris/setup.py", line 53, in <module>
    'iris-relay-dev = iris_relay.bin.run_server:main'
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/__init__.py", line 162, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/install.py", line 117, in do_egg_install
    cmd.run(show_deprecation=False)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 424, in run
    self.easy_install(spec, not self.no_deps)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 666, in easy_install
    return self.install_item(None, spec, tmpdir, deps, True)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 713, in install_item
    self.process_distribution(spec, dist, deps)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 758, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "/home/iris/env/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 774, in resolve
    replace_conflicting=replace_conflicting
  File "/home/iris/env/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1057, in best_match
    return self.obtain(req, installer)
  File "/home/iris/env/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1069, in obtain
    return installer(requirement)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 685, in easy_install
    return self.install_item(spec, dist.location, tmpdir, deps)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 711, in install_item
    dists = self.install_eggs(spec, download, tmpdir)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 896, in install_eggs
    return self.build_and_install(setup_script, setup_base)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1164, in build_and_install
    self.run_setup(setup_script, setup_base, args)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/command/easy_install.py", line 1150, in run_setup
    run_setup(setup_script, args)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 253, in run_setup
    raise
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/usr/lib/python2.7/contextlib.py", line 35, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 166, in save_modules
    saved_exc.resume()
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 141, in resume
    six.reraise(type, exc, self._tb)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 154, in save_modules
    yield saved
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 195, in setup_context
    yield
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 250, in run_setup
    _execfile(setup_script, ns)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/sandbox.py", line 45, in _execfile
    exec(code, globals, locals)
  File "/tmp/easy_install-2NyUop/PyJWT-2.3.0/setup.py", line 5, in <module>
    import setuptools
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/__init__.py", line 162, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python2.7/distutils/core.py", line 124, in setup
    dist.parse_config_files()
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/dist.py", line 702, in parse_config_files
    ignore_option_errors=ignore_option_errors)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/config.py", line 121, in parse_configuration
    meta.parse()
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/config.py", line 426, in parse
    section_parser_method(section_options)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/config.py", line 399, in parse_section
    self[name] = value
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/config.py", line 184, in __setitem__
    value = parser(value)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/config.py", line 515, in _parse_version
    version = self._parse_attr(value, self.package_dir)
  File "/home/iris/env/local/lib/python2.7/site-packages/setuptools/config.py", line 350, in _parse_attr
    value = getattr(module, attr_name)
AttributeError: 'module' object has no attribute '__version__'

Current Dockerfile I'm testing with (same results with 16.04):

FROM ubuntu:18.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    && apt-get -y install python-pip uwsgi virtualenv sudo python-dev libyaml-dev \
       libsasl2-dev libldap2-dev nginx uwsgi-plugin-python libssl-dev libffi-dev  \
    && rm -rf /var/cache/apt/archives/*

RUN useradd -m -s /bin/bash iris

ADD docker/daemons /home/iris/daemons
ADD src /home/iris/src
ADD setup.py /home/iris/setup.py
ADD README.md /home/iris
WORKDIR /home/iris

RUN chown -R iris:iris /home/iris /var/log/nginx /var/lib/nginx \
    && sudo -Hu iris mkdir -p /home/iris/var/log/uwsgi /home/iris/var/log/nginx /home/iris/var/run /home/iris/var/relay \
    && sudo -Hu iris virtualenv /home/iris/env \
    && sudo -Hu iris /bin/bash -c 'source /home/iris/env/bin/activate && pip install pathlib && python /home/iris/setup.py install'

EXPOSE 16648

# uwsgi runs nginx. see uwsgi.yaml for details
CMD ["/usr/bin/uwsgi", "--yaml", "/home/iris/daemons/uwsgi.yaml:prod"]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.