Merge pull request #18599 from smarterclayton/abstract_explain

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot
2015-12-19 04:34:32 -08:00
5 changed files with 31 additions and 21 deletions

View File

@@ -65,11 +65,6 @@ func RunExplain(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []st
return cmdutil.UsageError(cmd, "We accept only this format: explain RESOURCE")
}
client, err := f.Client()
if err != nil {
return err
}
recursive := cmdutil.GetFlagBool(cmd, "recursive")
apiVersionString := cmdutil.GetFlagString(cmd, "api-version")
apiVersion := unversioned.GroupVersion{}
@@ -103,10 +98,10 @@ func RunExplain(f *cmdutil.Factory, out io.Writer, cmd *cobra.Command, args []st
}
}
swagSchema, err := kubectl.GetSwaggerSchema(apiVersion, client)
schema, err := f.SwaggerSchema(apiVersion)
if err != nil {
return err
}
return kubectl.PrintModelDescription(inModel, fieldsPath, out, swagSchema, recursive)
return kubectl.PrintModelDescription(inModel, fieldsPath, out, schema, recursive)
}

View File

@@ -29,6 +29,7 @@ import (
"strconv"
"time"
"github.com/emicklei/go-restful/swagger"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
@@ -88,6 +89,8 @@ type Factory struct {
LogsForObject func(object, options runtime.Object) (*client.Request, error)
// Returns a schema that can validate objects stored on disk.
Validator func(validate bool, cacheDir string) (validation.Schema, error)
// SwaggerSchema returns the schema declaration for the provided group version.
SwaggerSchema func(unversioned.GroupVersion) (*swagger.ApiDeclaration, error)
// Returns the default namespace to use in cases where no
// other namespace is specified and whether the namespace was
// overriden.
@@ -304,6 +307,13 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
}
return validation.NullSchema{}, nil
},
SwaggerSchema: func(version unversioned.GroupVersion) (*swagger.ApiDeclaration, error) {
client, err := clients.ClientForVersion(&version)
if err != nil {
return nil, err
}
return client.SwaggerSchema(version)
},
DefaultNamespace: func() (string, bool, error) {
return clientConfig.Namespace()
},