Ejemplo n.º 1
0
        public ActionResult RunGameUpdatesNow()
        {
            var master = TCAdmin.GameHosting.SDK.Objects.Server.GetEnabledServers().Cast <Server>()
                         .FirstOrDefault(x => x.IsMaster);

            if (master == null)
            {
                return(Json(new { }));
            }

            var fileSystem = master.FileSystemService;
            var virtualDirectorySecurity = new VirtualDirectorySecurity();
            var consoleLog = TCAdmin.SDK.Misc.FileSystem.CombinePath(
                master.ServerUtilitiesService.GetMonitorLogsDirectory(), "console.log", master.OperatingSystem);
            var rt = new RemoteTail(master, virtualDirectorySecurity, consoleLog, "Console Log", string.Empty,
                                    string.Empty);

            fileSystem.CreateTextFile(
                TCAdmin.SDK.Misc.FileSystem.CombinePath(master.ServerUtilitiesService.GetMonitorDirectory(),
                                                        "command.do", master.OperatingSystem), Encoding.Default.GetBytes("service tcacronsGU restart"));
            return(Json(new
            {
                url = rt.GetUrl()
            }));
        }
Ejemplo n.º 2
0
 public FileSystemUtilities(VirtualDirectorySecurity vds, Server server, Service service, CommandContext ctx)
 {
     FileSystem = server.FileSystemService;
     VirtualDirectorySecurity = vds;
     Server         = server;
     Service        = service;
     CommandContext = ctx;
 }
Ejemplo n.º 3
0
 public FileManagerDirectory(CommandContext commandContext, Server server,
                             VirtualDirectorySecurity vds, DirectoryListing listing, string currentDirectory)
 {
     CommandContext           = commandContext;
     FileSystem               = server.FileSystemService;
     Listing                  = listing;
     CurrentDirectory         = currentDirectory;
     VirtualDirectorySecurity = vds;
 }
Ejemplo n.º 4
0
        public DirectoryListing GenerateListingDirectory(string directory,
                                                         VirtualDirectorySecurity virtualDirectorySecurity)
        {
            var parsedDirectory = directory.Replace("..", string.Empty);

            var listing = FileSystem.GetDirectoryListing(parsedDirectory,
                                                         virtualDirectorySecurity.VirtualDirectorySecurityString, true, true);

            return(listing);
        }
Ejemplo n.º 5
0
 public FileSystemUtilities(VirtualDirectorySecurity vds, Server server, CommandContext ctx)
 {
     FileSystem = server.FileSystemService;
     VirtualDirectorySecurity = vds;
     Server  = server;
     Service = new Service
     {
         WorkingDirectory = "/",
         RootDirectory    = "/",
         Executable       = "/"
     };
     CommandContext = ctx;
 }
Ejemplo n.º 6
0
        public TcaFileManager(CommandContext ctx, Server server, string rootDir, bool lockDirectory = false)
        {
            Server           = server;
            FileSystem       = Server.FileSystemService;
            CurrentDirectory = rootDir + "\\";
            LockDirectory    = lockDirectory;

            VirtualDirectorySecurity = new VirtualDirectorySecurity(CurrentDirectory);
            FileSystemUtilities      = new FileSystemUtilities(VirtualDirectorySecurity, Server, ctx);
            CurrentListing           = FileSystemUtilities.GenerateListingDirectory(CurrentDirectory, VirtualDirectorySecurity);
            CommandContext           = ctx;

            IsServer = true;
        }
Ejemplo n.º 7
0
        public TcaFileManager(CommandContext ctx, CommandAttributes.RequireAuthentication authenticationService,
                              string rootDir, bool lockDirectory = false)
        {
            AuthenticationService = authenticationService;

            var service = authenticationService.Service;
            var user    = authenticationService.User;

            Server           = new Server(service.ServerId);
            FileSystem       = Server.FileSystemService;
            CurrentDirectory = rootDir + "\\";
            LockDirectory    = lockDirectory;

            VirtualDirectorySecurity =
                new VirtualDirectorySecurity(FileSystem, CurrentDirectory, user.UserType, service.GameId);
            FileSystemUtilities = new FileSystemUtilities(VirtualDirectorySecurity, Server, service, ctx);
            CurrentListing      = FileSystemUtilities.GenerateListingDirectory(CurrentDirectory, VirtualDirectorySecurity);
            CommandContext      = ctx;

            IsServer = false;
        }
Ejemplo n.º 8
0
        public ActionResult RunCronNow(int id)
        {
            var cronJob = DynamicTypeBase.GetCurrent <CronJob>();
            var master  = TCAdmin.GameHosting.SDK.Objects.Server.GetEnabledServers().Cast <Server>()
                          .FirstOrDefault(x => x.IsMaster);

            if (master == null)
            {
                return(Json(new { }));
            }

            var virtualDirectorySecurity = new VirtualDirectorySecurity();

            System.Threading.Tasks.Task.Run(() => cronJob.ExecuteCron());
            var consoleLog = cronJob.GetLogFile();
            var rt         = new RemoteTail(master, virtualDirectorySecurity, consoleLog, "Console Log", string.Empty,
                                            string.Empty);

            return(Json(new
            {
                url = rt.GetUrl()
            }));
        }
Ejemplo n.º 9
0
        public async System.Threading.Tasks.Task Compress()
        {
            var msg = await CommandContext.RespondAsync("**Compressing...** *Please Wait*");

            var directorySecurity = new VirtualDirectorySecurity(CurrentDirectory);

            var files = Listing.Files.Select(file => file.Name).ToList();

            files.AddRange(Listing.Directories.Select(dir => dir.Name));

            try
            {
                FileSystem.CompressFiles(CurrentDirectory, files.ToArray(),
                                         directorySecurity.VirtualDirectorySecurityString, 5000000000);
                await CommandContext.RespondAsync("**Compress Completed.**");
            }
            catch (Exception e)
            {
                await CommandContext.RespondAsync(e.Message);
            }

            await CleanUp(CommandContext.Channel, msg);
        }