vagrant-bosh 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dev/Vagrantfile +9 -8
- data/dev/example-bosh-manifest.yml +37 -27
- data/go/src/boshprovisioner/release/manifest/manifest_test.go +54 -0
- data/go/src/boshprovisioner/release/manifest/syntax_validator.go +14 -14
- data/go/src/boshprovisioner/util/possible_base64.go +21 -0
- data/lib/vagrant-bosh/assets/provisioner +0 -0
- data/lib/vagrant-bosh/config.rb +1 -1
- data/lib/vagrant-bosh/version.rb +1 -1
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6e34945bb57bd49ef8eb5fe0a92531a3034f8a69
|
4
|
+
data.tar.gz: 6ac43a05b657a6ce0df25e41290c2f13743c5270
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e7eabe3954e50934c69bbd15f702ea620586e92f078f52435939961102a04cacc8c69a8605018e1d9b684b0db999badc737b11c67d43417d78a7cf08c91670d
|
7
|
+
data.tar.gz: 177de839fb5217569fbc93214e97f8d4e93ca7a152dbae5f8ee1b86b137b0587cffc784aa1c8ceff35dd95b7f95194d40ea642164244b22d58b2ecde4686c4de
|
data/dev/Vagrantfile
CHANGED
@@ -7,19 +7,20 @@ end
|
|
7
7
|
require "../lib/vagrant-bosh"
|
8
8
|
|
9
9
|
Vagrant.configure("2") do |config|
|
10
|
-
|
11
|
-
config.vm.
|
12
|
-
|
13
|
-
# config.vm.box = "precise64"
|
14
|
-
# config.vm.box_url = "http://files.vagrantup.com/precise64.box"
|
10
|
+
# Make sure box has large root partition
|
11
|
+
config.vm.box = "precise64"
|
12
|
+
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
|
15
13
|
|
16
14
|
# Example port forward for example-bosh-manifest.yml
|
17
15
|
config.vm.network "forwarded_port", guest: 25555, host: 25555 # BOSH Director API
|
18
16
|
|
19
17
|
# Example port forward for example-winston-manifest.yml
|
20
|
-
config.vm.network "forwarded_port", guest: 8080, host: 8080 # http
|
21
|
-
config.vm.network "forwarded_port", guest: 8081, host: 8081 # ws
|
22
|
-
config.vm.network "forwarded_port", guest: 5637, host: 5637 # redgreen
|
18
|
+
# config.vm.network "forwarded_port", guest: 8080, host: 8080 # http
|
19
|
+
# config.vm.network "forwarded_port", guest: 8081, host: 8081 # ws
|
20
|
+
# config.vm.network "forwarded_port", guest: 5637, host: 5637 # redgreen
|
21
|
+
|
22
|
+
# Example of custom private network configuration
|
23
|
+
# config.vm.network :private_network, ip: "192.168.56.4"
|
23
24
|
|
24
25
|
config.vm.provider "virtualbox" do |v|
|
25
26
|
v.memory = 4096
|
@@ -5,7 +5,10 @@ releases:
|
|
5
5
|
# Download latest BOSH release from http://bosh-artifacts.cfapps.io/
|
6
6
|
- name: bosh
|
7
7
|
version: 83
|
8
|
-
url:
|
8
|
+
url: https://s3.amazonaws.com/bosh-jenkins-artifacts/release/bosh-2652.tgz
|
9
|
+
- name: bosh-warden-cpi
|
10
|
+
version: latest
|
11
|
+
url: dir+bosh://../../bosh-warden-cpi-release
|
9
12
|
|
10
13
|
networks:
|
11
14
|
# Must have dynamic network
|
@@ -34,15 +37,16 @@ jobs:
|
|
34
37
|
release: bosh
|
35
38
|
- name: blobstore
|
36
39
|
release: bosh
|
37
|
-
- name: powerdns
|
38
|
-
release: bosh
|
39
40
|
- name: postgres
|
40
41
|
release: bosh
|
41
42
|
- name: director
|
42
43
|
release: bosh
|
43
44
|
- name: health_monitor
|
44
45
|
release: bosh
|
45
|
-
|
46
|
+
- name: cpi
|
47
|
+
release: bosh-warden-cpi
|
48
|
+
- name: warden
|
49
|
+
release: bosh-warden-cpi
|
46
50
|
|
47
51
|
properties:
|
48
52
|
ntp: ["0.us.pool.ntp.org"]
|
@@ -160,29 +164,35 @@ properties:
|
|
160
164
|
cloud_watch_enabled: false
|
161
165
|
resurrector_enabled: true
|
162
166
|
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
db:
|
167
|
-
user: bosh
|
168
|
-
password: bosh-password
|
169
|
-
host: 10.0.2.15
|
170
|
-
port: 5432
|
171
|
-
database: bosh
|
167
|
+
external_cpi:
|
168
|
+
enabled: true
|
169
|
+
name: cpi
|
172
170
|
|
173
171
|
# Control some remote vCenter
|
174
172
|
vcenter:
|
175
|
-
address:
|
176
|
-
user:
|
177
|
-
password:
|
178
|
-
datacenters:
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
173
|
+
address: fake-address
|
174
|
+
user: fake-user
|
175
|
+
password: fake-password
|
176
|
+
datacenters: []
|
177
|
+
|
178
|
+
# cpi job template
|
179
|
+
cpi:
|
180
|
+
warden:
|
181
|
+
connect_network: tcp
|
182
|
+
connect_address: 127.0.0.1:7777
|
183
|
+
agent:
|
184
|
+
mbus: nats://nats:nats-password@10.0.2.15:4222
|
185
|
+
blobstore:
|
186
|
+
provider: dav
|
187
|
+
options:
|
188
|
+
endpoint: http://10.0.2.15:25251
|
189
|
+
user: agent
|
190
|
+
password: agent-password
|
191
|
+
|
192
|
+
# warden job template
|
193
|
+
warden:
|
194
|
+
listen_network: tcp
|
195
|
+
listen_address: 0.0.0.0:7777
|
196
|
+
network_pool: 10.244.0.0/22 # bosh-lite v1 used this pool
|
197
|
+
disk_quota_enabled: false
|
198
|
+
kernel_network_tuning_enabled: false
|
@@ -68,5 +68,59 @@ jobs:
|
|
68
68
|
SHA1: "ab9709beab5be0fb62a2d1f3c88d06c9b4bdec65",
|
69
69
|
}))
|
70
70
|
})
|
71
|
+
|
72
|
+
It("returns manifest with given version/fingerprint/sha1 for jobs and packages if they were not base64 binary encoded", func() {
|
73
|
+
manifestBytes := []byte(`
|
74
|
+
name: bosh
|
75
|
+
version: 77
|
76
|
+
|
77
|
+
commit_hash: bbe5476c
|
78
|
+
uncommitted_changes: true
|
79
|
+
|
80
|
+
packages:
|
81
|
+
- name: registry
|
82
|
+
version: dd1ba330bc44b3181b263383b8e4252d7051deca
|
83
|
+
fingerprint: dd1ba330bc44b3181b263383b8e4252d7051deca
|
84
|
+
sha1: 6eaa6c961eac7bd994d1644ad405b3395420ecaf
|
85
|
+
dependencies: []
|
86
|
+
|
87
|
+
jobs:
|
88
|
+
- name: powerdns
|
89
|
+
version: 0b80b3c198bf7abc6c81262013de494369fd25b6
|
90
|
+
fingerprint: 0b80b3c198bf7abc6c81262013de494369fd25b6
|
91
|
+
sha1: ab9709beab5be0fb62a2d1f3c88d06c9b4bdec65
|
92
|
+
`)
|
93
|
+
|
94
|
+
manifest, err := NewManifestFromBytes(manifestBytes)
|
95
|
+
Expect(err).ToNot(HaveOccurred())
|
96
|
+
|
97
|
+
Expect(manifest.Release.Packages[0]).To(Equal(Package{
|
98
|
+
Name: "registry",
|
99
|
+
|
100
|
+
VersionRaw: "dd1ba330bc44b3181b263383b8e4252d7051deca",
|
101
|
+
Version: "dd1ba330bc44b3181b263383b8e4252d7051deca",
|
102
|
+
|
103
|
+
FingerprintRaw: "dd1ba330bc44b3181b263383b8e4252d7051deca",
|
104
|
+
Fingerprint: "dd1ba330bc44b3181b263383b8e4252d7051deca",
|
105
|
+
|
106
|
+
SHA1Raw: "6eaa6c961eac7bd994d1644ad405b3395420ecaf",
|
107
|
+
SHA1: "6eaa6c961eac7bd994d1644ad405b3395420ecaf",
|
108
|
+
|
109
|
+
DependencyNames: []DependencyName{},
|
110
|
+
}))
|
111
|
+
|
112
|
+
Expect(manifest.Release.Jobs[0]).To(Equal(Job{
|
113
|
+
Name: "powerdns",
|
114
|
+
|
115
|
+
VersionRaw: "0b80b3c198bf7abc6c81262013de494369fd25b6",
|
116
|
+
Version: "0b80b3c198bf7abc6c81262013de494369fd25b6",
|
117
|
+
|
118
|
+
FingerprintRaw: "0b80b3c198bf7abc6c81262013de494369fd25b6",
|
119
|
+
Fingerprint: "0b80b3c198bf7abc6c81262013de494369fd25b6",
|
120
|
+
|
121
|
+
SHA1Raw: "ab9709beab5be0fb62a2d1f3c88d06c9b4bdec65",
|
122
|
+
SHA1: "ab9709beab5be0fb62a2d1f3c88d06c9b4bdec65",
|
123
|
+
}))
|
124
|
+
})
|
71
125
|
})
|
72
126
|
})
|
@@ -1,9 +1,9 @@
|
|
1
1
|
package manifest
|
2
2
|
|
3
3
|
import (
|
4
|
-
"encoding/base64"
|
5
|
-
|
6
4
|
bosherr "bosh/errors"
|
5
|
+
|
6
|
+
bputil "boshprovisioner/util"
|
7
7
|
)
|
8
8
|
|
9
9
|
// SyntaxValidator parses and saves all manifest values to determine
|
@@ -60,34 +60,34 @@ func (v SyntaxValidator) validateJob(job *Job) error {
|
|
60
60
|
return bosherr.New("Missing version")
|
61
61
|
}
|
62
62
|
|
63
|
-
|
63
|
+
str, err := bputil.DecodePossibleBase64Str(job.VersionRaw)
|
64
64
|
if err != nil {
|
65
65
|
return bosherr.WrapError(err, "Decoding base64 encoded version")
|
66
66
|
}
|
67
67
|
|
68
|
-
job.Version =
|
68
|
+
job.Version = str
|
69
69
|
|
70
70
|
if job.FingerprintRaw == "" {
|
71
71
|
return bosherr.New("Missing fingerprint")
|
72
72
|
}
|
73
73
|
|
74
|
-
|
74
|
+
str, err = bputil.DecodePossibleBase64Str(job.FingerprintRaw)
|
75
75
|
if err != nil {
|
76
76
|
return bosherr.WrapError(err, "Decoding base64 encoded fingerprint")
|
77
77
|
}
|
78
78
|
|
79
|
-
job.Fingerprint =
|
79
|
+
job.Fingerprint = str
|
80
80
|
|
81
81
|
if job.SHA1Raw == "" {
|
82
82
|
return bosherr.New("Missing sha1")
|
83
83
|
}
|
84
84
|
|
85
|
-
|
85
|
+
str, err = bputil.DecodePossibleBase64Str(job.SHA1Raw)
|
86
86
|
if err != nil {
|
87
87
|
return bosherr.WrapError(err, "Decoding base64 encoded sha1")
|
88
88
|
}
|
89
89
|
|
90
|
-
job.SHA1 =
|
90
|
+
job.SHA1 = str
|
91
91
|
|
92
92
|
return nil
|
93
93
|
}
|
@@ -101,34 +101,34 @@ func (v SyntaxValidator) validatePkg(pkg *Package) error {
|
|
101
101
|
return bosherr.New("Missing version")
|
102
102
|
}
|
103
103
|
|
104
|
-
|
104
|
+
str, err := bputil.DecodePossibleBase64Str(pkg.VersionRaw)
|
105
105
|
if err != nil {
|
106
106
|
return bosherr.WrapError(err, "Decoding base64 encoded version")
|
107
107
|
}
|
108
108
|
|
109
|
-
pkg.Version =
|
109
|
+
pkg.Version = str
|
110
110
|
|
111
111
|
if pkg.FingerprintRaw == "" {
|
112
112
|
return bosherr.New("Missing fingerprint")
|
113
113
|
}
|
114
114
|
|
115
|
-
|
115
|
+
str, err = bputil.DecodePossibleBase64Str(pkg.FingerprintRaw)
|
116
116
|
if err != nil {
|
117
117
|
return bosherr.WrapError(err, "Decoding base64 encoded fingerprint")
|
118
118
|
}
|
119
119
|
|
120
|
-
pkg.Fingerprint =
|
120
|
+
pkg.Fingerprint = str
|
121
121
|
|
122
122
|
if pkg.SHA1Raw == "" {
|
123
123
|
return bosherr.New("Missing sha1")
|
124
124
|
}
|
125
125
|
|
126
|
-
|
126
|
+
str, err = bputil.DecodePossibleBase64Str(pkg.SHA1Raw)
|
127
127
|
if err != nil {
|
128
128
|
return bosherr.WrapError(err, "Decoding base64 encoded sha1")
|
129
129
|
}
|
130
130
|
|
131
|
-
pkg.SHA1 =
|
131
|
+
pkg.SHA1 = str
|
132
132
|
|
133
133
|
return nil
|
134
134
|
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
package util
|
2
|
+
|
3
|
+
import (
|
4
|
+
"encoding/base64"
|
5
|
+
|
6
|
+
bosherr "bosh/errors"
|
7
|
+
)
|
8
|
+
|
9
|
+
func DecodePossibleBase64Str(str string) (string, error) {
|
10
|
+
// Cheating until yaml library provides proper support for !!binary
|
11
|
+
if str[len(str)-1:] == "=" {
|
12
|
+
bytes, err := base64.StdEncoding.DecodeString(str)
|
13
|
+
if err != nil {
|
14
|
+
return "", bosherr.WrapError(err, "Decoding base64 encoded str '%s'", str)
|
15
|
+
}
|
16
|
+
|
17
|
+
return string(bytes), nil
|
18
|
+
}
|
19
|
+
|
20
|
+
return str, nil
|
21
|
+
}
|
Binary file
|
data/lib/vagrant-bosh/config.rb
CHANGED
data/lib/vagrant-bosh/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-bosh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitriy Kalinin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: BOSH provisioner allows to provision guest VM by specifying regular BOSH
|
14
14
|
deployment manifest.
|
@@ -18,8 +18,8 @@ executables: []
|
|
18
18
|
extensions: []
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
|
-
- .gitignore
|
22
|
-
- .gitmodules
|
21
|
+
- ".gitignore"
|
22
|
+
- ".gitmodules"
|
23
23
|
- Gemfile
|
24
24
|
- LICENSE
|
25
25
|
- README.md
|
@@ -135,6 +135,7 @@ files:
|
|
135
135
|
- go/src/boshprovisioner/tar/cmd_extractor.go
|
136
136
|
- go/src/boshprovisioner/tar/compressor_interface.go
|
137
137
|
- go/src/boshprovisioner/tar/extractor_interface.go
|
138
|
+
- go/src/boshprovisioner/util/possible_base64.go
|
138
139
|
- go/src/boshprovisioner/util/string_keyed.go
|
139
140
|
- go/src/boshprovisioner/vm/vagrant/agent_provisioner.go
|
140
141
|
- go/src/boshprovisioner/vm/vagrant/asset_manager.go
|
@@ -190,17 +191,17 @@ require_paths:
|
|
190
191
|
- templates
|
191
192
|
required_ruby_version: !ruby/object:Gem::Requirement
|
192
193
|
requirements:
|
193
|
-
- -
|
194
|
+
- - ">="
|
194
195
|
- !ruby/object:Gem::Version
|
195
196
|
version: '0'
|
196
197
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
197
198
|
requirements:
|
198
|
-
- -
|
199
|
+
- - ">="
|
199
200
|
- !ruby/object:Gem::Version
|
200
201
|
version: '0'
|
201
202
|
requirements: []
|
202
203
|
rubyforge_project:
|
203
|
-
rubygems_version: 2.
|
204
|
+
rubygems_version: 2.2.2
|
204
205
|
signing_key:
|
205
206
|
specification_version: 4
|
206
207
|
summary: Vagrant BOSH provisioner plugin.
|