github.com/cloudfoundry/postgres-release/src/acceptance-tests@v0.0.0-20240511030151-872bdd2e0dba/testing/helpers/bosh_director_test.go (about) 1 package helpers_test 2 3 import ( 4 "errors" 5 "fmt" 6 "os" 7 "strings" 8 9 "github.com/cloudfoundry/postgres-release/src/acceptance-tests/testing/helpers" 10 11 boshdir "github.com/cloudfoundry/bosh-cli/director" 12 fakedir "github.com/cloudfoundry/bosh-cli/director/directorfakes" 13 14 . "github.com/onsi/ginkgo/v2" 15 . "github.com/onsi/gomega" 16 ) 17 18 var _ = Describe("Deployment", func() { 19 var ( 20 envName string 21 director helpers.BOSHDirector 22 fakeDirector *fakedir.FakeDirector 23 ) 24 BeforeEach(func() { 25 envName = helpers.GenerateEnvName("dummy") 26 fakeDirector = &fakedir.FakeDirector{} 27 releases := make(map[string]string) 28 releases["postgres"] = "latest" 29 director = helpers.BOSHDirector{ 30 Director: fakeDirector, 31 DeploymentsInfo: make(map[string]*helpers.DeploymentData), 32 DirectorConfig: helpers.DefaultBOSHConfig, 33 CloudConfig: helpers.DefaultCloudConfig, 34 DefaultReleasesVersion: releases, 35 } 36 }) 37 38 Describe("Initialize deployment from manifest", func() { 39 Context("With non existent manifest", func() { 40 41 It("Should return an error if not existent manifest", func() { 42 var err error 43 err = director.SetDeploymentFromManifest("/Not/existent/path", nil, envName) 44 Expect(err).To(MatchError(ContainSubstring("no such file or directory"))) 45 }) 46 }) 47 Context("With invalid manifest", func() { 48 var ( 49 manifestFilePath string 50 ) 51 52 AfterEach(func() { 53 err := os.Remove(manifestFilePath) 54 Expect(err).NotTo(HaveOccurred()) 55 }) 56 57 It("Should return an error if manifest is not a valid yaml", func() { 58 var err error 59 manifestFilePath, err = helpers.WriteFile("%%%") 60 Expect(err).NotTo(HaveOccurred()) 61 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 62 Expect(err).To(MatchError(ContainSubstring("yaml: could not find expected directive name"))) 63 }) 64 65 It("Should return an error if deployment name not provided in input", func() { 66 var err error 67 data := ` 68 director_uuid: <%= %x[bosh status --uuid] %> 69 stemcells: 70 - alias: linux 71 name: bosh-warden-boshlite-ubuntu-xenial-go_agent 72 version: latest 73 ` 74 manifestFilePath, err = helpers.WriteFile(data) 75 Expect(err).NotTo(HaveOccurred()) 76 err = director.SetDeploymentFromManifest(manifestFilePath, nil, "") 77 Expect(err).To(MatchError(errors.New(helpers.MissingDeploymentNameMsg))) 78 }) 79 It("Properly set the provided deployment name", func() { 80 var err error 81 data := ` 82 director_uuid: <%= %x[bosh status --uuid] %> 83 stemcells: 84 - alias: linux 85 name: bosh-warden-boshlite-ubuntu-xenial-go_agent 86 version: latest 87 ` 88 manifestFilePath, err = helpers.WriteFile(data) 89 Expect(err).NotTo(HaveOccurred()) 90 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 91 Expect(err).NotTo(HaveOccurred()) 92 name := director.GetEnv(envName).ManifestData["name"] 93 Expect(name).To(MatchRegexp("pgats-([\\w-]+)-(.{36})")) 94 }) 95 }) 96 97 Context("With a valid manifest", func() { 98 var manifestFilePath string 99 var data string 100 101 BeforeEach(func() { 102 var err error 103 deploymentFake := &fakedir.FakeDeployment{} 104 vmInfoFake := boshdir.VMInfo{ 105 JobName: "postgres", 106 IPs: []string{"1.1.1.1"}, 107 } 108 deploymentFake.VMInfosReturns([]boshdir.VMInfo{vmInfoFake}, nil) 109 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 110 data = `director_uuid: xxx 111 instance_groups: 112 - azs: 113 - %s 114 instances: 1 115 jobs: 116 - name: postgres 117 release: postgres 118 name: postgres 119 networks: 120 - name: %s 121 persistent_disk_type: %s 122 stemcell: linux 123 vm_type: %s 124 name: %s 125 properties: 126 %s: %s 127 databases: 128 databases: 129 - name: pgdb 130 port: 1111 131 roles: 132 - name: pguser 133 password: pgpsw 134 ssh_key: %s 135 releases: 136 - name: postgres 137 version: %s 138 variables: [] 139 ` 140 input := fmt.Sprintf(data, "xx", "xx", "xx", "xx", "xx", "((key))", "((value))", "((sshkey.public_key))", "xx") 141 manifestFilePath, err = helpers.WriteFile(input) 142 Expect(err).NotTo(HaveOccurred()) 143 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 144 Expect(err).NotTo(HaveOccurred()) 145 Expect(director.GetEnv(envName).ContainsVariables()).To(BeFalse()) 146 }) 147 AfterEach(func() { 148 var err error 149 err = os.Remove(manifestFilePath) 150 Expect(err).NotTo(HaveOccurred()) 151 }) 152 153 It("Successfully create and delete a deployment", func() { 154 var err error 155 err = director.GetEnv(envName).CreateOrUpdateDeployment() 156 Expect(err).NotTo(HaveOccurred()) 157 err = director.GetEnv(envName).DeleteDeployment() 158 Expect(err).NotTo(HaveOccurred()) 159 }) 160 It("Can interpolate variables", func() { 161 vars := map[string]interface{}{ 162 "key": "aaa", 163 "value": "bar", 164 "sshkey.public_key": "key", 165 } 166 data = fmt.Sprintf(data, "z1", "default", "10GB", "small", envName, vars["key"], vars["value"], vars["sshkey.public_key"], "latest") 167 err := director.GetEnv(envName).EvaluateTemplate(vars, nil, helpers.EvaluateOptions{}) 168 Expect(err).NotTo(HaveOccurred()) 169 Expect(string(director.GetEnv(envName).ManifestBytes)).To(Equal(data)) 170 }) 171 It("Can generate variables", func() { 172 var err error 173 vars := map[string]interface{}{ 174 "key": "foo", 175 "common_name": "aaa", 176 } 177 variables := `variables: 178 - name: xxx_password 179 type: password 180 - name: sshkey 181 type: ssh 182 - name: xxx_ca 183 options: 184 common_name: xxx_ca 185 is_ca: true 186 type: certificate 187 - name: xxx_cert 188 options: 189 alternative_names: 190 - %s 191 ca: xxx_ca 192 common_name: %s 193 type: certificate 194 ` 195 input := fmt.Sprintf(data, "xx", "xx", "xx", "xx", "xx", "((key))", "((xxx_password))", "((sshkey.public_key))", "xx") + fmt.Sprintf(variables, "((common_name))", "((common_name))") 196 err = os.Remove(manifestFilePath) 197 Expect(err).NotTo(HaveOccurred()) 198 manifestFilePath, err = helpers.WriteFile(input) 199 Expect(err).NotTo(HaveOccurred()) 200 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 201 Expect(err).NotTo(HaveOccurred()) 202 Expect(director.GetEnv(envName).ContainsVariables()).To(BeTrue()) 203 err = director.GetEnv(envName).EvaluateTemplate(vars, nil, helpers.EvaluateOptions{}) 204 Expect(err).NotTo(HaveOccurred()) 205 props := director.GetEnv(envName).ManifestData["properties"] 206 password := props.(map[interface{}]interface{})["foo"] 207 208 sshkey := director.GetEnv(envName).GetVariable("sshkey") 209 public_key := sshkey.(map[interface{}]interface{})["public_key"] 210 actualDataProperties := director.GetEnv(envName).ManifestData["properties"] 211 Expect(strings.TrimSpace(public_key.(string))).To(Equal(strings.TrimSpace(actualDataProperties.(map[interface{}]interface{})["ssh_key"].(string)))) 212 Expect(strings.TrimSpace(password.(string))).To(Equal(strings.TrimSpace(actualDataProperties.(map[interface{}]interface{})["foo"].(string)))) 213 }) 214 It("Fails to interpolate variables", func() { 215 vars := map[string]interface{}{ 216 "key": "foo", 217 } 218 options := helpers.EvaluateOptions{ExpectAllKeys: true} 219 err := director.GetEnv(envName).EvaluateTemplate(vars, nil, options) 220 Expect(err).NotTo(BeNil()) 221 }) 222 It("Fails to interpolate operation directives", func() { 223 224 var ops []helpers.OpDefinition 225 var value interface{} 226 value = "aaa" 227 228 helpers.AddOpDefinition(&ops, "replace", "/properties/fake/((key))", value) 229 data = fmt.Sprintf(data, "z1", "default", "10GB", "small", envName, "((key))", value, value, "latest") 230 err := director.GetEnv(envName).EvaluateTemplate(nil, ops, helpers.EvaluateOptions{}) 231 Expect(err).NotTo(BeNil()) 232 }) 233 It("Can interpolate operation directives", func() { 234 var ops []helpers.OpDefinition 235 var value interface{} 236 value = "aaa" 237 helpers.AddOpDefinition(&ops, "replace", "/properties/((key))", value) 238 helpers.AddOpDefinition(&ops, "replace", "/properties/ssh_key", value) 239 data = fmt.Sprintf(data, "z1", "default", "10GB", "small", envName, "((key))", value, value, "latest") 240 err := director.GetEnv(envName).EvaluateTemplate(nil, ops, helpers.EvaluateOptions{}) 241 Expect(err).NotTo(HaveOccurred()) 242 Expect(string(director.GetEnv(envName).ManifestBytes)).To(Equal(data)) 243 }) 244 }) 245 }) 246 247 Describe("Update director", func() { 248 Context("Uploading a release", func() { 249 It("correctly upload release", func() { 250 fakeDirector.UploadReleaseURLReturns(nil) 251 err := director.UploadReleaseFromURL("some-org", "some-repo", 1) 252 Expect(err).NotTo(HaveOccurred()) 253 }) 254 It("Fail to upload release", func() { 255 fakeDirector.UploadReleaseURLReturns(errors.New("fake-error")) 256 err := director.UploadReleaseFromURL("some-org", "some-repo", 1) 257 Expect(err).To(Equal(errors.New("fake-error"))) 258 }) 259 }) 260 Context("Uploading postgres release", func() { 261 It("Correctly upload release", func() { 262 fakeDirector.UploadReleaseURLReturns(nil) 263 err := director.UploadPostgresReleaseFromURL(1) 264 Expect(err).NotTo(HaveOccurred()) 265 }) 266 It("Fail to upload release", func() { 267 fakeDirector.UploadReleaseURLReturns(errors.New("fake-error")) 268 err := director.UploadPostgresReleaseFromURL(1) 269 Expect(err).To(Equal(errors.New("fake-error"))) 270 }) 271 }) 272 }) 273 Describe("Access deployed environment", func() { 274 275 var manifestFilePath string 276 277 AfterEach(func() { 278 err := os.Remove(manifestFilePath) 279 Expect(err).NotTo(HaveOccurred()) 280 }) 281 Context("Update resurrector for all vms in deployment", func() { 282 var deploymentFake *fakedir.FakeDeployment 283 BeforeEach(func() { 284 var err error 285 data := ` 286 director_uuid: <%= %x[bosh status --uuid] %> 287 name: test 288 ` 289 manifestFilePath, err = helpers.WriteFile(data) 290 Expect(err).NotTo(HaveOccurred()) 291 deploymentFake = &fakedir.FakeDeployment{} 292 vm1InfoFake := boshdir.VMInfo{ 293 JobName: "postgres", 294 ID: "xxx-xxx-xxx", 295 } 296 vm2InfoFake := boshdir.VMInfo{ 297 JobName: "postgres", 298 ID: "aaa-aaa-aaa-aaa", 299 } 300 deploymentFake.VMInfosReturns([]boshdir.VMInfo{vm1InfoFake, vm2InfoFake}, nil) 301 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 302 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 303 Expect(err).NotTo(HaveOccurred()) 304 }) 305 306 It("Fails to restart the VM", func() { 307 var err error 308 deploymentFake.RestartReturns(errors.New("fake-error")) 309 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 310 err = director.GetEnv(envName).Restart("postgres") 311 Expect(err).To(Equal(errors.New("fake-error"))) 312 }) 313 314 It("Can restart the VM", func() { 315 var err error 316 deploymentFake.RestartReturns(nil) 317 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 318 err = director.GetEnv(envName).Restart("postgres") 319 Expect(err).NotTo(HaveOccurred()) 320 }) 321 322 It("Fails to stop the VM", func() { 323 var err error 324 deploymentFake.StopReturns(errors.New("fake-error")) 325 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 326 err = director.GetEnv(envName).Stop("postgres") 327 Expect(err).To(Equal(errors.New("fake-error"))) 328 }) 329 330 It("Can stop the VM", func() { 331 var err error 332 deploymentFake.StopReturns(nil) 333 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 334 err = director.GetEnv(envName).Stop("postgres") 335 Expect(err).NotTo(HaveOccurred()) 336 }) 337 It("Fails to start the VM", func() { 338 var err error 339 deploymentFake.StartReturns(errors.New("fake-error")) 340 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 341 err = director.GetEnv(envName).Start("postgres") 342 Expect(err).To(Equal(errors.New("fake-error"))) 343 }) 344 345 It("Can start the VM", func() { 346 var err error 347 deploymentFake.StartReturns(nil) 348 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 349 err = director.GetEnv(envName).Start("postgres") 350 Expect(err).NotTo(HaveOccurred()) 351 }) 352 It("Fail to pause resurrection", func() { 353 var err error 354 deploymentFake.EnableResurrectionReturns(errors.New("fake-error")) 355 err = director.GetEnv(envName).UpdateResurrection(false) 356 Expect(err).To(Equal(errors.New("fake-error"))) 357 }) 358 It("Correctly pause resurrection", func() { 359 var err error 360 fakeDirector.EnableResurrectionReturns(nil) 361 err = director.GetEnv(envName).UpdateResurrection(false) 362 Expect(err).NotTo(HaveOccurred()) 363 }) 364 It("Fail to print deployment diffs", func() { 365 var err error 366 expected := boshdir.DeploymentDiff{ 367 Diff: [][]interface{}{[]interface{}{"name: simple manifest", nil}}, 368 } 369 deploymentFake.DiffReturns(expected, errors.New("fake-error")) 370 err = director.GetEnv(envName).PrintDeploymentDiffs() 371 Expect(err).To(Equal(errors.New("fake-error"))) 372 }) 373 It("Prints the deployment diffs", func() { 374 var err error 375 expected := boshdir.DeploymentDiff{ 376 Diff: [][]interface{}{[]interface{}{"name: simple manifest", nil}}, 377 } 378 deploymentFake.DiffReturns(expected, nil) 379 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 380 err = director.GetEnv(envName).PrintDeploymentDiffs() 381 Expect(err).NotTo(HaveOccurred()) 382 }) 383 }) 384 385 Context("Getting VM information", func() { 386 387 BeforeEach(func() { 388 var err error 389 data := ` 390 director_uuid: <%= %x[bosh status --uuid] %> 391 name: test 392 ` 393 manifestFilePath, err = helpers.WriteFile(data) 394 Expect(err).NotTo(HaveOccurred()) 395 }) 396 397 It("Correctly checks if a vm is running", func() { 398 var err error 399 deploymentFake := &fakedir.FakeDeployment{} 400 vm1InfoFake := boshdir.VMInfo{ 401 JobName: "postgres", 402 ID: "xxx-xxx-xxx", 403 ProcessState: "running", 404 IPs: []string{"1.1.1.1"}, 405 Processes: []boshdir.VMInfoProcess{ 406 boshdir.VMInfoProcess{ 407 Name: "etcd", 408 State: "running", 409 }, 410 boshdir.VMInfoProcess{ 411 Name: "postgres", 412 State: "failed", 413 }, 414 }, 415 } 416 vm2InfoFake := boshdir.VMInfo{ 417 JobName: "postgres", 418 ID: "aaa-aaa-aaa-aaa", 419 ProcessState: "running", 420 IPs: []string{"2.2.2.2"}, 421 Processes: []boshdir.VMInfoProcess{}, 422 } 423 deploymentFake.VMInfosReturns([]boshdir.VMInfo{vm1InfoFake, vm2InfoFake}, nil) 424 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 425 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 426 Expect(err).NotTo(HaveOccurred()) 427 //isRunning, err := director.GetEnv(envName).IsVmRunning("aaa-aaa-aaa-aaa") 428 //Expect(err).NotTo(HaveOccurred()) 429 //Expect(isRunning).To(BeTrue()) 430 //isRunning, err = director.GetEnv(envName).IsVmRunning("xxx-xxx-xxx") 431 //Expect(err).NotTo(HaveOccurred()) 432 //Expect(isRunning).To(BeFalse()) 433 isRunning, err := director.GetEnv(envName).IsVmProcessRunning("xxx-xxx-xxx", "postgres") 434 Expect(err).NotTo(HaveOccurred()) 435 Expect(isRunning).To(BeFalse()) 436 isRunning, err = director.GetEnv(envName).IsVmProcessRunning("xxx-xxx-xxx", "etcd") 437 Expect(err).NotTo(HaveOccurred()) 438 Expect(isRunning).To(BeTrue()) 439 isRunning, err = director.GetEnv(envName).IsVmProcessRunning("aaa-aaa-aaa-aaa", "xxx") 440 Expect(err).NotTo(HaveOccurred()) 441 Expect(isRunning).To(BeFalse()) 442 _, err = director.GetEnv(envName).IsVmProcessRunning("xxx", "postgres") 443 Expect(err).To(Equal(errors.New(fmt.Sprintf(helpers.VMNotPresentMsg, "xxx")))) 444 _, err = director.GetEnv(envName).IsVmProcessRunning("xxx-xxx-xxx", "xxx") 445 Expect(err).To(Equal(errors.New(fmt.Sprintf(helpers.ProcessNotPresentInVmMsg, "xxx", "xxx-xxx-xxx")))) 446 }) 447 It("Should return an error if getting address of a non-existent vm", func() { 448 var err error 449 deploymentFake := &fakedir.FakeDeployment{} 450 deploymentFake.VMInfosReturns([]boshdir.VMInfo{}, nil) 451 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 452 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 453 Expect(err).NotTo(HaveOccurred()) 454 _, err = director.GetEnv(envName).GetVmAddress("postgres") 455 Expect(err).To(Equal(errors.New(fmt.Sprintf(helpers.VMNotPresentMsg, "postgres")))) 456 _, err = director.GetEnv(envName).GetVmAddresses("postgres") 457 Expect(err).To(Equal(errors.New(fmt.Sprintf(helpers.VMNotPresentMsg, "postgres")))) 458 _, err = director.GetEnv(envName).GetVmIdByAddress("1.1.1.1") 459 Expect(err).To(Equal(errors.New(fmt.Sprintf(helpers.VMNotPresentMsg, "1.1.1.1")))) 460 }) 461 It("Should return an error if VMInfo fails", func() { 462 var err error 463 deploymentFake := &fakedir.FakeDeployment{} 464 deploymentFake.VMInfosReturns([]boshdir.VMInfo{}, errors.New("fake-error")) 465 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 466 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 467 Expect(err).NotTo(HaveOccurred()) 468 _, err = director.GetEnv(envName).GetVmAddress("postgres") 469 Expect(err).To(Equal(errors.New("fake-error"))) 470 _, err = director.GetEnv(envName).GetVmAddresses("postgres") 471 Expect(err).To(Equal(errors.New("fake-error"))) 472 _, err = director.GetEnv(envName).GetVmIdByAddress("1.1.1.1") 473 Expect(err).To(Equal(errors.New("fake-error"))) 474 }) 475 It("Gets the proper vm address and id", func() { 476 var err error 477 deploymentFake := &fakedir.FakeDeployment{} 478 vm1InfoFake := boshdir.VMInfo{ 479 JobName: "postgres", 480 ID: "xxx-xxx-xxx", 481 IPs: []string{"1.1.1.1"}, 482 } 483 vm2InfoFake := boshdir.VMInfo{ 484 JobName: "postgres", 485 ID: "aaa-aaa-aaa-aaa", 486 IPs: []string{"2.2.2.2"}, 487 } 488 deploymentFake.VMInfosReturns([]boshdir.VMInfo{vm1InfoFake, vm2InfoFake}, nil) 489 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 490 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 491 Expect(err).NotTo(HaveOccurred()) 492 address, err := director.GetEnv(envName).GetVmAddress("postgres") 493 Expect(err).NotTo(HaveOccurred()) 494 Expect(address).To(Equal("1.1.1.1")) 495 addresses, err := director.GetEnv(envName).GetVmAddresses("postgres") 496 Expect(err).NotTo(HaveOccurred()) 497 Expect(addresses).To(Equal([]string{"1.1.1.1", "2.2.2.2"})) 498 uuid, err := director.GetEnv(envName).GetVmIdByAddress(address) 499 Expect(err).NotTo(HaveOccurred()) 500 Expect(uuid).To(Equal(vm1InfoFake.ID)) 501 }) 502 503 }) 504 }) 505 Describe("Manage properties", func() { 506 507 var ( 508 data string 509 manifestFilePath string 510 ) 511 512 AfterEach(func() { 513 err := os.Remove(manifestFilePath) 514 Expect(err).NotTo(HaveOccurred()) 515 }) 516 JustBeforeEach(func() { 517 var err error 518 manifestFilePath, err = helpers.WriteFile(data) 519 Expect(err).NotTo(HaveOccurred()) 520 deploymentFake := &fakedir.FakeDeployment{} 521 vmInfoFake := boshdir.VMInfo{ 522 JobName: "postgres", 523 IPs: []string{"1.1.1.1"}, 524 } 525 deploymentFake.VMInfosReturns([]boshdir.VMInfo{vmInfoFake}, nil) 526 fakeDirector.FindDeploymentReturns(deploymentFake, nil) 527 err = director.SetDeploymentFromManifest(manifestFilePath, nil, envName) 528 Expect(err).NotTo(HaveOccurred()) 529 }) 530 AssertPropertiesGetSuccessful := func() func() { 531 return func() { 532 var err error 533 props, err := director.GetEnv(envName).GetJobsProperties() 534 Expect(err).NotTo(HaveOccurred()) 535 expectedProps := helpers.Properties{ 536 Databases: helpers.PgProperties{ 537 Port: 1111, 538 Databases: []helpers.PgDBProperties{ 539 {Name: "pgdb"}, 540 }, 541 MaxConnections: 500, 542 LogLinePrefix: "%m: ", 543 CollectStatementStats: false, 544 Roles: []helpers.PgRoleProperties{ 545 {Name: "pguser", 546 Password: "pgpsw"}, 547 }, 548 }, 549 } 550 Expect(props.GetJobProperties("postgres")).To(Equal([]helpers.Properties{expectedProps})) 551 } 552 } 553 Context("Getting Postgres information from job section", func() { 554 555 BeforeEach(func() { 556 data = ` 557 director_uuid: <%= %x[bosh status --uuid] %> 558 name: test 559 instance_groups: 560 - azs: 561 - xx 562 instances: 1 563 jobs: 564 - name: postgres 565 release: postgres 566 properties: 567 databases: 568 port: 1111 569 databases: 570 - name: pgdb 571 roles: 572 - name: pguser 573 password: pgpsw 574 name: postgres 575 networks: 576 - name: xx 577 persistent_disk_type: xx 578 stemcell: linux 579 vm_type: xx 580 ` 581 }) 582 583 It("Correctly gets the proper postgres props", AssertPropertiesGetSuccessful()) 584 }) 585 }) 586 })