[Avocado-devel] issues about install avocado-vt

Lukáš Doktor ldoktor at redhat.com
Mon Apr 18 15:45:54 UTC 2016


Hello Wei,

Dne 18.4.2016 v 11:06 Wei, Jiangang napsal(a):
> On Mon, 2016-03-07 at 09:55 +0100, Lukáš Doktor wrote:
>> Hello guys,
>>
>> thank you for great answers, in deed we forgot to put source code
>> install section in
>> http://avocado-vt.readthedocs.org/en/latest/GetStartedGuide.html I added
>> it to our TODO list.
>>
>> We do provide some convenience methods to simplify running from sources:
>>
>> 0. Install non-python dependencies listed in documentation
>> 1. From one directory clone avocado and avocado-vt (so the result of `ls
>> $TARGET_DIR` are 2 files: `avocado` and `avocado-vt`).
>> 2. Install python dependencies by `make requirements` (optionally `make
>> requirements-selftests`) in both directories
avocado-vt does not support `make requirements`, so one have to run `pip 
install -r requirements.txt` there.

>> 3. In `$TARGET_DIR/avocado` run `make link` which walks the `../*`
>> directories and registers the avocado plugins for this user.
>>
>> You only need to do this once, then you can modify the code and it'll
>> still run the latest version (it creates something-like-symlinks to the
>> sources for this user). You need to run the `make link` when new targets
>> are added, but this only happens once in a while (eg. new plugin is added)
>>
>> Alternatively you can always install it system-wide by `make install` in
>> each directory, but that install the current version so you need to
>> re-install it each time you change the sources.
>
> Dear all.
> Hi lukas,
>
> I try to run Avocado+Avocado-vt from sources according the above steps.
> But I met some problems.
>
> [root at localhost avocado]# scripts/avocado plugins
> Failed to load plugin from module "avocado_vt.plugins.vt_list":
> IOError(2, 'No such file or directory')
> Failed to load plugin from module "avocado_vt.plugins.vt": IOError(2,
> 'No such file or directory')
I hate IOError... I'm wondering if you could catch this exception and 
print the `IOError.filename`, that might help...

> Plugins that add new commands (avocado.plugins.cli.cmd):
> vt-bootstrap Avocado VT - implements the 'vt-bootstrap' subcommand
> distro       Shows detected Linux distribution
> sysinfo      Collect system information
> plugins      Displays plugin information
> multiplex    Generate a list of dictionaries with params from a
> multiplex file
> <--------------------------------------cut------------------------------->
>
> I'm sure of that all requirements have been updated.
>
> [root at localhost avocado]# pip install -r requirements.txt
> Requirement already satisfied (use --upgrade to upgrade): fabric>=1.7.0
> in /usr/lib64/python2.7/site-packages (from -r requirements.txt (line
> 3))
> Requirement already satisfied (use --upgrade to upgrade): PyYAML>=3.11
> in /usr/lib64/python2.7/site-packages (from -r requirements.txt (line
> 5))
> Requirement already satisfied (use --upgrade to upgrade):
> libvirt-python>=1.2.9 in /usr/lib64/python2.7/site-packages (from -r
> requirements.txt (line 7))
> Requirement already satisfied (use --upgrade to upgrade):
> pyliblzma>=0.5.3 in /usr/lib64/python2.7/site-packages (from -r
> requirements.txt (line 9))
> Requirement already satisfied (use --upgrade to upgrade):
> pystache>=0.5.3 in /usr/lib/python2.7/site-packages (from -r
> requirements.txt (line 11))
> Requirement already satisfied (use --upgrade to upgrade):
> requests>=1.2.3 in /usr/lib/python2.7/site-packages (from -r
> requirements.txt (line 13))
> Requirement already satisfied (use --upgrade to upgrade):
> stevedore>=1.8.0 in /usr/lib/python2.7/site-packages (from -r
> requirements.txt (line 15))
> Requirement already satisfied (use --upgrade to upgrade):
> paramiko<2.0,>=1.10 in /usr/lib/python2.7/site-packages (from
> fabric>=1.7.0->-r requirements.txt (line 3))
> Requirement already satisfied (use --upgrade to upgrade): pbr>=1.6
> in /usr/lib/python2.7/site-packages (from stevedore>=1.8.0->-r
> requirements.txt (line 15))
> Requirement already satisfied (use --upgrade to upgrade): six>=1.9.0
> in /usr/lib/python2.7/site-packages (from stevedore>=1.8.0->-r
> requirements.txt (line 15))
> Requirement already satisfied (use --upgrade to upgrade): ecdsa>=0.11
> in /usr/lib/python2.7/site-packages (from
> paramiko<2.0,>=1.10->fabric>=1.7.0->-r requirements.txt (line 3))
> Requirement already satisfied (use --upgrade to upgrade): pycrypto!
> =2.4,>=2.1 in /usr/lib64/python2.7/site-packages (from
> paramiko<2.0,>=1.10->fabric>=1.7.0->-r requirements.txt (line 3))
>
Did you executed this in each directory (avocado, avocado-vt)? 
Avocado-vt has additional dependencies.

(note to myself, let's improve the `make requirements` to walk all 
sub-directories the same way `make link` works 
https://trello.com/c/pQXj8AUo/651-rfc-walk-subdirectories-in-make-requirements 
)

>
> And I did some investigates,
> It seems that stevedore.ExtensionManager.__init__ failes and throw the
> above error messages.
>
> avocado/core/dispatcher.py--------------------------------------
>
> class Dispatcher(ExtensionManager):
>
>      """
>      Base dispatcher for various extension types
>      """
>
>      def __init__(self, namespace):
>          self.load_failures = []
>          super(Dispatcher, self).__init__(namespace=namespace,
>                                           invoke_on_load=True,
>
> on_load_failure_callback=self.store_load_failure,
>                                           propagate_map_exceptions=True)
>
> --------------------------------------------------------------------------------
>
>
> I noticed that stevedore was introduced as New Plugin Architecture from
> the commit logs.
> But I'm not familiar with stevedore ,
> and there's no other help doc for running Avocado from source codes.
> so May i trouble you to give me a hand? How can I fix it?
>
> PS,
> There's a discuss launched by rbian.
> https://github.com/avocado-framework/avocado-vt/issues/308
>
> And Imr said "now in order for the plugins to work they must be
> installed",
> is it true?
>
Not at all. The Stevedore was used as it's a standard way of loading 
plugins so it should simplify things.

As mentioned in this discussion, you can either install it by `make 
install`, or you can follow the steps 0-3, which results in `make link`. 
The `make link` executes `python setup.py develop --user` (or without 
the `--user` on python 2.6) which creates egg links for `avocado` to 
this location (for this user).

Unfortunately I still haven't updated the documentation, but it's near 
the top of the TODO list 
https://trello.com/c/LdXWhQ2Z/641-add-documentation-of-make-link-target, 
so please use the description from this email.

Note that rbian mentioned some stevedore libraries contain failures. I 
tried several versions from pip and they worked well, so I can't tell 
exactly. You might try `pip install --upgrade stevedore`, maybe it 
solves your problem.

>
> Thanks in advance.
I'm not sure this helped, but hopefully we'll get you avocado-vt up and 
running soon. If the above did not help, would you please share the 
commands you executed so I could get a better view of what was going on?

Kind regards,
Lukáš

>>
>> Kind regards,
>> Lukáš
>>
>>
>> PS: See one more recommendation bellow.
>>
>> Dne 3.3.2016 v 09:43 Zhu Yijun napsal(a):
>>> yes, now it works! Thanks very much!
>>>
>>> On 2016/3/3 14:33, Yanbing Du wrote:
>>>
>>>>
>>>>
>>>> On 03/03/2016 02:11 PM, Zhu Yijun wrote:
>>>>> Hi Yanbing,
>>>>>
>>>>>       Thanks for you reply.
>>>>>
>>>>> On 2016/3/3 13:20, Yanbing Du wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On 03/03/2016 12:49 PM, Zhu Yijun wrote:
>>>>>>> Hi all,
>>>>>>>
>>>>>>>        I am trying to setup the avocado and avocado-vt tools.
>>>>>>>
>>>>>>>               I have to install them by git repository because some special results. Until now I have installed avocado guided by docs as below:
>>>>>>>
>>>>>>>        http://avocado-framework.readthedocs.org/en/latest/GetStartedGuide.html
>>>>>>>
>>>>>>>        And avocado has been run successfully. However, for avocado-vt, the only way to install it is by "yum install avocado-plugins".
>>>>>>>
>>>>>>>        So is there some method to install by sources code?
>>>>>>
>>>>>> Yes, just like avocado, you can install avocado-vt by:
>>>>>>
>>>>>> #python setup.py --quiet install
>>
>> For development `--user` is strongly recommended. It creates egg-links
>> to those libraries only for this user.
>>
>>>>>>
>>>>>
>>>>>
>>>>> After run it, it still report error when I run avocado.
>>>>>
>>>>> Failed to load plugin from module "avocado_vt.plugins.vt_list": ImportError('No module named aexpect',)
>>>>> Failed to load plugin from module "avocado_vt.plugins.vt": ImportError('No module named aexpect',)
>>>>
>>>> Make sure you install all these required pkgs, for both avocado and avocado-vt:
>>>> #pip install -r requirements.txt --upgrade
>>>>
>>>
>>>>>
>>>>>>>
>>>>>>>        Additionally, I try to run "make link" in avocado-vt directory, then run "avocado plugins", it seems like vt & vt_list not installed.
>>>>>>>
>>>>>>>        The message as follow:
>>>>>>>
>>>>>>>        Failed to load plugin from module "avocado_vt.plugins.vt_list": ImportError('No module named aexpect',)
>>>>>>>        Failed to load plugin from module "avocado_vt.plugins.vt": ImportEr
>>>>>>>        Plugins that add new commands (avocado.plugins.cli.cmd):
>>>>>>>        vt-bootstrap Avocado VT - implements the 'vt-bootstrap' subcommand
>>>>>>>        exec-path    Returns path to avocado bash libraries and exits.
>>>>>>>        run          Run one or more tests (native test, test alias, binary
>>>>>>>        sysinfo      Collect system information
>>>>>>>        list         List available tests
>>>>>>>        multiplex    Generate a list of dictionaries with params from a mul
>>>>>>>        plugins      Displays plugin information
>>>>>>>        config       Shows avocado config keys
>>>>>>>        distro       Shows detected Linux distribution
>>>>>>>        Plugins that add new options to commands (avocado.plugins.cli):
>>>>>>>        journal Journal options for the 'run' subcommand
>>>>>>>        remote  Remote machine options for 'run' subcommand
>>>>>>>        json    JSON output options for 'run' command
>>>>>>>        html    HTML job report options for 'run' subcommand
>>>>>>>        wrapper Implements the '--wrapper' flag for the 'run' subcommand
>>>>>>>        vm      Virtual Machine options for 'run' subcommand
>>>>>>>        gdb     GDB options for the 'run' subcommand
>>>>>>>        replay  Replay options for 'run' subcommand
>>>>>>>        xunit   xUnit output options
>>>>>>>
>>>>>>>        Does anyone can give me some advices, thanks in advance!
>>>>>>>
>>>>>>> Zhu Yijun
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Avocado-devel mailing list
>>>>>>> Avocado-devel at redhat.com
>>>>>>> https://www.redhat.com/mailman/listinfo/avocado-devel
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Avocado-devel mailing list
>>> Avocado-devel at redhat.com
>>> https://www.redhat.com/mailman/listinfo/avocado-devel
>>>
>>
>> _______________________________________________
>> Avocado-devel mailing list
>> Avocado-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/avocado-devel
>>
>>
>
>
>




More information about the Avocado-devel mailing list