Nope, that didn't work. Also tried adding `print` statements throughout fabric/tasks.py, but they don't show up.
I've added one to WrappedCallableTask._execute and another two to `execute`. Even tried uninstalling fabric, editing a cloned version, then installing that. Same lack of debug messages. Also tried outputting to a /tmp file, in case of conflict. Same lack of information. Not sure why this isn't working On Wed, Feb 3, 2016 at 11:59 PM, Carlos García < [email protected]> wrote: > Yeah, env must be imported to work. > > In your code, probably execute is not using env.hosts for any reason. Try > to pass hosts as parameter to execute(): > > execute(funtimes, hosts = ['ec2-{omitted}.compute.amazonaws.com']) > > Let me know if this works. I can’t test by myself right now. > > Regards > > 2016-02-03 13:37 GMT+01:00 Alec Taylor <[email protected]>: > > Hmm, I can't seem to confirm the issue in a test case. How is your >> solution working without importing `env`? - Also, should I import `env` >> from slave? - I tried setting the two `env`s to equal, but it still >> prompted me for host (yes, env.hosts is definitely set when it reaches >> slave) >> >> /tmp/pyttt$ tree >> . >> ├── master >> │ ├── master >> │ │ └── __init__.py >> │ └── setup.py >> └── slave >> ├── setup.py >> └── slave >> └── __init__.py >> >> 4 directories, 4 files >> >> >> *master/__init__.py* >> >> #!/usr/bin/env python >> >> from os import environ >> >> from fabric.api import execute, env >> >> from slave import funtimes >> >> env.key_filename = environ['PRIVATE_QUAY_PATH'] >> env.hosts = ['ec2-{omitted}.compute.amazonaws.com'] >> env.user = 'ubuntu' >> >> execute(funtimes) >> >> >> *slave/__init__.py* >> >> #!/usr/bin/env python >> >> from fabric.api import run >> >> def funtimes(): >> run('echo Hello funtimes') >> >> >> On Wed, Jan 27, 2016 at 7:15 PM, Carlos García < >> [email protected]> wrote: >> >>> Hi Alec, >>> >>> the examples given doesn’t work. Maybe you’re missing something. >>> >>> env should be imported from fabric.api, if not, Python fails with NameError: >>> name 'env' is not defined >>> >>> Also, the Python path should include foo/and can/, so you need to call >>> a python executable from the project root (Or add ROOT_DIRECTORY to the >>> python path with sys.path.append(ROOT_DIRECTORY)). For example: >>> >>> ## foo/__init__.py >>> import sys >>> import os >>> sys.path.append(os.path.abspath('.')) >>> from fabric.api import execute >>> from can.haz import funtimes >>> >>> domain = 'localhost' >>> env.user = 'bar' >>> env.password = 'foo' >>> env.hosts = [domain] >>> >>> execute(funtimes) >>> >>> And you execute it with: python foo/__init__.py. And this works. >>> >>> >>> Regards >>> >>> 2016-01-27 6:21 GMT+01:00 Alec Taylor <[email protected]>: >>> >>> Using Fabric outside a fabfile. `fabric.api.execute` on relative >>>> imported functions works. >>>> >>>> Importing other installed modules fails with "No hosts found. Please >>>> specify (single) host string for connection:" >>>> >>>> To illustrate, this works: >>>> >>>> ## foo/__init__.py >>>> >>>> from fabric.api import execute >>>> from bar import funtimes >>>> >>>> domain = 'localhost' >>>> env.user = 'bar' >>>> env.password = 'foo' >>>> env.hosts = [domain] >>>> >>>> execute(funtimes) >>>> >>>> ## foo/bar.py >>>> >>>> from fabric.api import run >>>> >>>> def funtimes(): run('hello funtimes') >>>> >>>> Whilst this fails: >>>> >>>> ## foo/__init__.py >>>> >>>> from fabric.api import execute >>>> from can.haz import funtimes >>>> >>>> domain = 'localhost' >>>> env.user = 'bar' >>>> env.password = 'foo' >>>> env.hosts = [domain] >>>> >>>> execute(funtimes) >>>> >>>> ## can/haz.py >>>> >>>> from fabric.api import run >>>> >>>> def funtimes(): run('hello funtimes') >>>> >>>> # also tried >>>> def funtimes2(env): >>>> fabric.api.env = env >>>> run('hello funtimes2') >>>> >>>> >>>> _______________________________________________ >>>> Fab-user mailing list >>>> [email protected] >>>> https://lists.nongnu.org/mailman/listinfo/fab-user >>>> >>>> >>> -- >>> >> >> >
_______________________________________________ Fab-user mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/fab-user
