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
7e102de7
Unverified
Commit
7e102de7
authored
Nov 01, 2018
by
k8s-ci-robot
Committed by
GitHub
Nov 01, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #70475 from pohly/csi-driver-deployment-logging
e2e: less verbose item creation
parents
78b43cc6
84db64fb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
101 additions
and
13 deletions
+101
-13
create.go
test/e2e/framework/create.go
+101
-13
No files found.
test/e2e/framework/create.go
View file @
7e102de7
...
@@ -77,7 +77,6 @@ func (f *Framework) LoadFromManifests(files ...string) ([]interface{}, error) {
...
@@ -77,7 +77,6 @@ func (f *Framework) LoadFromManifests(files ...string) ([]interface{}, error) {
func
visitManifests
(
cb
func
([]
byte
)
error
,
files
...
string
)
error
{
func
visitManifests
(
cb
func
([]
byte
)
error
,
files
...
string
)
error
{
for
_
,
fileName
:=
range
files
{
for
_
,
fileName
:=
range
files
{
Logf
(
"parsing %s"
,
fileName
)
data
,
err
:=
testfiles
.
Read
(
fileName
)
data
,
err
:=
testfiles
.
Read
(
fileName
)
if
err
!=
nil
{
if
err
!=
nil
{
Failf
(
"reading manifest file: %v"
,
err
)
Failf
(
"reading manifest file: %v"
,
err
)
...
@@ -115,7 +114,8 @@ func visitManifests(cb func([]byte) error, files ...string) error {
...
@@ -115,7 +114,8 @@ func visitManifests(cb func([]byte) error, files ...string) error {
// - only the latest stable API version for each item is supported
// - only the latest stable API version for each item is supported
func
(
f
*
Framework
)
PatchItems
(
items
...
interface
{})
error
{
func
(
f
*
Framework
)
PatchItems
(
items
...
interface
{})
error
{
for
_
,
item
:=
range
items
{
for
_
,
item
:=
range
items
{
Logf
(
"patching original content of %T:
\n
%s"
,
item
,
PrettyPrint
(
item
))
// Uncomment when debugging the loading and patching of items.
// Logf("patching original content of %T:\n%s", item, PrettyPrint(item))
if
err
:=
f
.
patchItemRecursively
(
item
);
err
!=
nil
{
if
err
:=
f
.
patchItemRecursively
(
item
);
err
!=
nil
{
return
err
return
err
}
}
...
@@ -164,11 +164,17 @@ func (f *Framework) CreateItems(items ...interface{}) (func(), error) {
...
@@ -164,11 +164,17 @@ func (f *Framework) CreateItems(items ...interface{}) (func(), error) {
for
_
,
item
:=
range
items
{
for
_
,
item
:=
range
items
{
// Each factory knows which item(s) it supports, so try each one.
// Each factory knows which item(s) it supports, so try each one.
done
:=
false
done
:=
false
Logf
(
"creating %T:
\n
%s"
,
item
,
PrettyPrint
(
item
))
description
:=
DescribeItem
(
item
)
// Uncomment this line to get a full dump of the entire item.
// description = fmt.Sprintf("%s:\n%s", description, PrettyPrint(item))
Logf
(
"creating %s"
,
description
)
for
_
,
factory
:=
range
Factories
{
for
_
,
factory
:=
range
Factories
{
destructor
,
err
:=
factory
.
Create
(
f
,
item
)
destructor
,
err
:=
factory
.
Create
(
f
,
item
)
if
destructor
!=
nil
{
if
destructor
!=
nil
{
destructors
=
append
(
destructors
,
destructor
)
destructors
=
append
(
destructors
,
func
()
error
{
Logf
(
"deleting %s"
,
description
)
return
destructor
()
})
}
}
if
err
==
nil
{
if
err
==
nil
{
done
=
true
done
=
true
...
@@ -247,6 +253,25 @@ type ItemFactory interface {
...
@@ -247,6 +253,25 @@ type ItemFactory interface {
// If the item is of an unsupported type, it must return
// If the item is of an unsupported type, it must return
// an error that has ItemNotSupported as cause.
// an error that has ItemNotSupported as cause.
Create
(
f
*
Framework
,
item
interface
{})
(
func
()
error
,
error
)
Create
(
f
*
Framework
,
item
interface
{})
(
func
()
error
,
error
)
// UniqueName returns just the name (for global items)
// or <namespace>/<name> (for namespaced items) if the
// item has the right type for this factory, otherwise
// the empty string.
UniqueName
(
item
interface
{})
string
}
// DescribeItem always returns a string that describes the item,
// usually by calling out to a factory that supports the item
// type. If that fails, the entire item gets converted to a string.
func
DescribeItem
(
item
interface
{})
string
{
for
_
,
factory
:=
range
Factories
{
name
:=
factory
.
UniqueName
(
item
)
if
name
!=
""
{
return
fmt
.
Sprintf
(
"%T: %s"
,
item
,
name
)
}
}
return
fmt
.
Sprintf
(
"%T: %s"
,
item
,
item
)
}
}
// ItemNotSupported is the error that Create methods
// ItemNotSupported is the error that Create methods
...
@@ -359,11 +384,18 @@ func (*ServiceAccountFactory) Create(f *Framework, i interface{}) (func() error,
...
@@ -359,11 +384,18 @@ func (*ServiceAccountFactory) Create(f *Framework, i interface{}) (func() error,
return
nil
,
errors
.
Wrap
(
err
,
"create ServiceAccount"
)
return
nil
,
errors
.
Wrap
(
err
,
"create ServiceAccount"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
ServiceAccountFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
v1
.
ServiceAccount
)
if
!
ok
{
return
""
}
return
fmt
.
Sprintf
(
"%s/%s"
,
item
.
GetNamespace
(),
item
.
GetName
())
}
type
ClusterRoleFactory
struct
{}
type
ClusterRoleFactory
struct
{}
func
(
f
*
ClusterRoleFactory
)
New
()
runtime
.
Object
{
func
(
f
*
ClusterRoleFactory
)
New
()
runtime
.
Object
{
...
@@ -400,11 +432,18 @@ func (*ClusterRoleFactory) Create(f *Framework, i interface{}) (func() error, er
...
@@ -400,11 +432,18 @@ func (*ClusterRoleFactory) Create(f *Framework, i interface{}) (func() error, er
return
nil
,
errors
.
Wrap
(
err
,
"create ClusterRole"
)
return
nil
,
errors
.
Wrap
(
err
,
"create ClusterRole"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
ClusterRoleFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
rbac
.
ClusterRole
)
if
!
ok
{
return
""
}
return
item
.
GetName
()
}
type
ClusterRoleBindingFactory
struct
{}
type
ClusterRoleBindingFactory
struct
{}
func
(
f
*
ClusterRoleBindingFactory
)
New
()
runtime
.
Object
{
func
(
f
*
ClusterRoleBindingFactory
)
New
()
runtime
.
Object
{
...
@@ -422,11 +461,18 @@ func (*ClusterRoleBindingFactory) Create(f *Framework, i interface{}) (func() er
...
@@ -422,11 +461,18 @@ func (*ClusterRoleBindingFactory) Create(f *Framework, i interface{}) (func() er
return
nil
,
errors
.
Wrap
(
err
,
"create ClusterRoleBinding"
)
return
nil
,
errors
.
Wrap
(
err
,
"create ClusterRoleBinding"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
ClusterRoleBindingFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
rbac
.
ClusterRoleBinding
)
if
!
ok
{
return
""
}
return
item
.
GetName
()
}
type
RoleFactory
struct
{}
type
RoleFactory
struct
{}
func
(
f
*
RoleFactory
)
New
()
runtime
.
Object
{
func
(
f
*
RoleFactory
)
New
()
runtime
.
Object
{
...
@@ -444,11 +490,18 @@ func (*RoleFactory) Create(f *Framework, i interface{}) (func() error, error) {
...
@@ -444,11 +490,18 @@ func (*RoleFactory) Create(f *Framework, i interface{}) (func() error, error) {
return
nil
,
errors
.
Wrap
(
err
,
"create Role"
)
return
nil
,
errors
.
Wrap
(
err
,
"create Role"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
RoleFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
rbac
.
Role
)
if
!
ok
{
return
""
}
return
fmt
.
Sprintf
(
"%s/%s"
,
item
.
GetNamespace
(),
item
.
GetName
())
}
type
RoleBindingFactory
struct
{}
type
RoleBindingFactory
struct
{}
func
(
f
*
RoleBindingFactory
)
New
()
runtime
.
Object
{
func
(
f
*
RoleBindingFactory
)
New
()
runtime
.
Object
{
...
@@ -466,11 +519,18 @@ func (*RoleBindingFactory) Create(f *Framework, i interface{}) (func() error, er
...
@@ -466,11 +519,18 @@ func (*RoleBindingFactory) Create(f *Framework, i interface{}) (func() error, er
return
nil
,
errors
.
Wrap
(
err
,
"create RoleBinding"
)
return
nil
,
errors
.
Wrap
(
err
,
"create RoleBinding"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
RoleBindingFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
rbac
.
RoleBinding
)
if
!
ok
{
return
""
}
return
fmt
.
Sprintf
(
"%s/%s"
,
item
.
GetNamespace
(),
item
.
GetName
())
}
type
ServiceFactory
struct
{}
type
ServiceFactory
struct
{}
func
(
f
*
ServiceFactory
)
New
()
runtime
.
Object
{
func
(
f
*
ServiceFactory
)
New
()
runtime
.
Object
{
...
@@ -488,11 +548,18 @@ func (*ServiceFactory) Create(f *Framework, i interface{}) (func() error, error)
...
@@ -488,11 +548,18 @@ func (*ServiceFactory) Create(f *Framework, i interface{}) (func() error, error)
return
nil
,
errors
.
Wrap
(
err
,
"create Service"
)
return
nil
,
errors
.
Wrap
(
err
,
"create Service"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
ServiceFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
v1
.
Service
)
if
!
ok
{
return
""
}
return
fmt
.
Sprintf
(
"%s/%s"
,
item
.
GetNamespace
(),
item
.
GetName
())
}
type
StatefulSetFactory
struct
{}
type
StatefulSetFactory
struct
{}
func
(
f
*
StatefulSetFactory
)
New
()
runtime
.
Object
{
func
(
f
*
StatefulSetFactory
)
New
()
runtime
.
Object
{
...
@@ -510,11 +577,18 @@ func (*StatefulSetFactory) Create(f *Framework, i interface{}) (func() error, er
...
@@ -510,11 +577,18 @@ func (*StatefulSetFactory) Create(f *Framework, i interface{}) (func() error, er
return
nil
,
errors
.
Wrap
(
err
,
"create StatefulSet"
)
return
nil
,
errors
.
Wrap
(
err
,
"create StatefulSet"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
StatefulSetFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
apps
.
StatefulSet
)
if
!
ok
{
return
""
}
return
fmt
.
Sprintf
(
"%s/%s"
,
item
.
GetNamespace
(),
item
.
GetName
())
}
type
DaemonSetFactory
struct
{}
type
DaemonSetFactory
struct
{}
func
(
f
*
DaemonSetFactory
)
New
()
runtime
.
Object
{
func
(
f
*
DaemonSetFactory
)
New
()
runtime
.
Object
{
...
@@ -532,11 +606,18 @@ func (*DaemonSetFactory) Create(f *Framework, i interface{}) (func() error, erro
...
@@ -532,11 +606,18 @@ func (*DaemonSetFactory) Create(f *Framework, i interface{}) (func() error, erro
return
nil
,
errors
.
Wrap
(
err
,
"create DaemonSet"
)
return
nil
,
errors
.
Wrap
(
err
,
"create DaemonSet"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
DaemonSetFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
apps
.
DaemonSet
)
if
!
ok
{
return
""
}
return
fmt
.
Sprintf
(
"%s/%s"
,
item
.
GetNamespace
(),
item
.
GetName
())
}
type
StorageClassFactory
struct
{}
type
StorageClassFactory
struct
{}
func
(
f
*
StorageClassFactory
)
New
()
runtime
.
Object
{
func
(
f
*
StorageClassFactory
)
New
()
runtime
.
Object
{
...
@@ -554,11 +635,18 @@ func (*StorageClassFactory) Create(f *Framework, i interface{}) (func() error, e
...
@@ -554,11 +635,18 @@ func (*StorageClassFactory) Create(f *Framework, i interface{}) (func() error, e
return
nil
,
errors
.
Wrap
(
err
,
"create StorageClass"
)
return
nil
,
errors
.
Wrap
(
err
,
"create StorageClass"
)
}
}
return
func
()
error
{
return
func
()
error
{
Logf
(
"deleting %T %s"
,
item
,
item
.
GetName
())
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
return
client
.
Delete
(
item
.
GetName
(),
&
metav1
.
DeleteOptions
{})
},
nil
},
nil
}
}
func
(
*
StorageClassFactory
)
UniqueName
(
i
interface
{})
string
{
item
,
ok
:=
i
.
(
*
storage
.
StorageClass
)
if
!
ok
{
return
""
}
return
item
.
GetName
()
}
// PrettyPrint returns a human-readable representation of an item.
// PrettyPrint returns a human-readable representation of an item.
func
PrettyPrint
(
item
interface
{})
string
{
func
PrettyPrint
(
item
interface
{})
string
{
data
,
err
:=
json
.
MarshalIndent
(
item
,
""
,
" "
)
data
,
err
:=
json
.
MarshalIndent
(
item
,
""
,
" "
)
...
...
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