当我尝试为memcached服务代理推送yaml文件时,我在cf push上收到错误:
#cf push
FAILED
Error reading manifest file:
yaml: [] mapping values are not allowed in this context at line 2, column 7
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:95 (0x2c0d87)
/usr/local/go/src/pkg/runtime/panic.c:248 (0x16276)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:144 (0x2c1609)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:161 (0x2c17e5)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:471 (0x2c3cd4)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:196 (0x2c1c6e)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:394 (0x2c336d)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:193 (0x2c1d38)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:171 (0x2c199e)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/cloudfoundry-incubator/candiedyaml/decode.go:137 (0x2c146d)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest_disk_repository.go:82 (0xb13ef)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest_disk_repository.go:50 (0xb0f72)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest_disk_repository.go:33 (0xb0e13)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/manifest/manifest.go:1 (0xb300e)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/push.go:377 (0x23e2c3)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/push.go:356 (0x23e062)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/commands/application/push.go:120 (0x23ada2)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/command_runner/runner.go:50 (0xa70a9)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/command_runner/runner.go:1 (0xa73d4)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/tmp/cli_gopath/src/github.com/cloudfoundry/cli/cf/app/app.go:76 (0x8ecce)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/codegangsta/cli/command.go:101 (0xcb140)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/Godeps/_workspace/src/github.com/codegangsta/cli/app.go:125 (0xc9654)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/main/main.go:154 (0x3729)
/Users/pivotal/go-agent/pipelines/Mac-OSX-Testing/src/github.com/cloudfoundry/cli/main/main.go:91 (0x2eb9)
/usr/local/go/src/pkg/runtime/proc.c:220 (0x1804f)
/usr/local/go/src/pkg/runtime/proc.c:1394 (0x1a580)
显然,我的yaml文件有些错误。但我不知道是什么。这就是我所拥有的:
domain: cloudeast.mycompany.com
nats: secret
machines:
- 10.10.100.10
password: secret
port: 4222
user: nats
networks:
apps: default
management: default
memcache_broker:
broker_password: secret
memcache:
vip: 10.100.100.100:11211
servers:
- 10.100.100.101:11211
- 10.100.100.102:11211
plans:
small:
name: small
description: A small cache with no redundency
free: true
memcache_hazelcast:
heap_size: 512M
host:
src_api: https://memcache-hazelcast.cf-deployment.com
password: secret
memcache:
secret_key: secret
hazelcast:
max_cache_size: 268435456
machines:
zone1:
- 10.100.100.101
zone2:
- 10.100.100.102
plans:
small:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 100
medium:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 200
我可以帮一定解释为什么这个yaml文件没有正确解析吗?
答案 0 :(得分:2)
在第一行你有一个标量(domain
)后面跟一个冒号(:
)后跟一个标量(cloudeast.mycompany.com
),这意味着在顶部,没有缩进,您开始映射的级别,domain
是一个关键标量,cloudeast.mycompany.com
是一个值标量。
在下一行中,您应该再次使用键标量,并且必须缩进与前一行相同的级别(或者使用流末尾完成顶级映射({{1} })或启动一个新文档(...
)。你启动一个缩进值,这是一个映射,解析器不知道你想用它做什么。
只能尝试猜测你尝试做什么。如果---
是域的名称,则应该使其成为新的缩进标量值(使用键cloudeast.mycompany.com
),然后对键name
发生相同的缩进错误。然后按3个键,之后文件就可以了:
machines
当然你也省略了cloudeaset.mycompany.com的价值。在这两种情况下,YAML文件的顶级将是具有单个键标量的映射:domain:
name: cloudeast.mycompany.com # scalar key "name" added
nats: secret
machines: # this scalar key and next 3 dedented
- 10.10.100.10
password: secret
port: 4222
user: nats
# from here everything as it was
networks:
apps: default
management: default
memcache_broker:
broker_password: secret
memcache:
vip: 10.100.100.100:11211
servers:
- 10.100.100.101:11211
- 10.100.100.102:11211
plans:
small:
name: small
description: A small cache with no redundency
free: true
memcache_hazelcast:
heap_size: 512M
host:
src_api: https://memcache-hazelcast.cf-deployment.com
password: secret
memcache:
secret_key: secret
hazelcast:
max_cache_size: 268435456
machines:
zone1:
- 10.100.100.101
zone2:
- 10.100.100.102
plans:
small:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 100
medium:
backup: 0
async_backup: 1
eviction_policy: LRU
max_idle_seconds: 86400
max_size_used_heap: 200
。该键的值再次是使用domain
,nats
,networks