Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="session"></param>
        /// <param name="vm"></param>
        /// <param name="vbd"></param>
        /// <param name="userdevice"></param>
        /// <param name="plug"></param>
        /// <returns>True if it warned the user, so you don't warn twice</returns>
        private static void SetUserDevice(Session session, VM vm, VBD vbd, String userdevice, bool plug)
        {
            //Program.AssertOffEventThread();


            if (vm.power_state == vm_power_state.Running &&
                vbd.currently_attached &&
                vbd.allowed_operations.Contains(vbd_operations.unplug))
            {
                VBD.unplug(session, vbd.opaque_ref);
            }

            VBD.set_userdevice(session, vbd.opaque_ref, userdevice);

            if (plug && vbd.allowed_operations.Contains(vbd_operations.plug) && vm.power_state == vm_power_state.Running)
            {
                VBD.plug(session, vbd.opaque_ref);
            }
        }