summaryrefslogtreecommitdiff
path: root/libpod/pod_ffjson.go
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2018-08-08 15:16:01 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2018-08-17 07:55:36 +0000
commitbf741b3ea30f9431775f03cca081758efcb780b1 (patch)
tree07e1b78dc585c2f4c70c04ef49b8c7cd92d59193 /libpod/pod_ffjson.go
parent1b87fbc591bf13bc7ba55d5a70334237fe8620d7 (diff)
downloadpodman-bf741b3ea30f9431775f03cca081758efcb780b1.tar.gz
podman-bf741b3ea30f9431775f03cca081758efcb780b1.tar.bz2
podman-bf741b3ea30f9431775f03cca081758efcb780b1.zip
podman pod stats
add the ability to monitor container statistics in a pod. Signed-off-by: baude <bbaude@redhat.com> Closes: #1265 Approved by: rhatdan
Diffstat (limited to 'libpod/pod_ffjson.go')
-rw-r--r--libpod/pod_ffjson.go339
1 files changed, 338 insertions, 1 deletions
diff --git a/libpod/pod_ffjson.go b/libpod/pod_ffjson.go
index a244dadbc..a74c91ccc 100644
--- a/libpod/pod_ffjson.go
+++ b/libpod/pod_ffjson.go
@@ -1,10 +1,11 @@
// Code generated by ffjson <https://github.com/pquerna/ffjson>. DO NOT EDIT.
-// source: /home/dwalsh/go/src/github.com/containers/libpod/libpod/pod.go
+// source: libpod/pod.go
package libpod
import (
"bytes"
+ "encoding/json"
"errors"
"fmt"
fflib "github.com/pquerna/ffjson/fflib/v1"
@@ -850,6 +851,342 @@ done:
}
// MarshalJSON marshal bytes to json - template
+func (j *PodContainerStats) MarshalJSON() ([]byte, error) {
+ var buf fflib.Buffer
+ if j == nil {
+ buf.WriteString("null")
+ return buf.Bytes(), nil
+ }
+ err := j.MarshalJSONBuf(&buf)
+ if err != nil {
+ return nil, err
+ }
+ return buf.Bytes(), nil
+}
+
+// MarshalJSONBuf marshal buff to json - template
+func (j *PodContainerStats) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
+ if j == nil {
+ buf.WriteString("null")
+ return nil
+ }
+ var err error
+ var obj []byte
+ _ = obj
+ _ = err
+ if j.Pod != nil {
+ /* Struct fall back. type=libpod.Pod kind=struct */
+ buf.WriteString(`{"Pod":`)
+ err = buf.Encode(j.Pod)
+ if err != nil {
+ return err
+ }
+ } else {
+ buf.WriteString(`{"Pod":null`)
+ }
+ buf.WriteString(`,"ContainerStats":`)
+ /* Falling back. type=map[string]*libpod.ContainerStats kind=map */
+ err = buf.Encode(j.ContainerStats)
+ if err != nil {
+ return err
+ }
+ buf.WriteByte('}')
+ return nil
+}
+
+const (
+ ffjtPodContainerStatsbase = iota
+ ffjtPodContainerStatsnosuchkey
+
+ ffjtPodContainerStatsPod
+
+ ffjtPodContainerStatsContainerStats
+)
+
+var ffjKeyPodContainerStatsPod = []byte("Pod")
+
+var ffjKeyPodContainerStatsContainerStats = []byte("ContainerStats")
+
+// UnmarshalJSON umarshall json - template of ffjson
+func (j *PodContainerStats) UnmarshalJSON(input []byte) error {
+ fs := fflib.NewFFLexer(input)
+ return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
+}
+
+// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
+func (j *PodContainerStats) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
+ var err error
+ currentKey := ffjtPodContainerStatsbase
+ _ = currentKey
+ tok := fflib.FFTok_init
+ wantedTok := fflib.FFTok_init
+
+mainparse:
+ for {
+ tok = fs.Scan()
+ // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state))
+ if tok == fflib.FFTok_error {
+ goto tokerror
+ }
+
+ switch state {
+
+ case fflib.FFParse_map_start:
+ if tok != fflib.FFTok_left_bracket {
+ wantedTok = fflib.FFTok_left_bracket
+ goto wrongtokenerror
+ }
+ state = fflib.FFParse_want_key
+ continue
+
+ case fflib.FFParse_after_value:
+ if tok == fflib.FFTok_comma {
+ state = fflib.FFParse_want_key
+ } else if tok == fflib.FFTok_right_bracket {
+ goto done
+ } else {
+ wantedTok = fflib.FFTok_comma
+ goto wrongtokenerror
+ }
+
+ case fflib.FFParse_want_key:
+ // json {} ended. goto exit. woo.
+ if tok == fflib.FFTok_right_bracket {
+ goto done
+ }
+ if tok != fflib.FFTok_string {
+ wantedTok = fflib.FFTok_string
+ goto wrongtokenerror
+ }
+
+ kn := fs.Output.Bytes()
+ if len(kn) <= 0 {
+ // "" case. hrm.
+ currentKey = ffjtPodContainerStatsnosuchkey
+ state = fflib.FFParse_want_colon
+ goto mainparse
+ } else {
+ switch kn[0] {
+
+ case 'C':
+
+ if bytes.Equal(ffjKeyPodContainerStatsContainerStats, kn) {
+ currentKey = ffjtPodContainerStatsContainerStats
+ state = fflib.FFParse_want_colon
+ goto mainparse
+ }
+
+ case 'P':
+
+ if bytes.Equal(ffjKeyPodContainerStatsPod, kn) {
+ currentKey = ffjtPodContainerStatsPod
+ state = fflib.FFParse_want_colon
+ goto mainparse
+ }
+
+ }
+
+ if fflib.EqualFoldRight(ffjKeyPodContainerStatsContainerStats, kn) {
+ currentKey = ffjtPodContainerStatsContainerStats
+ state = fflib.FFParse_want_colon
+ goto mainparse
+ }
+
+ if fflib.SimpleLetterEqualFold(ffjKeyPodContainerStatsPod, kn) {
+ currentKey = ffjtPodContainerStatsPod
+ state = fflib.FFParse_want_colon
+ goto mainparse
+ }
+
+ currentKey = ffjtPodContainerStatsnosuchkey
+ state = fflib.FFParse_want_colon
+ goto mainparse
+ }
+
+ case fflib.FFParse_want_colon:
+ if tok != fflib.FFTok_colon {
+ wantedTok = fflib.FFTok_colon
+ goto wrongtokenerror
+ }
+ state = fflib.FFParse_want_value
+ continue
+ case fflib.FFParse_want_value:
+
+ if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null {
+ switch currentKey {
+
+ case ffjtPodContainerStatsPod:
+ goto handle_Pod
+
+ case ffjtPodContainerStatsContainerStats:
+ goto handle_ContainerStats
+
+ case ffjtPodContainerStatsnosuchkey:
+ err = fs.SkipField(tok)
+ if err != nil {
+ return fs.WrapErr(err)
+ }
+ state = fflib.FFParse_after_value
+ goto mainparse
+ }
+ } else {
+ goto wantedvalue
+ }
+ }
+ }
+
+handle_Pod:
+
+ /* handler: j.Pod type=libpod.Pod kind=struct quoted=false*/
+
+ {
+ /* Falling back. type=libpod.Pod kind=struct */
+ tbuf, err := fs.CaptureField(tok)
+ if err != nil {
+ return fs.WrapErr(err)
+ }
+
+ err = json.Unmarshal(tbuf, &j.Pod)
+ if err != nil {
+ return fs.WrapErr(err)
+ }
+ }
+
+ state = fflib.FFParse_after_value
+ goto mainparse
+
+handle_ContainerStats:
+
+ /* handler: j.ContainerStats type=map[string]*libpod.ContainerStats kind=map quoted=false*/
+
+ {
+
+ {
+ if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null {
+ return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok))
+ }
+ }
+
+ if tok == fflib.FFTok_null {
+ j.ContainerStats = nil
+ } else {
+
+ j.ContainerStats = make(map[string]*ContainerStats, 0)
+
+ wantVal := true
+
+ for {
+
+ var k string
+
+ var tmpJContainerStats *ContainerStats
+
+ tok = fs.Scan()
+ if tok == fflib.FFTok_error {
+ goto tokerror
+ }
+ if tok == fflib.FFTok_right_bracket {
+ break
+ }
+
+ if tok == fflib.FFTok_comma {
+ if wantVal == true {
+ // TODO(pquerna): this isn't an ideal error message, this handles
+ // things like [,,,] as an array value.
+ return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok))
+ }
+ continue
+ } else {
+ wantVal = true
+ }
+
+ /* handler: k type=string kind=string quoted=false*/
+
+ {
+
+ {
+ if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
+ return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
+ }
+ }
+
+ if tok == fflib.FFTok_null {
+
+ } else {
+
+ outBuf := fs.Output.Bytes()
+
+ k = string(string(outBuf))
+
+ }
+ }
+
+ // Expect ':' after key
+ tok = fs.Scan()
+ if tok != fflib.FFTok_colon {
+ return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok))
+ }
+
+ tok = fs.Scan()
+ /* handler: tmpJContainerStats type=*libpod.ContainerStats kind=ptr quoted=false*/
+
+ {
+
+ if tok == fflib.FFTok_null {
+ tmpJContainerStats = nil
+ } else {
+ if tmpJContainerStats == nil {
+ tmpJContainerStats = new(ContainerStats)
+ }
+
+ /* handler: tmpJContainerStats type=libpod.ContainerStats kind=struct quoted=false*/
+
+ {
+ /* Falling back. type=libpod.ContainerStats kind=struct */
+ tbuf, err := fs.CaptureField(tok)
+ if err != nil {
+ return fs.WrapErr(err)
+ }
+
+ err = json.Unmarshal(tbuf, &tmpJContainerStats)
+ if err != nil {
+ return fs.WrapErr(err)
+ }
+ }
+
+ }
+ }
+
+ j.ContainerStats[k] = tmpJContainerStats
+
+ wantVal = false
+ }
+
+ }
+ }
+
+ state = fflib.FFParse_after_value
+ goto mainparse
+
+wantedvalue:
+ return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok))
+wrongtokenerror:
+ return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String()))
+tokerror:
+ if fs.BigError != nil {
+ return fs.WrapErr(fs.BigError)
+ }
+ err = fs.Error.ToError()
+ if err != nil {
+ return fs.WrapErr(err)
+ }
+ panic("ffjson-generated: unreachable, please report bug.")
+done:
+
+ return nil
+}
+
+// MarshalJSON marshal bytes to json - template
func (j *PodInspect) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {