Giter Club home page Giter Club logo

Comments (8)

frozencemetery avatar frozencemetery commented on August 15, 2024

Hi, thanks for your interest!

What Kerberos implementation are you using here? The infrastructure only supports MIT. Maybe we should add a note about that...

from gssapi-console.

atodorov avatar atodorov commented on August 15, 2024

Yes, I have MIT Kerberos.

I did a setup.py install inside my virtualenv and it worked so I think the problem is with the entry_points but not sure what exactly.

from gssapi-console.

atodorov avatar atodorov commented on August 15, 2024

On a related note I was thinking that I can use this package to simulate kerberos environment for development and testing but it doesn't seem I can do this.

I was imagining that it would work similar to a virtenv wrapper.

Do you have any tips in this direction ?

from gssapi-console.

DirectXMan12 avatar DirectXMan12 commented on August 15, 2024

It does, in fact, look like a setuptools/entry_point issue.

Basically, gssapi-console consists of two parts: the console logic, and the drivers. The console logic is responsible for setting up the REPL, calling out to the driver to create a new environment or "join" an existing console environment, setting up useful helper objects, and asking the driver to tear down environments.

The drivers are responsible for setting up self-contained installations of GSSAPI implementations, and are specified via entrypoints. Right now, there's only one driver (which is built in to gssapi-console) that calls out to k5test. k5test sets up a self-contained (more-or-less) MIT krb5 environment. It's running a KDC, etc, just configured to store all state and configurating in /tmp. This means that you get to test against an actual krb5 installation instead of a simulation, but you do have to have krb5 installed.

The weird part here is that the krb5 driver's entrypoint is specified in gssapi-console's setup.py (since the logic wrapping k5test ships with gssapi-console), so you shouldn't be failing to see the krb5 entrypoint (which is what prompts that message: https://github.com/pythongssapi/gssapi-console/blob/master/gssapi-console.py#L56)

from gssapi-console.

DirectXMan12 avatar DirectXMan12 commented on August 15, 2024

@frozencemetery can you repro?
@atodorov can you paste the set of commands that you ran here? Or provide a bash script to repro, or something?

from gssapi-console.

frozencemetery avatar frozencemetery commented on August 15, 2024

Crap. Yes, I can reproduce.

from gssapi-console.

frozencemetery avatar frozencemetery commented on August 15, 2024

pkgres.iter_entry_points('gssapi_console.drivers', name=PARSED_ARGS.mech) is a generator with no values. I don't know anything about pkg_resources; @DirectXMan12, do you know why it would be empty?

However, if I run python setup.py install, everything works - running either the installed version, or the local checkout. What does this do that we don't have done?

from gssapi-console.

DirectXMan12 avatar DirectXMan12 commented on August 15, 2024

pkg_resources is a setuptools thing. Essentially, setuptools allows you to refer to package metadata -- for instance, if you want to provide a "hook" for other packages to register themselves with you, you use "entry points". There's other things you can refer to in pkg_resources, IIRC.

My conjecture is that pkg_resources pulls from metadata from installed packages, so if you don't install, it doesn't know how to get at that metadata. One workaround, IIRC, is to use pip install . --dev (don't remember if that's the exact flag name, but that's the gist of it), which "installs" your package with a bunch of symlinks so you're working off of the local checkout instead of copying to install.

@frozencemetery can you confirm that pip install . --dev works, and if so, we should add that to the README.

from gssapi-console.

Related Issues (2)

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.