vagrant-openstack-plugin-tom 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.travis.yml +11 -0
  4. data/Authors.txt +11 -0
  5. data/CHANGELOG.md +185 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +23 -0
  8. data/README.md +278 -0
  9. data/Rakefile +21 -0
  10. data/dummy.box +0 -0
  11. data/example_box/README.md +13 -0
  12. data/example_box/metadata.json +3 -0
  13. data/example_vagrant_file +24 -0
  14. data/lib/vagrant-openstack-plugin.rb +53 -0
  15. data/lib/vagrant-openstack-plugin/action.rb +268 -0
  16. data/lib/vagrant-openstack-plugin/action/connect_openstack.rb +90 -0
  17. data/lib/vagrant-openstack-plugin/action/create_network_interfaces.rb +52 -0
  18. data/lib/vagrant-openstack-plugin/action/create_orchestration_stack.rb +97 -0
  19. data/lib/vagrant-openstack-plugin/action/create_server.rb +263 -0
  20. data/lib/vagrant-openstack-plugin/action/delete_orchestration_stack.rb +78 -0
  21. data/lib/vagrant-openstack-plugin/action/delete_server.rb +84 -0
  22. data/lib/vagrant-openstack-plugin/action/hard_reboot_server.rb +27 -0
  23. data/lib/vagrant-openstack-plugin/action/is_created.rb +16 -0
  24. data/lib/vagrant-openstack-plugin/action/is_paused.rb +16 -0
  25. data/lib/vagrant-openstack-plugin/action/is_snapshoting.rb +24 -0
  26. data/lib/vagrant-openstack-plugin/action/is_suspended.rb +16 -0
  27. data/lib/vagrant-openstack-plugin/action/message_already_created.rb +16 -0
  28. data/lib/vagrant-openstack-plugin/action/message_already_paused.rb +16 -0
  29. data/lib/vagrant-openstack-plugin/action/message_already_suspended.rb +16 -0
  30. data/lib/vagrant-openstack-plugin/action/message_not_created.rb +16 -0
  31. data/lib/vagrant-openstack-plugin/action/message_server_running.rb +16 -0
  32. data/lib/vagrant-openstack-plugin/action/message_snapshot_done.rb +16 -0
  33. data/lib/vagrant-openstack-plugin/action/message_snapshot_in_progress.rb +16 -0
  34. data/lib/vagrant-openstack-plugin/action/message_will_not_destroy.rb +16 -0
  35. data/lib/vagrant-openstack-plugin/action/pause_server.rb +27 -0
  36. data/lib/vagrant-openstack-plugin/action/read_ssh_info.rb +103 -0
  37. data/lib/vagrant-openstack-plugin/action/read_state.rb +39 -0
  38. data/lib/vagrant-openstack-plugin/action/reboot_server.rb +27 -0
  39. data/lib/vagrant-openstack-plugin/action/resume_server.rb +31 -0
  40. data/lib/vagrant-openstack-plugin/action/suspend_server.rb +27 -0
  41. data/lib/vagrant-openstack-plugin/action/sync_folders.rb +104 -0
  42. data/lib/vagrant-openstack-plugin/action/take_snapshot.rb +26 -0
  43. data/lib/vagrant-openstack-plugin/action/wait_for_state.rb +39 -0
  44. data/lib/vagrant-openstack-plugin/action/wait_for_task.rb +44 -0
  45. data/lib/vagrant-openstack-plugin/action/warn_networks.rb +19 -0
  46. data/lib/vagrant-openstack-plugin/command.rb +70 -0
  47. data/lib/vagrant-openstack-plugin/command/command_snapshot.rb +43 -0
  48. data/lib/vagrant-openstack-plugin/config.rb +246 -0
  49. data/lib/vagrant-openstack-plugin/errors.rb +71 -0
  50. data/lib/vagrant-openstack-plugin/plugin.rb +45 -0
  51. data/lib/vagrant-openstack-plugin/provider.rb +50 -0
  52. data/lib/vagrant-openstack-plugin/version.rb +5 -0
  53. data/locales/en.yml +154 -0
  54. data/spec/vagrant-openstack-plugin/config_spec.rb +152 -0
  55. data/vagrant-openstack-plugin.gemspec +24 -0
  56. metadata +142 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ece582d0db46a5cd3a339b2d23fc7b2c9a210050
4
+ data.tar.gz: ab82202f9a37dbc1ebf2a5a019696c1e5f628f2d
5
+ SHA512:
6
+ metadata.gz: 0b45aebe1c68ef02501647e90342b33258ae12929b7ebc1cb6596698d90fd53cc37e1963a981ea624ef9d830d03cc30ca9c691a14eb3a9d9842fd648eaffb137
7
+ data.tar.gz: b77a9e2f2a182f1c1f02c07a4b926c7534a7630d98c8f4d0542790ffe06a5bd260a8205ee468e4477d92faa9636240e2736acbd587b57e41c01df8e38bf7176d
data/.gitignore ADDED
@@ -0,0 +1,20 @@
1
+ *.gem
2
+ *.rbc
3
+ .idea
4
+ .bundle
5
+ .config
6
+ .vagrant
7
+ .yardoc
8
+ Gemfile.lock
9
+ InstalledFiles
10
+ _yardoc
11
+ coverage
12
+ doc/
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ spec/reports
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
20
+ Vagrantfile
data/.travis.yml ADDED
@@ -0,0 +1,11 @@
1
+ langauge: ruby
2
+ script: rake test
3
+ branches:
4
+ only:
5
+ - master
6
+ rvm:
7
+ - 1.9.3
8
+ - 2.0.0
9
+ matrix:
10
+ allow_failures:
11
+ - rvm: ruby-head
data/Authors.txt ADDED
@@ -0,0 +1,11 @@
1
+ Brian Miller
2
+ Corey Stubbs
3
+ Hendrik Volkmer
4
+ Jasper Capel
5
+ Joe Topjian
6
+ Jon Burgess
7
+ Mathieu Mitchell
8
+ Mitchell Hashimoto
9
+ Stephan Renatus
10
+ Thomas Kadauke
11
+ Xavier Antoviaque
data/CHANGELOG.md ADDED
@@ -0,0 +1,185 @@
1
+ # Changelog for vagrant-openstack-plugin
2
+
3
+ ## 0.12.0 (2015/08/27)
4
+
5
+ - be more specific on using symbols in the config. fixes cloudbau/vagrant-openstack-plugin#106 [view commit](http://github.com///commit/0ef0865c6e38debd77982310073fe09cd99c6054)
6
+ - Merge pull request #103 from corpix/ssh_ip_family [view commit](http://github.com///commit/6ca314cc0cdbbe62bd4b80e65e518103ce73b027)
7
+ - Merge pull request #109 from joelanford/floating-ip-fix [view commit](http://github.com///commit/2bf8a08494a8aa4a5a5eae677691c56b9748208b)
8
+ - Merge pull request #118 from maxx/master [view commit](http://github.com///commit/eadeaa992ad7f2b1e43d35843fdfdc2fda661e3d)
9
+ - allows an alternative to os.floating_ip :auto, called os.floating_ip :associate_unassigned. This pulls an unassigned IP address from an existing pool with pre-allocated IP's, and will not try to allocate a new IP. If an IP is not available, no floating IP is assigned. Relevant errors and documentation added as well [view commit](http://github.com///commit/adc708405c47c44ef60ccdc5df4d9f6f04cd5a1f)
10
+ - Fixes issue #100, where config.rb incorrectly handled floating_ip and floating_ip_pool configurations [view commit](http://github.com///commit/21f8532e726d21d75788dcd3d6cdd0ec84acc633)
11
+ - Merge pull request #107 from Chealion/handleEphemeralDisks [view commit](http://github.com///commit/338e0525397bd710e351cb7a6eadcb801b2255f6)
12
+ - Merge pull request #104 from cshaffer/upgrade_rsepc [view commit](http://github.com///commit/533c0ac004be755e973098c6589b4cf6b1fdc696)
13
+ - Add ability to handle swap and ephemeral disks to disks feature [view commit](http://github.com///commit/c4f7acea6e2d97d040184534403fee2262671176)
14
+ - Convert specs to RSpec 3.1.7 syntax with Transpec [view commit](http://github.com///commit/6115ccb73c8e28704bbe8efb5d079d35b1d0d844)
15
+ - Upgrade rspec to 3.1.0 [view commit](http://github.com///commit/c0dfe22fdd7c9d2e72c02187491acea7b9e1b013)
16
+ - Convert specs to RSpec 2.14.8 syntax with Transpec [view commit](http://github.com///commit/dd34a0eed957e190fec369f43514c8a5d4549833)
17
+ - Upgrade rspec to 2.14 first [view commit](http://github.com///commit/332c537e4f028bc8ab4ffd630c75a32ca93a681f)
18
+ - Removed debug printing [view commit](http://github.com///commit/59a8f024d090fff5ae28d30ef72a24d2f58044c3)
19
+ - Updated readme [view commit](http://github.com///commit/815f05d770f9991fa5e333ae24e15fde801643d7)
20
+ - IP address family match support [view commit](http://github.com///commit/5aa125c0e741496c60927cff9a413e942d9f2720)
21
+
22
+ ## 0.11.1
23
+
24
+ - Merge pull request #99 from jtopjian/master [view commit](http://github.com///commit/1c2667532e408f239761882a367c11d948610f37)
25
+ - Update README.md to add Static IP instructions [view commit](http://github.com///commit/9246d8b9389dd4e1108e0f3ab7c2652459d6d192)
26
+ - Merge pull request #98 from Chealion/fixFloatingIP [view commit](http://github.com///commit/1d6635791286bf396ec1a852730116ec1c0bbba0)
27
+ - Don't release a floating IP unless it was automatically assigned. [view commit](http://github.com///commit/c5f51082323b9defa5d101b0f5decbe68e15cfa3)
28
+
29
+ ## 0.11.0
30
+
31
+ - Merge pull request #97 from cbaenziger/issue_96_fix [view commit](http://github.com///commit/36295904ffb65d7461870a97e561c470fdedbbe5)
32
+ - Merge pull request #95 from cbaenziger/volume_support [view commit](http://github.com///commit/3d3fb8d6ae3b3115abea725820ac4a205c814070)
33
+ - Retry server deletes until we are sure the VM is dead -- only then remove IP's and volumes [view commit](http://github.com///commit/8799e70521a4ad4c4d1a5aa2a3ea42b83c042c38)
34
+ - Update README for more volume related material [view commit](http://github.com///commit/c0e6e0afae67a1e63095f917d50b7c3aa3655547)
35
+ - Fix to prevent stack trace failing to find VM, if destroying a non-existant VM [view commit](http://github.com///commit/7632b70a9f2c5af3a6d46a31b2ce4beb1bc9217b)
36
+ - Use same check as connect.rb for Vagrantfile disks section [view commit](http://github.com///commit/bd440fbacd7abc7914629431edd74e73cad71f95)
37
+ - Fix issue finding volumes if running vagrant destroy after server is destroyed [view commit](http://github.com///commit/8629390d724cdaa611504121bca64690e191cdba)
38
+
39
+ ## 0.10.0
40
+
41
+ - Merge pull request #84 from cbaenziger/volume_support [view commit](http://github.com///commit/fc613a49cb5b2fecf2255d3050d1bff68956735d)
42
+ - Add support for creating OpenStack Volumes [view commit](http://github.com///commit/60ed3924957bb7eefa95e113336165d76da3a985)
43
+
44
+ ## 0.9.1
45
+
46
+ - Merge pull request #91 from Chealion/master [view commit](http://github.com///commit/6285cae325afa378e90f06635a2cc39b1428a6dd)
47
+ - Fixes #90 that hostname is set to key path [view commit](http://github.com///commit/5feb04c7bf46cee1ef4d38e25d74710ea9d0981b)
48
+ - Merge pull request #89 from reachlocal/fix_handleurl_deprecation_for_older_versions [view commit](http://github.com///commit/6ba9ee7d18d63a3d6f254c80e106bc440003fae6)
49
+ - Added a check for the vagrant version to keep HandleUrl for older versions of vagrant [view commit](http://github.com///commit/07871ed10ea9cca9c51e97fb8bb3e11c33d41a33)
50
+
51
+ ## 0.9.0
52
+
53
+ - Merge pull request #80 from hawknewton/network_fix [view commit](http://github.com///commit/542e7a2e077d624df9cb56a53c24cf3450e11c71)
54
+ - Merge pull request #86 from ipoddar-ibm/master [view commit](http://github.com///commit/11fccb73264aa852df88825936026a9da4771580)
55
+ - Merge pull request #88 from chino/fix-rsync-identify-file-options [view commit](http://github.com///commit/9319af5216c8c65ba144154ddfba2c1d767c567d)
56
+ - Merge pull request #87 from arbrandes/master [view commit](http://github.com///commit/49839de94e1865eb88a25d5876f1698e2069a0be)
57
+ - sync_folders: should have space between ssh-i options [view commit](http://github.com///commit/07325bfe4c782043d7ecec32a64fa516344cebf8)
58
+ - Allocate IPs automatically [view commit](http://github.com///commit/84c311544d00286fc2c910f9147892e5ae6c0a5b)
59
+ - Adds support for static IPs and interface config [view commit](http://github.com///commit/a5fdb22e23687c9bcd540b37b65b8d478d3a5d94)
60
+ - remove extra line [view commit](http://github.com///commit/010e347acf403d6426fffac5ec01cb999dd9545f)
61
+ - fix typo [view commit](http://github.com///commit/08dda991121f7e2e2f5bb8f32e03432f69aec226)
62
+ - support cygwin [view commit](http://github.com///commit/62c2184906e444c22933d34b8b9054fca56df54f)
63
+ - Connect to openstack network resource when needed [view commit](http://github.com///commit/8515a9305f354963d8687077e203a35c902035ce)
64
+
65
+ ## 0.8.0
66
+
67
+ - Merge pull request #67 from pradels/master [view commit](http://github.com///commit/15f5b5531622376df952bccc0512a6de50d7a92f)
68
+ - Merge pull request #66 from matope/use-execute-to-make-synced_folder [view commit](http://github.com///commit/96f64a846d40e5c7f0355def17189e38895e29f3)
69
+ - Merge pull request #72 from mathuin/fix-handlebox [view commit](http://github.com///commit/3396e33e54d2527d28a70f1487da6221cd2316e2)
70
+ - Merge pull request #64 from bewiwi/reboot [view commit](http://github.com///commit/24bec035508853be871ed8ed73b1d33f15beff76)
71
+ - Merge pull request #63 from bewiwi/status [view commit](http://github.com///commit/79a8c341501461a0d5ef1ce4f11cc0a1810d38f3)
72
+ - Merge pull request #71 from bewiwi/add_openstack_snapshot_commmand [view commit](http://github.com///commit/bf4eedd6eb5e29aefe4c0e156b932b4f4a81e1f5)
73
+ - Merge pull request #73 from detiber/configNetworks [view commit](http://github.com///commit/5e17c5aaeee7bebc4991e440565f2ee4c1b6f191)
74
+ - Set config.networks to [] if unset [view commit](http://github.com///commit/5aad087358792bee0bd1a6a026820b04bb8ca68f)
75
+ - Changed HandleBoxUrl to HandleBox. [view commit](http://github.com///commit/ad7b2acdea81fe6f4b50e4658ecd36762a849f74)
76
+ - Add command snapshot [view commit](http://github.com///commit/2d207ced7e70fe206fa309ed43a8ace3eb86b327)
77
+ - Orchestration support added. [view commit](http://github.com///commit/d4e098db8517d491adfeb826500ac3ec5384d237)
78
+ - Avoid using sudo to make synced_folder if possible [view commit](http://github.com///commit/b5b6205fbc34e95b4dbd9c13f974b728cb27c76e)
79
+ - Add some status messages [view commit](http://github.com///commit/0c9287bc765e074eac104e02d7a64b36bd122034)
80
+ - Modify reload action to be a real reboot [view commit](http://github.com///commit/91f5dc65a781d062d156b912bfd9d4b84db82e44)
81
+
82
+ ## 0.7.0
83
+
84
+ - Merge pull request #35 from johnbellone/master [view commit](http://github.com///commit/5969261f11585e19348e903eec15617634c3c899)
85
+ - Fix issues with SSH private keys in Vagrant 1.4. [view commit](http://github.com///commit/a8bf7574de48dc1c62928f5ad73fb6d1e7dd4347)
86
+ - Refactor OpenStack actions to match AWS. [view commit](http://github.com///commit/c7177dc98ba43e3434075186a76df57d27ce7b26)
87
+
88
+ ## 0.6.1
89
+
90
+ - Merge pull request #60 from matope/fix-floating_ip-NoMethodError [view commit](http://github.com///commit/a058256c27573c7545afbc09cce60214731e6e4e)
91
+ - Fix NoMethodError on vagrant up w/o floating_ip [view commit](http://github.com///commit/be6fb0d46f69a3b9925c11648e5bc71af4491a7d)
92
+
93
+ ## 0.6.0
94
+
95
+ - Merge pull request #59 from virtuald/fixed_automatic_ip [view commit](http://github.com///commit/7e7867ee7340515a8d0171fe5ea88aa340646e0f)
96
+ - Update README with additional information about automatic allocation [view commit](http://github.com///commit/ea4ee9f409f61a2583588d3782701fe66239bd24)
97
+ - Allow address_id to use the automatically assigned floating ip [view commit](http://github.com///commit/cb0e29c20e7105dae2a6534ccaebbe656c0d8419)
98
+ - Update README [view commit](http://github.com///commit/b26f70653fb7cfbfe9604031d82aa42d4a324421)
99
+ - Add support for automatically allocating a floating IP [view commit](http://github.com///commit/aee3129fc6020d3e3a6cc8db28b9b1c812225fbc)
100
+ - update changelog [view commit](http://github.com///commit/936a2eef3d802d65a9f0753b5652ef4a8dbdb345)
101
+
102
+ ## 0.5.0
103
+
104
+
105
+ - Merge pull request #45 from detiber/fixNetworksPR [view commit](http://github.com///commit/56b28eff5a1079c6805ec944b1a0c1dde458b10e)
106
+ - Merge pull request #53 from tjheeta/remote_machine_id [view commit](http://github.com///commit/5873d1b5282fe2d24a0e725ec6289d1ba5e20e9b)
107
+ - Merge pull request #54 from last-g/patch-1 [view commit](http://github.com///commit/7941573ef8f547a915e31c51ab4d1b85b878eebe)
108
+ - Merge pull request #56 from nicobrevin/feature-no-verify-peer [view commit](http://github.com///commit/844835811808d256f67ad43e0124ace3f552a18c)
109
+ - Merge pull request #58 from ohnoimdead/no-network-fix [view commit](http://github.com///commit/4b44a7c80d4a381531266844a5c99de0eea850b5)
110
+ - Fix for exception when OS endpoint doesn't have neutron installed [view commit](http://github.com///commit/7558bbed3b5ecae8bb3e3ca9c64ffc9512a4c170)
111
+ - add ssl_verify_peer config option [view commit](http://github.com///commit/cb94f002d790afb5fbec225d17385c8f5b0ebb35)
112
+ - Missing semicolon [view commit](http://github.com///commit/8f609ee474b548b096e42b08c27fc5f874037204)
113
+ - Missing region while configuring networks [view commit](http://github.com///commit/ea10bff5cdabea0b9c543a5231500fb7f9fd50ac)
114
+ - Fix for delete_server [view commit](http://github.com///commit/d4f812eb99d135f7b7c5d210778e92cd8e5a4561)
115
+ - If the .vagrant directory does not contain the machine id, try to connect remotely to try to find it [view commit](http://github.com///commit/71447bf49afe1fed29fa7ce561305dcc756a2e16)
116
+ - Fix test for config.network and config.networks. [view commit](http://github.com///commit/5c9161aaf3ac715bc52819ee99c2d02d8434ea7b)
117
+
118
+ ## 0.4.1
119
+
120
+ - update release info [view commit](http://github.com///commit/9866c83713ec0f1db8aed02a9aa9cbaafe8e85a4)
121
+
122
+ ## 0.4.0
123
+
124
+ - Merge pull request #49 from RackerJohnMadrid/fix-rsync-vagrant-1-4 [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/5664ead3fda8f889dad72de1de2fbb
125
+ - fixes the issue of ssh keys now being represented as an Array in vagrant >= 1.4 [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/0741d802a13c4a858
126
+ - fix regression wrt multiple nics [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/9c5441db359b34f2bbf66d30853c97b0896a494b)
127
+ - update README [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/725e66ab7970e5698aa7347dae93f791e926097a)
128
+ - implement multiple networks [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/0bbbda10bc3b6a09e3165936a2cd17d56b9d3159)
129
+ - two minor rsync bugfixes [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/5bf54e8ab99baa850631803137d991a4756f34ab)
130
+ - Merge pull request #33 from johnbellone/master [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/f863781405a1070fe991f55f93d2b37763f6c1da)
131
+ - Add actions for pausing/suspending (and inverse). [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/a5ec0edd25af250599e0e248a25d8a34af0e1c40)
132
+ - Merge pull request #31 from johnbellone/master [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/83031f79e5834693e2c45656c0ae17b6f13afe83)
133
+ - Add a little debugging output. [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/c00310ed8855d3b2b0472ab9304debefbb0918e3)
134
+ - Add travis.yml file to the project. [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/bc53baaa43c2bf652294d374e071c96bf00bcf12)
135
+ - Add proxy option to configuration. [view commit](http://github.com/cloudbau/vagrant-openstack-plugin/commit/3d33bdc9a3bf28af7403bd1a0245a9869799eadc)
136
+
137
+
138
+ ## 0.3.0 (September 25, 2013)
139
+
140
+ - Adds support to determine IP address to use
141
+ - Region Support
142
+ - Enabled controlling multiple VMs in parallel
143
+ - Honor disabling of synced folders
144
+ - Adds `availability_zone` option to specify instance zone
145
+ - Added --delete to rsync command
146
+ - Call SetHostname action from Vagrant core in up phase
147
+ - Handled not having the box and providing it via a box_url.
148
+ - Allowed vagrant ssh -c 'command'
149
+ - Adds tenant to network request
150
+ - Improved documentation
151
+
152
+ ## 0.2.2 (May 30, 2013)
153
+
154
+ - Also ignore HOSTUNREACH errors when first trying to connect to newly created VM
155
+
156
+ ## 0.2.1 (May 29, 2013)
157
+
158
+ - Fix passing user data to server on create
159
+ - Floating IP Capability
160
+ - Added ability to configure scheduler hints
161
+ - Update doc (network config in fact has higher precedence than address_id)
162
+ - 'address_id' now defaults to 'public', to reduce number of cases in read_ssh_info
163
+ - Introduced 'address_id' config, which has a higher order of precedence than 'network'
164
+
165
+ ## 0.2.0 (May 2, 2013)
166
+
167
+ - Added docs
168
+ - Removed metadata validation and bumped version
169
+ - Tenant and security groups are now configurable
170
+
171
+ ## 0.1.3 (April 26, 2013)
172
+
173
+ - Added the ability to pass metadata keypairs to instances
174
+ - Added support for nics configurations to allow for selection of a specific network on creation
175
+
176
+ ## 0.1.2 (April 26, 2013)
177
+
178
+ - Added the option of passing user data to VMs
179
+ - Enabled `vagrant provision` in this provider
180
+ - Made finding IP address more stable
181
+ - Doc improvements and minor fixes
182
+
183
+ ## 0.1.0 (March 14, 2013)
184
+
185
+ - Initial release
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :development do
6
+ # We depend on Vagrant for development, but we don't add it as a
7
+ # gem dependency because we expect to be installed within the
8
+ # Vagrant environment itself using `vagrant plugin`.
9
+ gem "vagrant", :git => "https://github.com/mitchellh/vagrant.git", :tag => "v1.4.3"
10
+ end
data/LICENSE.txt ADDED
@@ -0,0 +1,23 @@
1
+ Copyright (c) 2013 Mitchell Hashimoto
2
+ Copyright (c) 2013 cloudbau GmbH
3
+
4
+ MIT License
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining
7
+ a copy of this software and associated documentation files (the
8
+ "Software"), to deal in the Software without restriction, including
9
+ without limitation the rights to use, copy, modify, merge, publish,
10
+ distribute, sublicense, and/or sell copies of the Software, and to
11
+ permit persons to whom the Software is furnished to do so, subject to
12
+ the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be
15
+ included in all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,278 @@
1
+ # Vagrant OpenStack Cloud Provider
2
+
3
+ This is a [Vagrant](http://www.vagrantup.com) 1.1+ plugin that adds a
4
+ [OpenStack Cloud](http://www.openstack.org) provider to Vagrant,
5
+ allowing Vagrant to control and provision machines within an OpenStack
6
+ cloud.
7
+
8
+ This plugin started as a fork of the Vagrant RackSpace provider.
9
+
10
+ **Note:** This plugin requires Vagrant 1.1+.
11
+
12
+ ## Features
13
+
14
+ * Boot OpenStack Cloud instances.
15
+ * SSH into the instances.
16
+ * Provision the instances with any built-in Vagrant provisioner.
17
+ * Minimal synced folder support via `rsync`.
18
+ * Creation and destruction of volumes with VM
19
+
20
+ ## Usage
21
+
22
+ Install using standard Vagrant 1.1+ plugin installation methods. After
23
+ installing, `vagrant up` and specify the `openstack` provider. An example is
24
+ shown below.
25
+
26
+ ```
27
+ $ vagrant plugin install vagrant-openstack-plugin
28
+ ...
29
+ $ vagrant up --provider=openstack
30
+ ...
31
+ ```
32
+
33
+ Of course prior to doing this, you'll need to obtain an OpenStack-compatible
34
+ box file for Vagrant.
35
+
36
+ ## Quick Start
37
+
38
+ After installing the plugin (instructions above), the quickest way to get
39
+ started is to actually use a dummy OpenStack box and specify all the details
40
+ manually within a `config.vm.provider` block. So first, add the dummy
41
+ box using any name you want:
42
+
43
+ ```
44
+ $ vagrant box add dummy https://github.com/cloudbau/vagrant-openstack-plugin/raw/master/dummy.box
45
+ ...
46
+ ```
47
+
48
+ And then make a Vagrantfile that looks like the following, filling in
49
+ your information where necessary.
50
+
51
+ ```
52
+ require 'vagrant-openstack-plugin'
53
+
54
+ Vagrant.configure("2") do |config|
55
+ config.vm.box = "dummy"
56
+
57
+ # Make sure the private key from the key pair is provided
58
+ config.ssh.private_key_path = "~/.ssh/id_rsa"
59
+
60
+ config.vm.provider :openstack do |os|
61
+ os.username = "YOUR USERNAME" # e.g. "#{ENV['OS_USERNAME']}"
62
+ os.api_key = "YOUR API KEY" # e.g. "#{ENV['OS_PASSWORD']}"
63
+ os.flavor = /m1.tiny/ # Regex or String
64
+ os.image = /Ubuntu/ # Regex or String
65
+ os.endpoint = "KEYSTONE AUTH URL" # e.g. "#{ENV['OS_AUTH_URL']}/tokens"
66
+ os.keypair_name = "YOUR KEYPAIR NAME" # as stored in Nova
67
+ os.ssh_username = "SSH USERNAME" # login for the VM
68
+
69
+ os.ssh_ip_family = "ipv6" # IP address family
70
+
71
+ os.metadata = {"key" => "value"} # optional
72
+ os.user_data = "#cloud-config\nmanage_etc_hosts: True" # optional
73
+ os.network = "YOUR NETWORK_NAME" # optional
74
+ os.networks = [ "internal", "external" ] # optional, overrides os.network
75
+ os.address_id = "YOUR ADDRESS ID" # optional (`network` above has higher precedence)
76
+ os.scheduler_hints = {
77
+ :cell => 'australia'
78
+ } # optional
79
+ os.availability_zone = "az0001" # optional
80
+ os.security_groups = ['ssh', 'http'] # optional
81
+ os.tenant = "YOUR TENANT_NAME" # optional
82
+ os.floating_ip = "33.33.33.33" # optional (The floating IP to assign for this instance, or set to :auto or :associate_unassigned (ruby symbol, no quotes!))
83
+ os.floating_ip_pool = "public" # optional (The floating IP pool to allocate addresses to, if floating_ip = :auto, or the pool to pull the next available IP from if floating_ip = :associate_unassigned (ruby symbol, no quotes!))
84
+
85
+ os.disks = [ # optional
86
+ {"name" => "volume_name_here", "description" => "A 10GB Volume", "size" => 10},
87
+ {"name" => "volume_name_here", "description" => "A 20GB Volume", "size" => 20}
88
+ ]
89
+
90
+ os.orchestration_stack_name = 'stack01' # optional
91
+ os.orchestration_cfn_template_file = '/tmp/cfn_heat_template.json' # optional
92
+ os.orchestration_cfn_template_parameters = { # optional
93
+ 'NetworkName' => 'net_01'
94
+ }
95
+ end
96
+ end
97
+ ```
98
+
99
+ And then run `vagrant up --provider=openstack`.
100
+
101
+ This will start a tiny Ubuntu instance in your OpenStack installation within
102
+ your tenant. And assuming your SSH information was filled in properly
103
+ within your Vagrantfile, SSH and provisioning will work as well.
104
+
105
+ Note that normally a lot of this boilerplate is encoded within the box
106
+ file, but the box file used for the quick start, the "dummy" box, has
107
+ no preconfigured defaults.
108
+
109
+ ## Box Format
110
+
111
+ Every provider in Vagrant must introduce a custom box format. This
112
+ provider introduces `openstack` boxes. You can view an example box in
113
+ the [example_box/ directory](https://github.com/cloudbau/vagrant-openstack-plugin/tree/master/example_box).
114
+ That directory also contains instructions on how to build a box.
115
+
116
+ The box format is basically just the required `metadata.json` file
117
+ along with a `Vagrantfile` that does default settings for the
118
+ provider-specific configuration for this provider.
119
+
120
+ ## Configuration
121
+
122
+ This provider exposes quite a few provider-specific configuration options:
123
+
124
+ * `api_key` - The API key for accessing OpenStack.
125
+ * `flavor` - The server flavor to boot. This can be a string matching
126
+ the exact ID or name of the server, or this can be a regular expression
127
+ to partially match some server flavor.
128
+ * `image` - The server image to boot. This can be a string matching the
129
+ exact ID or name of the image, or this can be a regular expression to
130
+ partially match some image.
131
+ * `endpoint` - The keystone authentication URL of your OpenStack installation.
132
+ * `server_name` - The name of the server within the OpenStack Cloud. This
133
+ defaults to the name of the Vagrant machine (via `config.vm.define`), but
134
+ can be overridden with this.
135
+ * `username` - The username with which to access OpenStack.
136
+ * `keypair_name` - The name of the keypair to access the machine.
137
+ * `ssh_username` - The username to access the machine. This can also be
138
+ configured using the standard config.ssh.username configuration value.
139
+ * `ssh_ip_family` - The IP address family to use for SSH connection. It could be `ipv6` or `ipv4`.
140
+ This option takes effect only if virtual machine have multiple addresses.
141
+ * `metadata` - A set of key pair values that will be passed to the instance
142
+ for configuration.
143
+ * `network` - A name or id that will be used to fetch network configuration
144
+ data when configuring the instance. NOTE: This is not compliant with the
145
+ vagrant network configurations.
146
+ * `networks` - An array of names or ids to create a server with multiple network interfaces. This overrides the `network` setting.
147
+ * `address_id` - A specific address identifier to use when connecting to the
148
+ instance. `network` has higher precedence. If set to :floating_ip, then
149
+ the floating IP address will be used.
150
+ * `scheduler_hints` - Pass hints to the open stack scheduler, see `--hint` flag in [OpenStack filters doc](http://docs.openstack.org/trunk/openstack-compute/admin/content/scheduler-filters.html)
151
+ * `availability_zone` - Specify the availability zone in which the instance
152
+ must be created.
153
+ * `security_groups` - List of security groups to be applied to the machine.
154
+ * `tenant` - Tenant name. You only need to specify this if your OpenStack user has access to multiple tenants.
155
+ * `region` - Region Name. Specify the region you want the instance to be launched in for multi-region environments.
156
+ * `proxy` - HTTP proxy. When behind a firewall override this value for API access.
157
+ * `ssl_verify_peer` - sets the ssl_verify_peer on the underlying excon connection - useful for self signed certs etc.
158
+ * `floating_ip` - Floating ip. The floating IP to assign for this instance. If
159
+ set to :auto, then this assigns any available floating IP to the instance. If set to :associate_unassigned, then it will use the next IP address which is unasssigned in the pool specified in floating_ip_pool.
160
+ * `floating_ip_pool` - Floating ip pool to allocate IP addresses from, if
161
+ floating_ip is set to :auto. Previously allocated addresses will not be
162
+ used, and addresses allocated here will be released when the VM is destroyed.
163
+ * `orchestration_stack_name` - Name for orchestration stack. Mandatory
164
+ parameter when creating new stack. One of parameters for template should be
165
+ set with this parameter.
166
+ * `orchestration_stack_destroy` - If stack created by vagrant should be deleted
167
+ when destroy action is invoked. Default value is `false`.
168
+ * `orchestration_cfn_template` - AWS CloudFormation Template specified as a string.
169
+ * `orchestration_cfn_template_file` - AWS CloudFormation Template file path
170
+ accessible for vagrant.
171
+ * `orchestration_cfn_template_url` - AWS CloudFormation Template URL.
172
+ * `orchestration_cfn_template_parameters` - AWS CloudFormation Template
173
+ parameters specified in ruby hash (take a look at example Vagrantfile).
174
+ This parameter is optional.
175
+ * `disks` - Array of disk specifications to create or attach
176
+
177
+ These can be set like typical provider-specific configuration:
178
+
179
+ ```ruby
180
+ Vagrant.configure("2") do |config|
181
+ # ... other stuff
182
+
183
+ config.vm.provider :openstack do |rs|
184
+ rs.username = "mitchellh"
185
+ rs.api_key = "foobarbaz"
186
+ end
187
+ end
188
+ ```
189
+
190
+ ## Networks
191
+
192
+ Static IP assignment is supported by doing the following:
193
+
194
+ First, define one or more networks with `os.networks`:
195
+
196
+ ```ruby
197
+ os.networks = ['network1', 'network2']
198
+ ```
199
+
200
+ Next, configure those networks using `config.vm.network`:
201
+
202
+ ```ruby
203
+ config.vm.network 'private_network', ip: '192.168.1.100'
204
+ config.vm.network 'private_network', ip: '192.168.2.100'
205
+ ```
206
+
207
+ Note that the order must be the same as the order in `os.networks`.
208
+ If you only want to configure the second NIC with a static IP, do
209
+ the following:
210
+
211
+ ```ruby
212
+ config.vm.network 'private_network', type: 'dhcp'
213
+ config.vm.network 'private_network', ip: '192.168.2.100'
214
+ ```
215
+
216
+ ## Synced Folders
217
+
218
+ There is minimal support for synced folders. Upon `vagrant up`,
219
+ `vagrant reload`, and `vagrant provision`, the OpenStack provider will use
220
+ `rsync` (if available) to uni-directionally sync the folder to
221
+ the remote machine over SSH.
222
+
223
+ This is good enough for all built-in Vagrant provisioners (shell,
224
+ chef, and puppet) to work!
225
+
226
+ ## Command
227
+
228
+ ### Snapshot
229
+ `vagrant openstack snapshot <vmname> -n <snapshotname>`
230
+
231
+ Take snapshot of ***vmname*** with name ***snapshotname***
232
+
233
+ ## Contributors
234
+
235
+ - [mitchellh](https://github.com/mitchellh)
236
+ - [tkadauke](https://github.com/tkadauke)
237
+ - [srenatus](https://github.com/srenatus)
238
+ - [hvolkmer](https://github.com/hvolkmer)
239
+ - [ehaselwanter](https://github.com/ehaselwanter)
240
+ - [BRIMIL01](https://github.com/BRIMIL01)
241
+ - [jkburges](https://github.com/jkburges)
242
+ - [johnbellone](https://github.com/johnbellone)
243
+ - [mat128](https://github.com/mat128)
244
+ - [jtopjian](https://github.com/jtopjian)
245
+ - [antoviaque](https://github.com/antoviaque)
246
+ - [last-g](https://github.com/last-g)
247
+ - [spil-jasper](https://github.com/spil-jasper)
248
+ - [detiber](https://github.com/detiber)
249
+ - [RackerJohnMadrid](https://github.com/RackerJohnMadrid)
250
+ - [Lull3rSkat3r](https://github.com/Lull3rSkat3r)
251
+ - [nicobrevin](https://github.com/nicobrevin)
252
+ - [ohnoimdead](https://github.com/ohnoimdead)
253
+ - [cbaenziger](https://github.com/cbaenziger)
254
+ - [chealion](https://github.com/chealion)
255
+
256
+ ## Development
257
+
258
+ To work on the `vagrant-openstack-plugin` plugin, clone this repository out, and use
259
+ [Bundler](http://gembundler.com) to get the dependencies:
260
+
261
+ ```
262
+ $ bundle
263
+ ```
264
+
265
+ Once you have the dependencies, verify the unit tests pass with `rake`:
266
+
267
+ ```
268
+ $ bundle exec rake
269
+ ```
270
+
271
+ If those pass, you're ready to start developing the plugin. You can test
272
+ the plugin without installing it into your Vagrant environment by just
273
+ creating a `Vagrantfile` in the top level of this directory (it is gitignored)
274
+ that uses it, and uses bundler to execute Vagrant:
275
+
276
+ ```
277
+ $ bundle exec vagrant up --provider=openstack
278
+ ```