Beispiel #1
0
            public static string DeleteNetworkInterfaceToBridge(string bridgeName, string interfaceName)
            {
                var cmd = $"brctl delif {bridgeName} {interfaceName}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #2
0
            public static string DeleteNeighborsIpv6(string address, string layerAddress, string interfaceName)
            {
                var cmd = $"ip -6 neigh del {address} lladdr {layerAddress} dev {interfaceName}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #3
0
            public static string DisableStpOnBridge(string bridgeName)
            {
                var cmd = $"brctl stp {bridgeName} off";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #4
0
            public static string AddNewAddressIpv6(string address, string interfaceName)
            {
                var cmd = $"ip -6 addr add {address} dev {interfaceName}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #5
0
            public static string SetBridgePathCost(string bridgeName, string path, string cost)
            {
                var cmd = $"brctl setpathcost {bridgeName} {path} {cost} set path cost";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #6
0
            public static string AddTunnelPointToPointIpv4(string interfaceName, string ttl, string foreignTunnel, string address)
            {
                var cmd = $"ip tunnel add {interfaceName} mode sit ttl {ttl} remote {foreignTunnel} local {address}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #7
0
            public static string DeleteTunnelPointToPointIpv4(string interfaceName)
            {
                var cmd = $"ip tunnel del {interfaceName}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #8
0
            public static string AddNat(string address, string viaAddress)
            {
                var cmd = $"ip route add nat {address} via {viaAddress}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #9
0
            public static string DisableInterface(string interfaceName)
            {
                var cmd = $"ip link set {interfaceName} down";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #10
0
            public static string AddMultipathRoute(string net1, string net2)
            {
                var cmd = $"ip route add default scope global nexthop dev {net1} nexthop dev {net2}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #11
0
            public static string SetBridgePortPriority(string bridgeName, string port, string priority)
            {
                var cmd = $"brctl setportprio {bridgeName} {port} {priority} set port priority";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #12
0
            public static string DeleteBridgeName(string bridgeName)
            {
                var cmd = $"brctl delbr {bridgeName}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #13
0
            public static string FlushConfigurationIpv6()
            {
                var cmd = $"ip addr flush dynamic";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #14
0
            public static string FlushConfigurationIpv4(string interfaceName = null)
            {
                var i   = interfaceName == null ? "label \"eth *\"" : "dev {interfaceName}";
                var cmd = $"ip addr flush {i}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #15
0
 public static void AddNftRule(string prefix, string rule)
 {
     ConfigManagement.AddCommandsBundle($"{prefix} {rule}");
     if (rule.Length > 0)
     {
         Terminal.Terminal.Execute($"{prefix} {rule}");
     }
 }
Beispiel #16
0
            public static string DeleteRouteIpv4(string gateway, string destination)
            {
                var cmd = destination == null ?
                          $"ip route del default via {gateway}" :
                          $"ip route del {destination} via {gateway}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #17
0
            public static string DeleteAddressIpv4(string address, string range, string interfaceName, string broadcast)
            {
                var cmd = broadcast == "" ?
                          $"ip addr del {address}/{range} dev {interfaceName}" :
                          $"ip addr del {address}/{range} broadcast {address} dev {interfaceName}";

                ConfigManagement.AddCommandsBundle(cmd);
                return(Terminal.Terminal.Execute(cmd));
            }
Beispiel #18
0
 public static string DeleteRouteIpv6Gateway(string address, string gateway = null)
 {
     if (gateway == null)
     {
         var cmd = $"ip -6 route del default via {address}";
         ConfigManagement.AddCommandsBundle(cmd);
         return(Terminal.Terminal.Execute(cmd));
     }
     else
     {
         var cmd = $"ip -6 route del {gateway} via {address}";
         ConfigManagement.AddCommandsBundle(cmd);
         return(Terminal.Terminal.Execute(cmd));
     }
 }
Beispiel #19
0
 public static string DeleteRouteIpv6Interface(string interfaceName, string gateway = null)
 {
     if (gateway == null)
     {
         var cmd = $"ip -6 route del default dev {interfaceName}";
         ConfigManagement.AddCommandsBundle(cmd);
         return(Terminal.Terminal.Execute(cmd));
     }
     else
     {
         var cmd = $"ip -6 route del {gateway} dev {interfaceName}";
         ConfigManagement.AddCommandsBundle(cmd);
         return(Terminal.Terminal.Execute(cmd));
     }
 }
Beispiel #20
0
        public TerminalModule()
        {
            this.RequiresAuthentication();

            Get["/terminal"] = x => View["page-terminal"];

            Post["/terminal"] = x => Response.AsJson((string)(Request.Form.Directory == "" ? Terminal.Execute((string)Request.Form.Command) : Terminal.Execute(Request.Form.Command, Request.Form.Directory)));

            Post["/terminal/directory"] = x => {
                string directory = Request.Form.Directory;
                string result;
                if (Directory.Exists(directory))
                {
                    result = directory + " > ";
                }
                else
                {
                    result = "0";
                }
                return(Response.AsJson(result));
            };

            Post["/terminal/directory/parent"] = x => {
                string result;
                if (!Directory.Exists((string)Request.Form.Directory))
                {
                    result = "0";
                }
                else
                {
                    var parent = Directory.GetParent((string)Request.Form.Directory);
                    if (Directory.Exists(parent.FullName))
                    {
                        result = parent.FullName + " > ";
                    }
                    else
                    {
                        result = "0";
                    }
                }
                return(Response.AsJson(result));
            };

            Post["/terminal/api"] = x => {
                var cmds   = Request.Form.Command.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
                var result = Request.Form.Directory == "" ? Terminal.MultiLine.Execute((string[])cmds) : Terminal.MultiLine.Execute((string[])cmds, (string)Request.Form.Directory);
                return(Response.AsJson(result));
            };

            Post["/terminal/direct/post"] = x => {
                var inputCommand = (string)Request.Form.Command;
                var commandSplit = inputCommand.Split(new[] { "$nl" }, StringSplitOptions.None).Select(cmd => ConfigManagement.SupposeCommandReplacement(cmd.Replace("$'", "\""))).ToList();
                foreach (var command in commandSplit)
                {
                    ConfigManagement.AddCommandsBundle(command);
                }
                var result = Terminal.MultiLine.Execute(commandSplit);
                return(Response.AsJson(result));
            };

            Post["/terminal/direct"] = x => {
                var inputCommand = (string)Request.Form.Command;
                var commandSplit = inputCommand.Split(new[] { "$nl" }, StringSplitOptions.None).Select(cmd => ConfigManagement.SupposeCommandReplacement(cmd.Replace("$'", "\""))).ToList();
                var result       = Terminal.MultiLine.Execute(commandSplit);
                return(Response.AsJson(result));
            };
        }
Beispiel #21
0
        public ConfModule()
        {
            this.RequiresAuthentication();

            Post["/cfg/addvalue"] = x => {
                var tag   = (string)Request.Form.Tag;
                var key   = (string)Request.Form.Key;
                var value = (string)Request.Form.Value;
                if (key.Length > 0)
                {
                    ConfigManagement.AddValuesBundle(tag, key, value);
                }
                else
                {
                    ConfigManagement.AddValuesBundle(tag, value);
                }
                return(Response.AsRedirect("/"));
            };

            Post["/cfg/delvalue"] = x => {
                var tag   = (string)Request.Form.Tag;
                var key   = (string)Request.Form.Key;
                var value = (string)Request.Form.Value;
                ConfigManagement.DeleteValuesBundle(tag, key, value);
                return(Response.AsRedirect("/"));
            };

            Get["/cfg/tags"] = x => {
                var data = ConfigManagement.GetTagsBundleValue();
                var map  = SelectizerMapModel.MapRawTagOfValueBundle(data);
                return(Response.AsJson(map));
            };

            Post["/cfg/addcommand"] = x => {
                var command = (string)Request.Form.Command;
                if (command.Length > 0)
                {
                    ConfigManagement.AddCommandsBundle(command);
                }
                return(Response.AsRedirect("/"));
            };

            Post["/cfg/delcommand"] = x => {
                var guid = (string)Request.Form.Guid;
                ConfigManagement.DeleteCommandsBundle(guid);
                return(Response.AsRedirect("/"));
            };

            Post["/cfg/enablecommand"] = x => {
                var guid = (string)Request.Form.Guid;
                ConfigManagement.EnableCommand(guid);
                return(Response.AsJson(true));
            };

            Post["/cfg/disablecommand"] = x => {
                var guid = (string)Request.Form.Guid;
                ConfigManagement.DisableCommand(guid);
                return(Response.AsJson(true));
            };

            Post["/cfg/launchcommand"] = x => {
                var guid = (string)Request.Form.Guid;
                ConfigManagement.LaunchCommand(guid);
                return(Response.AsRedirect("/"));
            };

            Post["/cfg/reindex"] = x => {
                var guid    = (string)Request.Form.Guid;
                var index   = (string)Request.Form.Index;
                var guids   = guid.Split(',');
                var indexes = index.Split(',');
                for (var i = 0; i < guids.Length; i++)
                {
                    ConfigManagement.AssignIndexToCommandsBundle(guids[i], indexes[i]);
                }
                return(Response.AsRedirect("/"));
            };

            Get["/cfg/getenabled"] = x => {
                var data = ConfigManagement.GetCommandsBundle().Where(_ => _.IsEnabled);
                return(Response.AsJson(data));
            };

            Get["/cfg/layouts"] = x => {
                var data = ConfigManagement.GetCommandsBundleLayout();
                var map  = SelectizerMapModel.MapRawCommandBundleLayout(data);
                return(Response.AsJson(map));
            };

            Post["/cfg/export"] = x => {
                ConfigManagement.Export.ExportConfigurationToFile();
                return(Response.AsJson(true));
            };
        }