Skip to content
This repository has been archived by the owner on Feb 18, 2021. It is now read-only.

CLI: fix defaults; make consistent with admin cli #246

Merged
merged 5 commits into from
Jul 7, 2017
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 32 additions & 28 deletions cmd/tools/admin/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,22 @@ package main

import (
"os"
"time"

"github.com/codegangsta/cli"
"github.com/uber/cherami-server/common"
"github.com/uber/cherami-server/tools/admin"
toolscommon "github.com/uber/cherami-server/tools/common"
)

const (
usageCGStartTime = `Consume messages newer than this time in unix-nanos (default: Now; ie, consume no previously published messages)`
usageCGLockTimeoutSeconds = `Acknowledgement timeout for prefetched/received messages`
usageCGMaxDeliveryCount = `Max number of times a message is delivered before it is sent to the DLQ (dead-letter queue)`
usageCGSkipOlderMessagesInSeconds = `Skip messages older than this duration, in seconds ('0' to skip none)`
usageCGDelaySeconds = `Delay, in seconds, to defer all messages by`
usageCGOwnerEmail = "Owner email"
usageCGZoneConfig = "Zone configs for multi-zone CG. For each zone, specify \"Zone,PreferedActiveZone\"; ex: \"dca1a,false\""
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no dca1

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

still has dca1 here

)

func main() {
Expand Down Expand Up @@ -95,13 +107,13 @@ func main() {

cli.IntFlag{
Name: "consumed_messages_retention, cr",
Value: 3600,
Value: toolscommon.DefaultConsumedMessagesRetention,
Usage: "Consumed messages retention period specified in seconds. Default is 1 hour.",
},

cli.IntFlag{
Name: "unconsumed_messages_retention, ur",
Value: 7200,
Value: toolscommon.DefaultUnconsumedMessagesRetention,
Usage: "Unconsumed messages retention period specified in seconds. Default is two hours.",
},
cli.StringFlag{
Expand All @@ -111,7 +123,7 @@ func main() {
},
cli.StringFlag{
Name: "owner_email, oe",
Value: "",
Value: cliHelper.GetDefaultOwnerEmail(),
Usage: "The owner's email who commits the request. Default is the [email protected]",
},
},
Expand All @@ -126,33 +138,37 @@ func main() {
Flags: []cli.Flag{
cli.IntFlag{
Name: "start_time, s",
Value: 0,
Usage: "Start this consumer group at this UNIX timestamp; by default we start at this Unix timestamp (seconds since 1970-1-1)",
Value: int(time.Now().Unix()),
Usage: usageCGStartTime,
},
cli.IntFlag{
Name: "lock_timeout_seconds, l",
Value: 60,
Usage: "Ack timeout for each message",
Value: toolscommon.DefaultLockTimeoutSeconds,
Usage: usageCGLockTimeoutSeconds,
},
cli.IntFlag{
Name: "max_delivery_count, m",
Value: 10,
Usage: "Maximum delivery count for a message before it sents to dead-letter queue",
Value: toolscommon.DefaultMaxDeliveryCount,
Usage: usageCGMaxDeliveryCount,
},
cli.IntFlag{
Name: "skip_older_messages_in_seconds, k",
Value: 0,
Usage: "Skip messages older than this duration in seconds ('0' to skip none).",
Value: toolscommon.DefaultSkipOlderMessageSeconds,
Usage: usageCGSkipOlderMessagesInSeconds,
},
cli.IntFlag{
Name: "delay_seonds, d",
Value: 0,
Usage: "Delay to add to every message, in seconds.",
Name: "delay_seconds, d",
Value: toolscommon.DefaultDelayMessageSeconds,
Usage: usageCGDelaySeconds,
},
cli.StringFlag{
Name: "owner_email, oe",
Value: "",
Usage: "The owner's email who commits the request. Default is the [email protected]",
Value: cliHelper.GetDefaultOwnerEmail(),
Usage: usageCGOwnerEmail,
},
cli.StringSliceFlag{
Name: "zone_config, zc",
Usage: usageCGZoneConfig,
},
},
Action: func(c *cli.Context) {
Expand Down Expand Up @@ -295,27 +311,22 @@ func main() {
Flags: []cli.Flag{
cli.StringFlag{
Name: "status, s",
Value: "enabled",
Usage: "status: enabled | disabled | sendonly | recvonly",
},
cli.IntFlag{
Name: "consumed_messages_retention, cr",
Value: 3600,
Usage: "Consumed messages retention period specified in seconds. Default is one hour.",
},
cli.IntFlag{
Name: "unconsumed_messages_retention, ur",
Value: 7200,
Usage: "Unconsumed messages retention period specified in seconds. Default is two hours.",
},
cli.StringFlag{
Name: "checksum_option, co",
Value: "",
Usage: "Checksum_options, can be one of the crcIEEE, md5",
},
cli.StringFlag{
Name: "owner_email, oe",
Value: "",
Usage: "The updated owner's email",
},
cli.StringSliceFlag{
Expand All @@ -334,37 +345,30 @@ func main() {
Flags: []cli.Flag{
cli.StringFlag{
Name: "status, s",
Value: "enabled",
Usage: "status: enabled | disabled",
},
cli.IntFlag{
Name: "lock_timeout_seconds, l",
Value: 60,
Usage: "Ack timeout for each message",
},
cli.IntFlag{
Name: "max_delivery_count, m",
Value: 10,
Usage: "Maximum delivery count for a message before it sents to dead-letter queue",
},
cli.IntFlag{
Name: "skip_older_messages_in_seconds, k",
Value: 7200,
Usage: "Skip messages older than this duration in seconds.",
},
cli.IntFlag{
Name: "delay_seonds, d",
Value: 0,
Usage: "Delay to add to every message, in seconds.",
},
cli.StringFlag{
Name: "owner_email, oe",
Value: "",
Usage: "The updated owner's email",
},
cli.StringFlag{
Name: "active_zone, az",
Value: "",
Usage: "The updated active zone",
},
cli.StringSliceFlag{
Expand Down
71 changes: 29 additions & 42 deletions cmd/tools/cli/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,17 @@ import (
"github.com/codegangsta/cli"
"github.com/uber/cherami-server/common"
lib "github.com/uber/cherami-server/tools/cli"
toolscommon "github.com/uber/cherami-server/tools/common"
)

const (
strLockTimeoutSeconds = `Acknowledgement timeout for prefetched/received messages`

strMaxDeliveryCount = "Maximum number of times a message is delivered\n\tbefore it is sent to the dead-letter queue (DLQ)"

strSkipOlderMessagesInSeconds = `Skip messages older than this duration in seconds ('0' to skip none)`
intSkipOlderMessagesInSeconds = 0 // 0 -> skip none

strDelaySeconds = `Delay to introduce to all messages, in seconds.`
intDelaySeconds = 0 // zero delay, by default
usageCGStartTime = `Consume messages newer than this time in unix-nanos (default: Now; ie, consume no previously published messages)`
usageCGLockTimeoutSeconds = `Acknowledgement timeout for prefetched/received messages`
usageCGMaxDeliveryCount = `Max number of times a message is delivered before it is sent to the DLQ (dead-letter queue)`
usageCGSkipOlderMessagesInSeconds = `Skip messages older than this duration, in seconds ('0' to skip none)`
usageCGDelaySeconds = `Delay, in seconds, to defer all messages by`
usageCGOwnerEmail = "Owner email"
usageCGZoneConfig = "Zone configs for multi-zone CG. For each zone, specify \"Zone,PreferedActiveZone\"; ex: \"zone1,false\""
)

func main() {
Expand Down Expand Up @@ -103,13 +102,13 @@ func main() {
},
cli.IntFlag{
Name: "consumed_messages_retention, cr",
Value: 3600,
Usage: "Consumed messages retention period specified in seconds. Default is 1 hour.",
Value: toolscommon.DefaultConsumedMessagesRetention,
Usage: "Consumed messages retention period specified in seconds (default: 1 day)",
},
cli.IntFlag{
Name: "unconsumed_messages_retention, ur",
Value: 7200,
Usage: "Unconsumed messages retention period specified in seconds. Default is two hours.",
Value: toolscommon.DefaultUnconsumedMessagesRetention,
Usage: "Unconsumed messages retention period specified in seconds (default: 3 days)",
},
cli.StringFlag{
Name: "checksum_option, co",
Expand All @@ -123,7 +122,7 @@ func main() {
},
cli.StringSliceFlag{
Name: "zone_config, zc",
Usage: "Zone configs for multi_zone destinations. Format for each zone should be \"ZoneName,AllowPublish,AllowConsume,ReplicaCount\". For example: \"zone1,true,true,3\"",
Usage: "Zone configs for multi_zone destinations. Format for each zone should be \"Zone,AllowPublish,AllowConsume,ReplicaCount\". Ex: \"zone1,true,true,3\"",
},
cli.StringFlag{
Name: "kafka_cluster, kc",
Expand All @@ -146,36 +145,36 @@ func main() {
cli.IntFlag{
Name: "start_time, s",
Value: int(time.Now().Unix()),
Usage: "Consume messages newer than this UNIX timestamp.\n\tDefault: now (i.e. consume no existing messages)\n\tUse `date -d \"2017-06-11 6:42:42 -7:00\" +%s` to determine a value for this.",
Usage: usageCGStartTime,
},
cli.IntFlag{
Name: "lock_timeout_seconds, l",
Value: 60,
Usage: strLockTimeoutSeconds,
Value: toolscommon.DefaultLockTimeoutSeconds,
Usage: usageCGLockTimeoutSeconds,
},
cli.IntFlag{
Name: "max_delivery_count, m",
Value: 10,
Usage: strMaxDeliveryCount,
Value: toolscommon.DefaultMaxDeliveryCount,
Usage: usageCGMaxDeliveryCount,
},
cli.IntFlag{
Name: "skip_older_messages_in_seconds, k",
Value: intSkipOlderMessagesInSeconds,
Usage: strSkipOlderMessagesInSeconds,
Value: toolscommon.DefaultSkipOlderMessageSeconds,
Usage: usageCGSkipOlderMessagesInSeconds,
},
cli.IntFlag{
Name: "delay_seconds, d",
Value: intDelaySeconds,
Usage: strDelaySeconds,
Value: toolscommon.DefaultDelayMessageSeconds,
Usage: usageCGDelaySeconds,
},
cli.StringFlag{
Name: "owner_email, oe",
Value: cliHelper.GetDefaultOwnerEmail(),
Usage: "The owner's email. Default is the [email protected]",
Usage: usageCGOwnerEmail,
},
cli.StringSliceFlag{
Name: "zone_config, zc",
Usage: "Zone configs for multi_zone consumer group. Format for each zone should be \"ZoneName,PreferedActiveZone\". For example: \"zone1,false\"",
Usage: usageCGZoneConfig,
},
},
Action: func(c *cli.Context) {
Expand Down Expand Up @@ -249,27 +248,22 @@ func main() {
Flags: []cli.Flag{
cli.StringFlag{
Name: "status, s",
Value: "enabled",
Usage: "status: enabled | disabled | sendonly | recvonly",
},
cli.IntFlag{
Name: "consumed_messages_retention, cr",
Value: 3600,
Usage: "Consumed messages retention period specified in seconds. Default is one hour.",
},
cli.IntFlag{
Name: "unconsumed_messages_retention, ur",
Value: 7200,
Usage: "Unconsumed messages retention period specified in seconds. Default is two hours.",
},
cli.StringFlag{
Name: "checksum_option, co",
Value: "",
Usage: "Checksum_options, can be one of the crcIEEE, md5",
},
cli.StringFlag{
Name: "owner_email, oe",
Value: cliHelper.GetDefaultOwnerEmail(),
Usage: "The updated owner's email",
},
cli.StringSliceFlag{
Expand All @@ -288,37 +282,30 @@ func main() {
Flags: []cli.Flag{
cli.StringFlag{
Name: "status, s",
Value: "enabled",
Usage: "status: enabled | disabled",
},
cli.IntFlag{
Name: "lock_timeout_seconds, l",
Value: 60,
Usage: strLockTimeoutSeconds,
Usage: usageCGLockTimeoutSeconds,
},
cli.IntFlag{
Name: "max_delivery_count, m",
Value: 10,
Usage: strMaxDeliveryCount,
Usage: usageCGMaxDeliveryCount,
},
cli.IntFlag{
Name: "skip_older_messages_in_seconds, k",
Value: intSkipOlderMessagesInSeconds,
Usage: strSkipOlderMessagesInSeconds,
Usage: usageCGSkipOlderMessagesInSeconds,
},
cli.IntFlag{
Name: "delay_seconds, d",
Value: intDelaySeconds,
Usage: strDelaySeconds,
Usage: usageCGDelaySeconds,
},
cli.StringFlag{
Name: "owner_email, oe",
Value: cliHelper.GetDefaultOwnerEmail(),
Usage: "The updated owner's email",
Usage: usageCGOwnerEmail,
},
cli.StringFlag{
Name: "active_zone, az",
Value: "",
Usage: "The updated active zone",
},
cli.StringSliceFlag{
Expand Down
12 changes: 12 additions & 0 deletions tools/common/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ const (
DestinationType = "DST"
// ConsumerGroupType is the name for entity type for consumer group in listEntityOps
ConsumerGroupType = "CG"
// DefaultUnconsumedMessagesRetention is the default value for unconsumed messages retention
DefaultUnconsumedMessagesRetention = 3 * 24 * 3600 // 3 days
// DefaultConsumedMessagesRetention is the default value for consumed messages retention
DefaultConsumedMessagesRetention = 1 * 24 * 3600 // 1 day
// MinUnconsumedMessagesRetentionForMultiZoneDest is the minimum unconsumed retention allowed
MinUnconsumedMessagesRetentionForMultiZoneDest = 3 * 24 * 3600
// MinConsumedMessagesRetention is the minimum consumed retention
Expand All @@ -81,18 +85,26 @@ const (
MinUnconsumedMessagesRetention = 180
// MaxUnconsumedMessagesRetention is the maximum unconsumed retention
MaxUnconsumedMessagesRetention = 7 * 24 * 3600
// DefaultLockTimeoutSeconds is the default value for lock timeout seconds
DefaultLockTimeoutSeconds = 60
// MinLockTimeoutSeconds is the minimum lock timeout seconds
MinLockTimeoutSeconds = 10
// MaxLockTimeoutSeconds is the maximum lock timeout seconds
MaxLockTimeoutSeconds = 3600
// DefaultMaxDeliveryCount is the default value for max delivery count
DefaultMaxDeliveryCount = 10
// MinMaxDeliveryCount is the minimum value for max delivery count
MinMaxDeliveryCount = 1
// MaxMaxDeliveryCount is the maximum value for max delivery count
MaxMaxDeliveryCount = 1000
// DefaultSkipOlderMessageSeconds is the default value for skipping older message
DefaultSkipOlderMessageSeconds = 0
// MinSkipOlderMessageSeconds is the minimum value for skipping older message
MinSkipOlderMessageSeconds = 1800
// MaxSkipOlderMessageSeconds is the maximum value for skipping older message
MaxSkipOlderMessageSeconds = 2 * 24 * 3600
// DefaultDelayMessageSeconds is the default value for delaying message
DefaultDelayMessageSeconds = 0
// MinDelayMessageSeconds is the minimum value for delaying message
MinDelayMessageSeconds = 0
// MaxDelayMessageSeconds is the maximum value for delaying message
Expand Down