Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
Ijaz Ahmad
ksonnet
Commits
3d5adcd1
Commit
3d5adcd1
authored
Feb 08, 2018
by
Jessica Yuen
Browse files
Realize AbsPath as simple strings
Signed-off-by:
Jessica Yuen
<
im.jessicayuen@gmail.com
>
parent
f198fb5e
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
226 additions
and
262 deletions
+226
-262
cmd/apply.go
cmd/apply.go
+2
-4
cmd/delete.go
cmd/delete.go
+1
-3
cmd/diff.go
cmd/diff.go
+3
-4
cmd/env.go
cmd/env.go
+4
-8
cmd/init.go
cmd/init.go
+1
-4
cmd/pkg.go
cmd/pkg.go
+3
-7
cmd/prototype.go
cmd/prototype.go
+4
-8
cmd/registry.go
cmd/registry.go
+2
-5
cmd/root.go
cmd/root.go
+2
-3
cmd/show.go
cmd/show.go
+1
-3
cmd/validate.go
cmd/validate.go
+1
-3
metadata/clusterspec.go
metadata/clusterspec.go
+3
-4
metadata/component.go
metadata/component.go
+17
-16
metadata/component_test.go
metadata/component_test.go
+11
-9
metadata/environment.go
metadata/environment.go
+35
-34
metadata/environment_test.go
metadata/environment_test.go
+26
-26
metadata/interface.go
metadata/interface.go
+6
-14
metadata/manager.go
metadata/manager.go
+43
-47
metadata/manager_test.go
metadata/manager_test.go
+38
-37
metadata/registry.go
metadata/registry.go
+23
-23
No files found.
cmd/apply.go
View file @
3d5adcd1
...
...
@@ -21,7 +21,6 @@ import (
"github.com/spf13/cobra"
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/pkg/kubecfg"
)
...
...
@@ -104,7 +103,6 @@ var applyCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
c
.
ClientPool
,
c
.
Discovery
,
err
=
restClientPool
(
cmd
,
&
env
)
if
err
!=
nil
{
...
...
@@ -120,14 +118,14 @@ var applyCmd = &cobra.Command{
cmd
:
cmd
,
env
:
env
,
components
:
componentNames
,
cwd
:
wd
,
cwd
:
c
wd
,
})
objs
,
err
:=
te
.
Expand
()
if
err
!=
nil
{
return
err
}
return
c
.
Run
(
objs
,
wd
)
return
c
.
Run
(
objs
,
c
wd
)
},
Long
:
`
The `
+
"`apply`"
+
`command uses local manifest(s) to update (and optionally create)
...
...
cmd/delete.go
View file @
3d5adcd1
...
...
@@ -21,7 +21,6 @@ import (
"github.com/spf13/cobra"
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/pkg/kubecfg"
)
...
...
@@ -66,7 +65,6 @@ var deleteCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
c
.
ClientPool
,
c
.
Discovery
,
err
=
restClientPool
(
cmd
,
&
env
)
if
err
!=
nil
{
...
...
@@ -82,7 +80,7 @@ var deleteCmd = &cobra.Command{
cmd
:
cmd
,
env
:
env
,
components
:
componentNames
,
cwd
:
wd
,
cwd
:
c
wd
,
})
objs
,
err
:=
te
.
Expand
()
if
err
!=
nil
{
...
...
cmd/diff.go
View file @
3d5adcd1
...
...
@@ -61,7 +61,6 @@ var diffCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
componentNames
,
err
:=
flags
.
GetStringArray
(
flagComponent
)
if
err
!=
nil
{
...
...
@@ -83,7 +82,7 @@ var diffCmd = &cobra.Command{
return
err
}
c
,
err
:=
initDiffCmd
(
appFs
,
cmd
,
wd
,
env1
,
env2
,
componentNames
,
diffStrategy
)
c
,
err
:=
initDiffCmd
(
appFs
,
cmd
,
c
wd
,
env1
,
env2
,
componentNames
,
diffStrategy
)
if
err
!=
nil
{
return
err
}
...
...
@@ -141,7 +140,7 @@ ks diff dev -c redis
`
,
}
func
initDiffCmd
(
fs
afero
.
Fs
,
cmd
*
cobra
.
Command
,
wd
metadata
.
AbsPath
,
envFq1
,
envFq2
*
string
,
files
[]
string
,
diffStrategy
string
)
(
kubecfg
.
DiffCmd
,
error
)
{
func
initDiffCmd
(
fs
afero
.
Fs
,
cmd
*
cobra
.
Command
,
wd
string
,
envFq1
,
envFq2
*
string
,
files
[]
string
,
diffStrategy
string
)
(
kubecfg
.
DiffCmd
,
error
)
{
const
(
remote
=
"remote"
local
=
"local"
...
...
@@ -186,7 +185,7 @@ func initDiffCmd(fs afero.Fs, cmd *cobra.Command, wd metadata.AbsPath, envFq1, e
}
// initDiffSingleEnv sets up configurations for diffing using one environment
func
initDiffSingleEnv
(
fs
afero
.
Fs
,
env
,
diffStrategy
string
,
files
[]
string
,
cmd
*
cobra
.
Command
,
wd
metadata
.
AbsPath
)
(
kubecfg
.
DiffCmd
,
error
)
{
func
initDiffSingleEnv
(
fs
afero
.
Fs
,
env
,
diffStrategy
string
,
files
[]
string
,
cmd
*
cobra
.
Command
,
wd
string
)
(
kubecfg
.
DiffCmd
,
error
)
{
c
:=
kubecfg
.
DiffRemoteCmd
{}
c
.
DiffStrategy
=
diffStrategy
c
.
Client
=
&
kubecfg
.
Client
{}
...
...
cmd/env.go
View file @
3d5adcd1
...
...
@@ -125,9 +125,8 @@ var envAddCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
appRoot
:=
metadata
.
AbsPath
(
appDir
)
manager
,
err
:=
metadata
.
Find
(
app
Root
)
manager
,
err
:=
metadata
.
Find
(
app
Dir
)
if
err
!=
nil
{
return
err
}
...
...
@@ -209,9 +208,8 @@ var envRmCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
appRoot
:=
metadata
.
AbsPath
(
appDir
)
manager
,
err
:=
metadata
.
Find
(
app
Root
)
manager
,
err
:=
metadata
.
Find
(
app
Dir
)
if
err
!=
nil
{
return
err
}
...
...
@@ -258,9 +256,8 @@ var envListCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
appRoot
:=
metadata
.
AbsPath
(
appDir
)
manager
,
err
:=
metadata
.
Find
(
app
Root
)
manager
,
err
:=
metadata
.
Find
(
app
Dir
)
if
err
!=
nil
{
return
err
}
...
...
@@ -301,9 +298,8 @@ var envSetCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
appRoot
:=
metadata
.
AbsPath
(
appDir
)
manager
,
err
:=
metadata
.
Find
(
app
Root
)
manager
,
err
:=
metadata
.
Find
(
app
Dir
)
if
err
!=
nil
{
return
err
}
...
...
cmd/init.go
View file @
3d5adcd1
...
...
@@ -21,7 +21,6 @@ import (
"os"
"path/filepath"
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/pkg/kubecfg"
log
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
...
...
@@ -62,13 +61,11 @@ var initCmd = &cobra.Command{
return
err
}
path
,
err
:=
genKsRoot
(
appName
,
wd
,
initDir
)
appRoot
,
err
:=
genKsRoot
(
appName
,
wd
,
initDir
)
if
err
!=
nil
{
return
err
}
appRoot
:=
metadata
.
AbsPath
(
path
)
specFlag
,
err
:=
flags
.
GetString
(
flagAPISpec
)
if
err
!=
nil
{
return
err
...
...
cmd/pkg.go
View file @
3d5adcd1
...
...
@@ -23,7 +23,6 @@ import (
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/metadata/parts"
str
"github.com/ksonnet/ksonnet/strings"
"github.com/ksonnet/ksonnet/utils"
"github.com/spf13/cobra"
)
...
...
@@ -102,9 +101,8 @@ var pkgInstallCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
@@ -166,9 +164,8 @@ var pkgDescribeCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
@@ -239,9 +236,8 @@ var pkgListCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
cmd/prototype.go
View file @
3d5adcd1
...
...
@@ -27,7 +27,6 @@ import (
"github.com/ksonnet/ksonnet/prototype/snippet"
"github.com/ksonnet/ksonnet/prototype/snippet/jsonnet"
str
"github.com/ksonnet/ksonnet/strings"
"github.com/ksonnet/ksonnet/utils"
"github.com/spf13/cobra"
)
...
...
@@ -88,9 +87,8 @@ var prototypeListCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
@@ -144,10 +142,9 @@ var prototypeDescribeCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
extProtos
:=
prototype
.
SpecificationSchemas
{}
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
==
nil
{
extProtos
,
err
=
manager
.
GetAllPrototypes
()
if
err
!=
nil
{
...
...
@@ -256,10 +253,9 @@ var prototypePreviewCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
extProtos
:=
prototype
.
SpecificationSchemas
{}
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
==
nil
{
extProtos
,
err
=
manager
.
GetAllPrototypes
()
if
err
!=
nil
{
...
...
@@ -357,7 +353,7 @@ var prototypeUseCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
manager
,
err
:=
metadata
.
Find
(
metadata
.
AbsPath
(
cwd
)
)
manager
,
err
:=
metadata
.
Find
(
cwd
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"Command can only be run in a ksonnet application directory:
\n\n
%v"
,
err
)
}
...
...
cmd/registry.go
View file @
3d5adcd1
...
...
@@ -8,7 +8,6 @@ import (
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/pkg/kubecfg"
str
"github.com/ksonnet/ksonnet/strings"
"github.com/ksonnet/ksonnet/utils"
"github.com/spf13/cobra"
)
...
...
@@ -77,9 +76,8 @@ var registryListCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
@@ -137,9 +135,8 @@ var registryDescribeCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
manager
,
err
:=
metadata
.
Find
(
wd
)
manager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
cmd/root.go
View file @
3d5adcd1
...
...
@@ -333,9 +333,8 @@ func overrideCluster(envName string, clientConfig clientcmd.ClientConfig, overri
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
metadataManager
,
err
:=
metadata
.
Find
(
wd
)
metadataManager
,
err
:=
metadata
.
Find
(
c
wd
)
if
err
!=
nil
{
return
err
}
...
...
@@ -393,7 +392,7 @@ type cmdObjExpanderConfig struct {
cmd
*
cobra
.
Command
env
string
components
[]
string
cwd
metadata
.
AbsPath
cwd
string
}
// cmdObjExpander finds and expands templates for the family of commands of
...
...
cmd/show.go
View file @
3d5adcd1
...
...
@@ -21,7 +21,6 @@ import (
"github.com/spf13/cobra"
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/pkg/kubecfg"
)
...
...
@@ -97,13 +96,12 @@ ks show dev -c redis -c nginx-server
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
te
:=
newCmdObjExpander
(
cmdObjExpanderConfig
{
cmd
:
cmd
,
env
:
env
,
components
:
componentNames
,
cwd
:
wd
,
cwd
:
c
wd
,
})
objs
,
err
:=
te
.
Expand
()
if
err
!=
nil
{
...
...
cmd/validate.go
View file @
3d5adcd1
...
...
@@ -21,7 +21,6 @@ import (
"github.com/spf13/cobra"
"github.com/ksonnet/ksonnet/metadata"
"github.com/ksonnet/ksonnet/pkg/kubecfg"
)
...
...
@@ -54,7 +53,6 @@ var validateCmd = &cobra.Command{
if
err
!=
nil
{
return
err
}
wd
:=
metadata
.
AbsPath
(
cwd
)
componentNames
,
err
:=
flags
.
GetStringArray
(
flagComponent
)
if
err
!=
nil
{
...
...
@@ -70,7 +68,7 @@ var validateCmd = &cobra.Command{
cmd
:
cmd
,
env
:
env
,
components
:
componentNames
,
cwd
:
wd
,
cwd
:
c
wd
,
})
objs
,
err
:=
te
.
Expand
()
if
err
!=
nil
{
...
...
metadata/clusterspec.go
View file @
3d5adcd1
...
...
@@ -24,12 +24,11 @@ func parseClusterSpec(specFlag string, fs afero.Fs) (ClusterSpec, error) {
case
"version"
:
return
&
clusterSpecVersion
{
k8sVersion
:
split
[
1
]},
nil
case
"file"
:
abs
,
err
:=
filepath
.
Abs
(
split
[
1
])
p
,
err
:=
filepath
.
Abs
(
split
[
1
])
if
err
!=
nil
{
return
nil
,
err
}
absPath
:=
AbsPath
(
abs
)
return
&
clusterSpecFile
{
specPath
:
absPath
,
fs
:
fs
},
nil
return
&
clusterSpecFile
{
specPath
:
p
,
fs
:
fs
},
nil
case
"url"
:
return
&
clusterSpecLive
{
apiServerURL
:
split
[
1
]},
nil
default
:
...
...
@@ -38,7 +37,7 @@ func parseClusterSpec(specFlag string, fs afero.Fs) (ClusterSpec, error) {
}
type
clusterSpecFile
struct
{
specPath
AbsPath
specPath
string
fs
afero
.
Fs
}
...
...
metadata/component.go
View file @
3d5adcd1
...
...
@@ -23,13 +23,14 @@ import (
param
"github.com/ksonnet/ksonnet/metadata/params"
"github.com/ksonnet/ksonnet/prototype"
str
"github.com/ksonnet/ksonnet/strings"
log
"github.com/sirupsen/logrus"
"github.com/spf13/afero"
)
func
(
m
*
manager
)
ComponentPaths
()
(
AbsPaths
,
error
)
{
paths
:=
AbsPaths
{}
err
:=
afero
.
Walk
(
m
.
appFS
,
string
(
m
.
componentsPath
)
,
func
(
p
string
,
info
os
.
FileInfo
,
err
error
)
error
{
func
(
m
*
manager
)
ComponentPaths
()
(
[]
string
,
error
)
{
paths
:=
[]
string
{}
err
:=
afero
.
Walk
(
m
.
appFS
,
m
.
componentsPath
,
func
(
p
string
,
info
os
.
FileInfo
,
err
error
)
error
{
if
err
!=
nil
{
return
err
}
...
...
@@ -67,7 +68,7 @@ func (m *manager) CreateComponent(name string, text string, params param.Params,
return
fmt
.
Errorf
(
"Component name '%s' is not valid; must not contain punctuation, spaces, or begin or end with a slash"
,
name
)
}
componentPath
:=
str
ing
(
a
ppendTo
Abs
Path
(
m
.
componentsPath
,
name
)
)
componentPath
:=
str
.
A
ppendToPath
(
m
.
componentsPath
,
name
)
switch
templateType
{
case
prototype
.
YAML
:
componentPath
=
componentPath
+
".yaml"
...
...
@@ -105,7 +106,7 @@ func (m *manager) DeleteComponent(name string) error {
}
// Build the new component/params.libsonnet file.
componentParamsFile
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
)
componentParamsFile
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
m
.
componentParamsPath
)
if
err
!=
nil
{
return
err
}
...
...
@@ -122,8 +123,8 @@ func (m *manager) DeleteComponent(name string) error {
return
err
}
for
_
,
env
:=
range
envs
{
path
:=
a
ppendTo
Abs
Path
(
m
.
environmentsPath
,
env
.
Name
,
paramsFileName
)
envParamsFile
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
string
(
path
)
)
path
:=
str
.
A
ppendToPath
(
m
.
environmentsPath
,
env
.
Name
,
paramsFileName
)
envParamsFile
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
path
)
if
err
!=
nil
{
return
err
}
...
...
@@ -141,16 +142,16 @@ func (m *manager) DeleteComponent(name string) error {
// Remove the references in component/params.libsonnet.
log
.
Debugf
(
"... deleting references in %s"
,
m
.
componentParamsPath
)
err
=
afero
.
WriteFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
,
[]
byte
(
componentJsonnet
),
defaultFilePermissions
)
err
=
afero
.
WriteFile
(
m
.
appFS
,
m
.
componentParamsPath
,
[]
byte
(
componentJsonnet
),
defaultFilePermissions
)
if
err
!=
nil
{
return
err
}
// Remove the component references in each environment's
// environment/<env>/params.libsonnet.
for
_
,
env
:=
range
envs
{
path
:=
a
ppendTo
Abs
Path
(
m
.
environmentsPath
,
env
.
Name
,
paramsFileName
)
path
:=
str
.
A
ppendToPath
(
m
.
environmentsPath
,
env
.
Name
,
paramsFileName
)
log
.
Debugf
(
"... deleting references in %s"
,
path
)
err
=
afero
.
WriteFile
(
m
.
appFS
,
string
(
path
)
,
[]
byte
(
envJsonnets
[
env
.
Name
]),
defaultFilePermissions
)
err
=
afero
.
WriteFile
(
m
.
appFS
,
path
,
[]
byte
(
envJsonnets
[
env
.
Name
]),
defaultFilePermissions
)
if
err
!=
nil
{
return
err
}
...
...
@@ -172,7 +173,7 @@ func (m *manager) DeleteComponent(name string) error {
}
func
(
m
*
manager
)
GetComponentParams
(
component
string
)
(
param
.
Params
,
error
)
{
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
)
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
m
.
componentParamsPath
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
@@ -181,7 +182,7 @@ func (m *manager) GetComponentParams(component string) (param.Params, error) {
}
func
(
m
*
manager
)
GetAllComponentParams
()
(
map
[
string
]
param
.
Params
,
error
)
{
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
)
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
m
.
componentParamsPath
)
if
err
!=
nil
{
return
nil
,
err
}
...
...
@@ -190,7 +191,7 @@ func (m *manager) GetAllComponentParams() (map[string]param.Params, error) {
}
func
(
m
*
manager
)
SetComponentParams
(
component
string
,
params
param
.
Params
)
error
{
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
)
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
m
.
componentParamsPath
)
if
err
!=
nil
{
return
err
}
...
...
@@ -200,7 +201,7 @@ func (m *manager) SetComponentParams(component string, params param.Params) erro
return
err
}
return
afero
.
WriteFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
,
[]
byte
(
jsonnet
),
defaultFilePermissions
)
return
afero
.
WriteFile
(
m
.
appFS
,
m
.
componentParamsPath
,
[]
byte
(
jsonnet
),
defaultFilePermissions
)
}
func
(
m
*
manager
)
findComponentPath
(
name
string
)
(
string
,
error
)
{
...
...
@@ -232,7 +233,7 @@ func (m *manager) findComponentPath(name string) (string, error) {
}
func
(
m
*
manager
)
writeComponentParams
(
componentName
string
,
params
param
.
Params
)
error
{
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
)
text
,
err
:=
afero
.
ReadFile
(
m
.
appFS
,
m
.
componentParamsPath
)
if
err
!=
nil
{
return
err
}
...
...
@@ -242,7 +243,7 @@ func (m *manager) writeComponentParams(componentName string, params param.Params
return
err
}
return
afero
.
WriteFile
(
m
.
appFS
,
string
(
m
.
componentParamsPath
)
,
[]
byte
(
appended
),
defaultFilePermissions
)
return
afero
.
WriteFile
(
m
.
appFS
,
m
.
componentParamsPath
,
[]
byte
(
appended
),
defaultFilePermissions
)
}
func
genComponentParamsContent
()
[]
byte
{
...
...
metadata/component_test.go
View file @
3d5adcd1
...
...
@@ -21,6 +21,8 @@ import (
"sort"
"strings"
"testing"
str
"github.com/ksonnet/ksonnet/strings"
)
const
(
...
...
@@ -36,7 +38,7 @@ func populateComponentPaths(t *testing.T) *manager {
t
.
Fatalf
(
"Failed to parse cluster spec: %v"
,
err
)
}
appPath
:=
AbsPath
(
componentsPath
)
appPath
:=
componentsPath
reg
:=
newMockRegistryManager
(
"incubator"
)
m
,
err
:=
initManager
(
"componentPaths"
,
appPath
,
spec
,
&
mockAPIServer
,
&
mockNamespace
,
reg
,
testFS
)
if
err
!=
nil
{
...
...
@@ -44,29 +46,29 @@ func populateComponentPaths(t *testing.T) *manager {
}
// Create empty app file.
components
:=
a
ppendTo
Abs
Path
(
appPath
,
componentsDir
)
appFile1
:=
a
ppendTo
Abs
Path
(
components
,
componentFile1
)
f1
,
err
:=
testFS
.
OpenFile
(
string
(
appFile1
)
,
os
.
O_RDONLY
|
os
.
O_CREATE
,
0777
)
components
:=
str
.
A
ppendToPath
(
appPath
,
componentsDir
)
appFile1
:=
str
.
A
ppendToPath
(
components
,
componentFile1
)
f1
,
err
:=
testFS
.
OpenFile
(
appFile1
,
os
.
O_RDONLY
|
os
.
O_CREATE
,
0777
)
if
err
!=
nil
{
t
.
Fatalf
(
"Failed to touch app file '%s'
\n
%v"
,
appFile1
,
err
)
}
f1
.
Close
()
// Create empty file in a nested directory.
appSubdir
:=
a
ppendTo
Abs
Path
(
components
,
componentSubdir
)
err
=
testFS
.
MkdirAll
(
string
(
appSubdir
)
,
os
.
ModePerm
)
appSubdir
:=
str
.
A
ppendToPath
(
components
,
componentSubdir
)
err
=
testFS
.
MkdirAll
(
appSubdir
,
os
.
ModePerm
)
if
err
!=
nil
{
t
.
Fatalf
(
"Failed to create directory '%s'
\n
%v"
,
appSubdir
,
err
)
}
appFile2
:=
a
ppendTo
Abs
Path
(
appSubdir
,
componentFile2
)
f2
,
err
:=
testFS
.
OpenFile
(
string
(
appFile2
)
,
os
.
O_RDONLY
|
os
.
O_CREATE
,
0777
)
appFile2
:=
str
.
A
ppendToPath
(
appSubdir
,
componentFile2
)
f2
,
err
:=
testFS
.
OpenFile
(
appFile2
,
os
.
O_RDONLY
|
os
.
O_CREATE
,
0777
)
if
err
!=
nil
{
t
.
Fatalf
(
"Failed to touch app file '%s'
\n
%v"
,
appFile1
,
err
)
}
f2
.
Close
()
// Create a directory that won't be listed in the call to `ComponentPaths`.
unlistedDir
:=
str
ing
(
a
ppendTo
Abs
Path
(
components
,
"doNotListMe"
)
)
unlistedDir
:=
str
.
A
ppendToPath
(
components
,
"doNotListMe"
)
err
=
testFS
.
MkdirAll
(
unlistedDir
,
os
.
ModePerm
)
if
err
!=
nil
{
t
.
Fatalf
(
"Failed to create directory '%s'
\n
%v"
,
unlistedDir
,
err
)
...
...
metadata/environment.go
View file @
3d5adcd1
...
...
@@ -22,6 +22,7 @@ import (
"path/filepath"
"github.com/ksonnet/ksonnet/metadata/app"
str
"github.com/ksonnet/ksonnet/strings"
log
"github.com/sirupsen/logrus"
"github.com/spf13/afero"
...
...
@@ -92,14 +93,14 @@ func (m *manager) createEnvironment(name, server, namespace string, extensionsLi
log
.
Infof
(
"Creating environment '%s' with namespace '%s', pointing at server at address '%s'"
,
name
,
namespace
,
server
)
envPath
:=
a
ppendTo
Abs
Path
(
m
.
environmentsPath
,
name
)
err
=
m
.
appFS
.
MkdirAll
(
string
(
envPath
)
,
defaultFolderPermissions
)
envPath
:=
str
.
A
ppendToPath
(
m
.
environmentsPath
,
name
)
err
=
m
.
appFS
.
MkdirAll
(
envPath
,
defaultFolderPermissions
)
if
err
!=
nil
{
return
err
}
metadataPath
:=
a
ppendTo
Abs
Path
(
envPath
,
metadataDirName
)
err
=
m
.
appFS
.
MkdirAll
(
string
(
metadataPath
)
,
defaultFolderPermissions
)
metadataPath
:=
str
.
A
ppendToPath
(
envPath
,
metadataDirName
)
err
=
m
.
appFS
.
MkdirAll
(
metadataPath
,
defaultFolderPermissions
)
if
err
!=
nil
{
return
err
}
...
...
@@ -107,40 +108,40 @@ func (m *manager) createEnvironment(name, server, namespace string, extensionsLi
log
.
Infof
(
"Generating environment metadata at path '%s'"
,
envPath
)
metadata
:=
[]
struct
{
path
AbsPath
path
string
data
[]
byte
}{
{
// schema file
a
ppendTo
Abs
Path
(
metadataPath
,
schemaFilename
),
str
.
A
ppendToPath
(
metadataPath
,
schemaFilename
),
specData
,
},
{
// k8s file
a
ppendTo
Abs
Path
(
metadataPath
,
k8sLibFilename
),
str
.
A
ppendToPath
(
metadataPath
,
k8sLibFilename
),
k8sLibData
,
},
{
// extensions file
a
ppendTo
Abs
Path
(
metadataPath
,
extensionsLibFilename
),
str
.
A
ppendToPath
(
metadataPath
,
extensionsLibFilename
),
extensionsLibData
,
},
{
// environment base override file
a
ppendTo
Abs
Path
(
envPath
,
envFileName
),
str
.
A
ppendToPath
(
envPath
,
envFileName
),
m
.
generateOverrideData
(),
},
{
// params file
a
ppendTo
Abs
Path
(
envPath
,
paramsFileName
),
str
.
A
ppendToPath
(
envPath
,
paramsFileName
),
m
.
generateParamsData
(),
},
}
for
_
,
a
:=
range
metadata
{
fileName
:=
path
.
Base
(
string
(
a
.
path
)
)
fileName
:=
path
.
Base
(
a
.
path
)
log
.
Debugf
(
"Generating '%s', length: %d"
,
fileName
,
len
(
a
.
data
))
if
err
=
afero
.
WriteFile
(
m
.
appFS
,
string
(
a
.
path
)
,
a
.
data
,
defaultFilePermissions
);
err
!=
nil
{
if
err
=
afero
.
WriteFile
(
m
.
appFS
,
a
.
path
,
a
.
data
,
defaultFilePermissions
);
err
!=
nil
{
log
.
Debugf
(
"Failed to write '%s'"
,
fileName
)
return
err
}
...
...
@@ -177,12 +178,12 @@ func (m *manager) DeleteEnvironment(name string) error {
return
fmt
.
Errorf
(
"Environment '%s' does not exist"
,
name
)
}
envPath
:=