Esempio n. 1
0
        /// <summary>
        /// Check currently LUN against miami host
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="pbd"></param>
        /// <returns></returns>
        private bool UniquenessCheckMiami(IXenConnection connection, PBD pbd)
        {
            if (!pbd.device_config.ContainsKey(SCSIID))
            {
                return(false);
            }

            foreach (string s in pbd.device_config.Keys)
            {
                String scsiID = pbd.device_config[s];
                String myLUN  = getIscsiLUN();

                if (!LunMap.ContainsKey(myLUN))
                {
                    return(false);
                }

                ISCSIInfo info = LunMap[myLUN];
                if (info.ScsiID == scsiID)
                {
                    return(true);
                }
            }
            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// Check currently LUN against miami host
        /// </summary>
        /// <param name="connection"></param>
        /// <param name="pbd"></param>
        /// <returns></returns>
        private bool UniquenessCheckMiami(IXenConnection connection, PBD pbd)
        {
            String scsiID;

            if (pbd.device_config.ContainsKey(SCSIID))
            {
                scsiID = pbd.device_config[SCSIID];
            }
            else if (pbd.device_config.ContainsKey("ScsiId"))
            {
                scsiID = pbd.device_config["ScsiId"];
            }
            else
            {
                return(false);
            }

            String myLUN = getIscsiLUN();

            if (!LunMap.ContainsKey(myLUN))
            {
                return(false);
            }

            ISCSIInfo info = LunMap[myLUN];

            return(info.ScsiID == scsiID);
        }
Esempio n. 3
0
        private Dictionary <String, String> GetDeviceConfig(SR.SRTypes srType)
        {
            Dictionary <String, String>    dconf = new Dictionary <String, String>();
            ToStringWrapper <IScsiIqnInfo> iqn   = comboBoxIscsiIqns.SelectedItem as ToStringWrapper <IScsiIqnInfo>;

            if (iqn == null || !LunMap.ContainsKey(getIscsiLUN()))
            {
                return(null);
            }

            if (srType == SR.SRTypes.gfs2)
            {
                // build the uri for gfs2
                var jsonUri = new JavaScriptSerializer().Serialize(new
                {
                    provider     = "iscsi",
                    ips          = iqn.item.IpAddress,
                    port         = iqn.item.Port.ToString(),
                    iqns         = getIscsiIQN(),
                    ScsiId       = LunMap[getIscsiLUN()].ScsiID,
                    chapuser     = IScsiChapUserTextBox.Text,
                    chappassword = IScsiChapSecretTextBox.Text
                });
                dconf[URI] = jsonUri;

                return(dconf);
            }

            // Reset target IP address to home address specified in IQN scan.
            // Allows multi-homing - see CA-11607
            dconf[TARGET]    = iqn.item.IpAddress;
            dconf[PORT]      = iqn.item.Port.ToString();
            dconf[TARGETIQN] = getIscsiIQN();

            ISCSIInfo info = LunMap[getIscsiLUN()];

            if (info.LunID == -1)
            {
                dconf[LUNSERIAL] = info.Serial;
            }
            else
            {
                dconf[SCSIID] = info.ScsiID;
            }

            if (IscsiUseChapCheckBox.Checked)
            {
                dconf[CHAPUSER]     = IScsiChapUserTextBox.Text;
                dconf[CHAPPASSWORD] = IScsiChapSecretTextBox.Text;
            }

            return(dconf);
        }
Esempio n. 4
0
        private Dictionary <String, String> GetDeviceConfig(SR.SRTypes srType)
        {
            Dictionary <String, String>    dconf = new Dictionary <String, String>();
            ToStringWrapper <IScsiIqnInfo> iqn   = comboBoxIscsiIqns.SelectedItem as ToStringWrapper <IScsiIqnInfo>;

            if (iqn == null || !LunMap.ContainsKey(getIscsiLUN()))
            {
                return(null);
            }

            if (srType == SR.SRTypes.gfs2)
            {
                if (_srToIntroduce != null && _srToIntroduce.Configuration != null)
                {
                    dconf = _srToIntroduce.Configuration;
                }

                dconf["provider"]     = "iscsi";
                dconf["target"]       = iqn.item.IpAddress;
                dconf["port"]         = iqn.item.Port.ToString();
                dconf["targetIQN"]    = getIscsiIQN();
                dconf["SCSIid"]       = LunMap[getIscsiLUN()].ScsiID;
                dconf["chapuser"]     = IScsiChapUserTextBox.Text;
                dconf["chappassword"] = IScsiChapSecretTextBox.Text;

                return(dconf);
            }

            // Reset target IP address to home address specified in IQN scan.
            // Allows multi-homing - see CA-11607
            dconf[TARGET]    = iqn.item.IpAddress;
            dconf[PORT]      = iqn.item.Port.ToString();
            dconf[TARGETIQN] = getIscsiIQN();

            ISCSIInfo info = LunMap[getIscsiLUN()];

            if (info.LunID == -1)
            {
                dconf[LUNSERIAL] = info.Serial;
            }
            else
            {
                dconf[SCSIID] = info.ScsiID;
            }

            if (IscsiUseChapCheckBox.Checked)
            {
                dconf[CHAPUSER]     = IScsiChapUserTextBox.Text;
                dconf[CHAPPASSWORD] = IScsiChapSecretTextBox.Text;
            }

            return(dconf);
        }