WIP: TF operator v1beta1 types

Define the API types as discussed in https://github.com/kubeflow/pytorch-operator/issues/84

This change is

Generally LGTM

Coverage remained the same at 57.037% when pulling 0dc165d76eebfb1c50b98300e869782bf8487d5c on richardsliu:v1beta1_api into 5a85d7b1be9d58ff98b4eefaa53d7fc7671d1961 on kubeflow:master.

Coverage remained the same at 57.037% when pulling 0dc165d76eebfb1c50b98300e869782bf8487d5c on richardsliu:v1beta1_api into 5a85d7b1be9d58ff98b4eefaa53d7fc7671d1961 on kubeflow:master.

Travis tests have failed
Hey @richardsliu,
Please read the following log in order to understand the failure reason.
It'll be awesome if you fix what's wrong and commit the changes.
2nd Build
View build log

     gometalinter --config=linter_config.json --vendor ./...

pkg/apis/common/v1beta1/common_types.go:1::warning: file is not goimported (goimports)
pkg/apis/tensorflow/v1beta1/types.go:1::warning: file is not goimported (goimports)

     goveralls -service=travis-ci -v -package ./pkg/... -ignore "pkg/client/*/*.go,pkg/client/*/*/*.go,pkg/client/*/*/*/*.go,pkg/client/*/*/*/*/*.go,pkg/client/*/*/*/*/*/*.go,pkg/client/*/*/*/*/*/*/*.go,pkg/util/testutil/*.go,pkg/apis/tensorflow/*/zz_generated.*.go,pkg/apis/tensorflow/*/*_generated.go"

?   	github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1	[no test files]
=== RUN   TestAddAccelertor
--- PASS: TestAddAccelertor (0.00s)
PASS
coverage: 1.7% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper	0.044s
=== RUN   TestSetDefaults_TFJob
--- PASS: TestSetDefaults_TFJob (0.00s)
PASS
coverage: 1.4% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1	0.044s
=== RUN   TestSetTypeNames
--- PASS: TestSetTypeNames (0.00s)
=== RUN   TestSetDefaultTFJob
--- PASS: TestSetDefaultTFJob (0.00s)
=== RUN   TestIsChieforMaster
--- PASS: TestIsChieforMaster (0.00s)
PASS
coverage: 2.4% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2	0.046s
?   	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1	[no test files]
=== RUN   TestValidateAlphaTwoTFJobSpec
--- PASS: TestValidateAlphaTwoTFJobSpec (0.00s)
=== RUN   TestValidate
--- PASS: TestValidate (0.00s)
PASS
coverage: 3.0% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation	0.047s
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2	[no test files]
=== RUN   TestCreatePods
--- PASS: TestCreatePods (0.01s)
=== RUN   TestCreateService
--- PASS: TestCreateService (0.00s)
=== RUN   TestCreateServicesWithControllerRef
--- PASS: TestCreateServicesWithControllerRef (0.00s)
=== RUN   TestClaimServices
--- PASS: TestClaimServices (0.00s)
PASS
coverage: 4.6% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/control	0.064s
?   	github.com/kubeflow/tf-operator/pkg/controller	[no test files]
=== RUN   TestGenGeneralName
--- PASS: TestGenGeneralName (0.00s)
PASS
coverage: 1.1% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller	0.044s
=== RUN   TestNormalPath
--- PASS: TestNormalPath (0.02s)
=== RUN   TestRun
--- PASS: TestRun (0.50s)
=== RUN   TestSyncPdb
--- PASS: TestSyncPdb (0.00s)
=== RUN   TestAddTFJob
--- PASS: TestAddTFJob (0.30s)
=== RUN   TestCopyLabelsAndAnnotation
--- PASS: TestCopyLabelsAndAnnotation (0.00s)
=== RUN   TestDeletePodsAndServices
--- PASS: TestDeletePodsAndServices (0.00s)
=== RUN   TestCleanupTFJob
--- PASS: TestCleanupTFJob (2.00s)
=== RUN   TestAddPod
--- PASS: TestAddPod (0.31s)
=== RUN   TestClusterSpec
--- PASS: TestClusterSpec (0.00s)
=== RUN   TestRestartPolicy
--- PASS: TestRestartPolicy (0.00s)
=== RUN   TestExitCode
--- PASS: TestExitCode (0.00s)
=== RUN   TestAddService
--- PASS: TestAddService (0.30s)
=== RUN   TestFailed
--- PASS: TestFailed (0.00s)
=== RUN   TestStatus
--- PASS: TestStatus (0.00s)
=== RUN   TestGenOwnerReference
--- PASS: TestGenOwnerReference (0.00s)
=== RUN   TestGenLabels
--- PASS: TestGenLabels (0.00s)
=== RUN   TestConvertTFJobToUnstructured
--- PASS: TestConvertTFJobToUnstructured (0.00s)
PASS
coverage: 30.7% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow	3.499s
?   	github.com/kubeflow/tf-operator/pkg/logger	[no test files]
=== RUN   TestTFReplicaSet
--- PASS: TestTFReplicaSet (0.00s)
=== RUN   TestTFReplicaSetStatusFromPodList
--- PASS: TestTFReplicaSetStatusFromPodList (0.00s)
=== RUN   TestIsRetryableTerminationState
--- PASS: TestIsRetryableTerminationState (0.00s)
=== RUN   TestClusterSpec
--- PASS: TestClusterSpec (0.00s)
=== RUN   TestJobSetup
--- PASS: TestJobSetup (0.00s)
=== RUN   TestPDBForGangScheduling
--- PASS: TestPDBForGangScheduling (0.00s)
PASS
coverage: 10.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/trainer	0.050s
?   	github.com/kubeflow/tf-operator/pkg/util	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/k8sutil	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/signals	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/testutil	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/train	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/unstructured	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/version	[no test files]
ignoring pkg/apis/tensorflow/v1alpha1/zz_generated.deepcopy.go
ignoring pkg/apis/tensorflow/v1alpha1/zz_generated.defaults.go
ignoring pkg/apis/tensorflow/v1alpha2/openapi_generated.go
ignoring pkg/apis/tensorflow/v1alpha2/zz_generated.deepcopy.go
ignoring pkg/apis/tensorflow/v1alpha2/zz_generated.defaults.go
ignoring pkg/client/clientset/versioned/clientset.go
ignoring pkg/client/clientset/versioned/fake/clientset_generated.go
ignoring pkg/client/clientset/versioned/fake/register.go
ignoring pkg/client/clientset/versioned/scheme/register.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake/fake_kubeflow_client.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake/fake_tfjob.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/kubeflow_client.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/tfjob.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake/fake_kubeflow_client.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake/fake_tfjob.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/kubeflow_client.go
ignoring pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/tfjob.go
ignoring pkg/client/informers/externalversions/factory.go
ignoring pkg/client/informers/externalversions/generic.go
ignoring pkg/client/informers/externalversions/kubeflow/interface.go
ignoring pkg/client/informers/externalversions/kubeflow/v1alpha1/interface.go
ignoring pkg/client/informers/externalversions/kubeflow/v1alpha1/tfjob.go
ignoring pkg/client/informers/externalversions/kubeflow/v1alpha2/interface.go
ignoring pkg/client/informers/externalversions/kubeflow/v1alpha2/tfjob.go
ignoring pkg/client/listers/kubeflow/v1alpha1/tfjob.go
ignoring pkg/client/listers/kubeflow/v1alpha2/tfjob.go
ignoring pkg/util/testutil/const.go
ignoring pkg/util/testutil/pod.go
ignoring pkg/util/testutil/service.go
ignoring pkg/util/testutil/tfjob.go
ignoring pkg/util/testutil/util.go
Job #2014.2
https://coveralls.io/jobs/41581674

3rd Build
View build log

     gometalinter --config=linter_config.json --vendor ./...

pkg/apis/common/v1beta1/common_types.go:1::warning: file is not goimported (goimports)
pkg/apis/tensorflow/v1beta1/types.go:1::warning: file is not goimported (goimports)

travis_time:end:0ff04b78:start=1540526133025202308,finish=1540526276107205602,duration=143082003294

     goveralls -service=travis-ci -v -package ./pkg/... -ignore "pkg/client/*/*.go,pkg/client/*/*/*.go,pkg/client/*/*/*/*.go,pkg/client/*/*/*/*/*.go,pkg/client/*/*/*/*/*/*.go,pkg/client/*/*/*/*/*/*/*.go,pkg/util/testutil/*.go,pkg/apis/tensorflow/*/zz_generated.*.go,pkg/apis/tensorflow/*/*_generated.go"

?   	github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1	[no test files]
=== RUN   TestAddAccelertor
--- PASS: TestAddAccelertor (0.00s)
PASS
coverage: 8.4% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper	0.030s	coverage: 8.4% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
=== RUN   TestSetDefaults_TFJob
--- PASS: TestSetDefaults_TFJob (0.00s)
PASS
coverage: 6.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1	0.031s	coverage: 6.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
=== RUN   TestSetTypeNames
--- PASS: TestSetTypeNames (0.00s)
=== RUN   TestSetDefaultTFJob
--- PASS: TestSetDefaultTFJob (0.00s)
=== RUN   TestIsChieforMaster
--- PASS: TestIsChieforMaster (0.00s)
PASS
coverage: 9.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2	0.032s	coverage: 9.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
?   	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1	[no test files]
=== RUN   TestValidateAlphaTwoTFJobSpec
time="2018-10-26T03:58:05Z" level=warning msg="Image is undefined in the container"
time="2018-10-26T03:58:05Z" level=warning msg="There is no container named tensorflow in Worker"
--- PASS: TestValidateAlphaTwoTFJobSpec (0.00s)
=== RUN   TestValidate
--- PASS: TestValidate (0.00s)
PASS
coverage: 8.3% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation	0.033s	coverage: 8.3% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2	[no test files]
=== RUN   TestCreatePods
--- PASS: TestCreatePods (0.01s)
=== RUN   TestCreateService
time="2018-10-26T03:58:16Z" level=info msg="Controller test-tfjob created service empty_service"
--- PASS: TestCreateService (0.00s)
=== RUN   TestCreateServicesWithControllerRef
time="2018-10-26T03:58:16Z" level=info msg="Controller test-tfjob created service empty_service"
--- PASS: TestCreateServicesWithControllerRef (0.00s)
=== RUN   TestClaimServices
--- PASS: TestClaimServices (0.00s)
PASS
coverage: 44.9% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/control	0.060s	coverage: 44.9% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
?   	github.com/kubeflow/tf-operator/pkg/controller	[no test files]
=== RUN   TestGenGeneralName
--- PASS: TestGenGeneralName (0.00s)
PASS
coverage: 0.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller	0.039s	coverage: 0.5% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
=== RUN   TestNormalPath
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-0" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=1, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-0" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (3.19247ms)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-0" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-1" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-2" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=4, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-0" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-1" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-2" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: ps-0" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=2, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: ps-0" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (1.247845ms)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=4, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=2, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (430.196µs)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=2, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-2" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=4, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-2" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (485.172µs)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=2, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=3, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (447.094µs)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=2, running=2, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=4, running=4, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (332.686µs)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=2, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: ps-1" job=default.test-tfjob replica-type=ps uid=
time="2018-10-26T03:58:28Z" level=info msg="Need to create new pod: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=4, running=1, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="need to create new service: worker-3" job=default.test-tfjob replica-type=worker uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (402.537µs)" job=default.test-tfjob
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Reconcile TFJobs test-tfjob" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=PS expected=0, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="TFJob=test-tfjob, ReplicaType=Worker expected=0, running=0, failed=0" job=default.test-tfjob uid=
time="2018-10-26T03:58:28Z" level=info msg="Finished syncing tfjob \"default/test-tfjob\" (315.822µs)" job=default.test-tfjob
--- PASS: TestNormalPath (0.02s)
=== RUN   TestRun
time="2018-10-26T03:58:28Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:28Z" level=info msg="Starting TFJob controller"
time="2018-10-26T03:58:28Z" level=info msg="Waiting for informer caches to sync"
time="2018-10-26T03:58:29Z" level=info msg="Starting 1 workers"
time="2018-10-26T03:58:29Z" level=info msg="Started workers"
time="2018-10-26T03:58:29Z" level=info msg="Shutting down workers"
--- PASS: TestRun (0.50s)
=== RUN   TestSyncPdb
time="2018-10-26T03:58:29Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:29Z" level=info msg="Creating Job controller"
--- PASS: TestSyncPdb (0.00s)
=== RUN   TestAddTFJob
time="2018-10-26T03:58:29Z" level=info msg="Creating TFJob controller"
time="2018-10-26T03:58:29Z" level=info msg="Creating Job controller"
time="2018-10-26T03:58:29Z" level=info msg="TFJob test-tfjob is created."   job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Creating pod: some-job-ps-some-runtime-0-3oi8t" job=/some-job job_type=PS replica=0 runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Job some-job missing pod for replica PS index 1, creating a new one." job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Creating pod: some-job-ps-some-runtime-1-6tgiu" job=/some-job job_type=PS replica=1 runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Service: some-job-ps-some-runtime-0 not found, create new one." job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Creating service: some-job-ps-some-runtime-0" job=/some-job job_type=PS replica=0 runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Service: some-job-ps-some-runtime-1 not found, create new one." job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Creating service: some-job-ps-some-runtime-1" job=/some-job job_type=PS replica=1 runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Deleting Jobs namespace= selector=tf_job_name=some-job,kubeflow.org=,job_type=PS,runtime_id=some-runtime" job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Deleting Pods namespace= selector=tf_job_name=some-job,kubeflow.org=,job_type=PS,runtime_id=some-runtime" job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Deleting Service :some-job-ps-some-runtime-0" job=/some-job job_type=PS replica=0 runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Deleting Service :some-job-ps-some-runtime-1" job=/some-job job_type=PS replica=1 runtime_id=some-runtime tf_job_name=some-job
time="2018-10-26T03:58:36Z" level=info msg="Get ConfigMaps :cm-ps-some-runtime" job=/some-job job_type=PS runtime_id=some-runtime tf_job_name=some-job
--- PASS: TestTFReplicaSet (0.00s)
=== RUN   TestTFReplicaSetStatusFromPodList
--- PASS: TestTFReplicaSetStatusFromPodList (0.00s)
=== RUN   TestIsRetryableTerminationState
--- PASS: TestIsRetryableTerminationState (0.00s)
=== RUN   TestClusterSpec
--- PASS: TestClusterSpec (0.00s)
=== RUN   TestJobSetup
--- PASS: TestJobSetup (0.00s)
=== RUN   TestPDBForGangScheduling
time="2018-10-26T03:58:36Z" level=info msg="PDB: tf-job-pdb-some-meta-name not found, create new one." job=/some-meta-name uid=
time="2018-10-26T03:58:36Z" level=info msg="Creating PDB: tf-job-pdb-some-meta-name" job=/some-meta-name uid=
--- PASS: TestPDBForGangScheduling (0.00s)
PASS
coverage: 21.1% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
ok  	github.com/kubeflow/tf-operator/pkg/trainer	0.041s	coverage: 21.1% of statements in github.com/kubeflow/tf-operator/pkg/apis/common/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/helper, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/v1beta1, github.com/kubeflow/tf-operator/pkg/apis/tensorflow/validation, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/scheme, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha1/fake, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/clientset/versioned/typed/kubeflow/v1alpha2/fake, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/internalinterfaces, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/informers/externalversions/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha1, github.com/kubeflow/tf-operator/pkg/client/listers/kubeflow/v1alpha2, github.com/kubeflow/tf-operator/pkg/control, github.com/kubeflow/tf-operator/pkg/controller, github.com/kubeflow/tf-operator/pkg/controller.v2/jobcontroller, github.com/kubeflow/tf-operator/pkg/controller.v2/tensorflow, github.com/kubeflow/tf-operator/pkg/logger, github.com/kubeflow/tf-operator/pkg/trainer, github.com/kubeflow/tf-operator/pkg/util, github.com/kubeflow/tf-operator/pkg/util/k8sutil, github.com/kubeflow/tf-operator/pkg/util/signals, github.com/kubeflow/tf-operator/pkg/util/testutil, github.com/kubeflow/tf-operator/pkg/util/train, github.com/kubeflow/tf-operator/pkg/util/unstructured, github.com/kubeflow/tf-operator/pkg/version
?   	github.com/kubeflow/tf-operator/pkg/util	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/k8sutil	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/signals	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/testutil	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/train	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/util/unstructured	[no test files]
?   	github.com/kubeflow/tf-operator/pkg/version	[no test files]
ignoring pkg/apis/tensorflow/v1alpha1/zz_generated.deepcopy.go
ignoring pkg/apis/tensorflow/v1alpha1/zz_generated.defaults.go
Job #2014.3
https://coveralls.io/jobs/41581426

travis_time:end:0a18a0b2:start=1540526276115177937,finish=1540526320334106370,duration=44218928433

TravisBuddy Request Identifier: 0d2db3a0-d8d6-11e8-b9f2-b1fbc111596d

Is our plan to have a super set of CleanPodPolicy and RestartPolicy across all operators? Individual operators might/might not implement all policies

@johnugeorge I think those policies can be generic, i.e. shared across different operators. Each operator can always throw an error if a policy type is unsupported.

Travis tests have failed
Hey @richardsliu,
Please read the following log in order to understand the failure reason.

Done.


Move wheel support into a Python library, create a starforge command

(Yes I realize I sorta argued against this level of complexity in #15, sorry!)
TODO: expand to incorporate regular dep building with @erasche's "V2" build.py and maybe even the shell-based recipe handling.
Also, fixes #38

Given the changed aim of starforge let's concentrate on V2 from now on. It will be a lot of work to support both.
:+1:  This is awesome!

This is a lot of new code, wow. Docker-build has really moved on.


A large number of zeros

Hi.
Is it possible to reduce the number of zeros after the decimal point in "MeterValues"?

Thank you very much!


Code Sample of how to execute orders, merklize the orders, publish the hash on chain.

Preliminaries:

[x] Rebase #4 on to https://github.com/integritee-network/worker/tree/sdk-v0.11.0-polkadot-v0.9.37. This is one of our release branches, where we ensure that it stable and reduce the likelihood that it breaks with cargo update. This rebase will also give you access to the new publish_hash transaction that you need for publishing the hash on the integritee parachain, see example of how it is used no in the shield_funds trusted call: https://github.com/integritee-network/worker/pull/1174.

In the trusted calls, I would expect something like this:
TrustedCall::pay_as_bid(_who, orders_file) => {

      let raw_orders = fs::read_to_string(orders_file).expect("error reading file");
      let orders: Vec<Order> = serde_json::from_str(&raw_orders).expect("error serializing to JSON");
      let market_input = MarketInput { orders };

      // You don't need to call `collect()` on the iterator, as the `merkle_root` accepts an iterator.
      // This saves us `O(n)` computation time.
      let order_merkle_root = merkle_root::<Keccak256, _>(orders.iter().map(|o| o.encode()));
      let pay_as_bid: MarketOutput = pay_as_bid_matching(&market_input);

      // Store current market output/hash in the state in the state, so you don't have to recalculate it in the getters. (If this is needed).
      sp_io::set(b"MarketOutput", pay_as_bid.encode());
      sp_io::set(b"OrdersMerkleRoot", pay_as_bid.encode());

      let elapsed = now.elapsed();
      info!("Time Elapsed for PayAsBid Algorithm is: {:.2?}", elapsed);

      // Send proof of execution on chain.
      // calls is in the scope from the outside
      calls.push(OpaqueCall::from_tuple(&(
	      node_metadata_repo.get_from_metadata(|m| m.publish_hash_call_indexes())??,
	      order_merkle_root ,
	      Vec::<itp_types::H256>::new(), // you can ignore this for now. Clients could subscribe to the hashes here to be notified when a new hash is published.
	      b"Published merkle root of an order!".to_vec(),
      )));
      Ok(())
},

in the trusted Getters something like this:

TrustedGetter::pay_as_bid_proof(who, orders_file, leaf_index) => {

      let raw_orders = fs::read_to_string(orders_file).expect("error reading file");
      let orders: Vec<Order> = serde_json::from_str(&raw_orders).expect("error serializing to JSON");

      let merkle_proof =
	      merkle_proof::<Keccak256, _, _>(orders.iter().map(|o| o.encode()), leaf_index.into());

      Ok(Some(merkle_proof))
},

For the verification, I am unsure if I understand your approach, was this just a test? I would assume that you don't need to go into the enclave to verify the proof, I would just do a regular CLI where you can supply the merkle proof and the client verifies it for you:

/// Take this with a grain of salt, I this is more of a brain dump, but the final solution will look very similar to this one I suppose.
#[derive(Parser)]
pub struct VerifyMerkleProofCommand {
	/// Well-known merkle root, which the clients knows from either the parachain or because it has been printed in the previous commands.
        /// It is probably the easiest to supply this as a hex-string: `0x....`
	MerkleRoot: String,

        /// Merkle Proof
        /// Here I am unsure myself, the easiest is probably to supply the json of the merkle proof that has been debug printed
       /// in the CLI in the `pay_as_bid_proof` cmd, like: { proof: ..., leaf: .. }/
	MerkleProof: String,

        leaf_index: u32,
        /// To be honest, I don't understand this param of the proof verification.
        orders_encoded_len: u32
}

@clangenb I'm unable to resolve conflicts for lock files. These conflicts appear again and again.
is there a way to skip conflicts for lock files?

Yeah lock files are always a hassle, usually I just accept the other file, and regenerate the lock file after the merge/rebase process.

There is no need to go through the enclave for hash verification as mentioned by @clangenb

I'm rebasing in the following way:
// step 1
git remote add sdk-v0.11.0-polkadot-v0.9.37 https://github.com/integritee-network/worker.git

// step 2
git rebase remotes/sdk-v0.11.0-polkadot-v0.9.37/sdk-v0.11.0-polkadot-v0.9.37 cI/simplyR

I'll accept the incoming changes for lock files for now. and will regenerate afterward.
is that fine? @clangenb

after rebasing, cargo clippy works fine.
However, the make command gives following error:
error: linking with `cc` failed: exit status: 1

The error is the same even after cargo -update.
any help how to fix it?

I suggest this is because you also need to use a new docker image: https://hub.docker.com/r/integritee/integritee-dev/tags
if your version is <v0.1.11, this is the reason. Otherwise, I need more logging output.

I could finally compile it with v0.1.12.

@clangenb can you please check this commit for the implementation of pay_as_bid algorithm?
As we are not returning anything from trusted_call, the respective cli is just executing the algorithm.
I'm converting orders to a String vector before encoding them. This is because let orders_encoded: Vec<Vec<u8>> = orders.into_iter().map(|o| o.encode()).collect(); gives the error method cannot be called on simplyr_lib::Order due to unsatisfied trait bounds. To fix the above error, I have derived Decode to Orderstruct and OrderType enum.
But this results in the following errors:
// line 53
pub cluster_index: Option<usize>,
// error
the trait `parity_scale_codec::Decode` is not implemented for `core::option::Option<usize>`

However, with the String vector method the algorithm seems working.
Please also take a look at this commit for the implementation of pay_as_bid_proof, it is in the error stage because of the mismatched types in the return statement:
fn execute(self) -> Option<Vec<u8>> {
expected `std::option::Option<std::vec::Vec<u8>>` because of return type

 Ok(Some(merkle_proof))
 ^^^^^^^^^^^^^^^^^^^^^^ expected enum `std::option::Option`, found enum `std::result::Result`
= note: expected enum `std::option::Option<std::vec::Vec<_>>`
               found enum `std::result::Result<std::option::Option<MerkleProof<H256, std::vec::Vec<_>>>, _>`

I tried to decode and unwrap the proof, but it did not work.
Can you please guide me a little bit here? thanks

Yeah, usize is the only type that is incompatible with scale-codec because it is of variable size dependeing on the architecture and as the codec is not self-descriptive, it can't contain data about it's length (except for dynamically sized types like vec, there the length is part of the encoding). . You need to use u32, or u64 instead.

Just remove the wrapping in Ok()  at the end.

I'll discuss this with Timo if can use u32 or u64 instead.

I already have tried removing Ok wrapper but still getting the mismatched types error:

error[E0308]: mismatched types
   --> app-libs/stf/src/getter.rs:189:11
    |
189 |                     Some(merkle_proof)
    |                     ---- ^^^^^^^^^^^^ expected struct `std::vec::Vec`, found struct `binary_merkle_tree::MerkleProof`
    |                     |
    |                     arguments to this enum variant are incorrect
    |
    = note: expected struct `std::vec::Vec<_>`
               found struct `binary_merkle_tree::MerkleProof<sp_core::H256, std::vec::Vec<_>>`

Ah sorry I did not catch this one, yeah this is because that the merkle proof needs to be encoded, sadly the merkle proof structure does not implement codec because it contains usize. So what I suggest here, is that we have to redefine the MerkleProof in our crate:
/// Custom Merkle proof that is decodable
///
/// The difference to the original one is that is implements the scale-codec and that the fields contain u32 instead of usize.
#[derive(Debug, PartialEq, Eq, Decode, Encode)]
pub struct MerkleProofWithCodec<H, L> {
	/// Root hash of generated merkle tree.
	pub root: H,
	/// Proof items (does not contain the leaf hash, nor the root obviously).
	///
	/// This vec contains all inner node hashes necessary to reconstruct the root hash given the
	/// leaf hash.
	pub proof: Vec<H>,
	/// Number of leaves in the original tree.
	///
	/// This is needed to detect a case where we have an odd number of leaves that "get promoted"
	/// to upper layers.
	pub number_of_leaves: u32,
	/// Index of the leaf the proof is for (0-based).
	pub leaf_index: u32,
	/// Leaf content.
	pub leaf: L,
}

/// Then we can also implement conversion of the two types to make the handling more ergonomic:

impl<H, L> From<MerkleProof<H, L> for  MerkleProofWithCodec<H, L> {
     fn from(source: MerkleProof<H, L>) -> Self {
       Self {
               root: source.root,
               proof: source.proof,
               number_of_leaves: source.number_of_leaves.try_into().expec("We don't have more than u32::MAX leaves; qed"),
               leaf_index: source.leave_index.try_into().expect("Leave index is never bigger than U32::Max; qed");
               leaf: source.leaf
       }
    }

}

In your getter you can do the following:

let proof: MerkleProofWithCodec<_, _> = merkle_proof<Keccak256, _, _>::(data).into();

// return the proof as follows:
Some(proof.encode())

note: the above might contain some typos, it has not been tested.

@clangenb can you please take a look at this commit for the implementation of pay_as_bid_proof method?

I would say this is done


.Net Type DataTime

I am a new learner ,if i create a Class  public  DataTime  BeginDay{get;set;} public DataTime  EndDay{get;set;}
how Can i set EndDay BIgger than BeginDay in the my Index.cshtml

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a96bbb2e-2611-525f-129d-b86a491e423c
Version Independent ID: 4e39097d-b058-d4e2-8780-31b0067b6717
Content: Tag Helpers in forms in ASP.NET Core
Content Source: aspnetcore/mvc/views/working-with-forms.md
Product: aspnet-core
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

@zhangtingwz  you'll probably get a much quicker response if you post this question to a forum like StackOverflow.

@pupultukas  agree with what? What does it mean to EndDay BIgger than BeginDay ?  EndDay BIgger BeginDay are not in the article.


Avoid panic when new auth types added

"Error fetching users: Serde(Error("unknown variant `from_oauth_github`, expected `admin` or `from_oauth_google`", line: 1, column: 763))"

Fixed via https://github.com/DarrenBaldwin07/clerk-rs/pull/27


docs: Add new windows installation tutorials

Updated Windows installation documentation with newest
screencasts and Chocolatey instructions to install windows
client CLI with these videos:
https://www.youtube.com/watch?v=l026hqjhLRU
https://www.youtube.com/watch?v=TjMU3bDX4vo
Signed-off-by: Ahmet Alp Balkan<EMAIL_ADDRESS>cc: @SvenDowideit @tianon @moxiegirl
:exclamation: @jfrazelle @crosbymichael we should pick this into 1.6 release branch. Thanks! :exclamation:

Thank you @ahmetalpbalkan! LGTM

LGTM

@jfrazelle assuming will be cherrypicked. thanks a lot for reviewing! Looks good here http://docs.master.dockerproject.com/installation/windows/

cherrypicked


Update ethernet_RedHat.j2

Changed dhclient to run persistent even if dhcp-server is not currently answering
Would it make sense to change it.

Hi, sorry for the delay. I think this could be added yes. This PR should however be against devel and not towards master. Could you resubmit the PR?


Support email doesn't propagate site

Setting SUPPORT_EMAIL in wr.env does not propagate the site.
For example, the "Your account is out of space" message has a contact us link, which is set to<EMAIL_ADDRESS>even if SUPPORT_EMAIL is set.
As another example, the contact link in the global footer is set to<EMAIL_ADDRESS>again even if SUPPORT_EMAIL is set.

Thanks for letting us know about this also. We're working on a UI update and hope to make Webrecorder more customizable soon. Currently, the SUPPORT_EMAIL var is specifically for bug reporting, but can be made more general.
Just wondering, are you planning on deploying a hosted instance of Webrecorder for others to use?

The support email is now configurable in the new UI in config.js, thanks again for reporting.


type MouseEvent: buttons are not handled

Ben, good Health!
How to determine which mouse button is pressed in event OnMouseMove?

Hi @DoctorovEV,
Currently you cannot.
If you want this, then:

The MouseButton enum should become a MouseButtonState bitfield, and should have the following methods added:

func (s MouseButtonState) IsLeftDown() bool { ... }
func (s MouseButtonState) IsMiddleDown() bool { ... }
func (s MouseButtonState) IsRightDown() bool { ... }

MouseEvent.Button should be renamed to ButtonState.
All the places where a MouseEvent is created in viewport.go should be updated to assign the ButtonState field.
All the existing code that checks for button equality would have to be updated to use the IsLeftDown() / IsMiddleDown() / IsRightDown() methods instead.

I can do this, but I'm exceptionally busy this week. I'm happy to review a pull-request if you're comfortable doing this yourself.
Cheers,
Ben

Thank you, Ben. I'll wait for the official implementation of the next week.

@yofu has done the hard work on this. Please reopen if this doesn't give you what you need.


Tbox 271: fork project script debug

↪ Pull Request

✔ PR Todo

[ ] Add documentation
[ ] Add examples
[x] Ensure you are following the practices in the contributor guide and coding_standards

Use consistent and descriptive name conventions
Uses google-style docstrings
Uses versioned API/client methods only
Avoid global variables
Avoid giant try/catch
Don't use mutable default variables
Use a main() function in your scripts

[ ] Added/updated testing for this change (ensure you are testing any changes/new code!)
[x] Update title to link to TBOX issue (i.e. start pull request title with TBOX-xx)
[ ] Approval from first code-reviewer
[ ] Approval from second code-reviewer (only required if a second reviewer has left comments)
[ ] Pass all checks

This PR seems strangely different from previous ones I had submitted - not sure why there should be so many conflicting files.

I fetched and pulled remote to my local develop
then created a new branch TBOX-271...
modified one file: fork_project.py
checked for lint/format conformance
created commit/push
submitted PR

@ataghavey your PR should be merging into develop not master.

Please open another PR from your branch into the develop branch.

Hi @skalish  - how do I fix this? Should I attempt: git pull --rebase origin?

Hi @skalish - how do I fix this? Should I attempt: git pull --rebase origin?

There's no need to do anything except create a new PR pointing to the other branch.  Your feature branch looks good, it was just the PR itself.


Fail if could not retrieve latest release tag from github

Happened to me when trying to install helm on a server located in China. Github was blocked so curl could not get a page from github, so the $TAG was empty and after that the URL for installing helm was missing version but the error was not clear at all as it was difficult to notice that the URL is missing the version. Had to look into the script code to figure out what went wrong. I propose to fail the script early if the version info could not be retrieved from github.
Signed-off-by: Sho Ce<EMAIL_ADDRESS>
What this PR does / why we need it:
Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

Sorry i had troubles with merging origin main so had to rebase.

I am not sure if i need to press any button to signal this one is ready for another review, there is a badge saying "1 change requested", i could not find how to mark it done. Just saying there is a change ready for review. Thanks!


spin 3 postgres support

This also generates the bindings for wasi kv and wasi config as they're now part of the spin platform world.

I don't remember if we discussed feature-gating the 3.0 stuff - can we just confirm that we happy to lean on dead code elimination rather than an explicit Cargo feature?

yep, relying on dead code elimination. ran it past @fibonacci1729. I think @dicej is on the same page (feel free to chime in if not Joel). Are there any benefits to feature gating other than it being more explicit?

Nah, the only thing I can think of is making the choice to opt into v3-only stuff more explicit, but it's not a big deal.  I'm happy to stick with what you have.

Otherwise looks good except I was puzzled by the wrapper types for decoding date-time types. We don't wrap other types - why these?

you're right. they were unnecessary. updated!

Also wondering if we need to do anything on the write side. What does it look like to insert a date-time value via a parameter?

Here's an example of date: https://github.com/fermyon/spin-rust-sdk/pull/39/files#diff-57b15e5f7dd54bae6c97fe6ddf112edff16dc9eb6014d269f80d320280241f4cR94
Should I add a datetime example as well?

Sorry, by "as a parameter" I meant via execute parameters rather than by embedding literally into a SQL string.
E.g.
let title: String = figure_out_the_title();
let date: chrono::NaiveDate = figure_out_the_date();
conn.execute("INSERT INTO articletest(title, published) VALUES ($1, $2)", &[ /* what */ ]);

It's reasonably obvious for strings and ints and so on, I just want to see if it's still easy with dates and times where the WITs are complicated and (as you identified when we talked about it) not very obvious.

@itowlson good call. We added an example of doing the writes and more helpers in the module. Lmk if you see anything else we should add.