Пример #1
0
func (this *Job) printResourcesAndActors() {
	lines := make([]string, 0)
	header := "Topic|Cluster|Ctime|Mtime"
	lines = append(lines, header)
	// jobs
	jobQueues := this.zkzone.ChildrenWithData(zk.PubsubJobQueues)
	sortedName := make([]string, 0, len(jobQueues))
	for name := range jobQueues {
		sortedName = append(sortedName, name)
	}
	sort.Strings(sortedName)

	manager.Default = dummy.New("")
	for _, topic := range sortedName {
		zdata := jobQueues[topic]
		if appid := manager.Default.TopicAppid(topic); appid == "" {
			lines = append(lines, fmt.Sprintf("?%s|%s|%s|%s", topic,
				string(zdata.Data()), zdata.Ctime(), zdata.Mtime()))
		} else {
			lines = append(lines, fmt.Sprintf("%s|%s|%s|%s", topic,
				string(zdata.Data()), zdata.Ctime(), zdata.Mtime()))
		}

	}
	if len(lines) > 1 {
		this.Ui.Info("Jobs")
		this.Ui.Output(columnize.SimpleFormat(lines))
	}

	// webhooks
	lines = lines[:0]
	header = "Topic|Endpoints|Ctime|Mtime"
	lines = append(lines, header)
	webhoooks := this.zkzone.ChildrenWithData(zk.PubsubWebhooks)
	sortedName = sortedName[:0]
	for name := range webhoooks {
		sortedName = append(sortedName, name)
	}
	sort.Strings(sortedName)

	for _, topic := range sortedName {
		zdata := webhoooks[topic]
		var hook zk.WebhookMeta
		hook.From(zdata.Data())
		if appid := manager.Default.TopicAppid(topic); appid == "" {
			lines = append(lines, fmt.Sprintf("?%s|%+v|%s|%s", topic, hook.Endpoints,
				zdata.Ctime(), zdata.Mtime()))
		} else {
			lines = append(lines, fmt.Sprintf("%s|%+v|%s|%s", topic, hook.Endpoints,
				zdata.Ctime(), zdata.Mtime()))
		}
	}
	if len(lines) > 1 {
		this.Ui.Info("Webhooks")
		this.Ui.Output(columnize.SimpleFormat(lines))
	}

	// actors
	lines = lines[:0]
	header = "Actor|Ctime|Mtime"
	lines = append(lines, header)
	actors := this.zkzone.ChildrenWithData(zk.PubsubActors)
	sortedName = sortedName[:0]
	for name := range actors {
		sortedName = append(sortedName, name)
	}
	sort.Strings(sortedName)

	for _, name := range sortedName {
		zdata := actors[name]
		lines = append(lines, fmt.Sprintf("%s|%s|%s", name,
			zdata.Ctime(), zdata.Mtime()))
	}
	if len(lines) > 1 {
		this.Ui.Info("Actors")
		this.Ui.Output(columnize.SimpleFormat(lines))
	}

	// job <-> actor
	lines = lines[:0]
	header = "Topic|Actor|Ctime|Mtime"
	lines = append(lines, header)
	jobQueueOwners := this.zkzone.ChildrenWithData(zk.PubsubJobQueueOwners)
	sortedName = sortedName[:0]
	for name := range jobQueueOwners {
		sortedName = append(sortedName, name)
	}
	sort.Strings(sortedName)

	for _, jobQueue := range sortedName {
		zdata := jobQueueOwners[jobQueue]
		lines = append(lines, fmt.Sprintf("%s|%s|%s|%s", jobQueue, string(zdata.Data()),
			zdata.Ctime(), zdata.Mtime()))
	}
	if len(lines) > 1 {
		this.Ui.Info("Job<->Actor")
		this.Ui.Output(columnize.SimpleFormat(lines))
	}

	// webhook <-> actor
	lines = lines[:0]
	header = "Topic|Actor|Ctime|Mtime"
	lines = append(lines, header)
	webhookOwners := this.zkzone.ChildrenWithData(zk.PubsubWebhookOwners)
	sortedName = sortedName[:0]
	for name := range webhookOwners {
		sortedName = append(sortedName, name)
	}
	sort.Strings(sortedName)

	for _, topic := range sortedName {
		zdata := webhookOwners[topic]
		lines = append(lines, fmt.Sprintf("%s|%s|%s|%s", topic, string(zdata.Data()),
			zdata.Ctime(), zdata.Mtime()))
	}
	if len(lines) > 1 {
		this.Ui.Info("Webhook<->Actor")
		this.Ui.Output(columnize.SimpleFormat(lines))
	}
}