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.



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/vagrant-openstack-plugin/config.rb', line 85

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
  @address_id  = UNSET_VALUE
  @scheduler_hints = UNSET_VALUE
  @security_groups = UNSET_VALUE
  @ssh_username = UNSET_VALUE
  @tenant = UNSET_VALUE
  @user_data = UNSET_VALUE
  @floating_ip = UNSET_VALUE
end

Instance Attribute Details

#address_idObject

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



48
49
50
# File 'lib/vagrant-openstack-plugin/config.rb', line 48

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

#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)


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

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)


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

def 
  @metadata
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

#scheduler_hintsObject

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



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

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


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

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)


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

def ssh_username
  @ssh_username
end

#tenantString

The tenant to use.

Returns:

  • (String)


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

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)


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

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



104
105
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 104

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
  @metadata = nil if @metadata == UNSET_VALUE
  @username = nil if @username == UNSET_VALUE
  @network = nil if @network == 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
  @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
end

#validate(machine) ⇒ Object



130
131
132
133
134
135
136
137
# File 'lib/vagrant-openstack-plugin/config.rb', line 130

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