admin-cli/cmd/compaction.go (40 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package cmd import ( "github.com/apache/incubator-pegasus/admin-cli/executor" "github.com/apache/incubator-pegasus/admin-cli/shell" "github.com/desertbit/grumble" ) func init() { shell.AddCommand(&grumble.Command{ Name: "add-compaction-operation", Help: "add compaction operation and the corresponding rules", Flags: func(f *grumble.Flags) { /** * operations **/ f.String("o", "operation-type", "", "operation type, for example: delete/update-ttl") // update ttl operation f.String("u", "ttl-type", "", "update ttl operation type, for example: from-now/from-current/timestamp") f.Uint("v", "time-value", 0, "time value") /** * rules **/ // hashkey filter f.StringL("hashkey-pattern", "", "hash key pattern") f.StringL("hashkey-match", "anywhere", "hash key's match type, for example: anywhere/prefix/postfix") // sortkey filter f.StringL("sortkey-pattern", "", "sort key pattern") f.StringL("sortkey-match", "anywhere", "sort key's match type, for example: anywhere/prefix/postfix") // ttl filter f.Int64L("start-ttl", -1, "ttl filter, start ttl") f.Int64L("stop-ttl", -1, "ttl filter, stop ttl") }, Run: shell.RequireUseTable(func(c *shell.Context) error { var params = &executor.CompactionParams{ OperationType: c.Flags.String("operation-type"), UpdateTTLType: c.Flags.String("ttl-type"), TimeValue: c.Flags.Uint("time-value"), HashkeyPattern: c.Flags.String("hashkey-pattern"), HashkeyMatch: c.Flags.String("hashkey-match"), SortkeyPattern: c.Flags.String("sortkey-pattern"), SortkeyMatch: c.Flags.String("sortkey-match"), StartTTL: c.Flags.Int64("start-ttl"), StopTTL: c.Flags.Int64("stop-ttl"), } return executor.SetCompaction( pegasusClient, c.UseTable, params) }), }) }