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
a77900a1
Commit
a77900a1
authored
Aug 11, 2015
by
CJ Cullen
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #12411 from uluyol/expconvcopy-dups
Generate conversions/deep-copies for experimental.
parents
64051c53
567bb154
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
661 additions
and
374 deletions
+661
-374
.travis.yml
.travis.yml
+1
-0
conversion.go
cmd/genconversion/conversion.go
+19
-7
deep_copy.go
cmd/gendeepcopy/deep_copy.go
+16
-9
update-generated-conversions.sh
hack/after-build/update-generated-conversions.sh
+14
-9
update-generated-deep-copies.sh
hack/after-build/update-generated-deep-copies.sh
+24
-24
verify-generated-conversions.sh
hack/after-build/verify-generated-conversions.sh
+24
-18
verify-generated-deep-copies.sh
hack/after-build/verify-generated-deep-copies.sh
+25
-18
deep_copy_generated.go
pkg/api/deep_copy_generated.go
+2
-1
conversion_generated.go
pkg/api/v1/conversion_generated.go
+2
-1
deep_copy_generated.go
pkg/api/v1/deep_copy_generated.go
+2
-1
deep_copy.go
pkg/expapi/deep_copy.go
+0
-19
deep_copy_generated.go
pkg/expapi/deep_copy_generated.go
+138
-0
conversion_generated.go
pkg/expapi/v1/conversion_generated.go
+254
-0
deep_copy.go
pkg/expapi/v1/deep_copy.go
+0
-19
deep_copy_generated.go
pkg/expapi/v1/deep_copy_generated.go
+139
-0
register.go
pkg/expapi/v1/register.go
+0
-1
conversion_generation_test.go
pkg/runtime/conversion_generation_test.go
+0
-152
deep_copy_generation_test.go
pkg/runtime/deep_copy_generation_test.go
+0
-95
shippable.yml
shippable.yml
+1
-0
No files found.
.travis.yml
View file @
a77900a1
...
...
@@ -8,6 +8,7 @@ matrix:
install
:
-
go get github.com/tools/godep
-
go get golang.org/x/tools/cmd/goimports
-
./hack/travis/install-etcd.sh
-
./hack/build-go.sh
...
...
cmd/genconversion/conversion.go
View file @
a77900a1
...
...
@@ -22,9 +22,12 @@ import (
"os"
"path"
"runtime"
"strings"
"k8s.io/kubernetes/pkg/api"
_
"k8s.io/kubernetes/pkg/api/v1"
_
"k8s.io/kubernetes/pkg/expapi"
_
"k8s.io/kubernetes/pkg/expapi/v1"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -32,9 +35,11 @@ import (
flag
"github.com/spf13/pflag"
)
const
pkgBase
=
"k8s.io/kubernetes/pkg"
var
(
functionDest
=
flag
.
StringP
(
"funcDest"
,
"f"
,
"-"
,
"Output for conversion functions; '-' means stdout"
)
version
=
flag
.
StringP
(
"version"
,
"v"
,
"v1"
,
"V
ersion for conversion."
)
groupVersion
=
flag
.
StringP
(
"version"
,
"v"
,
"api/v1"
,
"groupPath/v
ersion for conversion."
)
)
func
main
()
{
...
...
@@ -53,13 +58,20 @@ func main() {
funcOut
=
file
}
generator
:=
pkg_runtime
.
NewConversionGenerator
(
api
.
Scheme
.
Raw
(),
path
.
Join
(
"k8s.io/kubernetes/pkg/api"
,
*
version
))
apiShort
:=
generator
.
AddImport
(
"k8s.io/kubernetes/pkg/api"
)
generator
.
AddImport
(
"k8s.io/kubernetes/pkg/api/resource"
)
group
,
version
:=
path
.
Split
(
*
groupVersion
)
group
=
strings
.
TrimRight
(
group
,
"/"
)
versionPath
:=
path
.
Join
(
pkgBase
,
group
,
version
)
generator
:=
pkg_runtime
.
NewConversionGenerator
(
api
.
Scheme
.
Raw
(),
versionPath
)
apiShort
:=
generator
.
AddImport
(
path
.
Join
(
pkgBase
,
"api"
))
generator
.
AddImport
(
path
.
Join
(
pkgBase
,
"api/resource"
))
// TODO(wojtek-t): Change the overwrites to a flag.
generator
.
OverwritePackage
(
*
version
,
""
)
for
_
,
knownType
:=
range
api
.
Scheme
.
KnownTypes
(
*
version
)
{
if
err
:=
generator
.
GenerateConversionsForType
(
*
version
,
knownType
);
err
!=
nil
{
generator
.
OverwritePackage
(
version
,
""
)
for
_
,
knownType
:=
range
api
.
Scheme
.
KnownTypes
(
version
)
{
if
!
strings
.
HasPrefix
(
knownType
.
PkgPath
(),
versionPath
)
{
continue
}
if
err
:=
generator
.
GenerateConversionsForType
(
version
,
knownType
);
err
!=
nil
{
glog
.
Errorf
(
"error while generating conversion functions for %v: %v"
,
knownType
,
err
)
}
}
...
...
cmd/gendeepcopy/deep_copy.go
View file @
a77900a1
...
...
@@ -25,6 +25,8 @@ import (
"k8s.io/kubernetes/pkg/api"
_
"k8s.io/kubernetes/pkg/api/v1"
_
"k8s.io/kubernetes/pkg/expapi"
_
"k8s.io/kubernetes/pkg/expapi/v1"
pkg_runtime
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util"
...
...
@@ -32,9 +34,11 @@ import (
flag
"github.com/spf13/pflag"
)
const
pkgBase
=
"k8s.io/kubernetes/pkg"
var
(
functionDest
=
flag
.
StringP
(
"func
-d
est"
,
"f"
,
"-"
,
"Output for deep copy functions; '-' means stdout"
)
version
=
flag
.
StringP
(
"version"
,
"v"
,
"v1"
,
"V
ersion for deep copies."
)
functionDest
=
flag
.
StringP
(
"func
D
est"
,
"f"
,
"-"
,
"Output for deep copy functions; '-' means stdout"
)
groupVersion
=
flag
.
StringP
(
"version"
,
"v"
,
""
,
"groupPath/v
ersion for deep copies."
)
overwrites
=
flag
.
StringP
(
"overwrites"
,
"o"
,
""
,
"Comma-separated overwrites for package names"
)
)
...
...
@@ -54,15 +58,15 @@ func main() {
funcOut
=
file
}
knownVersion
:=
*
version
group
,
version
:=
path
.
Split
(
*
groupVersion
)
group
=
strings
.
TrimRight
(
group
,
"/"
)
registerTo
:=
"api.Scheme"
if
knownVersion
==
"api"
{
knownVersion
=
api
.
Scheme
.
Raw
()
.
InternalVersion
if
*
groupVersion
==
"api/"
{
registerTo
=
"Scheme"
}
pkgPath
:=
path
.
Join
(
"k8s.io/kubernetes/pkg/api"
,
knownV
ersion
)
generator
:=
pkg_runtime
.
NewDeepCopyGenerator
(
api
.
Scheme
.
Raw
(),
pkg
Path
,
util
.
NewStringSet
(
"k8s.io/kubernetes"
))
generator
.
AddImport
(
"k8s.io/kubernetes/pkg/api"
)
versionPath
:=
path
.
Join
(
pkgBase
,
group
,
v
ersion
)
generator
:=
pkg_runtime
.
NewDeepCopyGenerator
(
api
.
Scheme
.
Raw
(),
version
Path
,
util
.
NewStringSet
(
"k8s.io/kubernetes"
))
generator
.
AddImport
(
path
.
Join
(
pkgBase
,
"api"
)
)
if
len
(
*
overwrites
)
>
0
{
for
_
,
overwrite
:=
range
strings
.
Split
(
*
overwrites
,
","
)
{
...
...
@@ -73,7 +77,10 @@ func main() {
generator
.
OverwritePackage
(
vals
[
0
],
vals
[
1
])
}
}
for
_
,
knownType
:=
range
api
.
Scheme
.
KnownTypes
(
knownVersion
)
{
for
_
,
knownType
:=
range
api
.
Scheme
.
KnownTypes
(
version
)
{
if
!
strings
.
HasPrefix
(
knownType
.
PkgPath
(),
versionPath
)
{
continue
}
if
err
:=
generator
.
AddType
(
knownType
);
err
!=
nil
{
glog
.
Errorf
(
"error while generating deep copy functions for %v: %v"
,
knownType
,
err
)
}
...
...
hack/after-build/update-generated-conversions.sh
View file @
a77900a1
...
...
@@ -29,11 +29,11 @@ function generate_version() {
local
version
=
$1
local
TMPFILE
=
"/tmp/conversion_generated.
$(
date
+%s
)
.go"
echo
"Generating for
version
${
version
}
"
echo
"Generating for
${
version
}
"
sed
's/YEAR/2015/'
hack/boilerplate/boilerplate.go.txt
>
"
$TMPFILE
"
cat
>>
"
$TMPFILE
"
<<
EOF
package
${
version
}
package
${
version
##*/
}
// AUTO-GENERATED FUNCTIONS START HERE
EOF
...
...
@@ -44,14 +44,19 @@ EOF
// AUTO-GENERATED FUNCTIONS END HERE
EOF
mv
"
$TMPFILE
"
"pkg/api/
${
version
}
/conversion_generated.go"
env
GOPATH
=
$(
godep path
)
:
$GOPATH
goimports
-w
"
$TMPFILE
"
mv
"
$TMPFILE
"
"pkg/
${
version
}
/conversion_generated.go"
}
VERSIONS
=
"v1"
if
!
which goimports
>
/dev/null
;
then
echo
"goimports not in path, run go get golang.org/x/tools/cmd/goimports"
exit
1
fi
DEFAULT_VERSIONS
=
"api/v1 expapi/v1"
VERSIONS
=
${
VERSIONS
:-
$DEFAULT_VERSIONS
}
for
ver
in
$VERSIONS
;
do
# Ensure that the version being processed is registered by setting
# KUBE_API_VERSIONS.
KUBE_API_VERSIONS
=
"
${
ver
}
"
generate_version
"
${
ver
}
"
# Ensure that the version being processed is registered by setting
# KUBE_API_VERSIONS.
KUBE_API_VERSIONS
=
"
${
ver
##*/
}
"
generate_version
"
${
ver
}
"
done
# ex: ts=2 sw=2 et filetype=sh
hack/after-build/update-generated-deep-copies.sh
View file @
a77900a1
...
...
@@ -27,22 +27,25 @@ gendeepcopy=$(kube::util::find-binary "gendeepcopy")
function
result_file_name
()
{
local
version
=
$1
if
[
"
${
version
}
"
==
"api"
]
;
then
echo
"pkg/api/deep_copy_generated.go"
else
echo
"pkg/api/
${
version
}
/deep_copy_generated.go"
fi
echo
"pkg/
${
version
}
/deep_copy_generated.go"
}
function
generate_version
()
{
local
version
=
$1
local
TMPFILE
=
"/tmp/deep_copy_generated.
$(
date
+%s
)
.go"
echo
"Generating for version
${
version
}
"
echo
"Generating for
${
version
}
"
# version is group/version, so use the version number as the package name unless
# this is an internal version, in which case use the group name.
pkgname
=
${
version
##*/
}
if
[[
-z
$pkgname
]]
;
then
pkgname
=
${
version
%/*
}
fi
sed
's/YEAR/2015/'
hack/boilerplate/boilerplate.go.txt
>
$TMPFILE
cat
>>
$TMPFILE
<<
EOF
package
$
{
version
}
package
$
pkgname
// AUTO-GENERATED FUNCTIONS START HERE
EOF
...
...
@@ -53,27 +56,24 @@ EOF
// AUTO-GENERATED FUNCTIONS END HERE
EOF
gofmt
-w
-s
"
$TMPFILE
"
env
GOPATH
=
$(
godep path
)
:
$GOPATH
goimports
-w
"
$TMPFILE
"
mv
"
$TMPFILE
"
`
result_file_name
${
version
}
`
}
function
generate_deep_copies
()
{
local
versions
=
"api v1"
# To avoid compile errors, remove the currently existing files.
for
ver
in
${
versions
}
;
do
rm
-f
`
result_file_name
${
ver
}
`
done
apiVersions
=
""
for
ver
in
${
versions
}
;
do
# Ensure that the version being processed is registered by setting
# KUBE_API_VERSIONS.
if
[
"
${
ver
}
"
!=
"api"
]
;
then
apiVersions
=
"
${
ver
}
"
fi
KUBE_API_VERSIONS
=
"
${
apiVersions
}
"
generate_version
"
${
ver
}
"
done
local
versions
=
"
$@
"
# To avoid compile errors, remove the currently existing files.
for
ver
in
${
versions
}
;
do
rm
-f
`
result_file_name
${
ver
}
`
done
for
ver
in
${
versions
}
;
do
# Ensure that the version being processed is registered by setting
# KUBE_API_VERSIONS.
apiVersions
=
"
${
ver
##*/
}
"
KUBE_API_VERSIONS
=
"
${
apiVersions
}
"
generate_version
"
${
ver
}
"
done
}
DEFAULT_VERSIONS
=
"api/ api/v1 expapi/ expapi/v1"
VERSIONS
=
${
VERSIONS
:-
$DEFAULT_VERSIONS
}
generate_deep_copies
# ex: ts=2 sw=2 et filetype=sh
hack/after-build/verify-generated-conversions.sh
View file @
a77900a1
...
...
@@ -23,25 +23,31 @@ source "${KUBE_ROOT}/hack/lib/init.sh"
kube::golang::setup_env
APIROOT
=
"
${
KUBE_ROOT
}
/pkg/api"
TMP_APIROOT
=
"
${
KUBE_ROOT
}
/_tmp/api"
APIROOTS
=
${
APIROOTS
:-
pkg
/api pkg/expapi
}
_tmp
=
"
${
KUBE_ROOT
}
/_tmp"
mkdir
-p
"
${
_tmp
}
"
cp
-a
"
${
APIROOT
}
"
"
${
TMP_APIROOT
}
"
cleanup
()
{
rm
-rf
"
${
_tmp
}
"
}
trap
"cleanup"
EXIT SIGINT
for
APIROOT
in
${
APIROOTS
}
;
do
mkdir
-p
"
${
_tmp
}
/
${
APIROOT
%/*
}
"
cp
-a
"
${
KUBE_ROOT
}
/
${
APIROOT
}
"
"
${
_tmp
}
/
${
APIROOT
}
"
done
"
${
KUBE_ROOT
}
/hack/update-generated-conversions.sh"
echo
"diffing
${
APIROOT
}
against freshly generated conversions"
ret
=
0
diff
-Naupr
-I
'Auto generated by'
"
${
APIROOT
}
"
"
${
TMP_APIROOT
}
"
||
ret
=
$?
cp
-a
${
TMP_APIROOT
}
"
${
KUBE_ROOT
}
/pkg"
rm
-rf
"
${
_tmp
}
"
if
[[
$ret
-eq
0
]]
then
echo
"
${
APIROOT
}
up to date."
else
echo
"
${
APIROOT
}
is out of date. Please run hack/update-generated-conversions.sh"
exit
1
fi
# ex: ts=2 sw=2 et filetype=sh
for
APIROOT
in
${
APIROOTS
}
;
do
TMP_APIROOT
=
"
${
_tmp
}
/
${
APIROOT
}
"
echo
"diffing
${
APIROOT
}
against freshly generated conversions"
ret
=
0
diff
-Naupr
-I
'Auto generated by'
"
${
KUBE_ROOT
}
/
${
APIROOT
}
"
"
${
TMP_APIROOT
}
"
||
ret
=
$?
cp
-a
"
${
TMP_APIROOT
}
"
"
${
KUBE_ROOT
}
/
${
APIROOT
%/*
}
"
if
[[
$ret
-eq
0
]]
;
then
echo
"
${
APIROOT
}
up to date."
else
echo
"
${
APIROOT
}
is out of date. Please run hack/update-generated-conversions.sh"
exit
1
fi
done
hack/after-build/verify-generated-deep-copies.sh
View file @
a77900a1
...
...
@@ -25,25 +25,32 @@ kube::golang::setup_env
gendeepcopy
=
$(
kube::util::find-binary
"gendeepcopy"
)
APIROOT
=
"
${
KUBE_ROOT
}
/pkg/api"
TMP_APIROOT
=
"
${
KUBE_ROOT
}
/_tmp/api"
APIROOTS
=
${
APIROOTS
:-
pkg
/api pkg/expapi
}
_tmp
=
"
${
KUBE_ROOT
}
/_tmp"
mkdir
-p
"
${
_tmp
}
"
cp
-a
"
${
APIROOT
}
"
"
${
TMP_APIROOT
}
"
cleanup
()
{
rm
-rf
"
${
_tmp
}
"
}
trap
"cleanup"
EXIT SIGINT
for
APIROOT
in
${
APIROOTS
}
;
do
mkdir
-p
"
${
_tmp
}
/
${
APIROOT
%/*
}
"
cp
-a
"
${
KUBE_ROOT
}
/
${
APIROOT
}
"
"
${
_tmp
}
/
${
APIROOT
}
"
done
"
${
KUBE_ROOT
}
/hack/update-generated-deep-copies.sh"
echo
"diffing
${
APIROOT
}
against freshly generated deep copies"
ret
=
0
diff
-Naupr
-I
'Auto generated by'
"
${
APIROOT
}
"
"
${
TMP_APIROOT
}
"
||
ret
=
$?
cp
-a
${
TMP_APIROOT
}
"
${
KUBE_ROOT
}
/pkg
"
rm
-rf
"
${
_tmp
}
"
if
[[
$ret
-eq
0
]]
then
echo
"
${
APIROOT
}
up to date."
else
echo
"
${
APIROOT
}
is out of date. Please run hack/update-generated-deep-copies.sh"
exit
1
fi
# ex: ts=2 sw=2 et filetype=sh
for
APIROOT
in
${
APIROOTS
}
;
do
TMP_APIROOT
=
"
${
_tmp
}
/
${
APIROOT
}
"
echo
"diffing
${
APIROOT
}
against freshly generated deep copies
"
ret
=
0
diff
-Naupr
-I
'Auto generated by'
"
${
KUBE_ROOT
}
/
${
APIROOT
}
"
"
${
TMP_APIROOT
}
"
||
ret
=
$?
cp
-a
${
TMP_APIROOT
}
"
${
KUBE_ROOT
}
/
${
APIROOT
%/*
}
"
if
[[
$ret
-eq
0
]]
;
then
echo
"
${
APIROOT
}
up to date."
else
echo
"
${
APIROOT
}
is out of date. Please run hack/update-generated-deep-copies.sh"
exit
1
fi
done
pkg/api/deep_copy_generated.go
View file @
a77900a1
...
...
@@ -18,6 +18,8 @@ package api
// AUTO-GENERATED FUNCTIONS START HERE
import
(
time
"time"
resource
"k8s.io/kubernetes/pkg/api/resource"
conversion
"k8s.io/kubernetes/pkg/conversion"
fields
"k8s.io/kubernetes/pkg/fields"
...
...
@@ -25,7 +27,6 @@ import (
runtime
"k8s.io/kubernetes/pkg/runtime"
util
"k8s.io/kubernetes/pkg/util"
inf
"speter.net/go/exp/math/dec/inf"
time
"time"
)
func
deepCopy_api_AWSElasticBlockStoreVolumeSource
(
in
AWSElasticBlockStoreVolumeSource
,
out
*
AWSElasticBlockStoreVolumeSource
,
c
*
conversion
.
Cloner
)
error
{
...
...
pkg/api/v1/conversion_generated.go
View file @
a77900a1
...
...
@@ -18,10 +18,11 @@ package v1
// AUTO-GENERATED FUNCTIONS START HERE
import
(
reflect
"reflect"
api
"k8s.io/kubernetes/pkg/api"
resource
"k8s.io/kubernetes/pkg/api/resource"
conversion
"k8s.io/kubernetes/pkg/conversion"
reflect
"reflect"
)
func
convert_api_AWSElasticBlockStoreVolumeSource_To_v1_AWSElasticBlockStoreVolumeSource
(
in
*
api
.
AWSElasticBlockStoreVolumeSource
,
out
*
AWSElasticBlockStoreVolumeSource
,
s
conversion
.
Scope
)
error
{
...
...
pkg/api/v1/deep_copy_generated.go
View file @
a77900a1
...
...
@@ -18,13 +18,14 @@ package v1
// AUTO-GENERATED FUNCTIONS START HERE
import
(
time
"time"
api
"k8s.io/kubernetes/pkg/api"
resource
"k8s.io/kubernetes/pkg/api/resource"
conversion
"k8s.io/kubernetes/pkg/conversion"
runtime
"k8s.io/kubernetes/pkg/runtime"
util
"k8s.io/kubernetes/pkg/util"
inf
"speter.net/go/exp/math/dec/inf"
time
"time"
)
func
deepCopy_resource_Quantity
(
in
resource
.
Quantity
,
out
*
resource
.
Quantity
,
c
*
conversion
.
Cloner
)
error
{
...
...
pkg/expapi/deep_copy.go
deleted
100644 → 0
View file @
64051c53
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
expapi
func
addDeepCopyFuncs
()
{}
pkg/expapi/deep_copy_generated.go
0 → 100644
View file @
a77900a1
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
expapi
// AUTO-GENERATED FUNCTIONS START HERE
import
(
time
"time"
api
"k8s.io/kubernetes/pkg/api"
conversion
"k8s.io/kubernetes/pkg/conversion"
util
"k8s.io/kubernetes/pkg/util"
)
func
deepCopy_api_ObjectMeta
(
in
api
.
ObjectMeta
,
out
*
api
.
ObjectMeta
,
c
*
conversion
.
Cloner
)
error
{
out
.
Name
=
in
.
Name
out
.
GenerateName
=
in
.
GenerateName
out
.
Namespace
=
in
.
Namespace
out
.
SelfLink
=
in
.
SelfLink
out
.
UID
=
in
.
UID
out
.
ResourceVersion
=
in
.
ResourceVersion
out
.
Generation
=
in
.
Generation
if
err
:=
deepCopy_util_Time
(
in
.
CreationTimestamp
,
&
out
.
CreationTimestamp
,
c
);
err
!=
nil
{
return
err
}
if
in
.
DeletionTimestamp
!=
nil
{
out
.
DeletionTimestamp
=
new
(
util
.
Time
)
if
err
:=
deepCopy_util_Time
(
*
in
.
DeletionTimestamp
,
out
.
DeletionTimestamp
,
c
);
err
!=
nil
{
return
err
}
}
else
{
out
.
DeletionTimestamp
=
nil
}
if
in
.
Labels
!=
nil
{
out
.
Labels
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Labels
{
out
.
Labels
[
key
]
=
val
}
}
else
{
out
.
Labels
=
nil
}
if
in
.
Annotations
!=
nil
{
out
.
Annotations
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Annotations
{
out
.
Annotations
[
key
]
=
val
}
}
else
{
out
.
Annotations
=
nil
}
return
nil
}
func
deepCopy_api_TypeMeta
(
in
api
.
TypeMeta
,
out
*
api
.
TypeMeta
,
c
*
conversion
.
Cloner
)
error
{
out
.
Kind
=
in
.
Kind
out
.
APIVersion
=
in
.
APIVersion
return
nil
}
func
deepCopy_expapi_ReplicationControllerDummy
(
in
ReplicationControllerDummy
,
out
*
ReplicationControllerDummy
,
c
*
conversion
.
Cloner
)
error
{
if
err
:=
deepCopy_api_TypeMeta
(
in
.
TypeMeta
,
&
out
.
TypeMeta
,
c
);
err
!=
nil
{
return
err
}
return
nil
}
func
deepCopy_expapi_Scale
(
in
Scale
,
out
*
Scale
,
c
*
conversion
.
Cloner
)
error
{
if
err
:=
deepCopy_api_TypeMeta
(
in
.
TypeMeta
,
&
out
.
TypeMeta
,
c
);
err
!=
nil
{
return
err
}
if
err
:=
deepCopy_api_ObjectMeta
(
in
.
ObjectMeta
,
&
out
.
ObjectMeta
,
c
);
err
!=
nil
{
return
err
}
if
err
:=
deepCopy_expapi_ScaleSpec
(
in
.
Spec
,
&
out
.
Spec
,
c
);
err
!=
nil
{
return
err
}
if
err
:=
deepCopy_expapi_ScaleStatus
(
in
.
Status
,
&
out
.
Status
,
c
);
err
!=
nil
{
return
err
}
return
nil
}
func
deepCopy_expapi_ScaleSpec
(
in
ScaleSpec
,
out
*
ScaleSpec
,
c
*
conversion
.
Cloner
)
error
{
out
.
Replicas
=
in
.
Replicas
return
nil
}
func
deepCopy_expapi_ScaleStatus
(
in
ScaleStatus
,
out
*
ScaleStatus
,
c
*
conversion
.
Cloner
)
error
{
out
.
Replicas
=
in
.
Replicas
if
in
.
Selector
!=
nil
{
out
.
Selector
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Selector
{
out
.
Selector
[
key
]
=
val
}
}
else
{
out
.
Selector
=
nil
}
return
nil
}
func
deepCopy_util_Time
(
in
util
.
Time
,
out
*
util
.
Time
,
c
*
conversion
.
Cloner
)
error
{
if
newVal
,
err
:=
c
.
DeepCopy
(
in
.
Time
);
err
!=
nil
{
return
err
}
else
{
out
.
Time
=
newVal
.
(
time
.
Time
)
}
return
nil
}
func
init
()
{
err
:=
api
.
Scheme
.
AddGeneratedDeepCopyFuncs
(
deepCopy_api_ObjectMeta
,
deepCopy_api_TypeMeta
,
deepCopy_expapi_ReplicationControllerDummy
,
deepCopy_expapi_Scale
,
deepCopy_expapi_ScaleSpec
,
deepCopy_expapi_ScaleStatus
,
deepCopy_util_Time
,
)
if
err
!=
nil
{
// if one of the deep copy functions is malformed, detect it immediately.
panic
(
err
)
}
}
// AUTO-GENERATED FUNCTIONS END HERE
pkg/expapi/v1/conversion_generated.go
0 → 100644
View file @
a77900a1
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
v1
// AUTO-GENERATED FUNCTIONS START HERE
import
(
reflect
"reflect"
api
"k8s.io/kubernetes/pkg/api"
v1
"k8s.io/kubernetes/pkg/api/v1"
conversion
"k8s.io/kubernetes/pkg/conversion"
expapi
"k8s.io/kubernetes/pkg/expapi"
)
func
convert_api_ObjectMeta_To_v1_ObjectMeta
(
in
*
api
.
ObjectMeta
,
out
*
v1
.
ObjectMeta
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
api
.
ObjectMeta
))(
in
)
}
out
.
Name
=
in
.
Name
out
.
GenerateName
=
in
.
GenerateName
out
.
Namespace
=
in
.
Namespace
out
.
SelfLink
=
in
.
SelfLink
out
.
UID
=
in
.
UID
out
.
ResourceVersion
=
in
.
ResourceVersion
out
.
Generation
=
in
.
Generation
if
err
:=
s
.
Convert
(
&
in
.
CreationTimestamp
,
&
out
.
CreationTimestamp
,
0
);
err
!=
nil
{
return
err
}
if
in
.
DeletionTimestamp
!=
nil
{
if
err
:=
s
.
Convert
(
&
in
.
DeletionTimestamp
,
&
out
.
DeletionTimestamp
,
0
);
err
!=
nil
{
return
err
}
}
else
{
out
.
DeletionTimestamp
=
nil
}
if
in
.
Labels
!=
nil
{
out
.
Labels
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Labels
{
out
.
Labels
[
key
]
=
val
}
}
else
{
out
.
Labels
=
nil
}
if
in
.
Annotations
!=
nil
{
out
.
Annotations
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Annotations
{
out
.
Annotations
[
key
]
=
val
}
}
else
{
out
.
Annotations
=
nil
}
return
nil
}
func
convert_api_TypeMeta_To_v1_TypeMeta
(
in
*
api
.
TypeMeta
,
out
*
v1
.
TypeMeta
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
api
.
TypeMeta
))(
in
)
}
out
.
Kind
=
in
.
Kind
out
.
APIVersion
=
in
.
APIVersion
return
nil
}
func
convert_v1_ObjectMeta_To_api_ObjectMeta
(
in
*
v1
.
ObjectMeta
,
out
*
api
.
ObjectMeta
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
v1
.
ObjectMeta
))(
in
)
}
out
.
Name
=
in
.
Name
out
.
GenerateName
=
in
.
GenerateName
out
.
Namespace
=
in
.
Namespace
out
.
SelfLink
=
in
.
SelfLink
out
.
UID
=
in
.
UID
out
.
ResourceVersion
=
in
.
ResourceVersion
out
.
Generation
=
in
.
Generation
if
err
:=
s
.
Convert
(
&
in
.
CreationTimestamp
,
&
out
.
CreationTimestamp
,
0
);
err
!=
nil
{
return
err
}
if
in
.
DeletionTimestamp
!=
nil
{
if
err
:=
s
.
Convert
(
&
in
.
DeletionTimestamp
,
&
out
.
DeletionTimestamp
,
0
);
err
!=
nil
{
return
err
}
}
else
{
out
.
DeletionTimestamp
=
nil
}
if
in
.
Labels
!=
nil
{
out
.
Labels
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Labels
{
out
.
Labels
[
key
]
=
val
}
}
else
{
out
.
Labels
=
nil
}
if
in
.
Annotations
!=
nil
{
out
.
Annotations
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Annotations
{
out
.
Annotations
[
key
]
=
val
}
}
else
{
out
.
Annotations
=
nil
}
return
nil
}
func
convert_v1_TypeMeta_To_api_TypeMeta
(
in
*
v1
.
TypeMeta
,
out
*
api
.
TypeMeta
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
v1
.
TypeMeta
))(
in
)
}
out
.
Kind
=
in
.
Kind
out
.
APIVersion
=
in
.
APIVersion
return
nil
}
func
convert_expapi_ReplicationControllerDummy_To_v1_ReplicationControllerDummy
(
in
*
expapi
.
ReplicationControllerDummy
,
out
*
ReplicationControllerDummy
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
expapi
.
ReplicationControllerDummy
))(
in
)
}
if
err
:=
convert_api_TypeMeta_To_v1_TypeMeta
(
&
in
.
TypeMeta
,
&
out
.
TypeMeta
,
s
);
err
!=
nil
{
return
err
}
return
nil
}
func
convert_expapi_Scale_To_v1_Scale
(
in
*
expapi
.
Scale
,
out
*
Scale
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
expapi
.
Scale
))(
in
)
}
if
err
:=
convert_api_TypeMeta_To_v1_TypeMeta
(
&
in
.
TypeMeta
,
&
out
.
TypeMeta
,
s
);
err
!=
nil
{
return
err
}
if
err
:=
convert_api_ObjectMeta_To_v1_ObjectMeta
(
&
in
.
ObjectMeta
,
&
out
.
ObjectMeta
,
s
);
err
!=
nil
{
return
err
}
if
err
:=
convert_expapi_ScaleSpec_To_v1_ScaleSpec
(
&
in
.
Spec
,
&
out
.
Spec
,
s
);
err
!=
nil
{
return
err
}
if
err
:=
convert_expapi_ScaleStatus_To_v1_ScaleStatus
(
&
in
.
Status
,
&
out
.
Status
,
s
);
err
!=
nil
{
return
err
}
return
nil
}
func
convert_expapi_ScaleSpec_To_v1_ScaleSpec
(
in
*
expapi
.
ScaleSpec
,
out
*
ScaleSpec
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
expapi
.
ScaleSpec
))(
in
)
}
out
.
Replicas
=
in
.
Replicas
return
nil
}
func
convert_expapi_ScaleStatus_To_v1_ScaleStatus
(
in
*
expapi
.
ScaleStatus
,
out
*
ScaleStatus
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
expapi
.
ScaleStatus
))(
in
)
}
out
.
Replicas
=
in
.
Replicas
if
in
.
Selector
!=
nil
{
out
.
Selector
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Selector
{
out
.
Selector
[
key
]
=
val
}
}
else
{
out
.
Selector
=
nil
}
return
nil
}
func
convert_v1_ReplicationControllerDummy_To_expapi_ReplicationControllerDummy
(
in
*
ReplicationControllerDummy
,
out
*
expapi
.
ReplicationControllerDummy
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
ReplicationControllerDummy
))(
in
)
}
if
err
:=
convert_v1_TypeMeta_To_api_TypeMeta
(
&
in
.
TypeMeta
,
&
out
.
TypeMeta
,
s
);
err
!=
nil
{
return
err
}
return
nil
}
func
convert_v1_Scale_To_expapi_Scale
(
in
*
Scale
,
out
*
expapi
.
Scale
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
Scale
))(
in
)
}
if
err
:=
convert_v1_TypeMeta_To_api_TypeMeta
(
&
in
.
TypeMeta
,
&
out
.
TypeMeta
,
s
);
err
!=
nil
{
return
err
}
if
err
:=
convert_v1_ObjectMeta_To_api_ObjectMeta
(
&
in
.
ObjectMeta
,
&
out
.
ObjectMeta
,
s
);
err
!=
nil
{
return
err
}
if
err
:=
convert_v1_ScaleSpec_To_expapi_ScaleSpec
(
&
in
.
Spec
,
&
out
.
Spec
,
s
);
err
!=
nil
{
return
err
}
if
err
:=
convert_v1_ScaleStatus_To_expapi_ScaleStatus
(
&
in
.
Status
,
&
out
.
Status
,
s
);
err
!=
nil
{
return
err
}
return
nil
}
func
convert_v1_ScaleSpec_To_expapi_ScaleSpec
(
in
*
ScaleSpec
,
out
*
expapi
.
ScaleSpec
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
ScaleSpec
))(
in
)
}
out
.
Replicas
=
in
.
Replicas
return
nil
}
func
convert_v1_ScaleStatus_To_expapi_ScaleStatus
(
in
*
ScaleStatus
,
out
*
expapi
.
ScaleStatus
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
ScaleStatus
))(
in
)
}
out
.
Replicas
=
in
.
Replicas
if
in
.
Selector
!=
nil
{
out
.
Selector
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Selector
{
out
.
Selector
[
key
]
=
val
}
}
else
{
out
.
Selector
=
nil
}
return
nil
}
func
init
()
{
err
:=
api
.
Scheme
.
AddGeneratedConversionFuncs
(
convert_api_ObjectMeta_To_v1_ObjectMeta
,
convert_api_TypeMeta_To_v1_TypeMeta
,
convert_expapi_ReplicationControllerDummy_To_v1_ReplicationControllerDummy
,
convert_expapi_ScaleSpec_To_v1_ScaleSpec
,
convert_expapi_ScaleStatus_To_v1_ScaleStatus
,
convert_expapi_Scale_To_v1_Scale
,
convert_v1_ObjectMeta_To_api_ObjectMeta
,
convert_v1_ReplicationControllerDummy_To_expapi_ReplicationControllerDummy
,
convert_v1_ScaleSpec_To_expapi_ScaleSpec
,
convert_v1_ScaleStatus_To_expapi_ScaleStatus
,
convert_v1_Scale_To_expapi_Scale
,
convert_v1_TypeMeta_To_api_TypeMeta
,
)
if
err
!=
nil
{
// If one of the conversion functions is malformed, detect it immediately.
panic
(
err
)
}
}
// AUTO-GENERATED FUNCTIONS END HERE
pkg/expapi/v1/deep_copy.go
deleted
100644 → 0
View file @
64051c53
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
v1
func
addDeepCopyFuncs
()
{}
pkg/expapi/v1/deep_copy_generated.go
0 → 100644
View file @
a77900a1
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
v1
// AUTO-GENERATED FUNCTIONS START HERE
import
(
time
"time"
api
"k8s.io/kubernetes/pkg/api"
v1
"k8s.io/kubernetes/pkg/api/v1"
conversion
"k8s.io/kubernetes/pkg/conversion"
util
"k8s.io/kubernetes/pkg/util"
)
func
deepCopy_v1_ObjectMeta
(
in
v1
.
ObjectMeta
,
out
*
v1
.
ObjectMeta
,
c
*
conversion
.
Cloner
)
error
{
out
.
Name
=
in
.
Name
out
.
GenerateName
=
in
.
GenerateName
out
.
Namespace
=
in
.
Namespace
out
.
SelfLink
=
in
.
SelfLink
out
.
UID
=
in
.
UID
out
.
ResourceVersion
=
in
.
ResourceVersion
out
.
Generation
=
in
.
Generation
if
err
:=
deepCopy_util_Time
(
in
.
CreationTimestamp
,
&
out
.
CreationTimestamp
,
c
);
err
!=
nil
{
return
err
}
if
in
.
DeletionTimestamp
!=
nil
{
out
.
DeletionTimestamp
=
new
(
util
.
Time
)
if
err
:=
deepCopy_util_Time
(
*
in
.
DeletionTimestamp
,
out
.
DeletionTimestamp
,
c
);
err
!=
nil
{
return
err
}
}
else
{
out
.
DeletionTimestamp
=
nil
}
if
in
.
Labels
!=
nil
{
out
.
Labels
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Labels
{
out
.
Labels
[
key
]
=
val
}
}
else
{
out
.
Labels
=
nil
}
if
in
.
Annotations
!=
nil
{
out
.
Annotations
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Annotations
{
out
.
Annotations
[
key
]
=
val
}
}
else
{
out
.
Annotations
=
nil
}
return
nil
}
func
deepCopy_v1_TypeMeta
(
in
v1
.
TypeMeta
,
out
*
v1
.
TypeMeta
,
c
*
conversion
.
Cloner
)
error
{
out
.
Kind
=
in
.
Kind
out
.
APIVersion
=
in
.
APIVersion
return
nil
}
func
deepCopy_v1_ReplicationControllerDummy
(
in
ReplicationControllerDummy
,
out
*
ReplicationControllerDummy
,
c
*
conversion
.
Cloner
)
error
{
if
err
:=
deepCopy_v1_TypeMeta
(
in
.
TypeMeta
,
&
out
.
TypeMeta
,
c
);
err
!=
nil
{
return
err
}
return
nil
}
func
deepCopy_v1_Scale
(
in
Scale
,
out
*
Scale
,
c
*
conversion
.
Cloner
)
error
{
if
err
:=
deepCopy_v1_TypeMeta
(
in
.
TypeMeta
,
&
out
.
TypeMeta
,
c
);
err
!=
nil
{
return
err
}
if
err
:=
deepCopy_v1_ObjectMeta
(
in
.
ObjectMeta
,
&
out
.
ObjectMeta
,
c
);
err
!=
nil
{
return
err
}
if
err
:=
deepCopy_v1_ScaleSpec
(
in
.
Spec
,
&
out
.
Spec
,
c
);
err
!=
nil
{
return
err
}
if
err
:=
deepCopy_v1_ScaleStatus
(
in
.
Status
,
&
out
.
Status
,
c
);
err
!=
nil
{
return
err
}
return
nil
}
func
deepCopy_v1_ScaleSpec
(
in
ScaleSpec
,
out
*
ScaleSpec
,
c
*
conversion
.
Cloner
)
error
{
out
.
Replicas
=
in
.
Replicas
return
nil
}
func
deepCopy_v1_ScaleStatus
(
in
ScaleStatus
,
out
*
ScaleStatus
,
c
*
conversion
.
Cloner
)
error
{
out
.
Replicas
=
in
.
Replicas
if
in
.
Selector
!=
nil
{
out
.
Selector
=
make
(
map
[
string
]
string
)
for
key
,
val
:=
range
in
.
Selector
{
out
.
Selector
[
key
]
=
val
}
}
else
{
out
.
Selector
=
nil
}
return
nil
}
func
deepCopy_util_Time
(
in
util
.
Time
,
out
*
util
.
Time
,
c
*
conversion
.
Cloner
)
error
{
if
newVal
,
err
:=
c
.
DeepCopy
(
in
.
Time
);
err
!=
nil
{
return
err
}
else
{
out
.
Time
=
newVal
.
(
time
.
Time
)
}
return
nil
}
func
init
()
{
err
:=
api
.
Scheme
.
AddGeneratedDeepCopyFuncs
(
deepCopy_v1_ObjectMeta
,
deepCopy_v1_TypeMeta
,
deepCopy_v1_ReplicationControllerDummy
,
deepCopy_v1_Scale
,
deepCopy_v1_ScaleSpec
,
deepCopy_v1_ScaleStatus
,
deepCopy_util_Time
,
)
if
err
!=
nil
{
// if one of the deep copy functions is malformed, detect it immediately.
panic
(
err
)
}
}
// AUTO-GENERATED FUNCTIONS END HERE
pkg/expapi/v1/register.go
View file @
a77900a1
...
...
@@ -24,7 +24,6 @@ import (
var
Codec
=
runtime
.
CodecFor
(
api
.
Scheme
,
"v1"
)
func
init
()
{
addDeepCopyFuncs
()
addConversionFuncs
()
addDefaultingFuncs
()
addKnownTypes
()
...
...
pkg/runtime/conversion_generation_test.go
deleted
100644 → 0
View file @
64051c53
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
runtime_test
import
(
"bufio"
"bytes"
"fmt"
"io"
"io/ioutil"
"os"
"path"
"testing"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
_
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util"
)
func
generateConversions
(
t
*
testing
.
T
,
version
string
)
bytes
.
Buffer
{
g
:=
runtime
.
NewConversionGenerator
(
api
.
Scheme
.
Raw
(),
path
.
Join
(
"k8s.io/kubernetes/pkg/api"
,
version
))
apiShort
:=
g
.
AddImport
(
"k8s.io/kubernetes/pkg/api"
)
g
.
AddImport
(
"k8s.io/kubernetes/pkg/api/resource"
)
// TODO(wojtek-t): Change the overwrites to a flag.
g
.
OverwritePackage
(
version
,
""
)
for
_
,
knownType
:=
range
api
.
Scheme
.
KnownTypes
(
version
)
{
if
err
:=
g
.
GenerateConversionsForType
(
version
,
knownType
);
err
!=
nil
{
t
.
Fatalf
(
"error while generating conversion functions for %v: %v"
,
knownType
,
err
)
}
}
g
.
RepackImports
(
util
.
NewStringSet
())
var
functions
bytes
.
Buffer
functionsWriter
:=
bufio
.
NewWriter
(
&
functions
)
if
err
:=
g
.
WriteImports
(
functionsWriter
);
err
!=
nil
{
t
.
Fatalf
(
"error while writing imports: %v"
,
err
)
}
if
err
:=
g
.
WriteConversionFunctions
(
functionsWriter
);
err
!=
nil
{
t
.
Fatalf
(
"couldn't generate conversion functions: %v"
,
err
)
}
if
err
:=
g
.
RegisterConversionFunctions
(
functionsWriter
,
fmt
.
Sprintf
(
"%s.Scheme"
,
apiShort
));
err
!=
nil
{
t
.
Fatalf
(
"couldn't generate conversion function names: %v"
,
err
)
}
if
err
:=
functionsWriter
.
Flush
();
err
!=
nil
{
t
.
Fatalf
(
"error while flushing writer"
)
}
return
functions
}
func
readLinesUntil
(
t
*
testing
.
T
,
reader
*
bufio
.
Reader
,
stop
string
,
buffer
*
bytes
.
Buffer
)
error
{
for
{
line
,
err
:=
reader
.
ReadString
(
'\n'
)
if
err
==
io
.
EOF
{
return
fmt
.
Errorf
(
"'%s' line not found"
,
stop
)
}
if
err
!=
nil
{
t
.
Fatalf
(
"error while reading file: %v"
,
err
)
}
if
line
==
stop
{
break
}
if
buffer
!=
nil
{
if
_
,
err
:=
buffer
.
WriteString
(
line
);
err
!=
nil
{
t
.
Fatalf
(
"error while buffering line"
)
}
}
}
return
nil
}
func
bufferExistingGeneratedCode
(
t
*
testing
.
T
,
fileName
string
)
bytes
.
Buffer
{
file
,
err
:=
os
.
Open
(
fileName
)
if
err
!=
nil
{
t
.
Fatalf
(
"couldn't open file %s"
,
fileName
)
}
defer
file
.
Close
()
reader
:=
bufio
.
NewReader
(
file
)
functionsPrefix
:=
"// AUTO-GENERATED FUNCTIONS START HERE
\n
"
functionsSuffix
:=
"// AUTO-GENERATED FUNCTIONS END HERE
\n
"
if
err
:=
readLinesUntil
(
t
,
reader
,
functionsPrefix
,
nil
);
err
!=
nil
{
t
.
Fatalf
(
"error while parsing file: %v"
,
err
)
}
var
functions
bytes
.
Buffer
if
err
:=
readLinesUntil
(
t
,
reader
,
functionsSuffix
,
&
functions
);
err
!=
nil
{
t
.
Fatalf
(
"error while parsing file: %v"
,
err
)
}
_
,
err
=
reader
.
ReadString
(
'\n'
)
if
err
==
nil
||
err
!=
io
.
EOF
{
t
.
Fatalf
(
"end-of-file expected"
)
}
return
functions
}
func
compareBuffers
(
t
*
testing
.
T
,
generatedFile
string
,
existing
,
generated
bytes
.
Buffer
)
bool
{
ok
:=
true
for
{
existingLine
,
existingErr
:=
existing
.
ReadString
(
'\n'
)
generatedLine
,
generatedErr
:=
generated
.
ReadString
(
'\n'
)
if
existingErr
==
io
.
EOF
&&
generatedErr
==
io
.
EOF
{
break
}
if
existingErr
!=
generatedErr
{
ok
=
false
t
.
Errorf
(
"reading errors: existing %v generated %v"
,
existingErr
,
generatedErr
)
return
ok
}
if
existingErr
!=
nil
{
ok
=
false
t
.
Errorf
(
"error while reading: %v"
,
existingErr
)
}
if
existingLine
!=
generatedLine
{
ok
=
false
diff
:=
fmt
.
Sprintf
(
"
\n
expected: %s
\n
got: %s"
,
generatedLine
,
existingLine
)
t
.
Errorf
(
"please update conversion functions; generated: %s; first diff: %s"
,
generatedFile
,
diff
)
return
ok
}
}
return
ok
}
func
TestNoManualChangesToGenerateConversions
(
t
*
testing
.
T
)
{
version
:=
testapi
.
Version
()
fileName
:=
fmt
.
Sprintf
(
"../../pkg/api/%s/conversion_generated.go"
,
version
)
existingFunctions
:=
bufferExistingGeneratedCode
(
t
,
fileName
)
generatedFunctions
:=
generateConversions
(
t
,
version
)
functionsTxt
:=
fmt
.
Sprintf
(
"%s.functions.txt"
,
version
)
ioutil
.
WriteFile
(
functionsTxt
,
generatedFunctions
.
Bytes
(),
os
.
FileMode
(
0644
))
if
ok
:=
compareBuffers
(
t
,
functionsTxt
,
existingFunctions
,
generatedFunctions
);
ok
{
os
.
Remove
(
functionsTxt
)
}
}
pkg/runtime/deep_copy_generation_test.go
deleted
100644 → 0
View file @
64051c53
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
runtime_test
import
(
"bufio"
"bytes"
"fmt"
"io/ioutil"
"os"
"path"
"testing"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/testapi"
_
"k8s.io/kubernetes/pkg/api/v1"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util"
"github.com/golang/glog"
)
func
generateDeepCopies
(
t
*
testing
.
T
,
version
string
)
bytes
.
Buffer
{
testedVersion
:=
version
registerTo
:=
"api.Scheme"
if
testedVersion
==
"api"
{
testedVersion
=
api
.
Scheme
.
Raw
()
.
InternalVersion
registerTo
=
"Scheme"
}
g
:=
runtime
.
NewDeepCopyGenerator
(
api
.
Scheme
.
Raw
(),
path
.
Join
(
"k8s.io/kubernetes/pkg/api"
,
testedVersion
),
util
.
NewStringSet
(
"k8s.io/kubernetes"
))
g
.
AddImport
(
"k8s.io/kubernetes/pkg/api"
)
g
.
OverwritePackage
(
version
,
""
)
for
_
,
knownType
:=
range
api
.
Scheme
.
KnownTypes
(
testedVersion
)
{
if
err
:=
g
.
AddType
(
knownType
);
err
!=
nil
{
glog
.
Errorf
(
"error while generating deep-copy functions for %v: %v"
,
knownType
,
err
)
}
}
var
functions
bytes
.
Buffer
functionsWriter
:=
bufio
.
NewWriter
(
&
functions
)
g
.
RepackImports
()
if
err
:=
g
.
WriteImports
(
functionsWriter
);
err
!=
nil
{
t
.
Fatalf
(
"couldn't generate deep-copy function imports: %v"
,
err
)
}
if
err
:=
g
.
WriteDeepCopyFunctions
(
functionsWriter
);
err
!=
nil
{
t
.
Fatalf
(
"couldn't generate deep-copy functions: %v"
,
err
)
}
if
err
:=
g
.
RegisterDeepCopyFunctions
(
functionsWriter
,
registerTo
);
err
!=
nil
{
t
.
Fatalf
(
"couldn't generate deep-copy function names: %v"
,
err
)
}
if
err
:=
functionsWriter
.
Flush
();
err
!=
nil
{
t
.
Fatalf
(
"error while flushing writer"
)
}
return
functions
}
func
TestNoManualChangesToGenerateDeepCopies
(
t
*
testing
.
T
)
{
versions
:=
[]
string
{
"api"
,
testapi
.
Version
()}
for
_
,
version
:=
range
versions
{
fileName
:=
""
if
version
==
"api"
{
fileName
=
"../../pkg/api/deep_copy_generated.go"
}
else
{
fileName
=
fmt
.
Sprintf
(
"../../pkg/api/%s/deep_copy_generated.go"
,
version
)
}
existingFunctions
:=
bufferExistingGeneratedCode
(
t
,
fileName
)
generatedFunctions
:=
generateDeepCopies
(
t
,
version
)
functionsTxt
:=
fmt
.
Sprintf
(
"%s.deep_copy.txt"
,
version
)
ioutil
.
WriteFile
(
functionsTxt
,
generatedFunctions
.
Bytes
(),
os
.
FileMode
(
0644
))
if
ok
:=
compareBuffers
(
t
,
functionsTxt
,
existingFunctions
,
generatedFunctions
);
ok
{
os
.
Remove
(
functionsTxt
)
}
}
}
shippable.yml
View file @
a77900a1
...
...
@@ -21,6 +21,7 @@ before_install:
install
:
-
go get golang.org/x/tools/cmd/cover
-
go get golang.org/x/tools/cmd/goimports
-
go get github.com/mattn/goveralls
-
go get github.com/tools/godep
-
./hack/travis/install-etcd.sh
...
...
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