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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9b39c42d2c0ba1faafad24df1d60a9d0f0c5a307
4
- data.tar.gz: a0e9d0f83323e94d562920c7b36bed3c50e3b44d
3
+ metadata.gz: 6e34945bb57bd49ef8eb5fe0a92531a3034f8a69
4
+ data.tar.gz: 6ac43a05b657a6ce0df25e41290c2f13743c5270
5
5
  SHA512:
6
- metadata.gz: e41b4554521cc02ef5e25b4adc3a49fd86569abcaf2ebf52e204c0230573c4138a28465e3ad99bcb41c0315637db2a220b0dcab15cfd4fd4c98ff3c84f5020b0
7
- data.tar.gz: 896cf5defcceb1c98e6ee9825e07e2946889874884eba1be76b851edbf2359a2b2236a07f7b341bae4bec1ebfdc75d0356c79ca74b7116df80650c87705b1fbd
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
- config.vm.box = "saucy"
11
- config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box"
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: file:///vagrant/bosh-2597.tgz
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
- # todo colocate warden-cpi-release once we have it
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
- dns:
164
- address: 10.0.2.15
165
- recursor: 8.8.8.8
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: 172.16.79.132
176
- user: root
177
- password: vmware
178
- datacenters:
179
- - name: TEST_DATACENTER
180
- vm_folder: SYSTEM_MICRO_VSPHERE_VMs
181
- template_folder: SYSTEM_MICRO_VSPHERE_Templates
182
- disk_path: SYSTEM_MICRO_VSPHERE_Disks
183
- datastore_pattern: datastore
184
- persistent_datastore_pattern: datastore
185
- allow_mixed_datastores: true
186
- clusters:
187
- - TEST_CLUSTER:
188
- resource_pool: TEST_RP
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
- bytes, err := base64.StdEncoding.DecodeString(job.VersionRaw)
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 = string(bytes)
68
+ job.Version = str
69
69
 
70
70
  if job.FingerprintRaw == "" {
71
71
  return bosherr.New("Missing fingerprint")
72
72
  }
73
73
 
74
- bytes, err = base64.StdEncoding.DecodeString(job.FingerprintRaw)
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 = string(bytes)
79
+ job.Fingerprint = str
80
80
 
81
81
  if job.SHA1Raw == "" {
82
82
  return bosherr.New("Missing sha1")
83
83
  }
84
84
 
85
- bytes, err = base64.StdEncoding.DecodeString(job.SHA1Raw)
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 = string(bytes)
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
- bytes, err := base64.StdEncoding.DecodeString(pkg.VersionRaw)
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 = string(bytes)
109
+ pkg.Version = str
110
110
 
111
111
  if pkg.FingerprintRaw == "" {
112
112
  return bosherr.New("Missing fingerprint")
113
113
  }
114
114
 
115
- bytes, err = base64.StdEncoding.DecodeString(pkg.FingerprintRaw)
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 = string(bytes)
120
+ pkg.Fingerprint = str
121
121
 
122
122
  if pkg.SHA1Raw == "" {
123
123
  return bosherr.New("Missing sha1")
124
124
  }
125
125
 
126
- bytes, err = base64.StdEncoding.DecodeString(pkg.SHA1Raw)
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 = string(bytes)
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
@@ -42,7 +42,7 @@ module VagrantPlugins
42
42
 
43
43
  @full_stemcell_compatibility = !!@full_stemcell_compatibility
44
44
 
45
- @create_release_cmd ||= "bosh -n create release --force"
45
+ @create_release_cmd ||= "ruby -v; bosh -n create release --force"
46
46
  end
47
47
 
48
48
  def validate(machine)
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module VagrantBosh
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
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.5
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-15 00:00:00.000000000 Z
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.3.0
204
+ rubygems_version: 2.2.2
204
205
  signing_key:
205
206
  specification_version: 4
206
207
  summary: Vagrant BOSH provisioner plugin.