vagrant-skytap 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/vagrant-skytap/action/add_vm_to_environment.rb +4 -4
  4. data/lib/vagrant-skytap/action/compose_environment.rb +131 -0
  5. data/lib/vagrant-skytap/action/create_environment.rb +3 -1
  6. data/lib/vagrant-skytap/action/initialize_api_client.rb +6 -5
  7. data/lib/vagrant-skytap/action/set_up_vm.rb +3 -1
  8. data/lib/vagrant-skytap/action/store_extra_data.rb +4 -2
  9. data/lib/vagrant-skytap/action.rb +4 -17
  10. data/lib/vagrant-skytap/api/environment.rb +53 -25
  11. data/lib/vagrant-skytap/api/vm.rb +9 -3
  12. data/lib/vagrant-skytap/command/up.rb +46 -30
  13. data/lib/vagrant-skytap/errors.rb +4 -0
  14. data/lib/vagrant-skytap/version.rb +1 -1
  15. data/locales/en.yml +5 -1
  16. data/spec/unit/actions/compose_environment_spec.rb +101 -0
  17. data/spec/unit/environment_spec.rb +26 -45
  18. data/spec/unit/support/shared/skytap_context.rb +5 -0
  19. data/vagrant-skytap.gemspec +3 -3
  20. metadata +9 -311
  21. data/.byebug_history +0 -256
  22. data/.project +0 -11
  23. data/_patches-20160112/0 +0 -388
  24. data/_patches-20160112/1 +0 -82
  25. data/_patches-20160112/2 +0 -239
  26. data/_patches-20160112/COMPLETED-ABOVE-THIS-LINE +0 -4
  27. data/_patches-20160112/COMPLETED-BELOW-THIS-LINE +0 -4
  28. data/_patches-20160112/CR-ABOVE-THIS-LINE +0 -4
  29. data/_patches-20160112/CR-BELOW-THIS-LINE +0 -4
  30. data/_patches-20160112/WIP-ABOVE-THIS-LINE +0 -4
  31. data/_patches-20160112/WIP-BELOW-THIS-LINE +0 -4
  32. data/_patches-20160112/acceptance-test-runner +0 -29
  33. data/_patches-20160112/ansible-1 +0 -92
  34. data/_patches-20160112/cache-api-client-in-up +0 -40
  35. data/_patches-20160112/dead-code-in-actions +0 -44
  36. data/_patches-20160112/debug-changes +0 -42
  37. data/_patches-20160112/demo-rails-app +0 -1276
  38. data/_patches-20160112/eng-10166-halt-spec +0 -40
  39. data/_patches-20160112/eng-10256 +0 -527
  40. data/_patches-20160112/eng-10256-2 +0 -162
  41. data/_patches-20160112/eng-10256-ubuntu-testing +0 -88
  42. data/_patches-20160112/eng-10269-test-stuff +0 -87
  43. data/_patches-20160112/eng-10269-wtf +0 -119
  44. data/_patches-20160112/eng-10369 +0 -143
  45. data/_patches-20160112/eng-10369-tmp +0 -60
  46. data/_patches-20160112/eng-10919 +0 -56
  47. data/_patches-20160112/eng-11177-fix-actions-requires +0 -44
  48. data/_patches-20160112/eng-11442 +0 -4
  49. data/_patches-20160112/eng-11616 +0 -403
  50. data/_patches-20160112/eng-11616-2 +0 -67
  51. data/_patches-20160112/eng-11616-actual +0 -184
  52. data/_patches-20160112/eng-11625a +0 -4
  53. data/_patches-20160112/eng-11711 +0 -85
  54. data/_patches-20160112/eng-12232-command-spec +0 -236
  55. data/_patches-20160112/eng-12235 +0 -83
  56. data/_patches-20160112/eng-12235-override-refactor +0 -140
  57. data/_patches-20160112/eng-12240 +0 -103
  58. data/_patches-20160112/eng-12249 +0 -40
  59. data/_patches-20160112/eng-12301 +0 -50
  60. data/_patches-20160112/eng-12843 +0 -95
  61. data/_patches-20160112/env-source +0 -112
  62. data/_patches-20160112/frickin-vagrant-spec +0 -163
  63. data/_patches-20160112/gem-pre-version +0 -14
  64. data/_patches-20160112/gems-old +0 -9
  65. data/_patches-20160112/googles-specs +0 -713
  66. data/_patches-20160112/local-configs-ignore +0 -61
  67. data/_patches-20160112/misc +0 -79
  68. data/_patches-20160112/network-unreachable +0 -31
  69. data/_patches-20160112/new-boxfile +0 -288
  70. data/_patches-20160112/parallelization-maybe +0 -198
  71. data/_patches-20160112/read-state +0 -23
  72. data/_patches-20160112/refactor-to-use-public_address-cap +0 -25
  73. data/_patches-20160112/series +0 -60
  74. data/_patches-20160112/status +0 -12
  75. data/_patches-20160112/test-move-env-data +0 -231
  76. data/_patches-20160112/test-vagrantfile-vm1 +0 -167
  77. data/_patches-20160112/the_version_in_0.1.13.pre1 +0 -598
  78. data/_patches-20160112/vagrant-spec-mock-api +0 -137
  79. data/_patches-20160112/vagrant-vmware-plugin +0 -233
  80. data/_patches-20160112/vagrantfile +0 -403
  81. data/_patches-20160112/vagrantfile-for-acceptance-tests +0 -29
  82. data/_patches-20160112/vagrantfile-for-nick +0 -95
  83. data/_patches-20160112/vagrantfiles-to-forget-what-they-are-for +0 -134
  84. data/_patches-20160112/vm-vanished +0 -42
  85. data/_patches-20160112a/01 +0 -148
  86. data/_patches-20160112a/2 +0 -239
  87. data/_patches-20160112a/COMPLETED-ABOVE-THIS-LINE +0 -4
  88. data/_patches-20160112a/COMPLETED-BELOW-THIS-LINE +0 -4
  89. data/_patches-20160112a/CR-ABOVE-THIS-LINE +0 -4
  90. data/_patches-20160112a/CR-BELOW-THIS-LINE +0 -4
  91. data/_patches-20160112a/WIP-ABOVE-THIS-LINE +0 -4
  92. data/_patches-20160112a/WIP-BELOW-THIS-LINE +0 -4
  93. data/_patches-20160112a/acceptance-test-runner +0 -29
  94. data/_patches-20160112a/ansible-1 +0 -92
  95. data/_patches-20160112a/cache-api-client-in-up +0 -40
  96. data/_patches-20160112a/dead-code-in-actions +0 -44
  97. data/_patches-20160112a/debug-changes +0 -42
  98. data/_patches-20160112a/demo-rails-app +0 -1276
  99. data/_patches-20160112a/eng-10166-halt-spec +0 -40
  100. data/_patches-20160112a/eng-10256-ubuntu-testing +0 -88
  101. data/_patches-20160112a/eng-10269-test-stuff +0 -87
  102. data/_patches-20160112a/eng-10269-wtf +0 -119
  103. data/_patches-20160112a/eng-10369 +0 -143
  104. data/_patches-20160112a/eng-10369-tmp +0 -60
  105. data/_patches-20160112a/eng-10919 +0 -56
  106. data/_patches-20160112a/eng-11177-fix-actions-requires +0 -44
  107. data/_patches-20160112a/eng-11442 +0 -4
  108. data/_patches-20160112a/eng-11616 +0 -403
  109. data/_patches-20160112a/eng-11616-2 +0 -67
  110. data/_patches-20160112a/eng-11616-actual +0 -184
  111. data/_patches-20160112a/eng-11625a +0 -4
  112. data/_patches-20160112a/eng-11711 +0 -85
  113. data/_patches-20160112a/eng-12232-command-spec +0 -236
  114. data/_patches-20160112a/eng-12235 +0 -83
  115. data/_patches-20160112a/eng-12235-override-refactor +0 -140
  116. data/_patches-20160112a/eng-12240 +0 -103
  117. data/_patches-20160112a/eng-12249 +0 -40
  118. data/_patches-20160112a/eng-12301 +0 -50
  119. data/_patches-20160112a/eng-12843 +0 -95
  120. data/_patches-20160112a/env-source +0 -112
  121. data/_patches-20160112a/frickin-vagrant-spec +0 -163
  122. data/_patches-20160112a/gem-pre-version +0 -14
  123. data/_patches-20160112a/gems-old +0 -9
  124. data/_patches-20160112a/googles-specs +0 -713
  125. data/_patches-20160112a/local-configs-ignore +0 -61
  126. data/_patches-20160112a/misc +0 -79
  127. data/_patches-20160112a/network-unreachable +0 -31
  128. data/_patches-20160112a/new-boxfile +0 -288
  129. data/_patches-20160112a/parallelization-maybe +0 -198
  130. data/_patches-20160112a/read-state +0 -23
  131. data/_patches-20160112a/refactor-to-use-public_address-cap +0 -25
  132. data/_patches-20160112a/series +0 -58
  133. data/_patches-20160112a/status +0 -14
  134. data/_patches-20160112a/test-move-env-data +0 -231
  135. data/_patches-20160112a/test-vagrantfile-vm1 +0 -167
  136. data/_patches-20160112a/the_version_in_0.1.13.pre1 +0 -612
  137. data/_patches-20160112a/then-copy-the-newer-files +0 -632
  138. data/_patches-20160112a/vagrant-spec-mock-api +0 -137
  139. data/_patches-20160112a/vagrant-vmware-plugin +0 -233
  140. data/_patches-20160112a/vagrantfile +0 -403
  141. data/_patches-20160112a/vagrantfile-for-acceptance-tests +0 -29
  142. data/_patches-20160112a/vagrantfile-for-nick +0 -95
  143. data/_patches-20160112a/vagrantfiles-to-forget-what-they-are-for +0 -134
  144. data/_patches-20160112a/vm-vanished +0 -42
  145. data/_patches-20160113/COMPLETED-ABOVE-THIS-LINE +0 -4
  146. data/_patches-20160113/COMPLETED-BELOW-THIS-LINE +0 -4
  147. data/_patches-20160113/CR-ABOVE-THIS-LINE +0 -4
  148. data/_patches-20160113/CR-BELOW-THIS-LINE +0 -4
  149. data/_patches-20160113/WIP-ABOVE-THIS-LINE +0 -4
  150. data/_patches-20160113/WIP-BELOW-THIS-LINE +0 -4
  151. data/_patches-20160113/acceptance-test-runner +0 -29
  152. data/_patches-20160113/ansible-1 +0 -92
  153. data/_patches-20160113/cache-api-client-in-up +0 -40
  154. data/_patches-20160113/dead-code-in-actions +0 -44
  155. data/_patches-20160113/debug-changes +0 -55
  156. data/_patches-20160113/demo-rails-app +0 -1276
  157. data/_patches-20160113/eng-10166-halt-spec +0 -40
  158. data/_patches-20160113/eng-10256 +0 -543
  159. data/_patches-20160113/eng-10256-ubuntu-testing +0 -88
  160. data/_patches-20160113/eng-10269-test-stuff +0 -87
  161. data/_patches-20160113/eng-10269-wtf +0 -119
  162. data/_patches-20160113/eng-10369 +0 -143
  163. data/_patches-20160113/eng-10369-tmp +0 -60
  164. data/_patches-20160113/eng-10919 +0 -56
  165. data/_patches-20160113/eng-11177-fix-actions-requires +0 -44
  166. data/_patches-20160113/eng-11442 +0 -4
  167. data/_patches-20160113/eng-11616 +0 -403
  168. data/_patches-20160113/eng-11616-2 +0 -67
  169. data/_patches-20160113/eng-11616-actual +0 -184
  170. data/_patches-20160113/eng-11625a +0 -4
  171. data/_patches-20160113/eng-11711 +0 -85
  172. data/_patches-20160113/eng-12232-command-spec +0 -236
  173. data/_patches-20160113/eng-12235 +0 -83
  174. data/_patches-20160113/eng-12235-override-refactor +0 -140
  175. data/_patches-20160113/eng-12240 +0 -103
  176. data/_patches-20160113/eng-12249 +0 -40
  177. data/_patches-20160113/eng-12301 +0 -50
  178. data/_patches-20160113/eng-12720 +0 -47
  179. data/_patches-20160113/eng-12843 +0 -95
  180. data/_patches-20160113/env-source +0 -112
  181. data/_patches-20160113/frickin-vagrant-spec +0 -163
  182. data/_patches-20160113/gem-pre-version +0 -14
  183. data/_patches-20160113/gems-old +0 -9
  184. data/_patches-20160113/googles-specs +0 -713
  185. data/_patches-20160113/local-configs-ignore +0 -61
  186. data/_patches-20160113/misc +0 -79
  187. data/_patches-20160113/network-unreachable +0 -31
  188. data/_patches-20160113/new-boxfile +0 -288
  189. data/_patches-20160113/parallelization-maybe +0 -198
  190. data/_patches-20160113/read-state +0 -23
  191. data/_patches-20160113/refactor-to-use-public_address-cap +0 -25
  192. data/_patches-20160113/series +0 -56
  193. data/_patches-20160113/status +0 -14
  194. data/_patches-20160113/test-move-env-data +0 -231
  195. data/_patches-20160113/test-vagrantfile-vm1 +0 -167
  196. data/_patches-20160113/vagrant-spec-mock-api +0 -137
  197. data/_patches-20160113/vagrant-vmware-plugin +0 -233
  198. data/_patches-20160113/vagrantfile +0 -403
  199. data/_patches-20160113/vagrantfile-for-acceptance-tests +0 -29
  200. data/_patches-20160113/vagrantfile-for-nick +0 -95
  201. data/_patches-20160113/vagrantfiles-to-forget-what-they-are-for +0 -134
  202. data/_patches-20160113/vm-vanished +0 -42
  203. data/_patches-20160118/COMPLETED-ABOVE-THIS-LINE +0 -4
  204. data/_patches-20160118/COMPLETED-BELOW-THIS-LINE +0 -4
  205. data/_patches-20160118/CR-ABOVE-THIS-LINE +0 -4
  206. data/_patches-20160118/CR-BELOW-THIS-LINE +0 -4
  207. data/_patches-20160118/WIP-ABOVE-THIS-LINE +0 -4
  208. data/_patches-20160118/WIP-BELOW-THIS-LINE +0 -4
  209. data/_patches-20160118/acceptance-test-runner +0 -29
  210. data/_patches-20160118/ansible-1 +0 -92
  211. data/_patches-20160118/cache-api-client-in-up +0 -40
  212. data/_patches-20160118/dead-code-in-actions +0 -44
  213. data/_patches-20160118/debug-changes +0 -55
  214. data/_patches-20160118/demo-rails-app +0 -1276
  215. data/_patches-20160118/eng-10166-halt-spec +0 -40
  216. data/_patches-20160118/eng-10256 +0 -554
  217. data/_patches-20160118/eng-10256-cr +0 -314
  218. data/_patches-20160118/eng-10256-ubuntu-testing +0 -88
  219. data/_patches-20160118/eng-10269-test-stuff +0 -87
  220. data/_patches-20160118/eng-10269-wtf +0 -119
  221. data/_patches-20160118/eng-10369 +0 -143
  222. data/_patches-20160118/eng-10369-tmp +0 -60
  223. data/_patches-20160118/eng-10919 +0 -56
  224. data/_patches-20160118/eng-11177-fix-actions-requires +0 -44
  225. data/_patches-20160118/eng-11442 +0 -4
  226. data/_patches-20160118/eng-11616 +0 -403
  227. data/_patches-20160118/eng-11616-2 +0 -67
  228. data/_patches-20160118/eng-11616-actual +0 -184
  229. data/_patches-20160118/eng-11625a +0 -4
  230. data/_patches-20160118/eng-11711 +0 -85
  231. data/_patches-20160118/eng-12232-command-spec +0 -236
  232. data/_patches-20160118/eng-12235 +0 -83
  233. data/_patches-20160118/eng-12235-override-refactor +0 -140
  234. data/_patches-20160118/eng-12240 +0 -103
  235. data/_patches-20160118/eng-12249 +0 -40
  236. data/_patches-20160118/eng-12301 +0 -50
  237. data/_patches-20160118/eng-12720 +0 -74
  238. data/_patches-20160118/eng-12843 +0 -95
  239. data/_patches-20160118/eng-13040 +0 -291
  240. data/_patches-20160118/env-source +0 -112
  241. data/_patches-20160118/frickin-vagrant-spec +0 -163
  242. data/_patches-20160118/gem-pre-version +0 -14
  243. data/_patches-20160118/gems-old +0 -9
  244. data/_patches-20160118/googles-specs +0 -713
  245. data/_patches-20160118/local-configs-ignore +0 -61
  246. data/_patches-20160118/misc +0 -79
  247. data/_patches-20160118/network-unreachable +0 -31
  248. data/_patches-20160118/new-boxfile +0 -288
  249. data/_patches-20160118/parallelization-maybe +0 -198
  250. data/_patches-20160118/port-forwarding-processes +0 -87
  251. data/_patches-20160118/read-state +0 -23
  252. data/_patches-20160118/refactor-to-use-public_address-cap +0 -25
  253. data/_patches-20160118/series +0 -59
  254. data/_patches-20160118/status +0 -13
  255. data/_patches-20160118/test-move-env-data +0 -231
  256. data/_patches-20160118/test-vagrantfile-vm1 +0 -167
  257. data/_patches-20160118/vagrant-spec-mock-api +0 -137
  258. data/_patches-20160118/vagrant-vmware-plugin +0 -233
  259. data/_patches-20160118/vagrantfile +0 -403
  260. data/_patches-20160118/vagrantfile-for-acceptance-tests +0 -29
  261. data/_patches-20160118/vagrantfile-for-nick +0 -95
  262. data/_patches-20160118/vagrantfiles-to-forget-what-they-are-for +0 -134
  263. data/_patches-20160118/vm-vanished +0 -42
  264. data/_patches-20160118a/COMPLETED-ABOVE-THIS-LINE +0 -4
  265. data/_patches-20160118a/COMPLETED-BELOW-THIS-LINE +0 -4
  266. data/_patches-20160118a/CR-ABOVE-THIS-LINE +0 -4
  267. data/_patches-20160118a/CR-BELOW-THIS-LINE +0 -4
  268. data/_patches-20160118a/WIP-ABOVE-THIS-LINE +0 -4
  269. data/_patches-20160118a/WIP-BELOW-THIS-LINE +0 -4
  270. data/_patches-20160118a/acceptance-test-runner +0 -29
  271. data/_patches-20160118a/ansible-1 +0 -92
  272. data/_patches-20160118a/bar +0 -189
  273. data/_patches-20160118a/cache-api-client-in-up +0 -40
  274. data/_patches-20160118a/dead-code-in-actions +0 -44
  275. data/_patches-20160118a/debug-changes +0 -55
  276. data/_patches-20160118a/demo-rails-app +0 -1276
  277. data/_patches-20160118a/eng-10166-halt-spec +0 -40
  278. data/_patches-20160118a/eng-10256 +0 -554
  279. data/_patches-20160118a/eng-10256-cr +0 -314
  280. data/_patches-20160118a/eng-10256-ubuntu-testing +0 -88
  281. data/_patches-20160118a/eng-10269-test-stuff +0 -87
  282. data/_patches-20160118a/eng-10269-wtf +0 -119
  283. data/_patches-20160118a/eng-10369 +0 -143
  284. data/_patches-20160118a/eng-10369-tmp +0 -60
  285. data/_patches-20160118a/eng-10919 +0 -56
  286. data/_patches-20160118a/eng-11177-fix-actions-requires +0 -44
  287. data/_patches-20160118a/eng-11442 +0 -4
  288. data/_patches-20160118a/eng-11616 +0 -403
  289. data/_patches-20160118a/eng-11616-2 +0 -67
  290. data/_patches-20160118a/eng-11616-actual +0 -184
  291. data/_patches-20160118a/eng-11625a +0 -4
  292. data/_patches-20160118a/eng-11711 +0 -85
  293. data/_patches-20160118a/eng-12232-command-spec +0 -236
  294. data/_patches-20160118a/eng-12235 +0 -83
  295. data/_patches-20160118a/eng-12235-override-refactor +0 -140
  296. data/_patches-20160118a/eng-12240 +0 -103
  297. data/_patches-20160118a/eng-12249 +0 -40
  298. data/_patches-20160118a/eng-12301 +0 -50
  299. data/_patches-20160118a/eng-12720 +0 -74
  300. data/_patches-20160118a/eng-12843 +0 -95
  301. data/_patches-20160118a/eng-13040 +0 -291
  302. data/_patches-20160118a/env-source +0 -112
  303. data/_patches-20160118a/foo +0 -169
  304. data/_patches-20160118a/frickin-vagrant-spec +0 -163
  305. data/_patches-20160118a/gem-pre-version +0 -14
  306. data/_patches-20160118a/gems-old +0 -9
  307. data/_patches-20160118a/googles-specs +0 -713
  308. data/_patches-20160118a/guestport-madness +0 -59
  309. data/_patches-20160118a/local-configs-ignore +0 -61
  310. data/_patches-20160118a/misc +0 -79
  311. data/_patches-20160118a/network-unreachable +0 -31
  312. data/_patches-20160118a/new-boxfile +0 -288
  313. data/_patches-20160118a/parallelization-maybe +0 -198
  314. data/_patches-20160118a/port-forwarding-processes +0 -87
  315. data/_patches-20160118a/read-state +0 -23
  316. data/_patches-20160118a/refactor-to-use-public_address-cap +0 -25
  317. data/_patches-20160118a/series +0 -62
  318. data/_patches-20160118a/status +0 -14
  319. data/_patches-20160118a/test-move-env-data +0 -231
  320. data/_patches-20160118a/test-vagrantfile-vm1 +0 -167
  321. data/_patches-20160118a/vagrant-spec-mock-api +0 -137
  322. data/_patches-20160118a/vagrant-vmware-plugin +0 -233
  323. data/_patches-20160118a/vagrantfile +0 -403
  324. data/_patches-20160118a/vagrantfile-for-acceptance-tests +0 -29
  325. data/_patches-20160118a/vagrantfile-for-nick +0 -95
  326. data/_patches-20160118a/vagrantfiles-to-forget-what-they-are-for +0 -134
  327. data/_patches-20160118a/vm-vanished +0 -42
@@ -3,7 +3,6 @@ require_relative 'base'
3
3
  describe VagrantPlugins::Skytap::API::Environment do
4
4
  include_context "unit"
5
5
  include_context "rest_api"
6
- Errors = VagrantPlugins::Skytap::Errors
7
6
 
8
7
  let(:json_path) { File.join(File.expand_path('..', __FILE__), 'support', 'api_responses') }
9
8
  let(:vm1_attrs) { read_json(json_path, 'vm1.json') }
@@ -60,71 +59,53 @@ describe VagrantPlugins::Skytap::API::Environment do
60
59
  end
61
60
 
62
61
  describe "check_vm_before_adding class method" do
63
- after(:each) do
64
- allow(subject).to receive(:runstate).and_call_original
65
- end
66
-
67
- subject do
68
- instance.vms.first
69
- end
62
+ let(:template_vm) {double(:template_vm, id: 1, :stopped? => true, parent_url: "https://example.com/templates/1")}
63
+ let(:environment_vm) {double(:environment_vm, id: 2, :stopped? => true, parent_url: "https://example.com/configurations/1")}
64
+ let(:running_vm) {double(:running_vm, id: 3, :stopped? => false, parent_url: "https://example.com/templates/1", url: "https://example.com/vms/1")}
70
65
 
71
- it "raises SourceVmNotStopped if the vm is running" do
72
- allow(subject).to receive(:runstate).and_return('running')
73
- expect {described_class.check_vm_before_adding(env, subject)}.to raise_error(Errors::SourceVmNotStopped)
74
- end
66
+ let(:vm_in_different_template) {double(:vm_in_different_template, id: 4, :stopped? => true, parent_url: "https://example.com/templates/2")}
67
+ let(:vm_in_different_environment) {double(:vm_in_different_environment, id: 5, :stopped? => true, parent_url: "https://example.com/configurations/2")}
68
+ let(:environment_in_different_region) {double(:environment_in_different_region, region: "EMEA")}
69
+ let(:vm_in_different_region) {double(:vm_in_different_region, id: 6, :stopped? => true, parent_url: "https://example.com/templates/3", parent: environment_in_different_region)}
75
70
 
76
- it "raises SourceVmNotStopped if the vm is suspended" do
77
- allow(subject).to receive(:runstate).and_return('suspended')
78
- expect {described_class.check_vm_before_adding(env, subject)}.to raise_error(Errors::SourceVmNotStopped)
71
+ it "raises SourceVmNotStopped if the vm is not stopped" do
72
+ expect {described_class.check_vms_before_adding([running_vm])}.to raise_error(Errors::SourceVmNotStopped)
79
73
  end
80
74
 
81
75
  it "raises nothing if the vm is stopped" do
82
- allow(subject).to receive(:runstate).and_return('stopped')
83
- expect {described_class.check_vm_before_adding(env, subject)}.to_not raise_error
76
+ expect {described_class.check_vms_before_adding([template_vm])}.to_not raise_error
84
77
  end
85
78
 
86
- it "raises nothing if the vm is part of an environment" do
87
- vm = VagrantPlugins::Skytap::API::Vm.new(config_vm_attrs, nil, env)
88
- expect {described_class.check_vm_before_adding(env, vm)}.to_not raise_error
79
+ it "raises nothing if the vm is part of a template" do
80
+ expect {described_class.check_vms_before_adding([template_vm])}.to_not raise_error
89
81
  end
90
82
 
91
- it "raises SourceVmNotStopped if the environment vm is running" do
92
- vm = VagrantPlugins::Skytap::API::Vm.new(config_vm_attrs, nil, env)
93
- allow(vm).to receive(:runstate).and_return('running')
94
- expect {described_class.check_vm_before_adding(env, vm)}.to raise_error(Errors::SourceVmNotStopped)
83
+ it "raises nothing if the vm is part of an environment" do
84
+ expect {described_class.check_vms_before_adding([environment_vm])}.to_not raise_error
95
85
  end
96
86
 
97
- it "raises SourceVmNotStopped if the environment vm is suspended" do
98
- vm = VagrantPlugins::Skytap::API::Vm.new(config_vm_attrs, nil, env)
99
- allow(vm).to receive(:runstate).and_return('suspended')
100
- expect {described_class.check_vm_before_adding(env, vm)}.to raise_error(Errors::SourceVmNotStopped)
87
+ it "raises nothing if both vms are part of same template" do
88
+ expect {described_class.check_vms_before_adding([template_vm, template_vm])}.to_not raise_error
101
89
  end
102
- end
103
90
 
104
- describe "check_vm_before_adding instance method" do
105
- after(:each) do
106
- allow(subject).to receive(:region).and_call_original
107
- allow(subject).to receive(:runstate).and_call_original
91
+ it "raises nothing if both vms are part of same environment" do
92
+ expect {described_class.check_vms_before_adding([environment_vm, environment_vm])}.to_not raise_error
108
93
  end
109
94
 
110
- subject do
111
- instance.vms.first
95
+ it "raises VmParentMismatch if vms are from different environments" do
96
+ expect {described_class.check_vms_before_adding([environment_vm, vm_in_different_environment])}.to raise_error(Errors::VmParentMismatch)
112
97
  end
113
98
 
114
- it "raises RegionMismatch if the vm is in a different region" do
115
- allow(subject).to receive(:region).and_return('EMEA')
116
- expect {subject.environment.check_vm_before_adding(env, subject)}.to raise_error(Errors::RegionMismatch)
99
+ it "raises VmParentMismatch if vms are from different templates" do
100
+ expect {described_class.check_vms_before_adding([template_vm, vm_in_different_template])}.to raise_error(Errors::VmParentMismatch)
117
101
  end
118
102
 
119
- it "raises SourceVmNotStopped if the vm is in the same region but running" do
120
- allow(subject).to receive(:region).and_return('US-West')
121
- allow(subject).to receive(:runstate).and_return('running')
122
- expect {subject.environment.check_vm_before_adding(env, subject)}.to raise_error(Errors::SourceVmNotStopped)
103
+ it "raises VmParentMismatch if vms are from an environment and template" do
104
+ expect {described_class.check_vms_before_adding([template_vm, environment_vm])}.to raise_error(Errors::VmParentMismatch)
123
105
  end
124
106
 
125
- it "raises nothing if the vm is in the same region" do
126
- allow(subject).to receive(:region).and_return('US-West')
127
- expect {subject.environment.check_vm_before_adding(env, subject)}.to_not raise_error
107
+ it "raises RegionMismatch if vm is from a template in a different region from the given environment" do
108
+ expect {described_class.check_vms_before_adding([vm_in_different_region], instance)}.to raise_error(Errors::RegionMismatch)
128
109
  end
129
110
  end
130
111
 
@@ -1,4 +1,9 @@
1
+ require "vagrant-skytap/api/client"
2
+
1
3
  shared_context "skytap" do
4
+ Errors = VagrantPlugins::Skytap::Errors
5
+ API = VagrantPlugins::Skytap::API
6
+
2
7
  def read_json(*args)
3
8
  JSON.load(File.read(File.join(args)))
4
9
  end
@@ -6,10 +6,10 @@ Gem::Specification.new do |s|
6
6
  s.version = VagrantPlugins::Skytap::VERSION
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.license = "MIT"
9
- s.authors = "Nick Astete"
10
- s.email = "nastete@skytap.com"
9
+ s.authors = ["Eric True", "Nick Astete"]
10
+ s.email = ["etrue@skytap.com", "nastete@skytap.com"]
11
11
  s.homepage = "http://www.skytap.com"
12
- s.summary = "Enables Vagrant to manage Skytap machines."
12
+ s.summary = "Vagrant provider plugin for Skytap."
13
13
  s.description = "Enables Vagrant to manage Skytap machines."
14
14
 
15
15
  s.required_rubygems_version = ">= 1.3.6"
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-skytap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
+ - Eric True
7
8
  - Nick Astete
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2016-01-27 00:00:00.000000000 Z
12
+ date: 2016-01-29 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: json_pure
@@ -109,316 +110,13 @@ dependencies:
109
110
  - !ruby/object:Gem::Version
110
111
  version: '1.20'
111
112
  description: Enables Vagrant to manage Skytap machines.
112
- email: nastete@skytap.com
113
+ email:
114
+ - etrue@skytap.com
115
+ - nastete@skytap.com
113
116
  executables: []
114
117
  extensions: []
115
118
  extra_rdoc_files: []
116
119
  files:
117
- - _patches-20160112/0
118
- - _patches-20160112/1
119
- - _patches-20160112/2
120
- - _patches-20160112/acceptance-test-runner
121
- - _patches-20160112/ansible-1
122
- - _patches-20160112/cache-api-client-in-up
123
- - _patches-20160112/COMPLETED-ABOVE-THIS-LINE
124
- - _patches-20160112/COMPLETED-BELOW-THIS-LINE
125
- - _patches-20160112/CR-ABOVE-THIS-LINE
126
- - _patches-20160112/CR-BELOW-THIS-LINE
127
- - _patches-20160112/dead-code-in-actions
128
- - _patches-20160112/debug-changes
129
- - _patches-20160112/demo-rails-app
130
- - _patches-20160112/eng-10166-halt-spec
131
- - _patches-20160112/eng-10256
132
- - _patches-20160112/eng-10256-2
133
- - _patches-20160112/eng-10256-ubuntu-testing
134
- - _patches-20160112/eng-10269-test-stuff
135
- - _patches-20160112/eng-10269-wtf
136
- - _patches-20160112/eng-10369
137
- - _patches-20160112/eng-10369-tmp
138
- - _patches-20160112/eng-10919
139
- - _patches-20160112/eng-11177-fix-actions-requires
140
- - _patches-20160112/eng-11442
141
- - _patches-20160112/eng-11616
142
- - _patches-20160112/eng-11616-2
143
- - _patches-20160112/eng-11616-actual
144
- - _patches-20160112/eng-11625a
145
- - _patches-20160112/eng-11711
146
- - _patches-20160112/eng-12232-command-spec
147
- - _patches-20160112/eng-12235
148
- - _patches-20160112/eng-12235-override-refactor
149
- - _patches-20160112/eng-12240
150
- - _patches-20160112/eng-12249
151
- - _patches-20160112/eng-12301
152
- - _patches-20160112/eng-12843
153
- - _patches-20160112/env-source
154
- - _patches-20160112/frickin-vagrant-spec
155
- - _patches-20160112/gem-pre-version
156
- - _patches-20160112/gems-old
157
- - _patches-20160112/googles-specs
158
- - _patches-20160112/local-configs-ignore
159
- - _patches-20160112/misc
160
- - _patches-20160112/network-unreachable
161
- - _patches-20160112/new-boxfile
162
- - _patches-20160112/parallelization-maybe
163
- - _patches-20160112/read-state
164
- - _patches-20160112/refactor-to-use-public_address-cap
165
- - _patches-20160112/series
166
- - _patches-20160112/status
167
- - _patches-20160112/test-move-env-data
168
- - _patches-20160112/test-vagrantfile-vm1
169
- - _patches-20160112/the_version_in_0.1.13.pre1
170
- - _patches-20160112/vagrant-spec-mock-api
171
- - _patches-20160112/vagrant-vmware-plugin
172
- - _patches-20160112/vagrantfile
173
- - _patches-20160112/vagrantfile-for-acceptance-tests
174
- - _patches-20160112/vagrantfile-for-nick
175
- - _patches-20160112/vagrantfiles-to-forget-what-they-are-for
176
- - _patches-20160112/vm-vanished
177
- - _patches-20160112/WIP-ABOVE-THIS-LINE
178
- - _patches-20160112/WIP-BELOW-THIS-LINE
179
- - _patches-20160112a/01
180
- - _patches-20160112a/2
181
- - _patches-20160112a/acceptance-test-runner
182
- - _patches-20160112a/ansible-1
183
- - _patches-20160112a/cache-api-client-in-up
184
- - _patches-20160112a/COMPLETED-ABOVE-THIS-LINE
185
- - _patches-20160112a/COMPLETED-BELOW-THIS-LINE
186
- - _patches-20160112a/CR-ABOVE-THIS-LINE
187
- - _patches-20160112a/CR-BELOW-THIS-LINE
188
- - _patches-20160112a/dead-code-in-actions
189
- - _patches-20160112a/debug-changes
190
- - _patches-20160112a/demo-rails-app
191
- - _patches-20160112a/eng-10166-halt-spec
192
- - _patches-20160112a/eng-10256-ubuntu-testing
193
- - _patches-20160112a/eng-10269-test-stuff
194
- - _patches-20160112a/eng-10269-wtf
195
- - _patches-20160112a/eng-10369
196
- - _patches-20160112a/eng-10369-tmp
197
- - _patches-20160112a/eng-10919
198
- - _patches-20160112a/eng-11177-fix-actions-requires
199
- - _patches-20160112a/eng-11442
200
- - _patches-20160112a/eng-11616
201
- - _patches-20160112a/eng-11616-2
202
- - _patches-20160112a/eng-11616-actual
203
- - _patches-20160112a/eng-11625a
204
- - _patches-20160112a/eng-11711
205
- - _patches-20160112a/eng-12232-command-spec
206
- - _patches-20160112a/eng-12235
207
- - _patches-20160112a/eng-12235-override-refactor
208
- - _patches-20160112a/eng-12240
209
- - _patches-20160112a/eng-12249
210
- - _patches-20160112a/eng-12301
211
- - _patches-20160112a/eng-12843
212
- - _patches-20160112a/env-source
213
- - _patches-20160112a/frickin-vagrant-spec
214
- - _patches-20160112a/gem-pre-version
215
- - _patches-20160112a/gems-old
216
- - _patches-20160112a/googles-specs
217
- - _patches-20160112a/local-configs-ignore
218
- - _patches-20160112a/misc
219
- - _patches-20160112a/network-unreachable
220
- - _patches-20160112a/new-boxfile
221
- - _patches-20160112a/parallelization-maybe
222
- - _patches-20160112a/read-state
223
- - _patches-20160112a/refactor-to-use-public_address-cap
224
- - _patches-20160112a/series
225
- - _patches-20160112a/status
226
- - _patches-20160112a/test-move-env-data
227
- - _patches-20160112a/test-vagrantfile-vm1
228
- - _patches-20160112a/the_version_in_0.1.13.pre1
229
- - _patches-20160112a/then-copy-the-newer-files
230
- - _patches-20160112a/vagrant-spec-mock-api
231
- - _patches-20160112a/vagrant-vmware-plugin
232
- - _patches-20160112a/vagrantfile
233
- - _patches-20160112a/vagrantfile-for-acceptance-tests
234
- - _patches-20160112a/vagrantfile-for-nick
235
- - _patches-20160112a/vagrantfiles-to-forget-what-they-are-for
236
- - _patches-20160112a/vm-vanished
237
- - _patches-20160112a/WIP-ABOVE-THIS-LINE
238
- - _patches-20160112a/WIP-BELOW-THIS-LINE
239
- - _patches-20160113/acceptance-test-runner
240
- - _patches-20160113/ansible-1
241
- - _patches-20160113/cache-api-client-in-up
242
- - _patches-20160113/COMPLETED-ABOVE-THIS-LINE
243
- - _patches-20160113/COMPLETED-BELOW-THIS-LINE
244
- - _patches-20160113/CR-ABOVE-THIS-LINE
245
- - _patches-20160113/CR-BELOW-THIS-LINE
246
- - _patches-20160113/dead-code-in-actions
247
- - _patches-20160113/debug-changes
248
- - _patches-20160113/demo-rails-app
249
- - _patches-20160113/eng-10166-halt-spec
250
- - _patches-20160113/eng-10256
251
- - _patches-20160113/eng-10256-ubuntu-testing
252
- - _patches-20160113/eng-10269-test-stuff
253
- - _patches-20160113/eng-10269-wtf
254
- - _patches-20160113/eng-10369
255
- - _patches-20160113/eng-10369-tmp
256
- - _patches-20160113/eng-10919
257
- - _patches-20160113/eng-11177-fix-actions-requires
258
- - _patches-20160113/eng-11442
259
- - _patches-20160113/eng-11616
260
- - _patches-20160113/eng-11616-2
261
- - _patches-20160113/eng-11616-actual
262
- - _patches-20160113/eng-11625a
263
- - _patches-20160113/eng-11711
264
- - _patches-20160113/eng-12232-command-spec
265
- - _patches-20160113/eng-12235
266
- - _patches-20160113/eng-12235-override-refactor
267
- - _patches-20160113/eng-12240
268
- - _patches-20160113/eng-12249
269
- - _patches-20160113/eng-12301
270
- - _patches-20160113/eng-12720
271
- - _patches-20160113/eng-12843
272
- - _patches-20160113/env-source
273
- - _patches-20160113/frickin-vagrant-spec
274
- - _patches-20160113/gem-pre-version
275
- - _patches-20160113/gems-old
276
- - _patches-20160113/googles-specs
277
- - _patches-20160113/local-configs-ignore
278
- - _patches-20160113/misc
279
- - _patches-20160113/network-unreachable
280
- - _patches-20160113/new-boxfile
281
- - _patches-20160113/parallelization-maybe
282
- - _patches-20160113/read-state
283
- - _patches-20160113/refactor-to-use-public_address-cap
284
- - _patches-20160113/series
285
- - _patches-20160113/status
286
- - _patches-20160113/test-move-env-data
287
- - _patches-20160113/test-vagrantfile-vm1
288
- - _patches-20160113/vagrant-spec-mock-api
289
- - _patches-20160113/vagrant-vmware-plugin
290
- - _patches-20160113/vagrantfile
291
- - _patches-20160113/vagrantfile-for-acceptance-tests
292
- - _patches-20160113/vagrantfile-for-nick
293
- - _patches-20160113/vagrantfiles-to-forget-what-they-are-for
294
- - _patches-20160113/vm-vanished
295
- - _patches-20160113/WIP-ABOVE-THIS-LINE
296
- - _patches-20160113/WIP-BELOW-THIS-LINE
297
- - _patches-20160118/acceptance-test-runner
298
- - _patches-20160118/ansible-1
299
- - _patches-20160118/cache-api-client-in-up
300
- - _patches-20160118/COMPLETED-ABOVE-THIS-LINE
301
- - _patches-20160118/COMPLETED-BELOW-THIS-LINE
302
- - _patches-20160118/CR-ABOVE-THIS-LINE
303
- - _patches-20160118/CR-BELOW-THIS-LINE
304
- - _patches-20160118/dead-code-in-actions
305
- - _patches-20160118/debug-changes
306
- - _patches-20160118/demo-rails-app
307
- - _patches-20160118/eng-10166-halt-spec
308
- - _patches-20160118/eng-10256
309
- - _patches-20160118/eng-10256-cr
310
- - _patches-20160118/eng-10256-ubuntu-testing
311
- - _patches-20160118/eng-10269-test-stuff
312
- - _patches-20160118/eng-10269-wtf
313
- - _patches-20160118/eng-10369
314
- - _patches-20160118/eng-10369-tmp
315
- - _patches-20160118/eng-10919
316
- - _patches-20160118/eng-11177-fix-actions-requires
317
- - _patches-20160118/eng-11442
318
- - _patches-20160118/eng-11616
319
- - _patches-20160118/eng-11616-2
320
- - _patches-20160118/eng-11616-actual
321
- - _patches-20160118/eng-11625a
322
- - _patches-20160118/eng-11711
323
- - _patches-20160118/eng-12232-command-spec
324
- - _patches-20160118/eng-12235
325
- - _patches-20160118/eng-12235-override-refactor
326
- - _patches-20160118/eng-12240
327
- - _patches-20160118/eng-12249
328
- - _patches-20160118/eng-12301
329
- - _patches-20160118/eng-12720
330
- - _patches-20160118/eng-12843
331
- - _patches-20160118/eng-13040
332
- - _patches-20160118/env-source
333
- - _patches-20160118/frickin-vagrant-spec
334
- - _patches-20160118/gem-pre-version
335
- - _patches-20160118/gems-old
336
- - _patches-20160118/googles-specs
337
- - _patches-20160118/local-configs-ignore
338
- - _patches-20160118/misc
339
- - _patches-20160118/network-unreachable
340
- - _patches-20160118/new-boxfile
341
- - _patches-20160118/parallelization-maybe
342
- - _patches-20160118/port-forwarding-processes
343
- - _patches-20160118/read-state
344
- - _patches-20160118/refactor-to-use-public_address-cap
345
- - _patches-20160118/series
346
- - _patches-20160118/status
347
- - _patches-20160118/test-move-env-data
348
- - _patches-20160118/test-vagrantfile-vm1
349
- - _patches-20160118/vagrant-spec-mock-api
350
- - _patches-20160118/vagrant-vmware-plugin
351
- - _patches-20160118/vagrantfile
352
- - _patches-20160118/vagrantfile-for-acceptance-tests
353
- - _patches-20160118/vagrantfile-for-nick
354
- - _patches-20160118/vagrantfiles-to-forget-what-they-are-for
355
- - _patches-20160118/vm-vanished
356
- - _patches-20160118/WIP-ABOVE-THIS-LINE
357
- - _patches-20160118/WIP-BELOW-THIS-LINE
358
- - _patches-20160118a/acceptance-test-runner
359
- - _patches-20160118a/ansible-1
360
- - _patches-20160118a/bar
361
- - _patches-20160118a/cache-api-client-in-up
362
- - _patches-20160118a/COMPLETED-ABOVE-THIS-LINE
363
- - _patches-20160118a/COMPLETED-BELOW-THIS-LINE
364
- - _patches-20160118a/CR-ABOVE-THIS-LINE
365
- - _patches-20160118a/CR-BELOW-THIS-LINE
366
- - _patches-20160118a/dead-code-in-actions
367
- - _patches-20160118a/debug-changes
368
- - _patches-20160118a/demo-rails-app
369
- - _patches-20160118a/eng-10166-halt-spec
370
- - _patches-20160118a/eng-10256
371
- - _patches-20160118a/eng-10256-cr
372
- - _patches-20160118a/eng-10256-ubuntu-testing
373
- - _patches-20160118a/eng-10269-test-stuff
374
- - _patches-20160118a/eng-10269-wtf
375
- - _patches-20160118a/eng-10369
376
- - _patches-20160118a/eng-10369-tmp
377
- - _patches-20160118a/eng-10919
378
- - _patches-20160118a/eng-11177-fix-actions-requires
379
- - _patches-20160118a/eng-11442
380
- - _patches-20160118a/eng-11616
381
- - _patches-20160118a/eng-11616-2
382
- - _patches-20160118a/eng-11616-actual
383
- - _patches-20160118a/eng-11625a
384
- - _patches-20160118a/eng-11711
385
- - _patches-20160118a/eng-12232-command-spec
386
- - _patches-20160118a/eng-12235
387
- - _patches-20160118a/eng-12235-override-refactor
388
- - _patches-20160118a/eng-12240
389
- - _patches-20160118a/eng-12249
390
- - _patches-20160118a/eng-12301
391
- - _patches-20160118a/eng-12720
392
- - _patches-20160118a/eng-12843
393
- - _patches-20160118a/eng-13040
394
- - _patches-20160118a/env-source
395
- - _patches-20160118a/foo
396
- - _patches-20160118a/frickin-vagrant-spec
397
- - _patches-20160118a/gem-pre-version
398
- - _patches-20160118a/gems-old
399
- - _patches-20160118a/googles-specs
400
- - _patches-20160118a/guestport-madness
401
- - _patches-20160118a/local-configs-ignore
402
- - _patches-20160118a/misc
403
- - _patches-20160118a/network-unreachable
404
- - _patches-20160118a/new-boxfile
405
- - _patches-20160118a/parallelization-maybe
406
- - _patches-20160118a/port-forwarding-processes
407
- - _patches-20160118a/read-state
408
- - _patches-20160118a/refactor-to-use-public_address-cap
409
- - _patches-20160118a/series
410
- - _patches-20160118a/status
411
- - _patches-20160118a/test-move-env-data
412
- - _patches-20160118a/test-vagrantfile-vm1
413
- - _patches-20160118a/vagrant-spec-mock-api
414
- - _patches-20160118a/vagrant-vmware-plugin
415
- - _patches-20160118a/vagrantfile
416
- - _patches-20160118a/vagrantfile-for-acceptance-tests
417
- - _patches-20160118a/vagrantfile-for-nick
418
- - _patches-20160118a/vagrantfiles-to-forget-what-they-are-for
419
- - _patches-20160118a/vm-vanished
420
- - _patches-20160118a/WIP-ABOVE-THIS-LINE
421
- - _patches-20160118a/WIP-BELOW-THIS-LINE
422
120
  - boxes/empty.box
423
121
  - boxes/metadata.json
424
122
  - boxes/README.md
@@ -426,6 +124,7 @@ files:
426
124
  - Gemfile
427
125
  - lib/vagrant-skytap/action/add_vm_to_environment.rb
428
126
  - lib/vagrant-skytap/action/clear_forwarded_ports.rb
127
+ - lib/vagrant-skytap/action/compose_environment.rb
429
128
  - lib/vagrant-skytap/action/create_environment.rb
430
129
  - lib/vagrant-skytap/action/delete_environment.rb
431
130
  - lib/vagrant-skytap/action/delete_vm.rb
@@ -517,6 +216,7 @@ files:
517
216
  - spec/acceptance/shared/context_skytap.rb
518
217
  - spec/spec_helper.rb
519
218
  - spec/support/isolated_environment.rb
219
+ - spec/unit/actions/compose_environment_spec.rb
520
220
  - spec/unit/base.rb
521
221
  - spec/unit/config_spec.rb
522
222
  - spec/unit/environment_spec.rb
@@ -556,10 +256,8 @@ files:
556
256
  - tasks/test.rake
557
257
  - vagrant-skytap.gemspec
558
258
  - vagrant-spec.config.rb
559
- - .byebug_history
560
259
  - .gitignore
561
260
  - .hgignore
562
- - .project
563
261
  - .rspec
564
262
  homepage: http://www.skytap.com
565
263
  licenses:
@@ -584,5 +282,5 @@ rubyforge_project: vagrant-skytap
584
282
  rubygems_version: 2.0.14
585
283
  signing_key:
586
284
  specification_version: 4
587
- summary: Enables Vagrant to manage Skytap machines.
285
+ summary: Vagrant provider plugin for Skytap.
588
286
  test_files: []