Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 646430 Details for
Bug 873468
F18 Beta TC7: sometimes when booting netinst, hub comes up showing 'Nothing selected' for Installation Source and Software Selection
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
a patch for issues from comment #24
0001-wait-for-dhcp-connection.patch (text/plain), 5.56 KB, created by
Radek Vykydal
on 2012-11-16 15:54:56 UTC
(
hide
)
Description:
a patch for issues from comment #24
Filename:
MIME Type:
Creator:
Radek Vykydal
Created:
2012-11-16 15:54:56 UTC
Size:
5.56 KB
patch
obsolete
>From 51bddf679af8b0468f98b22d1e6f4419b3f00d0f Mon Sep 17 00:00:00 2001 >From: Radek Vykydal <rvykydal@redhat.com> >Date: Fri, 16 Nov 2012 09:15:03 +0100 >Subject: [PATCH] wait for dhcp connection > >--- > anaconda | 5 ++--- > pyanaconda/network.py | 33 ++++++++++++++++++++++++++------- > pyanaconda/packaging/__init__.py | 7 ++++++- > pyanaconda/ui/gui/spokes/network.py | 8 ++++++++ > 4 files changed, 42 insertions(+), 11 deletions(-) > >diff --git a/anaconda b/anaconda >index 35fb5ce..d8868c7 100755 >--- a/anaconda >+++ b/anaconda >@@ -973,9 +973,8 @@ if __name__ == "__main__": > doRescue(anaconda.rescue_mount, ksdata, anaconda.platform) > > threadMgr.add(AnacondaThread(name="AnaStorageThread", target=storageInitialize, args=(anaconda.storage, ksdata, anaconda.protected))) >- threadMgr.add(AnacondaThread(name="AnaPayloadThread", target=payloadInitialize, args=(anaconda.storage, ksdata, anaconda.payload))) >- # TODO start dhcp in thread if we have no connection >- networkInitialize(ksdata) >+ threadMgr.add(AnacondaThread(name="AnaNetworkThread", target=networkInitialize, args=(ksdata,))) >+ threadMgr.add(AnacondaThread(name="AnaPayloadThread", target=payloadInitialize, args=(anaconda.storage, ksdata, anaconda.payload, True))) > > atexit.register(exitHandler, ksdata.reboot, anaconda.storage) > >diff --git a/pyanaconda/network.py b/pyanaconda/network.py >index b4f3b16..f2dea12 100644 >--- a/pyanaconda/network.py >+++ b/pyanaconda/network.py >@@ -456,9 +456,6 @@ def waitForDevicesActivation(devices): > > return waited_devs_props.keys() > >-# write out current configuration state and wait for NetworkManager >-# to bring the device up, watch NM state and return to the caller >-# once we have a state > def waitForConnection(): > bus = dbus.SystemBus() > nm = bus.get_object(isys.NM_SERVICE, isys.NM_MANAGER_PATH) >@@ -886,6 +883,21 @@ def writeNetworkConf(storage, ksdata, instClass): > disableNMForStorageDevices(storage) > autostartFCoEDevices(storage, ksdata) > >+def wait_for_dhcp(): >+ bus = dbus.SystemBus() >+ nm = bus.get_object(isys.NM_SERVICE, isys.NM_MANAGER_PATH) >+ props = dbus.Interface(nm, isys.DBUS_PROPS_IFACE) >+ state = props.Get(isys.NM_SERVICE, "State") >+ >+ if state == isys.NM_STATE_CONNECTING: >+ return waitForConnection() >+ >+def update_hostname(ksdata): >+ hostname = getHostname() >+ log.info("updating hostname %s" % hostname) >+ nd = kickstartNetworkData(hostname=hostname) >+ ksdata.network.network.append(nd) >+ > # networking initialization and ksdata object update > def networkInitialize(ksdata): > from pyanaconda.kickstart import NetworkData >@@ -894,7 +906,14 @@ def networkInitialize(ksdata): > # XXX: this should go to anaconda dracut > createMissingDefaultIfcfgs() > >- if ksdata.network.hostname is None: >- hostname = getHostname() >- nd = kickstartNetworkData(hostname=hostname) >- ksdata.network.network.append(nd) >+ if not ksdata.network.hostname: >+ update_hostname(ksdata) >+ >+ # auto default dhcp connection would be activated >+ # by NM service >+ if wait_for_dhcp(): >+ log.info("wait_for_dhcp timed out (%d)" % CONNECTION_TIMEOUT) >+ else: >+ update_hostname(ksdata) >+ >+ >diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py >index 0108f68..e9a2631 100644 >--- a/pyanaconda/packaging/__init__.py >+++ b/pyanaconda/packaging/__init__.py >@@ -653,13 +653,18 @@ class PackagePayload(Payload): > > return kernels > >-def payloadInitialize(storage, ksdata, payload): >+def payloadInitialize(storage, ksdata, payload, wait_for_network=False): > from pyanaconda.threads import threadMgr > > storageThread = threadMgr.get("AnaStorageThread") > if storageThread: > storageThread.join() > >+ if wait_for_network and (payload.needsNetwork or True): >+ networkThread = threadMgr.get("AnaNetworkThread") >+ if networkThread: >+ networkThread.join() >+ > payload.setup(storage) > > def show_groups(payload): >diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py >index 002679c..91b254a 100644 >--- a/pyanaconda/ui/gui/spokes/network.py >+++ b/pyanaconda/ui/gui/spokes/network.py >@@ -61,6 +61,9 @@ _ = lambda x: gettext.ldgettext("anaconda", x) > N_ = lambda x: x > P_ = lambda x, y, z: gettext.ldngettext("anaconda", x, y, z) > >+import logging >+log = logging.getLogger("anaconda") >+ > # These are required for dbus API use we need because of > # NM_GI_BUGS: 767998, 773678 > NM_SERVICE = "org.freedesktop.NetworkManager" >@@ -1051,6 +1054,10 @@ class NetworkStandaloneSpoke(StandaloneSpoke): > parent.add(self.network_control_box.vbox) > > self._initially_available = self.completed >+ log.debug("network standalone spoke: completed in init: %s" % self._initially_available) >+ from pyanaconda.threads import threadMgr, AnacondaThread >+ self._initially_available = threadMgr.get("AnaNetworkThread") >+ log.info("network standalone spoke: AnaNetworkThread in init: %s" % self._initially_available) > self._now_available = False > > def apply(self): >@@ -1065,6 +1072,7 @@ class NetworkStandaloneSpoke(StandaloneSpoke): > > self._now_available = self.completed > >+ log.info("network standalone spoke: (apply) payload: %s now_available: %s" % (self.payload.baseRepo, self._now_available)) > if not self.payload.baseRepo and not self._initially_available and self._now_available: > from pyanaconda.packaging import payloadInitialize > from pyanaconda.threads import threadMgr, AnacondaThread >-- >1.7.11.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 873468
:
639062
|
639063
|
639064
|
639065
|
639066
|
639067
|
639068
|
639069
|
645935
|
645938
|
645944
|
645950
|
645952
|
645953
| 646430 |
646651
|
666694
|
666695
|
666696
|
666697