bosh-director 1.3160.0 → 1.3163.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (195) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bosh-director-worker +2 -14
  3. data/db/migrations/director/20150513225143_ip_addresses.rb +11 -0
  4. data/db/migrations/director/20150702004608_add_links.rb +8 -0
  5. data/db/migrations/director/20150708231924_add_link_spec.rb +7 -0
  6. data/db/migrations/director/20150724183256_add_debugging_to_ip_addresses.rb +8 -0
  7. data/db/migrations/director/20150730225029_add_uuid_to_instances.rb +16 -0
  8. data/db/migrations/director/20150803215805_add_availabililty_zone_and_cloud_properties_to_instances.rb +8 -0
  9. data/db/migrations/director/20150804211419_add_compilation_flag_to_instance.rb +7 -0
  10. data/db/migrations/director/20150918003455_add_bootstrap_node_to_instance.rb +7 -0
  11. data/db/migrations/director/20151008232214_add_dns_records.rb +7 -0
  12. data/db/migrations/director/20151015172551_add_orphan_disks_and_snapshots.rb +29 -0
  13. data/db/migrations/director/20151030222853_add_templates_to_instance.rb +10 -0
  14. data/db/migrations/director/20151031001039_add_spec_to_instance.rb +19 -0
  15. data/db/migrations/director/20151109190602_rename_orphan_columns.rb +13 -0
  16. data/lib/bosh/director.rb +19 -9
  17. data/lib/bosh/director/agent_client.rb +0 -17
  18. data/lib/bosh/director/api/cloud_config_manager.rb +7 -5
  19. data/lib/bosh/director/api/controllers/base_controller.rb +3 -2
  20. data/lib/bosh/director/api/controllers/cleanup_controller.rb +15 -0
  21. data/lib/bosh/director/api/controllers/deployments_controller.rb +38 -26
  22. data/lib/bosh/director/api/controllers/disks_controller.rb +20 -0
  23. data/lib/bosh/director/api/controllers/info_controller.rb +2 -2
  24. data/lib/bosh/director/api/controllers/releases_controller.rb +1 -16
  25. data/lib/bosh/director/api/controllers/stemcells_controller.rb +1 -9
  26. data/lib/bosh/director/api/deployment_manager.rb +2 -1
  27. data/lib/bosh/director/api/instance_lookup.rb +17 -0
  28. data/lib/bosh/director/api/instance_manager.rb +20 -10
  29. data/lib/bosh/director/api/release_manager.rb +28 -8
  30. data/lib/bosh/director/api/resurrector_manager.rb +9 -2
  31. data/lib/bosh/director/api/route_configuration.rb +2 -0
  32. data/lib/bosh/director/api/snapshot_manager.rb +9 -5
  33. data/lib/bosh/director/api/stemcell_manager.rb +50 -0
  34. data/lib/bosh/director/app.rb +1 -1
  35. data/lib/bosh/director/cloudcheck_helper.rb +119 -132
  36. data/lib/bosh/director/compile_task.rb +1 -1
  37. data/lib/bosh/director/compile_task_generator.rb +2 -2
  38. data/lib/bosh/director/config.rb +21 -12
  39. data/lib/bosh/director/deployment_deleter.rb +69 -0
  40. data/lib/bosh/director/deployment_plan.rb +35 -4
  41. data/lib/bosh/director/deployment_plan/agent_state_migrator.rb +47 -0
  42. data/lib/bosh/director/deployment_plan/assembler.rb +115 -241
  43. data/lib/bosh/director/deployment_plan/availability_zone.rb +27 -0
  44. data/lib/bosh/director/deployment_plan/cloud_manifest_parser.rb +144 -35
  45. data/lib/bosh/director/deployment_plan/compilation_config.rb +21 -19
  46. data/lib/bosh/director/deployment_plan/compilation_instance_pool.rb +169 -0
  47. data/lib/bosh/director/deployment_plan/deployment_repo.rb +4 -8
  48. data/lib/bosh/director/deployment_plan/deployment_spec_parser.rb +13 -1
  49. data/lib/bosh/director/deployment_plan/deployment_validator.rb +17 -0
  50. data/lib/bosh/director/deployment_plan/desired_instance.rb +15 -0
  51. data/lib/bosh/director/deployment_plan/{disk_pool.rb → disk_type.rb} +14 -19
  52. data/lib/bosh/director/deployment_plan/dynamic_network.rb +105 -53
  53. data/lib/bosh/director/deployment_plan/dynamic_network_subnet.rb +13 -0
  54. data/lib/bosh/director/deployment_plan/env.rb +18 -0
  55. data/lib/bosh/director/deployment_plan/global_network_resolver.rb +77 -0
  56. data/lib/bosh/director/deployment_plan/instance.rb +222 -390
  57. data/lib/bosh/director/deployment_plan/instance_network_reservations.rb +71 -0
  58. data/lib/bosh/director/deployment_plan/instance_plan.rb +336 -0
  59. data/lib/bosh/director/deployment_plan/instance_plan_factory.rb +54 -0
  60. data/lib/bosh/director/deployment_plan/instance_plan_sorter.rb +61 -0
  61. data/lib/bosh/director/deployment_plan/instance_planner.rb +101 -0
  62. data/lib/bosh/director/deployment_plan/instance_repository.rb +36 -0
  63. data/lib/bosh/director/deployment_plan/instance_spec.rb +154 -0
  64. data/lib/bosh/director/deployment_plan/ip_provider/database_ip_repo.rb +136 -0
  65. data/lib/bosh/director/deployment_plan/ip_provider/in_memory_ip_repo.rb +81 -0
  66. data/lib/bosh/director/deployment_plan/ip_provider/ip_provider.rb +153 -0
  67. data/lib/bosh/director/deployment_plan/ip_provider/ip_provider_factory.rb +22 -0
  68. data/lib/bosh/director/deployment_plan/job.rb +116 -53
  69. data/lib/bosh/director/deployment_plan/job_availability_zone_parser.rb +49 -0
  70. data/lib/bosh/director/deployment_plan/job_migrator.rb +90 -0
  71. data/lib/bosh/director/deployment_plan/job_network.rb +42 -0
  72. data/lib/bosh/director/deployment_plan/job_network_parser.rb +118 -0
  73. data/lib/bosh/director/deployment_plan/job_spec_parser.rb +123 -126
  74. data/lib/bosh/director/deployment_plan/links/link.rb +30 -0
  75. data/lib/bosh/director/deployment_plan/links/link_lookup.rb +66 -0
  76. data/lib/bosh/director/deployment_plan/links/link_path.rb +27 -0
  77. data/lib/bosh/director/deployment_plan/links/links_resolver.rb +70 -0
  78. data/lib/bosh/director/deployment_plan/links/template_link.rb +21 -0
  79. data/lib/bosh/director/deployment_plan/manifest_migrator.rb +3 -17
  80. data/lib/bosh/director/deployment_plan/manifest_validator.rb +46 -0
  81. data/lib/bosh/director/deployment_plan/manual_network.rb +70 -97
  82. data/lib/bosh/director/deployment_plan/manual_network_subnet.rb +148 -0
  83. data/lib/bosh/director/deployment_plan/network.rb +50 -39
  84. data/lib/bosh/director/deployment_plan/network_planner.rb +4 -0
  85. data/lib/bosh/director/deployment_plan/network_planner/plan.rb +26 -0
  86. data/lib/bosh/director/deployment_plan/network_planner/planner.rb +21 -0
  87. data/lib/bosh/director/deployment_plan/network_planner/reservation_reconciler.rb +81 -0
  88. data/lib/bosh/director/deployment_plan/network_planner/vip_static_ips_planner.rb +50 -0
  89. data/lib/bosh/director/deployment_plan/network_settings.rb +65 -0
  90. data/lib/bosh/director/deployment_plan/options/skip_drain.rb +7 -0
  91. data/lib/bosh/director/deployment_plan/package_validator.rb +79 -0
  92. data/lib/bosh/director/deployment_plan/placement_planner.rb +8 -0
  93. data/lib/bosh/director/deployment_plan/placement_planner/availability_zone_picker.rb +90 -0
  94. data/lib/bosh/director/deployment_plan/placement_planner/bruteforce_ip_allocation.rb +124 -0
  95. data/lib/bosh/director/deployment_plan/placement_planner/index_assigner.rb +32 -0
  96. data/lib/bosh/director/deployment_plan/placement_planner/networks_to_static_ips.rb +125 -0
  97. data/lib/bosh/director/deployment_plan/placement_planner/placed_desired_instances.rb +40 -0
  98. data/lib/bosh/director/deployment_plan/placement_planner/plan.rb +42 -0
  99. data/lib/bosh/director/deployment_plan/placement_planner/static_ips_availability_zone_picker.rb +237 -0
  100. data/lib/bosh/director/deployment_plan/placement_planner/unplaced_existing_instances.rb +53 -0
  101. data/lib/bosh/director/deployment_plan/planner.rb +186 -74
  102. data/lib/bosh/director/deployment_plan/planner_factory.rb +30 -147
  103. data/lib/bosh/director/deployment_plan/release_version.rb +3 -3
  104. data/lib/bosh/director/deployment_plan/resource_pool.rb +2 -174
  105. data/lib/bosh/director/deployment_plan/stemcell.rb +57 -14
  106. data/lib/bosh/director/deployment_plan/steps/package_compile_step.rb +28 -135
  107. data/lib/bosh/director/deployment_plan/steps/update_step.rb +23 -44
  108. data/lib/bosh/director/deployment_plan/template.rb +15 -4
  109. data/lib/bosh/director/deployment_plan/vip_network.rb +14 -42
  110. data/lib/bosh/director/deployment_plan/vm.rb +1 -99
  111. data/lib/bosh/director/deployment_plan/vm_type.rb +27 -0
  112. data/lib/bosh/director/disk_manager.rb +268 -0
  113. data/lib/bosh/director/dns/canonicalizer.rb +28 -0
  114. data/lib/bosh/director/dns/dns_manager.rb +163 -0
  115. data/lib/bosh/director/dns/local_dns_repo.rb +20 -0
  116. data/lib/bosh/director/dns/powerdns.rb +170 -0
  117. data/lib/bosh/director/errand/job_manager.rb +18 -29
  118. data/lib/bosh/director/error_ignorer.rb +16 -0
  119. data/lib/bosh/director/errors.rb +51 -20
  120. data/lib/bosh/director/event_log.rb +6 -0
  121. data/lib/bosh/director/instance_deleter.rb +53 -81
  122. data/lib/bosh/director/instance_reuser.rb +89 -0
  123. data/lib/bosh/director/instance_updater.rb +139 -281
  124. data/lib/bosh/director/instance_updater/preparer.rb +8 -5
  125. data/lib/bosh/director/instance_updater/state_applier.rb +21 -0
  126. data/lib/bosh/director/ip_util.rb +46 -26
  127. data/lib/bosh/director/job_renderer.rb +22 -10
  128. data/lib/bosh/director/job_runner.rb +1 -4
  129. data/lib/bosh/director/job_updater.rb +47 -35
  130. data/lib/bosh/director/job_updater_factory.rb +5 -4
  131. data/lib/bosh/director/jobs/base_job.rb +8 -0
  132. data/lib/bosh/director/jobs/cleanup_artifacts.rb +93 -0
  133. data/lib/bosh/director/jobs/delete_deployment.rb +10 -154
  134. data/lib/bosh/director/jobs/delete_deployment_snapshots.rb +1 -1
  135. data/lib/bosh/director/jobs/delete_orphan_disks.rb +44 -0
  136. data/lib/bosh/director/jobs/delete_release.rb +19 -196
  137. data/lib/bosh/director/jobs/delete_stemcell.rb +10 -76
  138. data/lib/bosh/director/jobs/export_release.rb +41 -121
  139. data/lib/bosh/director/jobs/fetch_logs.rb +0 -6
  140. data/lib/bosh/director/jobs/helpers.rb +10 -0
  141. data/lib/bosh/director/jobs/helpers/blob_deleter.rb +24 -0
  142. data/lib/bosh/director/jobs/helpers/compiled_package_deleter.rb +24 -0
  143. data/lib/bosh/director/jobs/helpers/name_version_release_deleter.rb +48 -0
  144. data/lib/bosh/director/jobs/helpers/package_deleter.rb +33 -0
  145. data/lib/bosh/director/jobs/helpers/release_deleter.rb +52 -0
  146. data/lib/bosh/director/jobs/helpers/release_version_deleter.rb +115 -0
  147. data/lib/bosh/director/jobs/helpers/releases_to_delete_picker.rb +31 -0
  148. data/lib/bosh/director/jobs/helpers/stemcell_deleter.rb +61 -0
  149. data/lib/bosh/director/jobs/helpers/stemcells_to_delete_picker.rb +30 -0
  150. data/lib/bosh/director/jobs/helpers/template_deleter.rb +20 -0
  151. data/lib/bosh/director/jobs/release/release_job.rb +18 -7
  152. data/lib/bosh/director/jobs/run_errand.rb +57 -36
  153. data/lib/bosh/director/jobs/scheduled_orphan_cleanup.rb +46 -0
  154. data/lib/bosh/director/jobs/ssh.rb +50 -17
  155. data/lib/bosh/director/jobs/update_deployment.rb +29 -11
  156. data/lib/bosh/director/jobs/update_release.rb +25 -4
  157. data/lib/bosh/director/jobs/vm_state.rb +23 -32
  158. data/lib/bosh/director/lock.rb +13 -8
  159. data/lib/bosh/director/logs_fetcher.rb +1 -1
  160. data/lib/bosh/director/models.rb +3 -0
  161. data/lib/bosh/director/models/compiled_package.rb +3 -3
  162. data/lib/bosh/director/models/deployment.rb +10 -0
  163. data/lib/bosh/director/models/instance.rb +77 -1
  164. data/lib/bosh/director/models/ip_address.rb +26 -0
  165. data/lib/bosh/director/models/orphan_disk.rb +23 -0
  166. data/lib/bosh/director/models/orphan_snapshot.rb +14 -0
  167. data/lib/bosh/director/models/template.rb +32 -9
  168. data/lib/bosh/director/models/vm.rb +5 -8
  169. data/lib/bosh/director/network_reservation.rb +69 -99
  170. data/lib/bosh/director/problem_handlers/inactive_disk.rb +5 -20
  171. data/lib/bosh/director/problem_handlers/missing_disk.rb +2 -13
  172. data/lib/bosh/director/problem_resolver.rb +2 -2
  173. data/lib/bosh/director/problem_scanner/vm_scan_stage.rb +2 -21
  174. data/lib/bosh/director/scheduler.rb +23 -6
  175. data/lib/bosh/director/{instance_updater/stopper.rb → stopper.rb} +24 -18
  176. data/lib/bosh/director/tagged_logger.rb +30 -0
  177. data/lib/bosh/director/transactor.rb +9 -0
  178. data/lib/bosh/director/version.rb +1 -1
  179. data/lib/bosh/director/vm_creator.rb +91 -19
  180. data/lib/bosh/director/vm_deleter.rb +25 -0
  181. data/lib/bosh/director/vm_recreator.rb +15 -0
  182. data/lib/cloud/dummy.rb +381 -94
  183. metadata +110 -30
  184. data/lib/bosh/director/deployment_plan/dns_binder.rb +0 -45
  185. data/lib/bosh/director/deployment_plan/instance_vm_binder.rb +0 -37
  186. data/lib/bosh/director/deployment_plan/network_subnet.rb +0 -166
  187. data/lib/bosh/director/deployment_plan/resource_pools.rb +0 -68
  188. data/lib/bosh/director/dns_helper.rb +0 -223
  189. data/lib/bosh/director/instance_updater/network_updater.rb +0 -110
  190. data/lib/bosh/director/instance_updater/vm_updater.rb +0 -189
  191. data/lib/bosh/director/problem_handlers/out_of_sync_vm.rb +0 -64
  192. data/lib/bosh/director/problem_handlers/unbound_instance_vm.rb +0 -85
  193. data/lib/bosh/director/resource_pool_updater.rb +0 -174
  194. data/lib/bosh/director/vm_data.rb +0 -63
  195. data/lib/bosh/director/vm_reuser.rb +0 -63
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh-director
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3160.0
4
+ version: 1.3163.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VMware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-18 00:00:00.000000000 Z
11
+ date: 2015-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bosh_common
@@ -16,98 +16,98 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.3160.0
19
+ version: 1.3163.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.3160.0
26
+ version: 1.3163.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bosh_cpi
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.3160.0
33
+ version: 1.3163.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.3160.0
40
+ version: 1.3163.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bosh-registry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.3160.0
47
+ version: 1.3163.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.3160.0
54
+ version: 1.3163.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: blobstore_client
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.3160.0
61
+ version: 1.3163.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.3160.0
68
+ version: 1.3163.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bosh-core
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3160.0
75
+ version: 1.3163.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3160.0
82
+ version: 1.3163.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bosh-director-core
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.3160.0
89
+ version: 1.3163.0
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.3160.0
96
+ version: 1.3163.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bosh-template
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.3160.0
103
+ version: 1.3163.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.3160.0
110
+ version: 1.3163.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: bosh_openstack_cpi
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -639,9 +639,22 @@ files:
639
639
  - db/migrations/director/20150224193313_use_larger_text_types.rb
640
640
  - db/migrations/director/20150331002413_add_cloud_configs.rb
641
641
  - db/migrations/director/20150401184803_add_cloud_config_to_deployments.rb
642
+ - db/migrations/director/20150513225143_ip_addresses.rb
642
643
  - db/migrations/director/20150611193110_add_trusted_certs_sha1_to_vms.rb
643
644
  - db/migrations/director/20150619135210_add_os_name_and_version_to_stemcells.rb
645
+ - db/migrations/director/20150702004608_add_links.rb
646
+ - db/migrations/director/20150708231924_add_link_spec.rb
644
647
  - db/migrations/director/20150716170926_allow_null_on_blobstore_id_and_sha1_on_package.rb
648
+ - db/migrations/director/20150724183256_add_debugging_to_ip_addresses.rb
649
+ - db/migrations/director/20150730225029_add_uuid_to_instances.rb
650
+ - db/migrations/director/20150803215805_add_availabililty_zone_and_cloud_properties_to_instances.rb
651
+ - db/migrations/director/20150804211419_add_compilation_flag_to_instance.rb
652
+ - db/migrations/director/20150918003455_add_bootstrap_node_to_instance.rb
653
+ - db/migrations/director/20151008232214_add_dns_records.rb
654
+ - db/migrations/director/20151015172551_add_orphan_disks_and_snapshots.rb
655
+ - db/migrations/director/20151030222853_add_templates_to_instance.rb
656
+ - db/migrations/director/20151031001039_add_spec_to_instance.rb
657
+ - db/migrations/director/20151109190602_rename_orphan_columns.rb
645
658
  - db/migrations/dns/20120123234908_initial.rb
646
659
  - lib/bosh/director.rb
647
660
  - lib/bosh/director/agent_client.rb
@@ -652,8 +665,10 @@ files:
652
665
  - lib/bosh/director/api/cloud_config_manager.rb
653
666
  - lib/bosh/director/api/controllers/backups_controller.rb
654
667
  - lib/bosh/director/api/controllers/base_controller.rb
668
+ - lib/bosh/director/api/controllers/cleanup_controller.rb
655
669
  - lib/bosh/director/api/controllers/cloud_configs_controller.rb
656
670
  - lib/bosh/director/api/controllers/deployments_controller.rb
671
+ - lib/bosh/director/api/controllers/disks_controller.rb
657
672
  - lib/bosh/director/api/controllers/info_controller.rb
658
673
  - lib/bosh/director/api/controllers/locks_controller.rb
659
674
  - lib/bosh/director/api/controllers/packages_controller.rb
@@ -708,32 +723,75 @@ files:
708
723
  - lib/bosh/director/db_backup/adapter/postgres.rb
709
724
  - lib/bosh/director/db_backup/adapter/sqlite.rb
710
725
  - lib/bosh/director/db_backup/error.rb
726
+ - lib/bosh/director/deployment_deleter.rb
711
727
  - lib/bosh/director/deployment_plan.rb
728
+ - lib/bosh/director/deployment_plan/agent_state_migrator.rb
712
729
  - lib/bosh/director/deployment_plan/assembler.rb
730
+ - lib/bosh/director/deployment_plan/availability_zone.rb
713
731
  - lib/bosh/director/deployment_plan/cloud_manifest_parser.rb
714
732
  - lib/bosh/director/deployment_plan/compilation_config.rb
733
+ - lib/bosh/director/deployment_plan/compilation_instance_pool.rb
715
734
  - lib/bosh/director/deployment_plan/compiled_package.rb
716
735
  - lib/bosh/director/deployment_plan/deployment_repo.rb
717
736
  - lib/bosh/director/deployment_plan/deployment_spec_parser.rb
718
- - lib/bosh/director/deployment_plan/disk_pool.rb
719
- - lib/bosh/director/deployment_plan/dns_binder.rb
737
+ - lib/bosh/director/deployment_plan/deployment_validator.rb
738
+ - lib/bosh/director/deployment_plan/desired_instance.rb
739
+ - lib/bosh/director/deployment_plan/disk_type.rb
720
740
  - lib/bosh/director/deployment_plan/dynamic_network.rb
741
+ - lib/bosh/director/deployment_plan/dynamic_network_subnet.rb
742
+ - lib/bosh/director/deployment_plan/env.rb
743
+ - lib/bosh/director/deployment_plan/global_network_resolver.rb
721
744
  - lib/bosh/director/deployment_plan/instance.rb
722
- - lib/bosh/director/deployment_plan/instance_vm_binder.rb
745
+ - lib/bosh/director/deployment_plan/instance_network_reservations.rb
746
+ - lib/bosh/director/deployment_plan/instance_plan.rb
747
+ - lib/bosh/director/deployment_plan/instance_plan_factory.rb
748
+ - lib/bosh/director/deployment_plan/instance_plan_sorter.rb
749
+ - lib/bosh/director/deployment_plan/instance_planner.rb
750
+ - lib/bosh/director/deployment_plan/instance_repository.rb
751
+ - lib/bosh/director/deployment_plan/instance_spec.rb
752
+ - lib/bosh/director/deployment_plan/ip_provider/database_ip_repo.rb
753
+ - lib/bosh/director/deployment_plan/ip_provider/in_memory_ip_repo.rb
754
+ - lib/bosh/director/deployment_plan/ip_provider/ip_provider.rb
755
+ - lib/bosh/director/deployment_plan/ip_provider/ip_provider_factory.rb
723
756
  - lib/bosh/director/deployment_plan/job.rb
757
+ - lib/bosh/director/deployment_plan/job_availability_zone_parser.rb
758
+ - lib/bosh/director/deployment_plan/job_migrator.rb
759
+ - lib/bosh/director/deployment_plan/job_network.rb
760
+ - lib/bosh/director/deployment_plan/job_network_parser.rb
724
761
  - lib/bosh/director/deployment_plan/job_spec_parser.rb
762
+ - lib/bosh/director/deployment_plan/links/link.rb
763
+ - lib/bosh/director/deployment_plan/links/link_lookup.rb
764
+ - lib/bosh/director/deployment_plan/links/link_path.rb
765
+ - lib/bosh/director/deployment_plan/links/links_resolver.rb
766
+ - lib/bosh/director/deployment_plan/links/template_link.rb
725
767
  - lib/bosh/director/deployment_plan/manifest_migrator.rb
768
+ - lib/bosh/director/deployment_plan/manifest_validator.rb
726
769
  - lib/bosh/director/deployment_plan/manual_network.rb
770
+ - lib/bosh/director/deployment_plan/manual_network_subnet.rb
727
771
  - lib/bosh/director/deployment_plan/multi_job_updater.rb
728
772
  - lib/bosh/director/deployment_plan/network.rb
729
- - lib/bosh/director/deployment_plan/network_subnet.rb
773
+ - lib/bosh/director/deployment_plan/network_planner.rb
774
+ - lib/bosh/director/deployment_plan/network_planner/plan.rb
775
+ - lib/bosh/director/deployment_plan/network_planner/planner.rb
776
+ - lib/bosh/director/deployment_plan/network_planner/reservation_reconciler.rb
777
+ - lib/bosh/director/deployment_plan/network_planner/vip_static_ips_planner.rb
778
+ - lib/bosh/director/deployment_plan/network_settings.rb
730
779
  - lib/bosh/director/deployment_plan/notifier.rb
731
780
  - lib/bosh/director/deployment_plan/options/skip_drain.rb
781
+ - lib/bosh/director/deployment_plan/package_validator.rb
782
+ - lib/bosh/director/deployment_plan/placement_planner.rb
783
+ - lib/bosh/director/deployment_plan/placement_planner/availability_zone_picker.rb
784
+ - lib/bosh/director/deployment_plan/placement_planner/bruteforce_ip_allocation.rb
785
+ - lib/bosh/director/deployment_plan/placement_planner/index_assigner.rb
786
+ - lib/bosh/director/deployment_plan/placement_planner/networks_to_static_ips.rb
787
+ - lib/bosh/director/deployment_plan/placement_planner/placed_desired_instances.rb
788
+ - lib/bosh/director/deployment_plan/placement_planner/plan.rb
789
+ - lib/bosh/director/deployment_plan/placement_planner/static_ips_availability_zone_picker.rb
790
+ - lib/bosh/director/deployment_plan/placement_planner/unplaced_existing_instances.rb
732
791
  - lib/bosh/director/deployment_plan/planner.rb
733
792
  - lib/bosh/director/deployment_plan/planner_factory.rb
734
793
  - lib/bosh/director/deployment_plan/release_version.rb
735
794
  - lib/bosh/director/deployment_plan/resource_pool.rb
736
- - lib/bosh/director/deployment_plan/resource_pools.rb
737
795
  - lib/bosh/director/deployment_plan/stemcell.rb
738
796
  - lib/bosh/director/deployment_plan/steps/package_compile_step.rb
739
797
  - lib/bosh/director/deployment_plan/steps/update_step.rb
@@ -741,7 +799,12 @@ files:
741
799
  - lib/bosh/director/deployment_plan/update_config.rb
742
800
  - lib/bosh/director/deployment_plan/vip_network.rb
743
801
  - lib/bosh/director/deployment_plan/vm.rb
744
- - lib/bosh/director/dns_helper.rb
802
+ - lib/bosh/director/deployment_plan/vm_type.rb
803
+ - lib/bosh/director/disk_manager.rb
804
+ - lib/bosh/director/dns/canonicalizer.rb
805
+ - lib/bosh/director/dns/dns_manager.rb
806
+ - lib/bosh/director/dns/local_dns_repo.rb
807
+ - lib/bosh/director/dns/powerdns.rb
745
808
  - lib/bosh/director/download_helper.rb
746
809
  - lib/bosh/director/duration.rb
747
810
  - lib/bosh/director/encryption_helper.rb
@@ -749,16 +812,16 @@ files:
749
812
  - lib/bosh/director/errand/job_manager.rb
750
813
  - lib/bosh/director/errand/result.rb
751
814
  - lib/bosh/director/errand/runner.rb
815
+ - lib/bosh/director/error_ignorer.rb
752
816
  - lib/bosh/director/errors.rb
753
817
  - lib/bosh/director/event_log.rb
754
818
  - lib/bosh/director/ext.rb
755
819
  - lib/bosh/director/hash_string_vals.rb
756
820
  - lib/bosh/director/instance_deleter.rb
821
+ - lib/bosh/director/instance_reuser.rb
757
822
  - lib/bosh/director/instance_updater.rb
758
- - lib/bosh/director/instance_updater/network_updater.rb
759
823
  - lib/bosh/director/instance_updater/preparer.rb
760
- - lib/bosh/director/instance_updater/stopper.rb
761
- - lib/bosh/director/instance_updater/vm_updater.rb
824
+ - lib/bosh/director/instance_updater/state_applier.rb
762
825
  - lib/bosh/director/ip_util.rb
763
826
  - lib/bosh/director/job_queue.rb
764
827
  - lib/bosh/director/job_renderer.rb
@@ -767,20 +830,34 @@ files:
767
830
  - lib/bosh/director/job_updater_factory.rb
768
831
  - lib/bosh/director/jobs/backup.rb
769
832
  - lib/bosh/director/jobs/base_job.rb
833
+ - lib/bosh/director/jobs/cleanup_artifacts.rb
770
834
  - lib/bosh/director/jobs/cloud_check/apply_resolutions.rb
771
835
  - lib/bosh/director/jobs/cloud_check/scan.rb
772
836
  - lib/bosh/director/jobs/cloud_check/scan_and_fix.rb
773
837
  - lib/bosh/director/jobs/create_snapshot.rb
774
838
  - lib/bosh/director/jobs/delete_deployment.rb
775
839
  - lib/bosh/director/jobs/delete_deployment_snapshots.rb
840
+ - lib/bosh/director/jobs/delete_orphan_disks.rb
776
841
  - lib/bosh/director/jobs/delete_release.rb
777
842
  - lib/bosh/director/jobs/delete_snapshots.rb
778
843
  - lib/bosh/director/jobs/delete_stemcell.rb
779
844
  - lib/bosh/director/jobs/export_release.rb
780
845
  - lib/bosh/director/jobs/fetch_logs.rb
846
+ - lib/bosh/director/jobs/helpers.rb
847
+ - lib/bosh/director/jobs/helpers/blob_deleter.rb
848
+ - lib/bosh/director/jobs/helpers/compiled_package_deleter.rb
849
+ - lib/bosh/director/jobs/helpers/name_version_release_deleter.rb
850
+ - lib/bosh/director/jobs/helpers/package_deleter.rb
851
+ - lib/bosh/director/jobs/helpers/release_deleter.rb
852
+ - lib/bosh/director/jobs/helpers/release_version_deleter.rb
853
+ - lib/bosh/director/jobs/helpers/releases_to_delete_picker.rb
854
+ - lib/bosh/director/jobs/helpers/stemcell_deleter.rb
855
+ - lib/bosh/director/jobs/helpers/stemcells_to_delete_picker.rb
856
+ - lib/bosh/director/jobs/helpers/template_deleter.rb
781
857
  - lib/bosh/director/jobs/release/release_job.rb
782
858
  - lib/bosh/director/jobs/run_errand.rb
783
859
  - lib/bosh/director/jobs/scheduled_backup.rb
860
+ - lib/bosh/director/jobs/scheduled_orphan_cleanup.rb
784
861
  - lib/bosh/director/jobs/snapshot_deployment.rb
785
862
  - lib/bosh/director/jobs/snapshot_deployments.rb
786
863
  - lib/bosh/director/jobs/snapshot_self.rb
@@ -805,7 +882,10 @@ files:
805
882
  - lib/bosh/director/models/dns/record.rb
806
883
  - lib/bosh/director/models/helpers/model_helper.rb
807
884
  - lib/bosh/director/models/instance.rb
885
+ - lib/bosh/director/models/ip_address.rb
808
886
  - lib/bosh/director/models/log_bundle.rb
887
+ - lib/bosh/director/models/orphan_disk.rb
888
+ - lib/bosh/director/models/orphan_snapshot.rb
809
889
  - lib/bosh/director/models/package.rb
810
890
  - lib/bosh/director/models/persistent_disk.rb
811
891
  - lib/bosh/director/models/release.rb
@@ -825,8 +905,6 @@ files:
825
905
  - lib/bosh/director/problem_handlers/missing_disk.rb
826
906
  - lib/bosh/director/problem_handlers/missing_vm.rb
827
907
  - lib/bosh/director/problem_handlers/mount_info_mismatch.rb
828
- - lib/bosh/director/problem_handlers/out_of_sync_vm.rb
829
- - lib/bosh/director/problem_handlers/unbound_instance_vm.rb
830
908
  - lib/bosh/director/problem_handlers/unresponsive_agent.rb
831
909
  - lib/bosh/director/problem_resolver.rb
832
910
  - lib/bosh/director/problem_scanner/disk_scan_stage.rb
@@ -834,18 +912,20 @@ files:
834
912
  - lib/bosh/director/problem_scanner/scanner.rb
835
913
  - lib/bosh/director/problem_scanner/vm_scan_stage.rb
836
914
  - lib/bosh/director/rendered_job_templates_cleaner.rb
837
- - lib/bosh/director/resource_pool_updater.rb
838
915
  - lib/bosh/director/scheduler.rb
839
916
  - lib/bosh/director/sequel.rb
840
917
  - lib/bosh/director/stale_file_killer.rb
918
+ - lib/bosh/director/stopper.rb
919
+ - lib/bosh/director/tagged_logger.rb
841
920
  - lib/bosh/director/task_result_file.rb
842
921
  - lib/bosh/director/thread_pool.rb
922
+ - lib/bosh/director/transactor.rb
843
923
  - lib/bosh/director/validation_helper.rb
844
924
  - lib/bosh/director/version.rb
845
925
  - lib/bosh/director/vm_creator.rb
846
- - lib/bosh/director/vm_data.rb
926
+ - lib/bosh/director/vm_deleter.rb
847
927
  - lib/bosh/director/vm_metadata_updater.rb
848
- - lib/bosh/director/vm_reuser.rb
928
+ - lib/bosh/director/vm_recreator.rb
849
929
  - lib/cloud/dummy.rb
850
930
  homepage: https://github.com/cloudfoundry/bosh
851
931
  licenses:
@@ -1,45 +0,0 @@
1
- module Bosh::Director
2
- class DeploymentPlan::DnsBinder
3
- include DnsHelper
4
-
5
- def initialize(deployment)
6
- @deployment = deployment
7
- @config = Config
8
- end
9
-
10
- def bind_deployment
11
- return unless @config.dns_enabled?
12
-
13
- domain = Models::Dns::Domain.find_or_create(
14
- :name => dns_domain_name,
15
- :type => 'NATIVE',
16
- )
17
- @deployment.dns_domain = domain
18
-
19
- soa_record = Models::Dns::Record.find_or_create(
20
- :domain_id => domain.id,
21
- :name => dns_domain_name,
22
- :type => 'SOA',
23
- )
24
- soa_record.content = SOA
25
- soa_record.ttl = 300
26
- soa_record.save
27
-
28
- # add NS record
29
- Models::Dns::Record.find_or_create(
30
- :domain_id => domain.id,
31
- :name => dns_domain_name,
32
- :type =>'NS', :ttl => TTL_4H,
33
- :content => dns_ns_record,
34
- )
35
-
36
- # add A record for name server
37
- Models::Dns::Record.find_or_create(
38
- :domain_id => domain.id,
39
- :name => dns_ns_record,
40
- :type =>'A', :ttl => TTL_4H,
41
- :content => @config.dns['address'],
42
- )
43
- end
44
- end
45
- end
@@ -1,37 +0,0 @@
1
- module Bosh::Director
2
- class DeploymentPlan::InstanceVmBinder
3
- def initialize(event_log)
4
- @event_log = event_log
5
- end
6
-
7
- # @param [Array<DeploymentPlan::Instance>]
8
- # instances All instances to consider for binding to a VM
9
- def bind_instance_vms(instances)
10
- unbound_instances = []
11
-
12
- instances.each do |instance|
13
- # Don't allocate resource pool VMs to instances in detached state
14
- next if instance.state == 'detached'
15
-
16
- # Skip bound instances
17
- next if instance.model.vm
18
-
19
- unbound_instances << instance
20
- end
21
-
22
- return if unbound_instances.empty?
23
-
24
- @event_log.begin_stage('Binding instance VMs', unbound_instances.size)
25
-
26
- ThreadPool.new(:max_threads => Config.max_threads).wrap do |pool|
27
- unbound_instances.each do |instance|
28
- pool.process do
29
- @event_log.track("#{instance.job.name}/#{instance.index}") do
30
- instance.apply_partial_vm_state
31
- end
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,166 +0,0 @@
1
- # Copyright (c) 2009-2012 VMware, Inc.
2
-
3
- module Bosh::Director
4
- module DeploymentPlan
5
- class NetworkSubnet
6
- include DnsHelper
7
- include IpUtil
8
- include ValidationHelper
9
-
10
- # @return [DeploymentPlan::Network] Network this subnet belongs to
11
- attr_reader :network
12
-
13
- # @return [NetAddr::CIDR] Subnet range
14
- attr_reader :range
15
-
16
- # @return [NetAddr::CIDR] Subnet gateway IP address
17
- attr_reader :gateway
18
-
19
- # @return [Array<String>] Subnet DNS IP addresses
20
- attr_reader :dns
21
-
22
- # @return [Hash] Subnet cloud properties (VLAN etc.)
23
- attr_reader :cloud_properties
24
-
25
- # @return [String] Subnet netmask
26
- attr_reader :netmask
27
-
28
- # @param [DeploymentPlan::Network] network Network
29
- # @param [Hash] subnet_spec Raw subnet spec from deployment manifest
30
- def initialize(network, subnet_spec)
31
- @network = network
32
-
33
- range_property = safe_property(subnet_spec, "range", :class => String)
34
- @range = NetAddr::CIDR.create(range_property)
35
-
36
- if @range.size <= 1
37
- raise NetworkInvalidRange,
38
- "Invalid network range `#{range_property}', " +
39
- "should include at least 2 IPs"
40
- end
41
-
42
- @netmask = @range.wildcard_mask
43
- network_id = @range.network(:Objectify => true)
44
- broadcast = @range.broadcast(:Objectify => true)
45
-
46
- ignore_missing_gateway = Bosh::Director::Config.ignore_missing_gateway
47
- gateway_property = safe_property(subnet_spec, "gateway", class: String, optional: ignore_missing_gateway)
48
- if gateway_property
49
- @gateway = NetAddr::CIDR.create(gateway_property)
50
- unless @gateway.size == 1
51
- invalid_gateway("must be a single IP")
52
- end
53
- unless @range.contains?(@gateway)
54
- invalid_gateway("must be inside the range")
55
- end
56
- if @gateway == network_id
57
- invalid_gateway("can't be the network id")
58
- end
59
- if @gateway == broadcast
60
- invalid_gateway("can't be the broadcast IP")
61
- end
62
- end
63
-
64
- @dns = dns_servers(@network.name, subnet_spec)
65
-
66
- @cloud_properties = safe_property(subnet_spec, "cloud_properties", class: Hash, default: {})
67
-
68
- @available_dynamic_ips = Set.new
69
- @available_static_ips = Set.new
70
-
71
- first_ip = @range.first(:Objectify => true)
72
- last_ip = @range.last(:Objectify => true)
73
-
74
- (first_ip.to_i .. last_ip.to_i).each do |ip|
75
- @available_dynamic_ips << ip
76
- end
77
-
78
- @available_dynamic_ips.delete(@gateway.to_i) if @gateway
79
- @available_dynamic_ips.delete(network_id.to_i)
80
- @available_dynamic_ips.delete(broadcast.to_i)
81
-
82
- reserved_ips = safe_property(subnet_spec, "reserved", :optional => true)
83
- static_ips = safe_property(subnet_spec, "static", :optional => true)
84
-
85
- each_ip(reserved_ips) do |ip|
86
- unless @available_dynamic_ips.delete?(ip)
87
- raise NetworkReservedIpOutOfRange,
88
- "Reserved IP `#{format_ip(ip)}' is out of " +
89
- "network `#{@network.name}' range"
90
- end
91
- end
92
-
93
- each_ip(static_ips) do |ip|
94
- unless @available_dynamic_ips.delete?(ip)
95
- raise NetworkStaticIpOutOfRange,
96
- "Static IP `#{format_ip(ip)}' is out of " +
97
- "network `#{@network.name}' range"
98
- end
99
- @available_static_ips.add(ip)
100
- end
101
-
102
- # Keeping track of initial pools to understand
103
- # where to release no longer needed IPs
104
- @dynamic_ip_pool = @available_dynamic_ips.dup
105
- @static_ip_pool = @available_static_ips.dup
106
- end
107
-
108
- def overlaps?(subnet)
109
- @range == subnet.range ||
110
- @range.contains?(subnet.range) ||
111
- subnet.range.contains?(@range)
112
- end
113
-
114
- def reserve_ip(ip)
115
- ip = ip.to_i
116
- if @available_static_ips.delete?(ip)
117
- :static
118
- elsif @available_dynamic_ips.delete?(ip)
119
- :dynamic
120
- else
121
- nil
122
- end
123
- end
124
-
125
- def release_ip(ip)
126
- ip = ip.to_i
127
- if @dynamic_ip_pool.include?(ip)
128
- @available_dynamic_ips.add(ip)
129
- elsif @static_ip_pool.include?(ip)
130
- @available_static_ips.add(ip)
131
- else
132
- raise NetworkReservationIpNotOwned,
133
- "Can't release IP `#{format_ip(ip)}' " +
134
- "back to `#{@network.name}' network: " +
135
- "it's' neither in dynamic nor in static pool"
136
- end
137
- end
138
-
139
- def allocate_dynamic_ip
140
- ip = @available_dynamic_ips.first
141
- if ip
142
- @available_dynamic_ips.delete(ip)
143
- end
144
- ip
145
- end
146
-
147
- def dynamic_ips_count
148
- @available_dynamic_ips.size
149
- end
150
-
151
- def static_ips_count
152
- @available_static_ips.size
153
- end
154
-
155
- private
156
-
157
- # @param [String] reason
158
- # @raise NetworkInvalidGateway
159
- def invalid_gateway(reason)
160
- raise NetworkInvalidGateway,
161
- "Invalid gateway for network `#{@network.name}': #{reason}"
162
- end
163
-
164
- end
165
- end
166
- end