コード例 #1
0
ファイル: consul_store.go プロジェクト: petertseng/p2
func (c *consulStore) CAS(key types.PodUniqueKey, status PodStatus, modifyIndex uint64) error {
	if key == "" {
		return util.Errorf("Could not set status for pod with empty uuid")
	}

	rawStatus, err := podStatusToStatus(status)
	if err != nil {
		return err
	}

	return c.statusStore.CASStatus(statusstore.POD, statusstore.ResourceID(key), c.namespace, rawStatus, modifyIndex)
}
コード例 #2
0
ファイル: consul_store.go プロジェクト: drcapulet/p2
func (c *consulStore) Set(key types.PodUniqueKey, status PodStatus) error {
	if key.ID == "" {
		return util.Errorf("Could not set status for pod with empty uuid")
	}

	rawStatus, err := podStatusToStatus(status)
	if err != nil {
		return err
	}

	return c.statusStore.SetStatus(statusstore.POD, statusstore.ResourceID(key.ID), c.namespace, rawStatus)
}
コード例 #3
0
ファイル: consul_store.go プロジェクト: drcapulet/p2
func (c *consulStore) Get(key types.PodUniqueKey) (PodStatus, error) {
	if key.ID == "" {
		return PodStatus{}, util.Errorf("Cannot retrieve status for a pod with an empty uuid")
	}

	status, err := c.statusStore.GetStatus(statusstore.POD, statusstore.ResourceID(key.ID), c.namespace)
	if err != nil {
		return PodStatus{}, err
	}

	return statusToPodStatus(status)
}
コード例 #4
0
ファイル: consul_store.go プロジェクト: petertseng/p2
func (c *consulStore) WaitForStatus(key types.PodUniqueKey, waitIndex uint64) (PodStatus, *api.QueryMeta, error) {
	if key == "" {
		return PodStatus{}, nil, util.Errorf("Cannot retrieve status for a pod with an empty uuid")
	}

	status, queryMeta, err := c.statusStore.WatchStatus(statusstore.POD, statusstore.ResourceID(key), c.namespace, waitIndex)
	if err != nil {
		return PodStatus{}, queryMeta, err
	}

	podStatus, err := statusToPodStatus(status)
	if err != nil {
		return PodStatus{}, queryMeta, err
	}

	return podStatus, queryMeta, nil
}