Module: VagrantPlugins::Openstack::Action

Includes:
Vagrant::Action::Builtin
Defined in:
lib/vagrant-openstack-provider/action.rb,
lib/vagrant-openstack-provider/action/resume.rb,
lib/vagrant-openstack-provider/action/message.rb,
lib/vagrant-openstack-provider/action/suspend.rb,
lib/vagrant-openstack-provider/action/provision.rb,
lib/vagrant-openstack-provider/action/wait_stop.rb,
lib/vagrant-openstack-provider/action/read_state.rb,
lib/vagrant-openstack-provider/action/stop_server.rb,
lib/vagrant-openstack-provider/action/wait_active.rb,
lib/vagrant-openstack-provider/action/create_stack.rb,
lib/vagrant-openstack-provider/action/delete_stack.rb,
lib/vagrant-openstack-provider/action/start_server.rb,
lib/vagrant-openstack-provider/action/sync_folders.rb,
lib/vagrant-openstack-provider/action/create_server.rb,
lib/vagrant-openstack-provider/action/delete_server.rb,
lib/vagrant-openstack-provider/action/read_ssh_info.rb,
lib/vagrant-openstack-provider/action/abstract_action.rb,
lib/vagrant-openstack-provider/action/wait_accessible.rb,
lib/vagrant-openstack-provider/action/connect_openstack.rb

Defined Under Namespace

Classes: AbstractAction, ConnectOpenstack, CreateServer, CreateStack, DeleteServer, DeleteStack, InternalProvisionWrapper, Message, NoSyncFolders, ProvisionWrapper, ReadSSHInfo, ReadState, Resume, RsyncFolders, SSHInfoHolder, StartServer, StopServer, Suspend, SyncFolders, WaitForServerToBeAccessible, WaitForServerToBeActive, WaitForServerToStop

Class Method Summary collapse

Class Method Details

.action_destroyObject

This action is called to destroy the remote machine.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/vagrant-openstack-provider/action.rb', line 12

def self.action_destroy
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      if env[:machine_state_id] == :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      else
        b2.use DeleteServer
        b2.use DeleteStack
      end
    end
  end
end

.action_haltObject



119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/vagrant-openstack-provider/action.rb', line 119

def self.action_halt
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      if env[:machine_state_id] == :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      else
        b2.use StopServer
      end
    end
  end
end

.action_provisionObject

This action is called when ‘vagrant provision` is called.



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/vagrant-openstack-provider/action.rb', line 28

def self.action_provision
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      if env[:machine_state_id] == :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      else
        b2.use ProvisionWrapper
        b2.use SyncFolders
      end
    end
  end
end

.action_read_ssh_infoObject

This action is called to read the SSH info of the machine. The resulting state is expected to be put into the ‘:machine_ssh_info` key.



46
47
48
49
50
51
52
# File 'lib/vagrant-openstack-provider/action.rb', line 46

def self.action_read_ssh_info
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use ReadSSHInfo
  end
end

.action_read_stateObject

This action is called to read the state of the machine. The resulting state is expected to be put into the ‘:machine_state_id` key.



57
58
59
60
61
62
63
# File 'lib/vagrant-openstack-provider/action.rb', line 57

def self.action_read_state
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use ReadState
  end
end

.action_reloadObject



175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
# File 'lib/vagrant-openstack-provider/action.rb', line 175

def self.action_reload
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      case env[:machine_state_id]
      when :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      when :suspended
        b2.use Resume
        b2.use WaitForServerToBeActive
        b2.use StopServer
        b2.use WaitForServerToStop
        b2.use StartServer
      when :shutoff
        b2.use StartServer
      else
        b2.use StopServer
        b2.use WaitForServerToStop
        b2.use StartServer
      end
    end
  end
end

.action_resumeObject

This is the action that is primarily responsible for resuming suspended machines. Vm cannot be resumed when the machine_state_id is not suspended.



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# File 'lib/vagrant-openstack-provider/action.rb', line 158

def self.action_resume
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      case env[:machine_state_id]
      when :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      when :suspended
        b2.use Resume
      else
        b2.use Message, I18n.t('vagrant_openstack.not_suspended')
      end
    end
  end
end

.action_sshObject



65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/vagrant-openstack-provider/action.rb', line 65

def self.action_ssh
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      if env[:machine_state_id] == :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      else
        b2.use SSHExec
      end
    end
  end
end

.action_ssh_runObject



79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/vagrant-openstack-provider/action.rb', line 79

def self.action_ssh_run
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      if env[:machine_state_id] == :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      else
        b2.use SSHRun
      end
    end
  end
end

.action_suspendObject

This is the action that is primarily responsible for suspending the virtual machine. Vm cannot be suspended when the machine_state_id is not “active” (typically a task is ongoing)



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/vagrant-openstack-provider/action.rb', line 136

def self.action_suspend
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack
    b.use Call, ReadState do |env, b2|
      case env[:machine_state_id]
      when :not_created
        b2.use Message, I18n.t('vagrant_openstack.not_created')
      when :suspended
        b2.use Message, I18n.t('vagrant_openstack.already_suspended')
      when :active
        b2.use Suspend
      else
        b2.use Message, I18n.t('vagrant_openstack.ongoing_task')
      end
    end
  end
end

.action_upObject



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# File 'lib/vagrant-openstack-provider/action.rb', line 93

def self.action_up
  new_builder.tap do |b|
    b.use ConfigValidate
    b.use ConnectOpenstack

    b.use Call, ReadState do |env, b2|
      case env[:machine_state_id]
      when :not_created
        ssh_disabled = env[:machine].provider_config.ssh_disabled
        b2.use ProvisionWrapper unless ssh_disabled
        b2.use SyncFolders
        b2.use CreateStack
        b2.use CreateServer
        b2.use Message, I18n.t('vagrant_openstack.ssh_disabled_provisioning') if ssh_disabled
        b2.use WaitForServerToBeAccessible unless ssh_disabled
      when :shutoff
        b2.use StartServer
      when :suspended
        b2.use Resume
      else
        b2.use Message, I18n.t('vagrant_openstack.already_created')
      end
    end
  end
end

.get_ssh_info(env) ⇒ Object



67
68
69
# File 'lib/vagrant-openstack-provider/action/read_ssh_info.rb', line 67

def self.get_ssh_info(env)
  SSHInfoHolder.instance.ssh_info[env[:machine].id.to_sym]
end