Пример #1
0
            public static void AddParameterToGlobal(string key, string value)
            {
                SetCustomFile();
                ServiceDataType type         = Helper.ServiceData.SupposeDataType(value);
                var             booleanVerbs = Helper.ServiceData.SupposeBooleanVerbs(value);
                var             line         = new LineModel()
                {
                    FilePath     = $"{DIR}/{antdZfsFile}",
                    Key          = key,
                    Value        = value,
                    Type         = type,
                    BooleanVerbs = booleanVerbs
                };
                var shares = MapFile.Get().Share;
                var data   = MapFile.Get().Data;

                data.Add(line);
                var zfs = new ZfsModel()
                {
                    _Id       = serviceGuid,
                    Guid      = serviceGuid,
                    Timestamp = Timestamp.Now,
                    Share     = shares,
                    Data      = data
                };

                DeNSo.Session.New.Set(zfs);
            }
Пример #2
0
            public static void SaveShareConfig(string fileName, string name, string queryName, List <ServiceZfs> newParameters)
            {
                var data     = MapFile.Get().Data;
                var shares   = MapFile.Get().Share;
                var oldShare = shares.Where(o => o.Name == queryName).FirstOrDefault();

                shares.Remove(oldShare);
                var shareData = new List <LineModel>()
                {
                };

                foreach (var parameter in newParameters)
                {
                    shareData.Add(ConvertData(parameter));
                }
                var newShare = new ShareModel()
                {
                    FilePath = fileName,
                    Name     = name,
                    Data     = shareData
                };

                shares.Add(newShare);
                var zfs = new ZfsModel()
                {
                    _Id       = serviceGuid,
                    Guid      = serviceGuid,
                    Timestamp = Timestamp.Now,
                    Share     = shares,
                    Data      = data
                };

                DeNSo.Session.New.Set(zfs);
            }
Пример #3
0
            public static void Render()
            {
                var shares = new List <ShareModel>()
                {
                };
                var data = new List <LineModel>()
                {
                };

                foreach (var file in SimpleStructure)
                {
                    if (file.Contains("/share/"))
                    {
                        shares.Add(ReadFileShare(file));
                    }
                    else
                    {
                        var lines = ReadFile(file);
                        foreach (var line in lines)
                        {
                            data.Add(line);
                        }
                    }
                }
                var zfs = new ZfsModel()
                {
                    _Id       = serviceGuid,
                    Guid      = serviceGuid,
                    Timestamp = Timestamp.Now,
                    Share     = shares,
                    Data      = data
                };

                DeNSo.Session.New.Set(zfs);
            }
Пример #4
0
            public static void AddShare(string name, string directory)
            {
                SetShareFile(name);
                var shareData = new List <LineModel>()
                {
                };
                var defaultParameter00 = new LineModel()
                {
                    FilePath     = $"{DIR}/share/{name.Replace($"", "_")}.conf",
                    Key          = "path",
                    Value        = directory,
                    Type         = ServiceDataType.String,
                    BooleanVerbs = new KeyValuePair <string, string>("", "")
                };

                shareData.Add(defaultParameter00);
                var defaultParameter01 = new LineModel()
                {
                    FilePath     = $"{DIR}/share/{name.Replace($"", "_")}.conf",
                    Key          = "browseable",
                    Value        = "yes",
                    Type         = ServiceDataType.Boolean,
                    BooleanVerbs = new KeyValuePair <string, string>("yes", "no")
                };

                shareData.Add(defaultParameter01);
                var sh = new ShareModel()
                {
                    FilePath = $"{DIR}/share/{name.Replace($"", "_")}.conf",
                    Name     = name,
                    Data     = shareData
                };
                var shares = MapFile.Get().Share;
                var data   = MapFile.Get().Data;

                shares.Add(sh);
                var zfs = new ZfsModel()
                {
                    _Id       = serviceGuid,
                    Guid      = serviceGuid,
                    Timestamp = Timestamp.Now,
                    Share     = shares,
                    Data      = data
                };

                DeNSo.Session.New.Set(zfs);
            }
Пример #5
0
Файл: Zfs.cs Проект: diycp/Antd
        public List <ZfsModel> List()
        {
            var result = Bash.Execute("zfs list");
            var list   = new List <ZfsModel>();

            if (string.IsNullOrEmpty(result))
            {
                return(list);
            }

            var pools = Zpool.List();

            var lines = result.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).ToList().Skip(1);

            foreach (var line in lines)
            {
                var cells = Regex.Split(line, @"\s+");
                var model = new ZfsModel {
                    Guid       = Guid.NewGuid().ToString(),
                    Name       = cells[0],
                    Used       = cells[1],
                    Available  = cells[2],
                    Refer      = cells[3],
                    Mountpoint = cells[4],
                    Pool       = ""
                };

                var firstPartOfName = model.Name.SplitToList("/").First();
                var p = pools.Where(_ => _.Name == firstPartOfName).ToList();
                if (p.Any())
                {
                    model.Pool = firstPartOfName;
                    var j = p.FirstOrDefault();
                    if (j != null)
                    {
                        model.HasSnapshot  = j.HasSnapshot;
                        model.Snapshot     = j.Snapshot;
                        model.SnapshotGuid = j.SnapshotGuid;
                    }
                }

                list.Add(model);
            }
            return(list);
        }
Пример #6
0
            public static void SaveGlobalConfig(List <ServiceZfs> newParameters)
            {
                var shares = MapFile.Get().Share;
                var data   = new List <LineModel>()
                {
                };

                foreach (var parameter in newParameters)
                {
                    data.Add(ConvertData(parameter));
                }
                var zfs = new ZfsModel()
                {
                    _Id       = serviceGuid,
                    Guid      = serviceGuid,
                    Timestamp = Timestamp.Now,
                    Share     = shares,
                    Data      = data
                };

                DeNSo.Session.New.Set(zfs);
            }