Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
e0b712d4
Commit
e0b712d4
authored
Nov 01, 2018
by
Sean Sullivan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kubectl: move custom columns printers and flags
parent
3bcbc5da
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
62 additions
and
66 deletions
+62
-66
BUILD
pkg/kubectl/BUILD
+0
-9
BUILD
pkg/kubectl/cmd/get/BUILD
+14
-1
customcolumn.go
pkg/kubectl/cmd/get/customcolumn.go
+3
-2
customcolumn_flags.go
pkg/kubectl/cmd/get/customcolumn_flags.go
+5
-3
customcolumn_flags_test.go
pkg/kubectl/cmd/get/customcolumn_flags_test.go
+3
-3
customcolumn_test.go
pkg/kubectl/cmd/get/customcolumn_test.go
+19
-16
get.go
pkg/kubectl/cmd/get/get.go
+8
-8
get_flags.go
pkg/kubectl/cmd/get/get_flags.go
+3
-3
sorter.go
pkg/kubectl/cmd/get/sorter.go
+5
-5
sorter_test.go
pkg/kubectl/cmd/get/sorter_test.go
+1
-1
BUILD
pkg/printers/BUILD
+1
-15
No files found.
pkg/kubectl/BUILD
View file @
e0b712d4
...
@@ -14,7 +14,6 @@ go_test(
...
@@ -14,7 +14,6 @@ go_test(
"rolling_updater_test.go",
"rolling_updater_test.go",
"rollout_status_test.go",
"rollout_status_test.go",
"scale_test.go",
"scale_test.go",
"sorter_test.go",
],
],
embed = [":go_default_library"],
embed = [":go_default_library"],
deps = [
deps = [
...
@@ -25,7 +24,6 @@ go_test(
...
@@ -25,7 +24,6 @@ go_test(
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1:go_default_library",
...
@@ -57,7 +55,6 @@ go_library(
...
@@ -57,7 +55,6 @@ go_library(
"rolling_updater.go",
"rolling_updater.go",
"rollout_status.go",
"rollout_status.go",
"scale.go",
"scale.go",
"sorter.go",
],
],
importpath = "k8s.io/kubernetes/pkg/kubectl",
importpath = "k8s.io/kubernetes/pkg/kubectl",
deps = [
deps = [
...
@@ -69,7 +66,6 @@ go_library(
...
@@ -69,7 +66,6 @@ go_library(
"//pkg/kubectl/util/deployment:go_default_library",
"//pkg/kubectl/util/deployment:go_default_library",
"//pkg/kubectl/util/podutils:go_default_library",
"//pkg/kubectl/util/podutils:go_default_library",
"//pkg/kubectl/util/slice:go_default_library",
"//pkg/kubectl/util/slice:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers/internalversion:go_default_library",
"//pkg/printers/internalversion:go_default_library",
"//staging/src/k8s.io/api/apps/v1:go_default_library",
"//staging/src/k8s.io/api/apps/v1:go_default_library",
"//staging/src/k8s.io/api/autoscaling/v1:go_default_library",
"//staging/src/k8s.io/api/autoscaling/v1:go_default_library",
...
@@ -79,8 +75,6 @@ go_library(
...
@@ -79,8 +75,6 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
...
@@ -96,10 +90,7 @@ go_library(
...
@@ -96,10 +90,7 @@ go_library(
"//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/scale:go_default_library",
"//staging/src/k8s.io/client-go/scale:go_default_library",
"//staging/src/k8s.io/client-go/util/integer:go_default_library",
"//staging/src/k8s.io/client-go/util/integer:go_default_library",
"//staging/src/k8s.io/client-go/util/jsonpath:go_default_library",
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
"//staging/src/k8s.io/client-go/util/retry:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/vbom.ml/util/sortorder:go_default_library",
],
],
)
)
...
...
pkg/kubectl/cmd/get/BUILD
View file @
e0b712d4
...
@@ -17,19 +17,22 @@ filegroup(
...
@@ -17,19 +17,22 @@ filegroup(
go_library(
go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"customcolumn.go",
"customcolumn_flags.go",
"get.go",
"get.go",
"get_flags.go",
"get_flags.go",
"humanreadable_flags.go",
"humanreadable_flags.go",
"sorter.go",
],
],
importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/get",
importpath = "k8s.io/kubernetes/pkg/kubectl/cmd/get",
visibility = ["//visibility:public"],
visibility = ["//visibility:public"],
deps = [
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/api/legacyscheme:go_default_library",
"//pkg/kubectl:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/kubectl/util/i18n:go_default_library",
"//pkg/kubectl/util/printers:go_default_library",
"//pkg/kubectl/util/templates:go_default_library",
"//pkg/kubectl/util/templates:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers/internalversion:go_default_library",
"//pkg/printers/internalversion:go_default_library",
...
@@ -46,19 +49,26 @@ go_library(
...
@@ -46,19 +49,26 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/resource:go_default_library",
"//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/tools/watch:go_default_library",
"//staging/src/k8s.io/client-go/tools/watch:go_default_library",
"//staging/src/k8s.io/client-go/util/integer:go_default_library",
"//staging/src/k8s.io/client-go/util/jsonpath:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/k8s.io/klog:go_default_library",
"//vendor/vbom.ml/util/sortorder:go_default_library",
],
],
)
)
go_test(
go_test(
name = "go_default_test",
name = "go_default_test",
srcs = [
srcs = [
"customcolumn_flags_test.go",
"customcolumn_test.go",
"get_test.go",
"get_test.go",
"humanreadable_flags_test.go",
"humanreadable_flags_test.go",
"sorter_test.go",
],
],
data = [
data = [
"//api/openapi-spec:swagger-spec",
"//api/openapi-spec:swagger-spec",
...
@@ -72,13 +82,16 @@ go_test(
...
@@ -72,13 +82,16 @@ go_test(
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/cmd/util/openapi:go_default_library",
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
"//pkg/kubectl/cmd/util/openapi/testing:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/scheme:go_default_library",
"//pkg/kubectl/util/printers:go_default_library",
"//staging/src/k8s.io/api/apps/v1:go_default_library",
"//staging/src/k8s.io/api/apps/v1:go_default_library",
"//staging/src/k8s.io/api/autoscaling/v1:go_default_library",
"//staging/src/k8s.io/api/autoscaling/v1:go_default_library",
"//staging/src/k8s.io/api/batch/v1:go_default_library",
"//staging/src/k8s.io/api/batch/v1:go_default_library",
"//staging/src/k8s.io/api/batch/v1beta1:go_default_library",
"//staging/src/k8s.io/api/batch/v1beta1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/extensions/v1beta1:go_default_library",
"//staging/src/k8s.io/api/extensions/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
...
...
pkg/
printers
/customcolumn.go
→
pkg/
kubectl/cmd/get
/customcolumn.go
View file @
e0b712d4
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
package
get
import
(
import
(
"bufio"
"bufio"
...
@@ -30,6 +30,7 @@ import (
...
@@ -30,6 +30,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/cli-runtime/pkg/genericclioptions/printers"
"k8s.io/cli-runtime/pkg/genericclioptions/printers"
"k8s.io/client-go/util/jsonpath"
"k8s.io/client-go/util/jsonpath"
utilprinters
"k8s.io/kubernetes/pkg/kubectl/util/printers"
)
)
var
jsonRegexp
=
regexp
.
MustCompile
(
"^
\\
{
\\
.?([^{}]+)
\\
}$|^
\\
.?([^{}]+)$"
)
var
jsonRegexp
=
regexp
.
MustCompile
(
"^
\\
{
\\
.?([^{}]+)
\\
}$|^
\\
.?([^{}]+)$"
)
...
@@ -160,7 +161,7 @@ func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error
...
@@ -160,7 +161,7 @@ func (s *CustomColumnsPrinter) PrintObj(obj runtime.Object, out io.Writer) error
}
}
if
w
,
found
:=
out
.
(
*
tabwriter
.
Writer
);
!
found
{
if
w
,
found
:=
out
.
(
*
tabwriter
.
Writer
);
!
found
{
w
=
GetNewTabWriter
(
out
)
w
=
utilprinters
.
GetNewTabWriter
(
out
)
out
=
w
out
=
w
defer
w
.
Flush
()
defer
w
.
Flush
()
}
}
...
...
pkg/
printers
/customcolumn_flags.go
→
pkg/
kubectl/cmd/get
/customcolumn_flags.go
View file @
e0b712d4
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
package
get
import
(
import
(
"fmt"
"fmt"
...
@@ -24,6 +24,7 @@ import (
...
@@ -24,6 +24,7 @@ import (
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/scheme"
"k8s.io/kubernetes/pkg/kubectl/scheme"
)
)
...
@@ -51,7 +52,7 @@ func (f *CustomColumnsPrintFlags) AllowedFormats() []string {
...
@@ -51,7 +52,7 @@ func (f *CustomColumnsPrintFlags) AllowedFormats() []string {
// handling custom-column printing.
// handling custom-column printing.
// Returns false if the specified templateFormat does not match a supported format.
// Returns false if the specified templateFormat does not match a supported format.
// Supported format types can be found in pkg/printers/printers.go
// Supported format types can be found in pkg/printers/printers.go
func
(
f
*
CustomColumnsPrintFlags
)
ToPrinter
(
templateFormat
string
)
(
ResourcePrinter
,
error
)
{
func
(
f
*
CustomColumnsPrintFlags
)
ToPrinter
(
templateFormat
string
)
(
printers
.
ResourcePrinter
,
error
)
{
if
len
(
templateFormat
)
==
0
{
if
len
(
templateFormat
)
==
0
{
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{}
return
nil
,
genericclioptions
.
NoCompatiblePrinterError
{}
}
}
...
@@ -79,7 +80,8 @@ func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrin
...
@@ -79,7 +80,8 @@ func (f *CustomColumnsPrintFlags) ToPrinter(templateFormat string) (ResourcePrin
return
nil
,
fmt
.
Errorf
(
"custom-columns format specified but no custom columns given"
)
return
nil
,
fmt
.
Errorf
(
"custom-columns format specified but no custom columns given"
)
}
}
decoder
:=
scheme
.
Codecs
.
UniversalDecoder
()
// UniversalDecoder call must specify parameter versions; otherwise it will decode to internal versions.
decoder
:=
scheme
.
Codecs
.
UniversalDecoder
(
scheme
.
Scheme
.
PrioritizedVersionsAllGroups
()
...
)
if
templateFormat
==
"custom-columns-file"
{
if
templateFormat
==
"custom-columns-file"
{
file
,
err
:=
os
.
Open
(
templateValue
)
file
,
err
:=
os
.
Open
(
templateValue
)
...
...
pkg/
printers
/customcolumn_flags_test.go
→
pkg/
kubectl/cmd/get
/customcolumn_flags_test.go
View file @
e0b712d4
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
package
get
import
(
import
(
"bytes"
"bytes"
...
@@ -24,13 +24,13 @@ import (
...
@@ -24,13 +24,13 @@ import (
"strings"
"strings"
"testing"
"testing"
"k8s.io/api/core/v1"
corev1
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions"
)
)
func
TestPrinterSupportsExpectedCustomColumnFormats
(
t
*
testing
.
T
)
{
func
TestPrinterSupportsExpectedCustomColumnFormats
(
t
*
testing
.
T
)
{
testObject
:=
&
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}}
testObject
:=
&
core
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}}
customColumnsFile
,
err
:=
ioutil
.
TempFile
(
""
,
"printers_jsonpath_flags"
)
customColumnsFile
,
err
:=
ioutil
.
TempFile
(
""
,
"printers_jsonpath_flags"
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
pkg/
printers
/customcolumn_test.go
→
pkg/
kubectl/cmd/get
/customcolumn_test.go
View file @
e0b712d4
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
printers
package
get
import
(
import
(
"bytes"
"bytes"
...
@@ -22,13 +22,16 @@ import (
...
@@ -22,13 +22,16 @@ import (
"strings"
"strings"
"testing"
"testing"
"k8s.io/api/core/v1"
corev1
"k8s.io/api/core/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/kubernetes/pkg/
api/legacy
scheme"
"k8s.io/kubernetes/pkg/
kubectl/
scheme"
api
"k8s.io/kubernetes/pkg/apis/core
"
"k8s.io/kubernetes/pkg/kubectl/util/printers
"
)
)
// UniversalDecoder call must specify parameter versions; otherwise it will decode to internal versions.
var
decoder
=
scheme
.
Codecs
.
UniversalDecoder
(
scheme
.
Scheme
.
PrioritizedVersionsAllGroups
()
...
)
func
TestMassageJSONPath
(
t
*
testing
.
T
)
{
func
TestMassageJSONPath
(
t
*
testing
.
T
)
{
tests
:=
[]
struct
{
tests
:=
[]
struct
{
input
string
input
string
...
@@ -115,7 +118,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
...
@@ -115,7 +118,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
}
}
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
printer
,
err
:=
NewCustomColumnsPrinterFromSpec
(
test
.
spec
,
legacyscheme
.
Codecs
.
UniversalDecoder
()
,
test
.
noHeaders
)
printer
,
err
:=
NewCustomColumnsPrinterFromSpec
(
test
.
spec
,
decoder
,
test
.
noHeaders
)
if
test
.
expectErr
{
if
test
.
expectErr
{
if
err
==
nil
{
if
err
==
nil
{
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
...
@@ -129,7 +132,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
...
@@ -129,7 +132,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
if
test
.
noHeaders
{
if
test
.
noHeaders
{
buffer
:=
&
bytes
.
Buffer
{}
buffer
:=
&
bytes
.
Buffer
{}
printer
.
PrintObj
(
&
api
.
Pod
{},
buffer
)
printer
.
PrintObj
(
&
corev1
.
Pod
{},
buffer
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Fatalf
(
"An error occurred printing Pod: %#v"
,
err
)
t
.
Fatalf
(
"An error occurred printing Pod: %#v"
,
err
)
}
}
...
@@ -219,7 +222,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
...
@@ -219,7 +222,7 @@ func TestNewColumnPrinterFromTemplate(t *testing.T) {
for
_
,
test
:=
range
tests
{
for
_
,
test
:=
range
tests
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
reader
:=
bytes
.
NewBufferString
(
test
.
spec
)
reader
:=
bytes
.
NewBufferString
(
test
.
spec
)
printer
,
err
:=
NewCustomColumnsPrinterFromTemplate
(
reader
,
legacyscheme
.
Codecs
.
UniversalDecoder
()
)
printer
,
err
:=
NewCustomColumnsPrinterFromTemplate
(
reader
,
decoder
)
if
test
.
expectErr
{
if
test
.
expectErr
{
if
err
==
nil
{
if
err
==
nil
{
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
t
.
Errorf
(
"[%s] unexpected non-error"
,
test
.
name
)
...
@@ -251,7 +254,7 @@ func TestColumnPrint(t *testing.T) {
...
@@ -251,7 +254,7 @@ func TestColumnPrint(t *testing.T) {
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
},
},
},
},
obj
:
&
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}},
obj
:
&
core
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}},
expectedOutput
:
`NAME
expectedOutput
:
`NAME
foo
foo
`
,
`
,
...
@@ -263,8 +266,8 @@ foo
...
@@ -263,8 +266,8 @@ foo
FieldSpec
:
"{.metadata.name}"
,
FieldSpec
:
"{.metadata.name}"
,
},
},
},
},
obj
:
&
v1
.
PodList
{
obj
:
&
core
v1
.
PodList
{
Items
:
[]
v1
.
Pod
{
Items
:
[]
core
v1
.
Pod
{
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}},
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
}},
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"bar"
}},
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"bar"
}},
},
},
...
@@ -285,7 +288,7 @@ bar
...
@@ -285,7 +288,7 @@ bar
FieldSpec
:
"{.apiVersion}"
,
FieldSpec
:
"{.apiVersion}"
,
},
},
},
},
obj
:
&
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
},
TypeMeta
:
metav1
.
TypeMeta
{
APIVersion
:
"baz"
}},
obj
:
&
core
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
},
TypeMeta
:
metav1
.
TypeMeta
{
APIVersion
:
"baz"
}},
expectedOutput
:
`NAME API_VERSION
expectedOutput
:
`NAME API_VERSION
foo baz
foo baz
`
,
`
,
...
@@ -305,7 +308,7 @@ foo baz
...
@@ -305,7 +308,7 @@ foo baz
FieldSpec
:
"{.notFound}"
,
FieldSpec
:
"{.notFound}"
,
},
},
},
},
obj
:
&
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
},
TypeMeta
:
metav1
.
TypeMeta
{
APIVersion
:
"baz"
}},
obj
:
&
core
v1
.
Pod
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
},
TypeMeta
:
metav1
.
TypeMeta
{
APIVersion
:
"baz"
}},
expectedOutput
:
`NAME API_VERSION NOT_FOUND
expectedOutput
:
`NAME API_VERSION NOT_FOUND
foo baz <none>
foo baz <none>
`
,
`
,
...
@@ -316,7 +319,7 @@ foo baz <none>
...
@@ -316,7 +319,7 @@ foo baz <none>
t
.
Run
(
test
.
expectedOutput
,
func
(
t
*
testing
.
T
)
{
t
.
Run
(
test
.
expectedOutput
,
func
(
t
*
testing
.
T
)
{
printer
:=
&
CustomColumnsPrinter
{
printer
:=
&
CustomColumnsPrinter
{
Columns
:
test
.
columns
,
Columns
:
test
.
columns
,
Decoder
:
legacyscheme
.
Codecs
.
UniversalDecoder
()
,
Decoder
:
decoder
,
}
}
buffer
:=
&
bytes
.
Buffer
{}
buffer
:=
&
bytes
.
Buffer
{}
if
err
:=
printer
.
PrintObj
(
test
.
obj
,
buffer
);
err
!=
nil
{
if
err
:=
printer
.
PrintObj
(
test
.
obj
,
buffer
);
err
!=
nil
{
...
@@ -345,7 +348,7 @@ func TestIndividualPrintObjOnExistingTabWriter(t *testing.T) {
...
@@ -345,7 +348,7 @@ func TestIndividualPrintObjOnExistingTabWriter(t *testing.T) {
FieldSpec
:
"{.metadata.labels.label2}"
,
FieldSpec
:
"{.metadata.labels.label2}"
,
},
},
}
}
objects
:=
[]
*
v1
.
Pod
{
objects
:=
[]
*
core
v1
.
Pod
{
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
,
Labels
:
map
[
string
]
string
{
"label1"
:
"foo"
,
"label2"
:
"foo"
}}},
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"foo"
,
Labels
:
map
[
string
]
string
{
"label1"
:
"foo"
,
"label2"
:
"foo"
}}},
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"bar"
,
Labels
:
map
[
string
]
string
{
"label1"
:
"bar"
,
"label2"
:
"bar"
}}},
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"bar"
,
Labels
:
map
[
string
]
string
{
"label1"
:
"bar"
,
"label2"
:
"bar"
}}},
}
}
...
@@ -355,10 +358,10 @@ bar bar bar
...
@@ -355,10 +358,10 @@ bar bar bar
`
`
buffer
:=
&
bytes
.
Buffer
{}
buffer
:=
&
bytes
.
Buffer
{}
tabWriter
:=
GetNewTabWriter
(
buffer
)
tabWriter
:=
printers
.
GetNewTabWriter
(
buffer
)
printer
:=
&
CustomColumnsPrinter
{
printer
:=
&
CustomColumnsPrinter
{
Columns
:
columns
,
Columns
:
columns
,
Decoder
:
legacyscheme
.
Codecs
.
UniversalDecoder
()
,
Decoder
:
decoder
,
}
}
for
_
,
obj
:=
range
objects
{
for
_
,
obj
:=
range
objects
{
if
err
:=
printer
.
PrintObj
(
obj
,
tabWriter
);
err
!=
nil
{
if
err
:=
printer
.
PrintObj
(
obj
,
tabWriter
);
err
!=
nil
{
...
...
pkg/kubectl/cmd/get/get.go
View file @
e0b712d4
...
@@ -38,15 +38,15 @@ import (
...
@@ -38,15 +38,15 @@ import (
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/apimachinery/pkg/watch"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions/printers"
"k8s.io/cli-runtime/pkg/genericclioptions/resource"
"k8s.io/cli-runtime/pkg/genericclioptions/resource"
"k8s.io/client-go/rest"
"k8s.io/client-go/rest"
watchtools
"k8s.io/client-go/tools/watch"
watchtools
"k8s.io/client-go/tools/watch"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/api/legacyscheme"
"k8s.io/kubernetes/pkg/kubectl"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
cmdutil
"k8s.io/kubernetes/pkg/kubectl/cmd/util"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
utilprinters
"k8s.io/kubernetes/pkg/kubectl/util/printers"
"k8s.io/kubernetes/pkg/kubectl/util/templates"
"k8s.io/kubernetes/pkg/kubectl/util/templates"
"k8s.io/kubernetes/pkg/printers"
"k8s.io/kubernetes/pkg/util/interrupt"
"k8s.io/kubernetes/pkg/util/interrupt"
)
)
...
@@ -331,7 +331,7 @@ func (r *RuntimeSorter) Sort() error {
...
@@ -331,7 +331,7 @@ func (r *RuntimeSorter) Sort() error {
case
*
metav1beta1
.
Table
:
case
*
metav1beta1
.
Table
:
includesTable
=
true
includesTable
=
true
if
err
:=
kubectl
.
NewTableSorter
(
t
,
r
.
field
)
.
Sort
();
err
!=
nil
{
if
err
:=
NewTableSorter
(
t
,
r
.
field
)
.
Sort
();
err
!=
nil
{
continue
continue
}
}
default
:
default
:
...
@@ -354,7 +354,7 @@ func (r *RuntimeSorter) Sort() error {
...
@@ -354,7 +354,7 @@ func (r *RuntimeSorter) Sort() error {
// if not dealing with a Table response from the server, assume
// if not dealing with a Table response from the server, assume
// all objects are runtime.Object as usual, and sort using old method.
// all objects are runtime.Object as usual, and sort using old method.
var
err
error
var
err
error
if
r
.
positioner
,
err
=
kubectl
.
SortObjects
(
r
.
decoder
,
r
.
objects
,
r
.
field
);
err
!=
nil
{
if
r
.
positioner
,
err
=
SortObjects
(
r
.
decoder
,
r
.
objects
,
r
.
field
);
err
!=
nil
{
return
err
return
err
}
}
return
nil
return
nil
...
@@ -374,7 +374,7 @@ func (r *RuntimeSorter) WithDecoder(decoder runtime.Decoder) *RuntimeSorter {
...
@@ -374,7 +374,7 @@ func (r *RuntimeSorter) WithDecoder(decoder runtime.Decoder) *RuntimeSorter {
}
}
func
NewRuntimeSorter
(
objects
[]
runtime
.
Object
,
sortBy
string
)
*
RuntimeSorter
{
func
NewRuntimeSorter
(
objects
[]
runtime
.
Object
,
sortBy
string
)
*
RuntimeSorter
{
parsedField
,
err
:=
printers
.
RelaxedJSONPathExpression
(
sortBy
)
parsedField
,
err
:=
RelaxedJSONPathExpression
(
sortBy
)
if
err
!=
nil
{
if
err
!=
nil
{
parsedField
=
sortBy
parsedField
=
sortBy
}
}
...
@@ -495,7 +495,7 @@ func (o *GetOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
...
@@ -495,7 +495,7 @@ func (o *GetOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
var
printer
printers
.
ResourcePrinter
var
printer
printers
.
ResourcePrinter
var
lastMapping
*
meta
.
RESTMapping
var
lastMapping
*
meta
.
RESTMapping
nonEmptyObjCount
:=
0
nonEmptyObjCount
:=
0
w
:=
printers
.
GetNewTabWriter
(
o
.
Out
)
w
:=
util
printers
.
GetNewTabWriter
(
o
.
Out
)
for
ix
:=
range
objs
{
for
ix
:=
range
objs
{
var
mapping
*
meta
.
RESTMapping
var
mapping
*
meta
.
RESTMapping
var
info
*
resource
.
Info
var
info
*
resource
.
Info
...
@@ -645,7 +645,7 @@ func (o *GetOptions) watch(f cmdutil.Factory, cmd *cobra.Command, args []string)
...
@@ -645,7 +645,7 @@ func (o *GetOptions) watch(f cmdutil.Factory, cmd *cobra.Command, args []string)
// print the current object
// print the current object
if
!
o
.
WatchOnly
{
if
!
o
.
WatchOnly
{
var
objsToPrint
[]
runtime
.
Object
var
objsToPrint
[]
runtime
.
Object
writer
:=
printers
.
GetNewTabWriter
(
o
.
Out
)
writer
:=
util
printers
.
GetNewTabWriter
(
o
.
Out
)
if
isList
{
if
isList
{
objsToPrint
,
_
=
meta
.
ExtractList
(
obj
)
objsToPrint
,
_
=
meta
.
ExtractList
(
obj
)
...
@@ -852,7 +852,7 @@ func cmdSpecifiesOutputFmt(cmd *cobra.Command) bool {
...
@@ -852,7 +852,7 @@ func cmdSpecifiesOutputFmt(cmd *cobra.Command) bool {
func
maybeWrapSortingPrinter
(
printer
printers
.
ResourcePrinter
,
sortBy
string
)
printers
.
ResourcePrinter
{
func
maybeWrapSortingPrinter
(
printer
printers
.
ResourcePrinter
,
sortBy
string
)
printers
.
ResourcePrinter
{
if
len
(
sortBy
)
!=
0
{
if
len
(
sortBy
)
!=
0
{
return
&
kubectl
.
SortingPrinter
{
return
&
SortingPrinter
{
Delegate
:
printer
,
Delegate
:
printer
,
SortField
:
fmt
.
Sprintf
(
"%s"
,
sortBy
),
SortField
:
fmt
.
Sprintf
(
"%s"
,
sortBy
),
}
}
...
...
pkg/kubectl/cmd/get/get_flags.go
View file @
e0b712d4
...
@@ -24,8 +24,8 @@ import (
...
@@ -24,8 +24,8 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions"
"k8s.io/cli-runtime/pkg/genericclioptions/printers"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
"k8s.io/kubernetes/pkg/printers"
)
)
// PrintFlags composes common printer flag structs
// PrintFlags composes common printer flag structs
...
@@ -33,7 +33,7 @@ import (
...
@@ -33,7 +33,7 @@ import (
type
PrintFlags
struct
{
type
PrintFlags
struct
{
JSONYamlPrintFlags
*
genericclioptions
.
JSONYamlPrintFlags
JSONYamlPrintFlags
*
genericclioptions
.
JSONYamlPrintFlags
NamePrintFlags
*
genericclioptions
.
NamePrintFlags
NamePrintFlags
*
genericclioptions
.
NamePrintFlags
CustomColumnsFlags
*
printers
.
CustomColumnsPrintFlags
CustomColumnsFlags
*
CustomColumnsPrintFlags
HumanReadableFlags
*
HumanPrintFlags
HumanReadableFlags
*
HumanPrintFlags
TemplateFlags
*
genericclioptions
.
KubeTemplatePrintFlags
TemplateFlags
*
genericclioptions
.
KubeTemplatePrintFlags
...
@@ -185,6 +185,6 @@ func NewGetPrintFlags() *PrintFlags {
...
@@ -185,6 +185,6 @@ func NewGetPrintFlags() *PrintFlags {
TemplateFlags
:
genericclioptions
.
NewKubeTemplatePrintFlags
(),
TemplateFlags
:
genericclioptions
.
NewKubeTemplatePrintFlags
(),
HumanReadableFlags
:
NewHumanPrintFlags
(),
HumanReadableFlags
:
NewHumanPrintFlags
(),
CustomColumnsFlags
:
printers
.
NewCustomColumnsPrintFlags
(),
CustomColumnsFlags
:
NewCustomColumnsPrintFlags
(),
}
}
}
}
pkg/kubectl/sorter.go
→
pkg/kubectl/
cmd/get/
sorter.go
View file @
e0b712d4
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
kubectl
package
get
import
(
import
(
"fmt"
"fmt"
...
@@ -24,15 +24,15 @@ import (
...
@@ -24,15 +24,15 @@ import (
"k8s.io/klog"
"k8s.io/klog"
"k8s.io/api/core/v1"
corev1
"k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/meta"
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
metav1beta1
"k8s.io/apimachinery/pkg/apis/meta/v1beta1"
metav1beta1
"k8s.io/apimachinery/pkg/apis/meta/v1beta1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/cli-runtime/pkg/genericclioptions/printers"
"k8s.io/client-go/util/integer"
"k8s.io/client-go/util/integer"
"k8s.io/client-go/util/jsonpath"
"k8s.io/client-go/util/jsonpath"
"k8s.io/kubernetes/pkg/printers"
"vbom.ml/util/sortorder"
"vbom.ml/util/sortorder"
)
)
...
@@ -71,7 +71,7 @@ func (s *SortingPrinter) sortObj(obj runtime.Object) error {
...
@@ -71,7 +71,7 @@ func (s *SortingPrinter) sortObj(obj runtime.Object) error {
}
}
switch
list
:=
obj
.
(
type
)
{
switch
list
:=
obj
.
(
type
)
{
case
*
v1
.
List
:
case
*
core
v1
.
List
:
outputList
:=
make
([]
runtime
.
RawExtension
,
len
(
objs
))
outputList
:=
make
([]
runtime
.
RawExtension
,
len
(
objs
))
for
ix
:=
range
objs
{
for
ix
:=
range
objs
{
outputList
[
ix
]
=
list
.
Items
[
sorter
.
OriginalPosition
(
ix
)]
outputList
[
ix
]
=
list
.
Items
[
sorter
.
OriginalPosition
(
ix
)]
...
@@ -96,7 +96,7 @@ func SortObjects(decoder runtime.Decoder, objs []runtime.Object, fieldInput stri
...
@@ -96,7 +96,7 @@ func SortObjects(decoder runtime.Decoder, objs []runtime.Object, fieldInput stri
}
}
}
}
field
,
err
:=
printers
.
RelaxedJSONPathExpression
(
fieldInput
)
field
,
err
:=
RelaxedJSONPathExpression
(
fieldInput
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
...
pkg/kubectl/sorter_test.go
→
pkg/kubectl/
cmd/get/
sorter_test.go
View file @
e0b712d4
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.
*/
*/
package
kubectl
package
get
import
(
import
(
"reflect"
"reflect"
...
...
pkg/printers/BUILD
View file @
e0b712d4
...
@@ -9,15 +9,12 @@ load(
...
@@ -9,15 +9,12 @@ load(
go_library(
go_library(
name = "go_default_library",
name = "go_default_library",
srcs = [
srcs = [
"customcolumn.go",
"customcolumn_flags.go",
"humanreadable.go",
"humanreadable.go",
"interface.go",
"interface.go",
"tabwriter.go",
"tabwriter.go",
],
],
importpath = "k8s.io/kubernetes/pkg/printers",
importpath = "k8s.io/kubernetes/pkg/printers",
deps = [
deps = [
"//pkg/kubectl/scheme:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library",
...
@@ -26,10 +23,6 @@ go_library(
...
@@ -26,10 +23,6 @@ go_library(
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions/printers:go_default_library",
"//staging/src/k8s.io/client-go/util/jsonpath:go_default_library",
"//vendor/github.com/spf13/cobra:go_default_library",
],
],
)
)
...
@@ -52,19 +45,12 @@ filegroup(
...
@@ -52,19 +45,12 @@ filegroup(
go_test(
go_test(
name = "go_default_test",
name = "go_default_test",
srcs = [
srcs = ["humanreadable_test.go"],
"customcolumn_flags_test.go",
"customcolumn_test.go",
"humanreadable_test.go",
],
embed = [":go_default_library"],
embed = [":go_default_library"],
deps = [
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/core:go_default_library",
"//pkg/apis/core:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1beta1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library",
],
],
)
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment