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

Returns a new instance of Config.



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/vagrant-openstack-plugin/config.rb', line 106

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
  @region = UNSET_VALUE
  @proxy = UNSET_VALUE
  @ssl_verify_peer = 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.

Returns:

  • (String)


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

#endpointString

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

Returns:

  • (String)


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.

Returns:

  • (String)


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

def floating_ip
  @floating_ip
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.

Returns:

  • (String)


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

Returns:

  • (Hash)


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

def 
  
end

#networkString

Network configurations for the instance

Returns:

  • (String)


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

def network
  @network
end

#networksArray

Returns:

  • (Array)


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

def networks
  @networks
end

#proxyString

The proxy to specify when making connection to OpenStack API.

Returns:

  • (String)


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

def proxy
  @proxy
end

#regionString

The region to specify when the OpenStack cloud has multiple regions

Returns:

  • (String)


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

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’]

Returns:

  • (Array[String])


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.

Returns:

  • (String)


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



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

def ssl_verify_peer
  @ssl_verify_peer
end

#tenantString

The tenant to use.

Returns:

  • (String)


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.

Returns:

  • (String)


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

def user_data
  @user_data
end

#usernameString

The username to access OpenStack.

Returns:

  • (String)


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

def username
  @username
end

Instance Method Details

#finalize!Object



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
155
156
157
158
159
160
# File 'lib/vagrant-openstack-plugin/config.rb', line 130

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

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

#validate(machine) ⇒ Object



162
163
164
165
166
167
168
169
# File 'lib/vagrant-openstack-plugin/config.rb', line 162

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

  { "OpenStack Provider" => errors }
end