예제 #1
0
        public override targetGroup createTargetGroup(iscsiPortal associatedPortal, iscsiTarget tgt)
        {
            var newTG = uncachedNAS.createTargetGroup(associatedPortal, tgt);

            targetGroups.TryAdd(newTG.id, newTG);
            return(newTG);
        }
예제 #2
0
        public override iscsiPortal addPortal(iscsiPortal toAdd)
        {
            string payload = String.Format("{{\"iscsi_target_portal_ips\": \"{0}\" " +
                                           "}}", toAdd.iscsi_target_portal_ips);

            return(doReqForJSON <iscsiPortal>("http://" + _serverIp + "/api/v1.0/services/iscsi/portal/", "POST", HttpStatusCode.Created, payload));
        }
예제 #3
0
        public override iscsiPortal addPortal(iscsiPortal toAdd)
        {
            iscsiPortal newVal = uncachedNAS.addPortal(toAdd);

            portals.TryAdd(newVal.id, newVal);
            markThisThreadISCSIDirty();
            return(newVal);
        }
예제 #4
0
        public override targetGroup createTargetGroup(iscsiPortal associatedPortal, iscsiTarget tgt)
        {
            string payload = String.Format("{{\"iscsi_target_portalgroup\": \"{0}\", " +
                                           "\"iscsi_target\": \"{1}\" " +
                                           "}}", associatedPortal.id, tgt.id);

            return(doReqForJSON <targetGroup>("http://" + _serverIp + "/api/v1.0/services/iscsi/targetgroup/", "post", HttpStatusCode.Created, payload));
        }
예제 #5
0
        public override iscsiPortal addPortal(iscsiPortal toAdd)
        {
            lock (events)
            {
                events.Add(new mockedCall("addPortal", "toAdd: " + toAdd));
            }

            lock (portalList)
            {
                portalList.Add(toAdd.id, toAdd);
            }

            return(toAdd);
        }
예제 #6
0
        public override iscsiPortal createPortal(string portalIPs)
        {
            events.Add(new mockedCall("createPortal", "portalIPs: '" + portalIPs));

            lock (portalList)
            {
                string      newID     = idGen.Next().ToString();
                iscsiPortal newPortal = new iscsiPortal()
                {
                    id = newID,
                    iscsi_target_portal_ips = new string[] { portalIPs }
                };
                portalList.Add(newID, newPortal);
                return(portalList[newID]);
            }
        }
예제 #7
0
        public override targetGroup createTargetGroup(iscsiPortal associatedPortal, iscsiTarget tgt)
        {
            events.Add(new mockedCall("createTargetGroup", "associatedPortal ID: '" + associatedPortal.id + " target ID: " + tgt.id));

            lock (targetGroups)
            {
                string      newID   = idGen.Next().ToString();
                targetGroup newItem = new targetGroup()
                {
                    id                       = newID,
                    iscsi_target             = tgt.id,
                    iscsi_target_portalgroup = associatedPortal.id
                };
                targetGroups.Add(newID, newItem);
                return(targetGroups[newID]);
            }
        }
예제 #8
0
        private void init()
        {
            invalidateTargetToExtents();
            invalidateExtents();
            invalidateSnapshots();
            invalidateTargets();
            uncachedNAS.getVolumes().ForEach(x => volumes.TryAdd(x.id, x));
            uncachedNAS.getTargetGroups().ForEach(x => targetGroups.TryAdd(x.id, x));
            uncachedNAS.getPortals().ForEach(x => portals.TryAdd(x.id, x));

            // If there are no portals, then we make a default one, since iscsi won't function without it
            if (portals.Count == 0)
            {
                iscsiPortal newPortal = uncachedNAS.createPortal("0.0.0.0:3260");
                portals.TryAdd(newPortal.id, newPortal);
            }

            waitUntilISCSIConfigFlushed(true);
        }
예제 #9
0
 public abstract targetGroup createTargetGroup(iscsiPortal associatedPortal, iscsiTarget tgt);
예제 #10
0
 public abstract iscsiPortal addPortal(iscsiPortal toAdd);