Skip to content

Commit

Permalink
Merge pull request #62 from thallgren/yaml
Browse files Browse the repository at this point in the history
(#36) Recognize YAML manifests
  • Loading branch information
thallgren committed Jan 23, 2019
2 parents 953c396 + 6ca8930 commit 65575a9
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 21 deletions.
2 changes: 1 addition & 1 deletion 3RDPARTY_LICENSES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ github.com/lyraproj/lyra/vendor/github.com/lyraproj/hiera
github.com/lyraproj/lyra/vendor/github.com/lyraproj/issue/issue Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/puppet-evaluator Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/puppet-parser Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/puppet-workflow/puppet/functions Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/puppet-workflow Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/semver/semver Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/servicesdk Apache License 2.0
github.com/lyraproj/lyra/vendor/github.com/lyraproj/wfe Apache License 2.0
Expand Down
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
module github.com/lyraproj/lyra

require (
github.com/aws/aws-sdk-go v1.16.22
github.com/aws/aws-sdk-go v1.16.23
github.com/boltdb/bolt v1.3.1
github.com/davecgh/go-spew v1.1.1
github.com/go-logr/logr v0.1.0
github.com/hashicorp/go-hclog v0.0.0-20190109152822-4783caec6f2e
github.com/hashicorp/go-plugin v0.0.0-20181212150838-f444068e8f5a
github.com/leonelquinteros/gotext v1.4.0
github.com/lyraproj/hiera v0.0.0-20190121224837-20bd2c5ffefb
github.com/lyraproj/issue v0.0.0-20181208172701-8d203563a8dc
github.com/lyraproj/lyra-operator v0.0.0-20190121113055-2dba76cb8b6b
github.com/lyraproj/puppet-evaluator v0.0.0-20190121224504-9cbd778da25e
github.com/lyraproj/puppet-workflow v0.0.0-20190121225019-6ff55a4d2e14
github.com/lyraproj/hiera v0.0.0-20190123103955-fe409985fbd6
github.com/lyraproj/issue v0.0.0-20190122215520-5efbea1d1edb
github.com/lyraproj/lyra-operator v0.0.0-20190122104909-182988132452
github.com/lyraproj/puppet-evaluator v0.0.0-20190123103958-578b5068e92c
github.com/lyraproj/puppet-workflow v0.0.0-20190123141448-5ce45783ff81
github.com/lyraproj/semver v0.0.0-20181213164306-02ecea2cd6a2
github.com/lyraproj/servicesdk v0.0.0-20190121225535-bdf437187a7c
github.com/lyraproj/wfe v0.0.0-20190121224646-32d74d38984c
Expand Down
31 changes: 21 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ cloud.google.com/go v0.34.0 h1:eOI3/cP2VTU6uZLDYAoic+eyzzB9YyGmJ7eIjl8rOPg=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/aws/aws-sdk-go v1.16.22 h1:9wop6aMrfW/bLaW+p/tNMfmeDmvErKXHqakSPqyYrHA=
github.com/aws/aws-sdk-go v1.16.22/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.16.23 h1:MwBOBeez0XEFVh6DCc888X+nHVBCjUDLnnWXSGGWUgM=
github.com/aws/aws-sdk-go v1.16.23/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/bmatcuk/doublestar v1.1.1 h1:YroD6BJCZBYx06yYFEWvUuKVWQn3vLLQAVmDmvTSaiQ=
Expand Down Expand Up @@ -57,6 +57,8 @@ github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKe
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/json-iterator/go v1.1.5 h1:gL2yXlmiIo4+t+y32d4WGwOjKGYcGOuyrg46vadswDE=
Expand All @@ -71,22 +73,29 @@ github.com/lyraproj/data-protobuf v0.0.0-20181204212349-91f456158233/go.mod h1:o
github.com/lyraproj/data-protobuf v0.0.0-20181217135414-3d508204b820 h1:fmQMG2XAvAhT5gt9PxXhY3+2iHJPBM1Y073MuNTZShM=
github.com/lyraproj/data-protobuf v0.0.0-20181217135414-3d508204b820/go.mod h1:oQIFBu0fmkiSpSRROEgK5gnjQ/ZDrx3UdpRpT3791Gg=
github.com/lyraproj/hiera v0.0.0-20190114153236-e6de2935d4de/go.mod h1:kG4rdjUqIe1a0PGgM5TYxD6RiK0lb94OJXUoj8PXtVk=
github.com/lyraproj/hiera v0.0.0-20190121224837-20bd2c5ffefb h1:nFq/Xl8ux9ISQC0aztJmHGX1ICz6OLYqRoTbIZHYL/g=
github.com/lyraproj/hiera v0.0.0-20190121224837-20bd2c5ffefb/go.mod h1:bCjeJZTz91hQcs+1DgYdrwh0CLgG0mmhlqFeUF0FNgc=
github.com/lyraproj/hiera v0.0.0-20190123103955-fe409985fbd6 h1:c/0LlCuflDSSPOYmJlup+E46we42jSCzE4TjVr6P1vw=
github.com/lyraproj/hiera v0.0.0-20190123103955-fe409985fbd6/go.mod h1:X9a9Pmkvv02V4v8vkrfNdp0IVmCHnPdOCJatqlw5DI4=
github.com/lyraproj/issue v0.0.0-20181204205859-7ed1f9741f4a/go.mod h1:F3Zu9SjR6zROUIVdxgxuX0/Mi4npwgDRalQCNzCyzU0=
github.com/lyraproj/issue v0.0.0-20181208172701-8d203563a8dc h1:OD9e7aHLSyJcrwG1R/8JsDVIWevC7aJH+Yd09q/8e2I=
github.com/lyraproj/issue v0.0.0-20181208172701-8d203563a8dc/go.mod h1:F3Zu9SjR6zROUIVdxgxuX0/Mi4npwgDRalQCNzCyzU0=
github.com/lyraproj/lyra-operator v0.0.0-20190121113055-2dba76cb8b6b h1:9McfNiQn9aXwh4K/GIag7x41oH6jaxvLWeeC+Kr6H+g=
github.com/lyraproj/lyra-operator v0.0.0-20190121113055-2dba76cb8b6b/go.mod h1:aaq4Bh6tQ/TKf7VM11exVlOsoGrbDlfo1iDa6u4t5Z8=
github.com/lyraproj/issue v0.0.0-20190122215520-5efbea1d1edb h1:R3ukQUNWJTypfOAZwyJ5kcIyWjbm8KZnpxLaH29HWbw=
github.com/lyraproj/issue v0.0.0-20190122215520-5efbea1d1edb/go.mod h1:F3Zu9SjR6zROUIVdxgxuX0/Mi4npwgDRalQCNzCyzU0=
github.com/lyraproj/lyra-operator v0.0.0-20190122104909-182988132452 h1:SX2j4H7zpWl+A56a0niMvncnicyMLeU4h9qwkeqgXrk=
github.com/lyraproj/lyra-operator v0.0.0-20190122104909-182988132452/go.mod h1:aaq4Bh6tQ/TKf7VM11exVlOsoGrbDlfo1iDa6u4t5Z8=
github.com/lyraproj/puppet-evaluator v0.0.0-20181204213239-6c015035abd6/go.mod h1:JbCmhaM87Y+WDZGAddeIBq3uyMdR70YXPkvi/MrqXIU=
github.com/lyraproj/puppet-evaluator v0.0.0-20190119120541-966996aacfc1/go.mod h1:zzujLCRGe29CXjx2PYphNjYQAnasgzsz+np2ww6d3Mo=
github.com/lyraproj/puppet-evaluator v0.0.0-20190121224504-9cbd778da25e h1:DZJzTl39sOcjV0F8cmjBXsDm1SpMgqr7VfunUm5yy9I=
github.com/lyraproj/puppet-evaluator v0.0.0-20190121224504-9cbd778da25e/go.mod h1:zzujLCRGe29CXjx2PYphNjYQAnasgzsz+np2ww6d3Mo=
github.com/lyraproj/puppet-evaluator v0.0.0-20190123101558-8fe6588e638e/go.mod h1:Z0RDGXCJwnba8AZttdopo2/JzUiGsN7CECdUqZPR3wU=
github.com/lyraproj/puppet-evaluator v0.0.0-20190123103958-578b5068e92c h1:B+eWVKqsxIMw3TqDqxYexYc8rdZSZjKjyiliKaCYMq8=
github.com/lyraproj/puppet-evaluator v0.0.0-20190123103958-578b5068e92c/go.mod h1:Z0RDGXCJwnba8AZttdopo2/JzUiGsN7CECdUqZPR3wU=
github.com/lyraproj/puppet-parser v0.0.0-20181204211711-c9870a9ba412/go.mod h1:8va5g/XEw+jP9jnwEXPmanUy/hD9+6iggnaioihPLP0=
github.com/lyraproj/puppet-parser v0.0.0-20181212205830-31c3104fe78d h1:iDn6XlJAiA+BuwG6L8xsCapPpc7jz24SGj9z7NQA1sg=
github.com/lyraproj/puppet-parser v0.0.0-20181212205830-31c3104fe78d/go.mod h1:8va5g/XEw+jP9jnwEXPmanUy/hD9+6iggnaioihPLP0=
github.com/lyraproj/puppet-workflow v0.0.0-20190121225019-6ff55a4d2e14 h1:+nGh2kEg3Ei8+YctEXr3n0SPu4kisUVE/8F0yU82xmM=
github.com/lyraproj/puppet-workflow v0.0.0-20190121225019-6ff55a4d2e14/go.mod h1:pclZTe751FTSx3r9mkZIxGiTXeY0JSdoTZRqHVkp0+w=
github.com/lyraproj/puppet-workflow v0.0.0-20190122103525-5f5570c89e46 h1:CWE96bvH9EleooxoR167OlXRI6MFkMvNHkAei+gEi14=
github.com/lyraproj/puppet-workflow v0.0.0-20190122103525-5f5570c89e46/go.mod h1:shH61hhJGwXRS6zx5PcMeTubDLwF/Fkp2SU8ejJZK54=
github.com/lyraproj/puppet-workflow v0.0.0-20190123105633-d497ffd15198 h1:cw3L35DAieuTtBFSYie7jIkrPoYdoBU23JUYJwp5wuE=
github.com/lyraproj/puppet-workflow v0.0.0-20190123105633-d497ffd15198/go.mod h1:G9h/W2+cpVP3HBxs6X/pCdVKst4XNNk3rnzewZrSGoc=
github.com/lyraproj/puppet-workflow v0.0.0-20190123141448-5ce45783ff81 h1:4g3xwVEG/lhdR/ZO2b6HLMOcKcfqpO8O6yd8yDEEsis=
github.com/lyraproj/puppet-workflow v0.0.0-20190123141448-5ce45783ff81/go.mod h1:G9h/W2+cpVP3HBxs6X/pCdVKst4XNNk3rnzewZrSGoc=
github.com/lyraproj/semver v0.0.0-20181204205945-997412dbeb0c/go.mod h1:KOdZKnEBdDb2iGPUnHiKpk3M5cvv949xMyj8XPqaMF0=
github.com/lyraproj/semver v0.0.0-20181213164306-02ecea2cd6a2 h1:vb4PbiMtIXdhsOUinkkcqZiASDIZzXRhSG4yvNfE0tg=
github.com/lyraproj/semver v0.0.0-20181213164306-02ecea2cd6a2/go.mod h1:KOdZKnEBdDb2iGPUnHiKpk3M5cvv949xMyj8XPqaMF0=
Expand All @@ -111,6 +120,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/moovweb/rubex v0.0.1 h1:ly/bF6+2uxAciT7hvw+Uic5/s9l9SQW62sAJrJoa3f8=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw=
github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA=
Expand Down Expand Up @@ -192,6 +202,7 @@ golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGm
gonum.org/v1/gonum v0.0.0-20190119014124-d54847ab4dca h1:n0S76j3sXlixKdU/XYIBVb1s3hPsZCiZ+oQmPH+r3gQ=
gonum.org/v1/gonum v0.0.0-20190119014124-d54847ab4dca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
Expand Down
22 changes: 18 additions & 4 deletions pkg/loader/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,21 +189,35 @@ func (s *subService) Identifier(eval.Context) eval.TypedName {
}

func (l *Loader) loadPuppetDSL(c eval.Context, dir string) {
l.logger.Debug("reading Puppet DSL from filesystem", "dir", dir)
l.logger.Debug("reading Puppet DSL and YAML from filesystem", "dir", dir)

ppFiles, err := findFiles(dir, "*.pp")
if err != nil {
l.logger.Error("failed to load Puppet DSL", "dir", dir, "err", err)
return
}
l.logger.Debug("found Puppet DSL", "count", len(ppFiles))

yamlFiles, err := findFiles(dir, "*.yaml")
if err != nil {
l.logger.Error("failed to load YAML", "dir", dir, "err", err)
return
}
l.logger.Debug("found YAML", "count", len(yamlFiles))

allFiles := append(ppFiles, yamlFiles...)
if len(allFiles) == 0 {
return
}

x, ok := eval.Load(c, eval.NewTypedName(eval.NsService, `Puppet`))
if !ok {
l.logger.Error("failed to load Puppet DSL Service plugin")
}
ppServer := x.(serviceapi.Service)
for _, ppFile := range ppFiles {
l.logger.Debug("loading Puppet DSL", "file", ppFile)
def := ppServer.Invoke(c, puppet.ManifestLoaderID, `load_manifest`, types.WrapString(ppFile)).(serviceapi.Definition)
for _, f := range allFiles {
l.logger.Debug("loading manifest", "file", f)
def := ppServer.Invoke(c, puppet.ManifestLoaderID, `load_manifest`, types.WrapString(f)).(serviceapi.Definition)
sa := &subService{def}
l.SetEntry(sa.Identifier(c), eval.NewLoaderEntry(sa, nil))
l.loadMetadata(c, ``, nil, sa)
Expand Down
36 changes: 36 additions & 0 deletions plugins/yamltest.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
yamltest:
typespace: aws
input:
tags:
type: Hash[String,String]
lookup: aws.tags
output:
vpc_id: String
subnet_id: String
activities:
routetable:
output: route_table_id
state:
tags: $tags
vpc_id: $vpc_id
vpc:
output: vpc_id
state:
amazon_provided_ipv6_cidr_block: false
cidr_block: 192.168.0.0/16
enable_dns_hostnames: false
enable_dns_support: false
is_default: false
state: available
tags: $tags
subnet:
output: subnet_id
state:
vpc_id: $vpc_id
cidr_block: 192.168.1.0/24
ipv6_cidr_block: ''
tags: $tags
assign_ipv6_address_on_creation: false
map_public_ip_on_launch: false
default_for_az: false
state: available

0 comments on commit 65575a9

Please sign in to comment.