Hi!

> I believe that this was fixed by http://gerrit.ovirt.org/35317
> which would be in the long-delayed ovirt-3.5.1.

> I'd apreciate if you try it out!

I can't really try it out, since I had to move forward and can't do the tests now :-/ But according to the diff, this should do the same as what I did (prefix seems to be ignored in this function anyway). 

Nevertheless, people shouldn't use a SCOPE="peer ..." configuration (as mine was before), but should stick to a regular addr/subnet/gateway config. At least this fixed my issues....

Regards,

Andreas

On Fri, Jan 2, 2015 at 7:08 PM, Dan Kenigsberg <danken@redhat.com> wrote:
On Wed, Dec 31, 2014 at 05:40:29AM -0500, Yedidyah Bar David wrote:
> ----- Original Message -----
> > From: "Andreas Mather" <andreas@allaboutapps.at>
> > To: users@ovirt.org
> > Sent: Wednesday, December 24, 2014 11:29:58 PM
> > Subject: Re: [ovirt-users] hosted-engine --deploy fails
> >
> > Hi All!
> >
> > Just did more research on this and it seems as if the reason was related to
> > my interface configuration. Disclaimer upfront: I've a public IP configured
> > on this server (since it's a hosted root server), but changed the IP addr
> > here to 192.168.0.99
> >
> > I started with the output from ´vdsm-tool restore-nets':
> > ipv4addr, prefix = addr['address'].split('/')
> > ValueError: need more than 1 value to unpack

Thanks for this report.

I believe that this was fixed by http://gerrit.ovirt.org/35317
which would be in the long-delayed ovirt-3.5.1.

Unfortunately, the official build of vdsm-4.16.10 for el6 is being
delayed
http://lists.ovirt.org/pipermail/devel/2014-December/009566.html
but for other platforms it is already testable.

I'd apreciate if you try it out!

> >
> > So I dumped the addr dictionary:
> > {'address': '192.168.0.99',
> > 'family': 'inet',
> > 'flags': frozenset(['permanent']),
> > 'index': 2,
> > 'label': 'eth0',
> > 'prefixlen': 32,
> > 'scope': 'universe'}
> >
> > I've no clue why there's no "/32" at the end, but that's what my netmask
> > actually is due to the special configuration I got from my hosting provider:
> >
> > [root@vhost1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
> > DEVICE=eth0
> > BOOTPROTO=none
> > ONBOOT=yes
> > HWADDR=00:52:9F:A8:AA:BB
> > IPADDR=192.168.0.99
> > NETMASK=255.255.255.255
> > SCOPE="peer 192.168.0.1"
> >
> > (again, public IPs changed to private one, if that matters. And I skipped the
> > IPv6 config above...)
> >
> > So what I did next, was to patch the netinfo.py:
> > [root@vhost1 vdsm]# diff -u netinfo_orig.py netinfo.py
> > --- netinfo_orig.py 2014-12-24 22:16:23.362198715 +0100
> > +++ netinfo.py 2014-12-24 22:16:02.567625247 +0100
> > @@ -368,7 +368,12 @@
> > if addr['family'] == 'inet':
> > ipv4addrs.append(addr['address'])
> > if 'secondary' not in addr['flags']:
> > - ipv4addr, prefix = addr['address'].split('/')
> > + """Assume /32 if no prefix was found"""
> > + if addr['address'].find('/') == -1:
> > + ipv4addr = addr['address']
> > + prefix = "32"
> > + else:
> > + ipv4addr, prefix = addr['address'].split('/')
> > ipv4netmask = prefix2netmask(addr['prefixlen'])
> > else:
> > ipv6addrs.append(addr['address'])
> >
> >
> > and recompiled it:
> > [root@vhost1 vdsm]# python -m py_compile netinfo.py
> >
> >
> >
> > Et voilà:
> > vdsm-tool ran fine:
> > `hosted-engine --deploy' passed the previous failing stage!
>
> Thanks for great analysis, report and patch!
> Would you like to push it to gerrit? See [1] and [2]
>
> Adding Dan in case you do not want to, so that your patch isn't lost...
>
> >
> > Hope this helps to find the root cause....
>
> Not sure what you mean - did you have any other problem after
> applying your patch? Seems to me that the root cause is some
> code (the part you patched or something earlier) did not expect
> a prefix of /32, which is indeed quite rare. Not even certain
> how it works - did you also get a default gateway? How can you
> access it, if it's not in your subnet?
>
> [1] http://www.ovirt.org/Develop
> [2] http://www.ovirt.org/Working_with_oVirt_Gerrit
>
> Best regards,
> --
> Didi