Ejemplo n.º 1
0
 /// <exception cref="System.IO.IOException"/>
 private static CacheDirectiveInfo.Expiration ParseExpirationString(string ttlString
                                                                    )
 {
     CacheDirectiveInfo.Expiration ex = null;
     if (ttlString != null)
     {
         if (Sharpen.Runtime.EqualsIgnoreCase(ttlString, "never"))
         {
             ex = CacheDirectiveInfo.Expiration.Never;
         }
         else
         {
             long ttl = DFSUtil.ParseRelativeTime(ttlString);
             ex = CacheDirectiveInfo.Expiration.NewRelative(ttl);
         }
     }
     return(ex);
 }
Ejemplo n.º 2
0
            /// <exception cref="System.IO.IOException"/>
            public virtual int Run(Configuration conf, IList <string> args)
            {
                CacheDirectiveInfo.Builder builder = new CacheDirectiveInfo.Builder();
                bool   modified = false;
                string idString = StringUtils.PopOptionWithArgument("-id", args);

                if (idString == null)
                {
                    System.Console.Error.WriteLine("You must specify a directive ID with -id.");
                    return(1);
                }
                builder.SetId(long.Parse(idString));
                string path = StringUtils.PopOptionWithArgument("-path", args);

                if (path != null)
                {
                    builder.SetPath(new Path(path));
                    modified = true;
                }
                bool   force             = StringUtils.PopOption("-force", args);
                string replicationString = StringUtils.PopOptionWithArgument("-replication", args
                                                                             );

                if (replicationString != null)
                {
                    builder.SetReplication(short.ParseShort(replicationString));
                    modified = true;
                }
                string poolName = StringUtils.PopOptionWithArgument("-pool", args);

                if (poolName != null)
                {
                    builder.SetPool(poolName);
                    modified = true;
                }
                string ttlString = StringUtils.PopOptionWithArgument("-ttl", args);

                try
                {
                    CacheDirectiveInfo.Expiration ex = ParseExpirationString(ttlString);
                    if (ex != null)
                    {
                        builder.SetExpiration(ex);
                        modified = true;
                    }
                }
                catch (IOException e)
                {
                    System.Console.Error.WriteLine("Error while parsing ttl value: " + e.Message);
                    return(1);
                }
                if (!args.IsEmpty())
                {
                    System.Console.Error.WriteLine("Can't understand argument: " + args[0]);
                    System.Console.Error.WriteLine("Usage is " + GetShortUsage());
                    return(1);
                }
                if (!modified)
                {
                    System.Console.Error.WriteLine("No modifications were specified.");
                    return(1);
                }
                DistributedFileSystem dfs   = AdminHelper.GetDFS(conf);
                EnumSet <CacheFlag>   flags = EnumSet.NoneOf <CacheFlag>();

                if (force)
                {
                    flags.AddItem(CacheFlag.Force);
                }
                try
                {
                    dfs.ModifyCacheDirective(builder.Build(), flags);
                    System.Console.Out.WriteLine("Modified cache directive " + idString);
                }
                catch (IOException e)
                {
                    System.Console.Error.WriteLine(AdminHelper.PrettifyException(e));
                    return(2);
                }
                return(0);
            }
Ejemplo n.º 3
0
            /// <exception cref="System.IO.IOException"/>
            public virtual int Run(Configuration conf, IList <string> args)
            {
                CacheDirectiveInfo.Builder builder = new CacheDirectiveInfo.Builder();
                string path = StringUtils.PopOptionWithArgument("-path", args);

                if (path == null)
                {
                    System.Console.Error.WriteLine("You must specify a path with -path.");
                    return(1);
                }
                builder.SetPath(new Path(path));
                string poolName = StringUtils.PopOptionWithArgument("-pool", args);

                if (poolName == null)
                {
                    System.Console.Error.WriteLine("You must specify a pool name with -pool.");
                    return(1);
                }
                builder.SetPool(poolName);
                bool   force             = StringUtils.PopOption("-force", args);
                string replicationString = StringUtils.PopOptionWithArgument("-replication", args
                                                                             );

                if (replicationString != null)
                {
                    short replication = short.ParseShort(replicationString);
                    builder.SetReplication(replication);
                }
                string ttlString = StringUtils.PopOptionWithArgument("-ttl", args);

                try
                {
                    CacheDirectiveInfo.Expiration ex = ParseExpirationString(ttlString);
                    if (ex != null)
                    {
                        builder.SetExpiration(ex);
                    }
                }
                catch (IOException e)
                {
                    System.Console.Error.WriteLine("Error while parsing ttl value: " + e.Message);
                    return(1);
                }
                if (!args.IsEmpty())
                {
                    System.Console.Error.WriteLine("Can't understand argument: " + args[0]);
                    return(1);
                }
                DistributedFileSystem dfs       = AdminHelper.GetDFS(conf);
                CacheDirectiveInfo    directive = builder.Build();
                EnumSet <CacheFlag>   flags     = EnumSet.NoneOf <CacheFlag>();

                if (force)
                {
                    flags.AddItem(CacheFlag.Force);
                }
                try
                {
                    long id = dfs.AddCacheDirective(directive, flags);
                    System.Console.Out.WriteLine("Added cache directive " + id);
                }
                catch (IOException e)
                {
                    System.Console.Error.WriteLine(AdminHelper.PrettifyException(e));
                    return(2);
                }
                return(0);
            }