fab-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Fab-user] error importing custom modules


From: Todd DeLuca
Subject: Re: [Fab-user] error importing custom modules
Date: Mon, 22 Apr 2013 11:04:37 -0400

Try either using 'Fabexec' or importing 'modules.Fabexec' in set_nic_buffers.py.  Currently you seem to be importing 'Fabexec' but using 'modules.Fabexec'.

For example, in set_nic_buffers.py, change `from modules import Fabexec` to `import modules.Fabexec`

Alternatively, have modules/__init__.py import Fabexec, so it is present in the 'modules' namespace when you `import modules`.

Regards,
Todd


On Mon, Apr 22, 2013 at 10:50 AM, Rodrick Brown <address@hidden> wrote:

My directory structure looks like the following:

 

I’m executing my fab script like the following:

 

$ fab -H server set_nic_buffers  -f set_nic_buffers.py

Traceback (most recent call last):

  File "/usr/lib/python2.7/site-packages/fabric/main.py", line 739, in main

    *args, **kwargs

  File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 316, in execute

    multiprocessing

  File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 213, in _execute

    return task.run(*args, **kwargs)

  File "/usr/lib/python2.7/site-packages/fabric/tasks.py", line 123, in run

    return self.wrapped(*args, **kwargs)

  File "/home/rbrown/repos/unix-tools/tools/fabfiles/nb.py", line 5, in set_nic_buffers

    f_exec = modules.Fabexec('set_nic_buffers', '/var/tmp/unix-tools/tools/set_nic_buffers.sh')

TypeError: 'module' object is not callable

 

My paths all seem to be fine not sure what’s going on

 

$ python -c 'import modules.Fabexec; print (modules.Fabexec)'

<module 'modules.Fabexec' from 'modules/Fabexec.pyc'>

 

Fabfiles

|-- modules

|   |-- Fabexec.py

|   |-- Fabexec.pyc

|   |-- __init__.py

|   `-- __init__.pyc

|-- systune.py

|-- systune.pyc

`-- set_nic_buffers.py

 

--- set_nic_buffers.py ---

import modules

from modules import Fabexec

 

def set_nic_buffers():

    f_exec = modules.Fabexec('set_nic_buffers', '/var/tmp/unix-tools/tools/set_nic_buffers.sh')

    f_exec.run()

 

--- Fabexec.py ---

from fabric.api import run, cd, sudo, env

from fabric.contrib import files

from fabric.colors import green

 

class Fabexec(object):

 

    repobase='/var/tmp/unix-tools'

 

    def __init__(self,script_name,install_script):

        self.script_name = script_name

        self.install_script = install_script

 

    def run(self):

        if files.exists(self.install_script):

            with cd(self.repobase):

                result = sudo(self.install_script + ' %s ' % env.host)

                if result.return_code != 0:

                    print(red('Error occured executing %s' % self.install_script))

                else:

                    print(green('%s executed successfully'))

        else:

            print(red('Error no such dir %s try running repo deploy script to host %s' % (self.repobase, env.host)))

            raise SystemExit()

 

--RB


_______________________________________________
Fab-user mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fab-user




--
Todd DeLuca
http://todddeluca.com
http://wall.hms.harvard.edu/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]