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

Commit

Permalink
CLI: fix defaults; make consistent with admin cli (#246)
Browse files Browse the repository at this point in the history
* CLI: fix defaults

* fix admin cli

* fix owner email

* cr feedback

* fix zone
  • Loading branch information
Kiran RG authored and datoug committed Jul 10, 2017
1 parent 81dd8be commit 6adeb8b
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 70 deletions.
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: \"zone1,false\""
)

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

0 comments on commit 6adeb8b

Please sign in to comment.