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
022c1036
Commit
022c1036
authored
Mar 16, 2015
by
Clayton Coleman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update RollingUpdater to use resource.Builder
Remove last usage of ResourceFromFile
parent
1b1866d8
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
96 deletions
+12
-96
rollingupdate.go
pkg/kubectl/cmd/rollingupdate.go
+12
-26
resource.go
pkg/kubectl/cmd/util/resource.go
+0
-70
No files found.
pkg/kubectl/cmd/rollingupdate.go
View file @
022c1036
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/cmd/util"
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubectl/resource"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
...
@@ -72,56 +73,41 @@ func RunRollingUpdate(f *Factory, out io.Writer, cmd *cobra.Command, args []stri
...
@@ -72,56 +73,41 @@ func RunRollingUpdate(f *Factory, out io.Writer, cmd *cobra.Command, args []stri
return
util
.
UsageError
(
cmd
,
"Must specify the controller to update"
)
return
util
.
UsageError
(
cmd
,
"Must specify the controller to update"
)
}
}
oldName
:=
args
[
0
]
oldName
:=
args
[
0
]
schema
,
err
:=
f
.
Validator
()
if
err
!=
nil
{
return
err
}
c
lientConfig
,
err
:=
f
.
ClientConfig
()
c
mdNamespace
,
err
:=
f
.
DefaultNamespace
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
cmdApiVersion
:=
clientConfig
.
Version
mapper
,
typer
:=
f
.
Object
()
mapper
,
typer
:=
f
.
Object
()
// TODO: use resource.Builder instead
// TODO: use resource.Builder instead
mapping
,
namespace
,
newName
,
data
,
err
:=
util
.
ResourceFromFile
(
filename
,
typer
,
mapper
,
schema
,
cmdApiVersion
)
obj
,
err
:=
resource
.
NewBuilder
(
mapper
,
typer
,
f
.
ClientMapperForCommand
(
cmd
))
.
NamespaceParam
(
cmdNamespace
)
.
RequireNamespace
()
.
FilenameParam
(
filename
)
.
Do
()
.
Object
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
if
mapping
.
Kind
!=
"ReplicationController"
{
newRc
,
ok
:=
obj
.
(
*
api
.
ReplicationController
)
if
!
ok
{
return
util
.
UsageError
(
cmd
,
"%s does not specify a valid ReplicationController"
,
filename
)
return
util
.
UsageError
(
cmd
,
"%s does not specify a valid ReplicationController"
,
filename
)
}
}
newName
:=
newRc
.
Name
if
oldName
==
newName
{
if
oldName
==
newName
{
return
util
.
UsageError
(
cmd
,
"%s cannot have the same name as the existing ReplicationController %s"
,
return
util
.
UsageError
(
cmd
,
"%s cannot have the same name as the existing ReplicationController %s"
,
filename
,
oldName
)
filename
,
oldName
)
}
}
cmdNamespace
,
err
:=
f
.
DefaultNamespace
()
if
err
!=
nil
{
return
err
}
// TODO: use resource.Builder instead
err
=
util
.
CompareNamespace
(
cmdNamespace
,
namespace
)
if
err
!=
nil
{
return
err
}
client
,
err
:=
f
.
Client
()
client
,
err
:=
f
.
Client
()
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
obj
,
err
:=
mapping
.
Codec
.
Decode
(
data
)
updater
:=
kubectl
.
NewRollingUpdater
(
newRc
.
Namespace
,
client
)
if
err
!=
nil
{
return
err
}
newRc
:=
obj
.
(
*
api
.
ReplicationController
)
updater
:=
kubectl
.
NewRollingUpdater
(
cmdNamespace
,
client
)
// fetch rc
// fetch rc
oldRc
,
err
:=
client
.
ReplicationControllers
(
cmd
Namespace
)
.
Get
(
oldName
)
oldRc
,
err
:=
client
.
ReplicationControllers
(
newRc
.
Namespace
)
.
Get
(
oldName
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
pkg/kubectl/cmd/util/resource.go
View file @
022c1036
...
@@ -17,13 +17,9 @@ limitations under the License.
...
@@ -17,13 +17,9 @@ limitations under the License.
package
util
package
util
import
(
import
(
"fmt"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/meta"
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/validation"
"github.com/GoogleCloudPlatform/kubernetes/pkg/runtime"
)
)
// ResourceFromArgs expects two arguments with a given type, and extracts the fields necessary
// ResourceFromArgs expects two arguments with a given type, and extracts the fields necessary
...
@@ -52,69 +48,3 @@ func ResourceFromArgs(cmd *cobra.Command, args []string, mapper meta.RESTMapper,
...
@@ -52,69 +48,3 @@ func ResourceFromArgs(cmd *cobra.Command, args []string, mapper meta.RESTMapper,
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
version
)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
version
)
return
return
}
}
// ResourceFromFile retrieves the name and namespace from a valid file. If the file does not
// resolve to a known type an error is returned. The returned mapping can be used to determine
// the correct REST endpoint to modify this resource with.
// DEPRECATED: Use resource.Builder
func
ResourceFromFile
(
filename
string
,
typer
runtime
.
ObjectTyper
,
mapper
meta
.
RESTMapper
,
schema
validation
.
Schema
,
cmdVersion
string
)
(
mapping
*
meta
.
RESTMapping
,
namespace
,
name
string
,
data
[]
byte
,
err
error
)
{
data
,
err
=
ReadConfigData
(
filename
)
if
err
!=
nil
{
return
}
objVersion
,
kind
,
err
:=
typer
.
DataVersionAndKind
(
data
)
if
err
!=
nil
{
return
}
// TODO: allow unversioned objects?
if
len
(
objVersion
)
==
0
{
err
=
fmt
.
Errorf
(
"the resource in the provided file has no apiVersion defined"
)
}
err
=
schema
.
ValidateBytes
(
data
)
if
err
!=
nil
{
return
}
// decode using the version stored with the object (allows codec to vary across versions)
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
objVersion
)
if
err
!=
nil
{
return
}
obj
,
err
:=
mapping
.
Codec
.
Decode
(
data
)
if
err
!=
nil
{
return
}
meta
:=
mapping
.
MetadataAccessor
namespace
,
err
=
meta
.
Namespace
(
obj
)
if
err
!=
nil
{
return
}
name
,
err
=
meta
.
Name
(
obj
)
if
err
!=
nil
{
return
}
// if the preferred API version differs, get a different mapper
if
cmdVersion
!=
objVersion
{
mapping
,
err
=
mapper
.
RESTMapping
(
kind
,
cmdVersion
)
}
return
}
// CompareNamespace returns an error if the namespace the user has provided on the CLI
// or via the default namespace file does not match the namespace of an input file. This
// prevents a user from unintentionally updating the wrong namespace.
// DEPRECATED: Use resource.Builder
func
CompareNamespace
(
defaultNamespace
,
namespace
string
)
error
{
if
len
(
namespace
)
>
0
{
if
defaultNamespace
!=
namespace
{
return
fmt
.
Errorf
(
"the namespace from the provided file %q does not match the namespace %q. You must pass '--namespace=%s' to perform this operation."
,
namespace
,
defaultNamespace
,
namespace
)
}
}
return
nil
}
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