Class: VagrantPlugins::OpenStack::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-openstack-plugin/config.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/vagrant-openstack-plugin/config.rb', line 124

def initialize
  @api_key  = UNSET_VALUE
  @endpoint = UNSET_VALUE
  @flavor   = UNSET_VALUE
  @image    = UNSET_VALUE
  @server_name = UNSET_VALUE
  @metatdata = UNSET_VALUE
  @username = UNSET_VALUE
  @keypair_name = UNSET_VALUE
  @network  = UNSET_VALUE
  @networks  = UNSET_VALUE
  @address_id  = UNSET_VALUE
  @scheduler_hints = UNSET_VALUE
  @availability_zone = UNSET_VALUE
  @security_groups = UNSET_VALUE
  @ssh_username = UNSET_VALUE
  @tenant = UNSET_VALUE
  @user_data = UNSET_VALUE
  @floating_ip = UNSET_VALUE
  @floating_ip_pool = UNSET_VALUE
  @region = UNSET_VALUE
  @proxy = UNSET_VALUE
  @ssl_verify_peer = UNSET_VALUE
  @disks = UNSET_VALUE
  @orchestration_stack_name = UNSET_VALUE
  @orchestration_stack_destroy = UNSET_VALUE
  @orchestration_cfn_template = UNSET_VALUE
  @orchestration_cfn_template_file = UNSET_VALUE
  @orchestration_cfn_template_url = UNSET_VALUE
  @orchestration_cfn_template_parameters = UNSET_VALUE
end

Instance Attribute Details

#address_idObject

A specific address identifier to use when connecting. Overrides network above if both are set.



51
52
53
# File 'lib/vagrant-openstack-plugin/config.rb', line 51

def address_id
  @address_id
end

#api_keyString

The API key to access OpenStack.



9
10
11
# File 'lib/vagrant-openstack-plugin/config.rb', line 9

def api_key
  @api_key
end

#availability_zoneObject

Specify the availability zone in which to create the instance



57
58
59
# File 'lib/vagrant-openstack-plugin/config.rb', line 57

def availability_zone
  @availability_zone
end

#disksArray

The disks to create as OpenStack volumes.



110
111
112
# File 'lib/vagrant-openstack-plugin/config.rb', line 110

def disks
  @disks
end

#endpointString

The endpoint to access OpenStack. If nil, it will default to DFW.



15
16
17
# File 'lib/vagrant-openstack-plugin/config.rb', line 15

def endpoint
  @endpoint
end

#flavorObject

The flavor of server to launch, either the ID or name. This can also be a regular expression to partially match a name.



19
20
21
# File 'lib/vagrant-openstack-plugin/config.rb', line 19

def flavor
  @flavor
end

#floating_ipString

The floating IP address from the IP pool which will be assigned to the instance.



90
91
92
# File 'lib/vagrant-openstack-plugin/config.rb', line 90

def floating_ip
  @floating_ip
end

#floating_ip_poolString

The floating IP pool from which IP addresses can be allocated



95
96
97
# File 'lib/vagrant-openstack-plugin/config.rb', line 95

def floating_ip_pool
  @floating_ip_pool
end

#imageObject

The name or ID of the image to use. This can also be a regular expression to partially match a name.



23
24
25
# File 'lib/vagrant-openstack-plugin/config.rb', line 23

def image
  @image
end

#keypair_nameString

The name of the keypair to use.



38
39
40
# File 'lib/vagrant-openstack-plugin/config.rb', line 38

def keypair_name
  @keypair_name
end

#metadataHash

A Hash of metadata that will be sent to the instance for configuration



74
75
76
# File 'lib/vagrant-openstack-plugin/config.rb', line 74

def 
  
end

#networkString

Network configurations for the instance



43
44
45
# File 'lib/vagrant-openstack-plugin/config.rb', line 43

def network
  @network
end

#networksArray



46
47
48
# File 'lib/vagrant-openstack-plugin/config.rb', line 46

def networks
  @networks
end

#orchestration_cfn_templateObject

Returns the value of attribute orchestration_cfn_template.



119
120
121
# File 'lib/vagrant-openstack-plugin/config.rb', line 119

def orchestration_cfn_template
  @orchestration_cfn_template
end

#orchestration_cfn_template_fileObject

Returns the value of attribute orchestration_cfn_template_file.



120
121
122
# File 'lib/vagrant-openstack-plugin/config.rb', line 120

def orchestration_cfn_template_file
  @orchestration_cfn_template_file
end

#orchestration_cfn_template_parametersObject

Returns the value of attribute orchestration_cfn_template_parameters.



122
123
124
# File 'lib/vagrant-openstack-plugin/config.rb', line 122

def orchestration_cfn_template_parameters
  @orchestration_cfn_template_parameters
end

#orchestration_cfn_template_urlObject

Returns the value of attribute orchestration_cfn_template_url.



121
122
123
# File 'lib/vagrant-openstack-plugin/config.rb', line 121

def orchestration_cfn_template_url
  @orchestration_cfn_template_url
end

#orchestration_stack_destroyObject

Returns the value of attribute orchestration_stack_destroy.



118
119
120
# File 'lib/vagrant-openstack-plugin/config.rb', line 118

def orchestration_stack_destroy
  @orchestration_stack_destroy
end

#orchestration_stack_nameObject

Heat orchestration configuration parameters.



117
118
119
# File 'lib/vagrant-openstack-plugin/config.rb', line 117

def orchestration_stack_name
  @orchestration_stack_name
end

#proxyString

The proxy to specify when making connection to OpenStack API.



105
106
107
# File 'lib/vagrant-openstack-plugin/config.rb', line 105

def proxy
  @proxy
end

#regionString

The region to specify when the OpenStack cloud has multiple regions



100
101
102
# File 'lib/vagrant-openstack-plugin/config.rb', line 100

def region
  @region
end

#scheduler_hintsObject

Pass hints to the OpenStack scheduler, e.g. { “cell”: “some cell name” }



54
55
56
# File 'lib/vagrant-openstack-plugin/config.rb', line 54

def scheduler_hints
  @scheduler_hints
end

#security_groupsArray[String]

List of strings representing the security groups to apply. e.g. [‘ssh’, ‘http’]



63
64
65
# File 'lib/vagrant-openstack-plugin/config.rb', line 63

def security_groups
  @security_groups
end

#server_nameObject

The name of the server. This defaults to the name of the machine defined by Vagrant (via config.vm.define), but can be overriden here.



28
29
30
# File 'lib/vagrant-openstack-plugin/config.rb', line 28

def server_name
  @server_name
end

#ssh_usernameString

The SSH username to use with this OpenStack instance. This overrides the config.ssh.username variable.



69
70
71
# File 'lib/vagrant-openstack-plugin/config.rb', line 69

def ssh_username
  @ssh_username
end

#ssl_verify_peerObject

Value for SSL_VERIFY_PEER, defaults to true. Set to false for self signed ssl certificate



114
115
116
# File 'lib/vagrant-openstack-plugin/config.rb', line 114

def ssl_verify_peer
  @ssl_verify_peer
end

#tenantString

The tenant to use.



79
80
81
# File 'lib/vagrant-openstack-plugin/config.rb', line 79

def tenant
  @tenant
end

#user_dataString

User data to be sent to the newly created OpenStack instance. Use this e.g. to inject a script at boot time.



85
86
87
# File 'lib/vagrant-openstack-plugin/config.rb', line 85

def user_data
  @user_data
end

#usernameString

The username to access OpenStack.



33
34
35
# File 'lib/vagrant-openstack-plugin/config.rb', line 33

def username
  @username
end

Instance Method Details

#finalize!Object



156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
# File 'lib/vagrant-openstack-plugin/config.rb', line 156

def finalize!
  @api_key  = nil if @api_key == UNSET_VALUE
  @endpoint = nil if @endpoint == UNSET_VALUE
  @flavor   = /m1.tiny/ if @flavor == UNSET_VALUE
  @image    = /cirros/ if @image == UNSET_VALUE
  @server_name = nil if @server_name == UNSET_VALUE
   = nil if  == UNSET_VALUE
  @username = nil if @username == UNSET_VALUE
  @network = nil if @network == UNSET_VALUE
  @networks = nil if @networks == UNSET_VALUE
  @address_id = 'public' if @address_id == UNSET_VALUE

  # Keypair defaults to nil
  @keypair_name = nil if @keypair_name == UNSET_VALUE

  @scheduler_hints = nil if @scheduler_hints == UNSET_VALUE
  @availability_zone = nil if @availability_zone == UNSET_VALUE
  @security_groups = nil if @security_groups == UNSET_VALUE

  # The SSH values by default are nil, and the top-level config
  # `config.ssh` values are used.
  @ssh_username = nil if @ssh_username == UNSET_VALUE

  @tenant = nil if @tenant == UNSET_VALUE
  @user_data = "" if @user_data == UNSET_VALUE
  @floating_ip = nil if @floating_ip == UNSET_VALUE
  @floating_ip = nil if @floating_ip_pool == UNSET_VALUE

  @disks = nil if @disks == UNSET_VALUE

  @region = nil if @region == UNSET_VALUE
  @proxy = nil if @proxy == UNSET_VALUE
  @ssl_verify_peer = nil if @ssl_verify_peer == UNSET_VALUE

  @orchestration_stack_name = nil if @orchestration_stack_name == UNSET_VALUE
  @orchestration_stack_destroy = false if @orchestration_stack_destroy == UNSET_VALUE
  @orchestration_cfn_template = nil if @orchestration_cfn_template == UNSET_VALUE
  @orchestration_cfn_template_file = nil if @orchestration_cfn_template_file == UNSET_VALUE
  @orchestration_cfn_template_url = nil if @orchestration_cfn_template_url == UNSET_VALUE
  @orchestration_cfn_template_parameters = nil if @orchestration_cfn_template_parameters == UNSET_VALUE
end

#validate(machine) ⇒ Object



198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
# File 'lib/vagrant-openstack-plugin/config.rb', line 198

def validate(machine)
  errors = []

  errors << I18n.t("vagrant_openstack.config.api_key_required") if !@api_key
  errors << I18n.t("vagrant_openstack.config.username_required") if !@username

  if @disks and @disks.any?{|a| not a.respond_to?("include?")}
    errors << I18n.t("vagrant_openstack.config.disks.specification_required")
  elsif @disks
    errors << I18n.t("vagrant_openstack.config.disks.name_required") if @disks.any?{|a| not a.include?("name")}
    errors << I18n.t("vagrant_openstack.config.disks.description_required") if @disks.any?{|a| not a.include?("description")}
    errors << I18n.t("vagrant_openstack.config.disks.size_required") if @disks.any?{|a| not a.include?("size")}
  end

  { "OpenStack Provider" => errors }
end