func (this *Topics) addTopic(zkcluster *zk.ZkCluster, topic string, replicas, partitions int) error { this.Ui.Info(fmt.Sprintf("creating kafka topic: %s", topic)) ts := sla.DefaultSla() ts.Partitions = partitions ts.Replicas = replicas lines, err := zkcluster.AddTopic(topic, ts) if err != nil { return err } for _, l := range lines { this.Ui.Output(color.Yellow(l)) } if this.ipInNumber { this.Ui.Output(fmt.Sprintf("\tzookeeper.connect: %s", zkcluster.ZkConnectAddr())) this.Ui.Output(fmt.Sprintf("\t broker.list: %s", strings.Join(zkcluster.BrokerList(), ","))) } else { this.Ui.Output(fmt.Sprintf("\tzookeeper.connect: %s", zkcluster.NamedZkConnectAddr())) this.Ui.Output(fmt.Sprintf("\t broker.list: %s", strings.Join(zkcluster.NamedBrokerList(), ","))) } return nil }
func (this *Topics) resetTopicConfig(zkcluster *zk.ZkCluster, topic string) { zkAddrs := zkcluster.ZkConnectAddr() key := "retention.ms" cmd := pipestream.New(fmt.Sprintf("%s/bin/kafka-topics.sh", ctx.KafkaHome()), fmt.Sprintf("--zookeeper %s", zkAddrs), fmt.Sprintf("--alter"), fmt.Sprintf("--topic %s", topic), fmt.Sprintf("--deleteConfig %s", key), ) err := cmd.Open() swallow(err) defer cmd.Close() scanner := bufio.NewScanner(cmd.Reader()) scanner.Split(bufio.ScanLines) output := make([]string, 0) for scanner.Scan() { output = append(output, scanner.Text()) } swallow(scanner.Err()) path := zkcluster.GetTopicConfigPath(topic) this.Ui.Info(path) for _, line := range output { this.Ui.Output(line) } }