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

Reply via email to