vagrant-bosh 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.
|