[jira] [Commented] (LIBCLOUD-858) Unable to list nodes with Libvirt provider on Python 3

2016-10-09 Thread ASF subversion and git services (JIRA)

[ 
https://issues.apache.org/jira/browse/LIBCLOUD-858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15559578#comment-15559578
 ] 

ASF subversion and git services commented on LIBCLOUD-858:
--

Commit f5ff0cfb080b767b542e9deec5ecc34dedcb4f0c in libcloud's branch 
refs/heads/trunk from [~femnad]
[ https://git-wip-us.apache.org/repos/asf?p=libcloud.git;h=f5ff0cf ]

LIBCLOUD-858: Fix Listing Libvirt Nodes with Python 3

Closes #894


> Unable to list nodes with Libvirt provider on Python 3
> --
>
> Key: LIBCLOUD-858
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-858
> Project: Libcloud
>  Issue Type: Bug
>  Components: Compute
> Environment: Ubuntu 16.04.1 LTS
> Python 3.5.2
> Libcloud installed from 1a836148250ebf852a7f28e4d93007417ee7639d
>Reporter: Fahri Cihan Demirci
>
> Using the {{list_nodes}} methods of the Libvirt provider driver results in an 
> error when using Python 3. A simple script to trigger this is as follows:
> {code}
> from libcloud.compute.providers import get_driver
> from libcloud.compute.types import Provider
> cls = get_driver(Provider.LIBVIRT)
> driver = cls('qemu:///system')
> nodes = driver.list_nodes()
> {code}
> It results in the following error:
> {code}
> Traceback (most recent call last):
>   File "libcloud_list_nodes.py", line 6, in 
> nodes = driver.list_nodes()
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 120, in list_nodes
> nodes = self._to_nodes(domains=domains)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 276, in _to_nodes
> nodes = [self._to_node(domain=domain) for domain in domains]
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 276, in 
> nodes = [self._to_node(domain=domain) for domain in domains]
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 285, in _to_node
> ip_addresses = self._get_ip_addresses_for_domain(domain)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 333, in _get_ip_addresses_for_domain
> arp_table = self._parse_ip_table_arp(arp_output=stdout)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 410, in _parse_ip_table_arp
> return self._parse_mac_addr_table(arp_output, arp_regex)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 431, in _parse_mac_addr_table
> lines = cmd_output.split('\n')
> TypeError: a bytes-like object is required, not 'str'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (LIBCLOUD-858) Unable to list nodes with Libvirt provider on Python 3

2016-10-09 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/LIBCLOUD-858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15559579#comment-15559579
 ] 

ASF GitHub Bot commented on LIBCLOUD-858:
-

Github user asfgit closed the pull request at:

https://github.com/apache/libcloud/pull/894


> Unable to list nodes with Libvirt provider on Python 3
> --
>
> Key: LIBCLOUD-858
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-858
> Project: Libcloud
>  Issue Type: Bug
>  Components: Compute
> Environment: Ubuntu 16.04.1 LTS
> Python 3.5.2
> Libcloud installed from 1a836148250ebf852a7f28e4d93007417ee7639d
>Reporter: Fahri Cihan Demirci
>
> Using the {{list_nodes}} methods of the Libvirt provider driver results in an 
> error when using Python 3. A simple script to trigger this is as follows:
> {code}
> from libcloud.compute.providers import get_driver
> from libcloud.compute.types import Provider
> cls = get_driver(Provider.LIBVIRT)
> driver = cls('qemu:///system')
> nodes = driver.list_nodes()
> {code}
> It results in the following error:
> {code}
> Traceback (most recent call last):
>   File "libcloud_list_nodes.py", line 6, in 
> nodes = driver.list_nodes()
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 120, in list_nodes
> nodes = self._to_nodes(domains=domains)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 276, in _to_nodes
> nodes = [self._to_node(domain=domain) for domain in domains]
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 276, in 
> nodes = [self._to_node(domain=domain) for domain in domains]
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 285, in _to_node
> ip_addresses = self._get_ip_addresses_for_domain(domain)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 333, in _get_ip_addresses_for_domain
> arp_table = self._parse_ip_table_arp(arp_output=stdout)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 410, in _parse_ip_table_arp
> return self._parse_mac_addr_table(arp_output, arp_regex)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 431, in _parse_mac_addr_table
> lines = cmd_output.split('\n')
> TypeError: a bytes-like object is required, not 'str'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (LIBCLOUD-858) Unable to list nodes with Libvirt provider on Python 3

2016-10-09 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/LIBCLOUD-858?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15559390#comment-15559390
 ] 

ASF GitHub Bot commented on LIBCLOUD-858:
-

GitHub user femnad opened a pull request:

https://github.com/apache/libcloud/pull/894

LIBCLOUD-858: Fix Listing Libvirt Nodes with Python 3

## Fix Listing Libvirt Nodes with Python 3

### Description

Listing nodes with the `Libvirt` provider fails on Python 3 because of a 
`split` operation on a `bytes` object where the delimiter is not a `bytes` 
object.

Use the `ensure_string` function from the `py3` module to ensure that the 
output of a `subprocess.Popen` call is always a string for Python 2 and 3. Also 
add a test to convert the mock command output results to `bytes` objects if the 
active Python version is 3.

### Status

- done, ready for review

### Checklist (tick everything that applies)

- [ ] [Code 
linting](http://libcloud.readthedocs.org/en/latest/development.html#code-style-guide)
 (required, can be done after the PR checks)
- [ ] Documentation
- [ ] [Tests](http://libcloud.readthedocs.org/en/latest/testing.html)
- [ ] 
[ICLA](http://libcloud.readthedocs.org/en/latest/development.html#contributing-bigger-changes)
 (required for bigger changes)



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/femnad/libcloud 
LIBCLOUD-858_fix-libvirt-node-listing-with-python-3

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/libcloud/pull/894.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #894


commit 9c01bf6eb970eb3ba315d135ffd6fb5ee7b45b7e
Author: Fahri Cihan Demirci 
Date:   2016-10-09T06:15:10Z

LIBCLOUD-858: Fix Listing Libvirt Nodes with Python 3




> Unable to list nodes with Libvirt provider on Python 3
> --
>
> Key: LIBCLOUD-858
> URL: https://issues.apache.org/jira/browse/LIBCLOUD-858
> Project: Libcloud
>  Issue Type: Bug
>  Components: Compute
> Environment: Ubuntu 16.04.1 LTS
> Python 3.5.2
> Libcloud installed from 1a836148250ebf852a7f28e4d93007417ee7639d
>Reporter: Fahri Cihan Demirci
>
> Using the {{list_nodes}} methods of the Libvirt provider driver results in an 
> error when using Python 3. A simple script to trigger this is as follows:
> {code}
> from libcloud.compute.providers import get_driver
> from libcloud.compute.types import Provider
> cls = get_driver(Provider.LIBVIRT)
> driver = cls('qemu:///system')
> nodes = driver.list_nodes()
> {code}
> It results in the following error:
> {code}
> Traceback (most recent call last):
>   File "libcloud_list_nodes.py", line 6, in 
> nodes = driver.list_nodes()
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 120, in list_nodes
> nodes = self._to_nodes(domains=domains)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 276, in _to_nodes
> nodes = [self._to_node(domain=domain) for domain in domains]
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 276, in 
> nodes = [self._to_node(domain=domain) for domain in domains]
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 285, in _to_node
> ip_addresses = self._get_ip_addresses_for_domain(domain)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 333, in _get_ip_addresses_for_domain
> arp_table = self._parse_ip_table_arp(arp_output=stdout)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 410, in _parse_ip_table_arp
> return self._parse_mac_addr_table(arp_output, arp_regex)
>   File 
> "/home/femnad/v/libcloud3-pristine/lib/python3.5/site-packages/apache_libcloud-1.2.1-py3.5.egg/libcloud/compute/drivers/libvirt_driver.py",
>  line 431, in _parse_mac_addr_table
> lines = cmd_output.split('\n')
> TypeError: a bytes-like object is required, not 'str'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)