Exemple #1
0
        private static void CheckAndPlugPBDs(IList <PBD> pbds, PlugMode plugMode)
        {
            foreach (PBD pbd in pbds)
            {
                Session session = pbd.Connection.DuplicateSession();

                log.DebugFormat("Waiting for PBDs {0} to become plugged", pbd.Name);
                // Wait 2 min for PBD to become plugged
                if (WaitForPlug(session, pbd.opaque_ref))
                {
                    continue;
                }

                // If we still havent plugged, then try and plug it - this will probably
                // fail, but at least we'll get a better error message.
                try
                {
                    log.DebugFormat("Plugging PBD {0}", pbd.Name);
                    plug(session, pbd.opaque_ref);
                }
                catch (Exception e)
                {
                    log.Debug(string.Format("Error plugging PBD {0}", pbd.Name), e);

                    if (plugMode != PlugMode.NONCHALANT)
                    {
                        throw;
                    }
                }
            }
        }
Exemple #2
0
        private static void CheckAndPlugPBDsFor(List <VM> vms, PlugMode plugMode)
        {
            List <PBD> pbds = PBD.GetPBDsFor(vms);

            // Now lets see if they're all plugged
            CheckAndPlugPBDs(pbds, plugMode);
        }
Exemple #3
0
        private static void CheckAndPlugPBDsFor(List <VM> vms, PlugMode plugMode)
        {
            //Program.AssertOffEventThread();

            List <PBD> pbds = PBD.GetPBDsFor(vms);

            // Now lets see if they're all plugged
            CheckAndPlugPBDs(pbds, plugMode);
        }
Exemple #4
0
        private static void CheckAndPlugPBDs(IList <PBD> pbds, PlugMode plugMode)
        {
            foreach (PBD pbd in pbds)
            {
                Session session = pbd.Connection.DuplicateSession();

                // Wait 2 min for PBD to become plugged
                if (WaitForPlug(session, pbd.opaque_ref))
                {
                    continue;
                }

                // If we still havent plugged, then try and plug it - this will probably
                // fail, but at least we'll get a better error message.
                if (plugMode == PlugMode.NONCHALANT)
                {
                    NonchalantPlug(session, pbd.opaque_ref);
                }
                else
                {
                    plug(session, pbd.opaque_ref);
                }
            }
        }
Exemple #5
0
        private static void CheckAndPlugPBDsFor(IXenConnection connection, List <XenRef <VM> > vmRefs, PlugMode plugMode)
        {
            //Program.AssertOffEventThread();

            List <VM> vms = new List <VM>();

            foreach (XenRef <VM> vmRef in vmRefs)
            {
                VM vm = null;
                while ((vm = connection.Resolve <VM>(vmRef)) == null)
                {
                    Thread.Sleep(100);
                }

                vms.Add(vm);
            }

            CheckAndPlugPBDsFor(vms, plugMode);
        }
Exemple #6
0
        private static void CheckAndPlugPBDsFor(List<VM> vms, PlugMode plugMode)
        {
            //Program.AssertOffEventThread();

            List<PBD> pbds = PBD.GetPBDsFor(vms);

            // Now lets see if they're all plugged
            CheckAndPlugPBDs(pbds, plugMode);
        }
Exemple #7
0
        private static void CheckAndPlugPBDsFor(IXenConnection connection, List<XenRef<VM>> vmRefs, PlugMode plugMode)
        {
            //Program.AssertOffEventThread();

            List<VM> vms = new List<VM>();

            foreach (XenRef<VM> vmRef in vmRefs)
            {
                VM vm = null;
                while ((vm = connection.Resolve<VM>(vmRef)) == null)
                    Thread.Sleep(100);

                vms.Add(vm);
            }

            CheckAndPlugPBDsFor(vms, plugMode);
        }
Exemple #8
0
        private static void CheckAndPlugPBDs(IList<PBD> pbds, PlugMode plugMode)
        {
            foreach (PBD pbd in pbds)
            {
                Session session = pbd.Connection.DuplicateSession();

                // Wait 2 min for PBD to become plugged
                if (WaitForPlug(session, pbd.opaque_ref))
                    continue;

                // If we still havent plugged, then try and plug it - this will probably
                // fail, but at least we'll get a better error message.
                if( plugMode == PlugMode.NONCHALANT )
                    NonchalantPlug(session, pbd.opaque_ref);
                else
                    plug(session, pbd.opaque_ref);
            }
        }
Exemple #9
0
        private static void CheckAndPlugPBDsFor(List<VM> vms, PlugMode plugMode)
        {
            List<PBD> pbds = PBD.GetPBDsFor(vms);

            // Now lets see if they're all plugged
            CheckAndPlugPBDs(pbds, plugMode);
        }
Exemple #10
0
        private static void CheckAndPlugPBDs(IList<PBD> pbds, PlugMode plugMode)
        {
            foreach (PBD pbd in pbds)
            {
                Session session = pbd.Connection.DuplicateSession();

                log.DebugFormat("Waiting for PBDs {0} to become plugged", pbd.Name);
                // Wait 2 min for PBD to become plugged
                if (WaitForPlug(session, pbd.opaque_ref))
                    continue;

                // If we still havent plugged, then try and plug it - this will probably
                // fail, but at least we'll get a better error message.
                try
                {
                    log.DebugFormat("Plugging PBD {0}", pbd.Name);
                    plug(session, pbd.opaque_ref);
                }
                catch (Exception e)
                {
                    log.Debug(string.Format("Error plugging PBD {0}", pbd.Name), e);

                    if (plugMode != PlugMode.NONCHALANT)
                        throw;
                }
            }
        }