public static void Save(GlusterConfigurationModel model) { var text = JsonConvert.SerializeObject(model, Formatting.Indented); FileWithAcl.WriteAllText(CfgFile, text, "644", "root", "wheel"); ConsoleLogger.Log("[gluster] configuration saved"); }
public void Save(GlusterConfigurationModel model) { var text = JsonConvert.SerializeObject(model, Formatting.Indented); if (File.Exists(_cfgFile)) { File.Copy(_cfgFile, _cfgFileBackup, true); } File.WriteAllText(_cfgFile, text); ConsoleLogger.Log("[sync] configuration saved"); }
public GlusterConfiguration() { IoDir.CreateDirectory(Parameter.AntdCfgServices); if (!File.Exists(_cfgFile)) { _serviceModel = new GlusterConfigurationModel(); } else { try { var text = File.ReadAllText(_cfgFile); var obj = JsonConvert.DeserializeObject <GlusterConfigurationModel>(text); _serviceModel = obj; } catch (Exception) { _serviceModel = new GlusterConfigurationModel(); } } }
private static void SetHostnameFile(GlusterConfigurationModel conf) { var linesToAdd = new List <string>(); foreach (var node in conf.Nodes) { linesToAdd.Add($"{node.Ip} {node.Hostname}.{Host.InternalDomainPrimary} {node.Hostname}"); } const string file = "/etc/hosts"; var hostsLines = File.ReadAllLines(file).ToList(); foreach (var line in linesToAdd) { if (!hostsLines.Contains(line)) { hostsLines.Add(line); } } FileWithAcl.WriteAllLines(file, hostsLines, "644", "root", "wheel"); }
public AntdGlusterModule() { Get["/gluster"] = x => { var glusterConfiguration = new GlusterConfiguration(); var glusterIsActive = glusterConfiguration.IsActive(); var model = new PageGlusterModel { GlusterIsActive = glusterIsActive, Nodes = glusterConfiguration.Get()?.Nodes, Volumes = glusterConfiguration.Get()?.Volumes }; return(JsonConvert.SerializeObject(model)); }; Post["/gluster/set"] = x => { var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.Set(); return(HttpStatusCode.OK); }; Post["/gluster/restart"] = x => { var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/gluster/stop"] = x => { var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/gluster/enable"] = x => { var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.Enable(); glusterConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/gluster/disable"] = x => { var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.Disable(); glusterConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/gluster/options"] = x => { string nodes = Request.Form.GlusterNode; var nodelist = nodes.Split(new[] { "," }, StringSplitOptions.None).ToList(); string volumeNames = Request.Form.GlusterVolumeName; string volumeBrick = Request.Form.GlusterVolumeBrick; string volumeMountPoint = Request.Form.GlusterVolumeMountPoint; var volumeNamesList = volumeNames.Split(new[] { "," }, StringSplitOptions.None); var volumeBrickList = volumeBrick.Split(new[] { "," }, StringSplitOptions.None); var volumeMountPointList = volumeMountPoint.Split(new[] { "," }, StringSplitOptions.None); var volumelist = new List <GlusterVolume>(); for (var i = 0; i < 20; i++) { if (volumeNamesList.Length < i - 1 || volumeBrickList.Length < i - 1 || volumeMountPointList.Length < i - 1) { continue; } try { var vol = new GlusterVolume { Name = volumeNamesList[i], Brick = volumeBrickList[i], MountPoint = volumeMountPointList[i], }; volumelist.Add(vol); } catch (Exception) { continue; } } var config = new GlusterConfigurationModel { Nodes = nodelist.ToArray(), Volumes = volumelist.ToArray() }; var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.Save(config); return(HttpStatusCode.OK); }; Post["/gluster/node"] = x => { string node = Request.Form.Node; if (string.IsNullOrWhiteSpace(node)) { return(HttpStatusCode.BadRequest); } var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.AddNode(node); return(HttpStatusCode.OK); }; Post["/gluster/node/del"] = x => { string node = Request.Form.Node; if (string.IsNullOrWhiteSpace(node)) { return(HttpStatusCode.BadRequest); } var glusterConfiguration = new GlusterConfiguration(); glusterConfiguration.RemoveNode(node); return(HttpStatusCode.OK); }; }