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 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.