vagrant-arubacloud 0.0.7 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,66 +1,66 @@
1
- require 'vagrant-arubacloud/action'
2
-
3
- module VagrantPlugins
4
- module ArubaCloud
5
- module Command
6
- class Root < Vagrant.plugin('2', :command)
7
- def self.synopsis
8
- 'query ArubaCloud for servers and templates'
9
- end
10
- def initialize(argv, env)
11
- @main_args, @sub_command, @sub_args = split_main_and_subcommand(argv)
12
- @env = env
13
-
14
- @subcommands = Vagrant::Registry.new
15
- @subcommands.register(:templates) do
16
- require File.expand_path('../templates', __FILE__)
17
- Templates
18
- end
19
- @subcommands.register(:servers) do
20
- require File.expand_path('../servers', __FILE__)
21
- Servers
22
- end
23
-
24
- super(argv, env)
25
- end
26
-
27
- def execute
28
- if @main_args.include?('-h') || @main_args.include?('--help')
29
- return help
30
- end
31
-
32
- # Set command_class to default nil
33
- command_class = nil
34
- command_class = @subcommands.get(@sub_command.to_sym) if @sub_command
35
- return help if command_class.nil? || !@sub_command
36
- @logger.debug("Invoking command class: #{command_class} #{@sub_args.inspect}")
37
-
38
- # Initialize and execute the command class
39
- command_class.new(@sub_args, @env).execute
40
- end
41
-
42
- def help
43
- opts = OptionParser.new do |opts|
44
- opts.banner = 'Usage: vagrant arubacloud <subcommand> [<args>]'
45
- opts.separator ''
46
- opts.separator 'Available subcommands:'
47
-
48
- # Add the available subcommands as separators in order to print them
49
- # out as well.
50
- keys = []
51
- @subcommands.each { |key, value| keys << key.to_s }
52
-
53
- keys.sort.each do |key|
54
- opts.separator " #{key}"
55
- end
56
-
57
- opts.separator ''
58
- opts.separator 'For help on any individual subcommand run `vagrant arubacloud <subcommand> -h`'
59
- end
60
-
61
- @env.ui.info(opts.help, :prefix => false)
62
- end
63
- end
64
- end
65
- end
66
- end
1
+ require 'vagrant-arubacloud/action'
2
+
3
+ module VagrantPlugins
4
+ module ArubaCloud
5
+ module Command
6
+ class Root < Vagrant.plugin('2', :command)
7
+ def self.synopsis
8
+ 'query ArubaCloud for servers and templates'
9
+ end
10
+ def initialize(argv, env)
11
+ @main_args, @sub_command, @sub_args = split_main_and_subcommand(argv)
12
+ @env = env
13
+
14
+ @subcommands = Vagrant::Registry.new
15
+ @subcommands.register(:templates) do
16
+ require File.expand_path('../templates', __FILE__)
17
+ Templates
18
+ end
19
+ @subcommands.register(:servers) do
20
+ require File.expand_path('../servers', __FILE__)
21
+ Servers
22
+ end
23
+
24
+ super(argv, env)
25
+ end
26
+
27
+ def execute
28
+ if @main_args.include?('-h') || @main_args.include?('--help')
29
+ return help
30
+ end
31
+
32
+ # Set command_class to default nil
33
+ command_class = nil
34
+ command_class = @subcommands.get(@sub_command.to_sym) if @sub_command
35
+ return help if command_class.nil? || !@sub_command
36
+ @logger.debug("Invoking command class: #{command_class} #{@sub_args.inspect}")
37
+
38
+ # Initialize and execute the command class
39
+ command_class.new(@sub_args, @env).execute
40
+ end
41
+
42
+ def help
43
+ opts = OptionParser.new do |opts|
44
+ opts.banner = 'Usage: vagrant arubacloud <subcommand> [<args>]'
45
+ opts.separator ''
46
+ opts.separator 'Available subcommands:'
47
+
48
+ # Add the available subcommands as separators in order to print them
49
+ # out as well.
50
+ keys = []
51
+ @subcommands.each { |key, value| keys << key.to_s }
52
+
53
+ keys.sort.each do |key|
54
+ opts.separator " #{key}"
55
+ end
56
+
57
+ opts.separator ''
58
+ opts.separator 'For help on any individual subcommand run `vagrant arubacloud <subcommand> -h`'
59
+ end
60
+
61
+ @env.ui.info(opts.help, :prefix => false)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,49 +1,49 @@
1
- require 'pp'
2
-
3
- module VagrantPlugins
4
- module ArubaCloud
5
- module Command
6
- class Servers < Vagrant.plugin('2', :command)
7
- def execute
8
- options = {}
9
- opts = OptionParser.new do |o|
10
- o.banner = 'Usage: vagrant arubacloud servers [options]'
11
- end
12
- argv = parse_options(opts)
13
- return unless argv
14
-
15
- vm_count = 1
16
- vm_list = Array.new
17
- vm_size = 0
18
-
19
- with_target_vms(argv, :provider => :arubacloud , :plist => '1' ) do |machine|
20
- if vm_count == 1
21
- ll = machine.name.length
22
- ui_ext = Vagrant::UI::Prefixed.new( Vagrant::UI::Colored.new, " "*ll )
23
- ui_ext.opts = { :color => :white, :bold => true }
24
- ui_ext.detail ('%-6s %-20s %-8s %-12s %-14s %s' % ['DC', 'Server Name', ' Id ', 'State Code', 'State meaning', 'IPv4 address'])
25
- ui_ext.detail ("-" * 80)
26
- # vm_size : how many vm are in .vagrant directory (is default)
27
- # status : 'owned' all VM defined in my '.vagrant' directory
28
- machine.provider_config.reserved_status = "owned"
29
- vm_size = machine.config.vm.defined_vm_keys.length
30
- end
31
- if (vm_count == vm_size)
32
- # if last element change 'status' to 'other' to output list of all external VM in current DC
33
- # and send list all VM's ( server.name) founds in '.vagrant' directory
34
- machine.provider_config.reserved_status = "other"
35
- machine.provider_config.reserved_list_owned = vm_list
36
- end
37
-
38
- machine.action('list_servers')
39
- vm_count += 1
40
- # accum in append current server-name returned by list_server only if exist
41
- if machine.provider_config.reserved_list_owned
42
- vm_list << machine.provider_config.reserved_list_owned
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end
1
+ require 'pp'
2
+
3
+ module VagrantPlugins
4
+ module ArubaCloud
5
+ module Command
6
+ class Servers < Vagrant.plugin('2', :command)
7
+ def execute
8
+ options = {}
9
+ opts = OptionParser.new do |o|
10
+ o.banner = 'Usage: vagrant arubacloud servers [options]'
11
+ end
12
+ argv = parse_options(opts)
13
+ return unless argv
14
+
15
+ vm_count = 1
16
+ vm_list = Array.new
17
+ vm_size = 0
18
+
19
+ with_target_vms(argv, :provider => :arubacloud , :plist => '1' ) do |machine|
20
+ if vm_count == 1
21
+ ll = machine.name.length
22
+ ui_ext = Vagrant::UI::Prefixed.new( Vagrant::UI::Colored.new, " "*ll )
23
+ ui_ext.opts = { :color => :white, :bold => true }
24
+ ui_ext.detail ('%-6s %-20s %-8s %-12s %-14s %s' % ['DC', 'Server Name', ' Id ', 'State Code', 'State meaning', 'IPv4 address'])
25
+ ui_ext.detail ("-" * 80)
26
+ # vm_size : how many vm are in .vagrant directory (is default)
27
+ # status : 'owned' all VM defined in my '.vagrant' directory
28
+ machine.provider_config.reserved_status = "owned"
29
+ vm_size = machine.config.vm.defined_vm_keys.length
30
+ end
31
+ if (vm_count == vm_size)
32
+ # if last element change 'status' to 'other' to output list of all external VM in current DC
33
+ # and send list all VM's ( server.name) founds in '.vagrant' directory
34
+ machine.provider_config.reserved_status = "other"
35
+ machine.provider_config.reserved_list_owned = vm_list
36
+ end
37
+
38
+ machine.action('list_servers')
39
+ vm_count += 1
40
+ # accum in append current server-name returned by list_server only if exist
41
+ if machine.provider_config.reserved_list_owned
42
+ vm_list << machine.provider_config.reserved_list_owned
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -1,175 +1,175 @@
1
- require 'optparse'
2
- require 'vagrant-arubacloud/action'
3
- require 'fog/arubacloud'
4
-
5
- module VagrantPlugins
6
- module Command
7
- class Snapshot < Vagrant.plugin('2', :command)
8
- def self.synopsis
9
- 'implement snapshot for vagrant-arubacloud '
10
- end
11
- def execute
12
- options = {:snapop => nil, :namevm => nil}
13
- myparser = OptionParser.new do |opts|
14
- opts.banner = "Usage: vagrant snapshot -t [create|delete|restore|list] -n name_server"
15
- opts.on('-n', '--name name', 'Name server of virtual machine') do |name|
16
- options[:namevm] = name;
17
- end
18
- opts.on('-t', '--type type', 'Type of snapshot : create|delete|restore|list') do |type|
19
- options[:snapop] = type;
20
- end
21
- opts.on('-h', '--help', 'Displays Help') do
22
- puts opts
23
- return
24
- end
25
- end
26
-
27
- myparser.parse!
28
-
29
- if options[:namevm] == nil
30
- puts 'Name of VM is missing'
31
- return
32
- end
33
- if options[:snapop] == nil
34
- puts "Type of action: 'create,delete,restore,list' is missing"
35
- return
36
- end
37
- ck1 = ["create", "delete", "restore", "list"].include? options[:snapop]
38
- if !ck1
39
- puts 'Valid option type are: create,delete,restore,list '
40
- return
41
- end
42
-
43
- not_found = true
44
- with_target_vms( nil, :provider => :arubacloud) do |machine|
45
- # if not machine.id....
46
- if machine.id == nil
47
- next
48
- end
49
- config1 = machine.provider_config
50
- #if no url in config....
51
- unless config1.url
52
- machine.ui.info(" [dc?] " + I18n.t('vagrant_arubacloud.wrong_dc'))
53
- return
54
- end
55
-
56
- arubacloud_dc = config1.endpoint
57
- myprefix = "[#{arubacloud_dc}] "
58
- params = {
59
- :provider => :arubacloud,
60
- :arubacloud_username => config1.arubacloud_username,
61
- :arubacloud_password => config1.arubacloud_password,
62
- :url => config1.url
63
- }
64
-
65
- envx = Fog::Compute.new params
66
- server = envx.servers.get(machine.id)
67
- if server.name == options[:namevm]
68
-
69
- machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.connect_to_dc'))
70
- machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_req_type') + " '#{options[:snapop]}'" + " target id:#{machine.id}" )
71
- not_found = false
72
- case options[:snapop]
73
- # output if exist date creation and date expire for snapshot
74
- when "list"
75
- begin
76
- myreq = server.list_snapshot
77
- if myreq["Success"]
78
- machine.ui.info(myprefix + 'snapshot ' + I18n.t('vagrant_arubacloud.snapshot_info_create') + " #{myreq['credate']} " + I18n.t('vagrant_arubacloud.snapshot_info_expired') + " #{myreq['expdate']} " )
79
- else
80
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_info_not_found'))
81
- end
82
- rescue Fog::ArubaCloud::Errors::RequestError => e
83
- message = ''
84
- error = nil
85
- @logger.debug(e.inspect.to_yaml)
86
- machine.ui.warn(myprefix + " *ERR* list response message: #{e.response.to_yaml}")
87
- end
88
- # creation of snapshot ....
89
- when "create"
90
- if server.state == Fog::ArubaCloud::Compute::Server::RUNNING
91
- #
92
- # if state active and request snapshot create ...
93
- #
94
- begin
95
- myreq = server.create_snapshot
96
- if myreq
97
- machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_created'))
98
- else
99
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_create_err_fog'))
100
- end
101
- rescue Fog::ArubaCloud::Errors::RequestError => e
102
- message = ''
103
- error = nil
104
- @logger.debug(e.inspect.to_yaml)
105
- machine.ui.warn(myprefix + " *ERROR* response message: #{e.response.to_yaml}")
106
- #raise error
107
- end
108
- #
109
- else
110
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_create_err_not_on'))
111
- end
112
- # delete of snapshot...
113
- when "delete"
114
- #
115
- # if snapshot delete ...
116
- #
117
- begin
118
- myreq = server.delete_snapshot
119
- if myreq
120
- machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_deleted'))
121
- else
122
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_delete_err_fog'))
123
- end
124
- rescue Fog::ArubaCloud::Errors::RequestError => e
125
- message = ''
126
- error = nil
127
- @logger.debug(e.inspect.to_yaml)
128
- machine.ui.warn(myprefix + " *ERROR* response message: #{e.response.to_yaml}")
129
- #raise error
130
- end
131
- # if vm is power off and esiste a snapshot resorre vm from snapshot
132
- # (waring : the machine is not power on after restart and snapshot image is removed)
133
- when "restore"
134
- if server.state == Fog::ArubaCloud::Compute::Server::STOPPED
135
- #
136
- # if state stopped (power off) and requets restore
137
- # WARNING : the snapshot file is removed after restore
138
- #
139
- begin
140
- myreq = server.apply_snapshot
141
- if myreq
142
- machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_restored'))
143
- else
144
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_restore_err_fog'))
145
- end
146
- rescue Fog::ArubaCloud::Errors::RequestError => e
147
- message = ''
148
- error = nil
149
- @logger.debug(e.inspect.to_yaml)
150
- machine.ui.warn(myprefix + " *ERROR* response message: #{e.response.to_yaml}")
151
- #raise error
152
- end
153
- else
154
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_restore_err_not_off'))
155
- end
156
-
157
- else
158
- machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_type_unknow') + " :#{options[:snapop]}" )
159
- end
160
-
161
- end # test if found machine.id
162
-
163
- end #
164
-
165
- if not_found
166
- puts "==> ??? [dc?] " + I18n.t("vagrant_arubacloud.snapshot_server_unknow") + " :#{options[:namevm]}"
167
- end
168
-
169
- end
170
- end
171
- end
172
- end
173
-
174
-
175
-
1
+ require 'optparse'
2
+ require 'vagrant-arubacloud/action'
3
+ require 'fog/arubacloud'
4
+
5
+ module VagrantPlugins
6
+ module Command
7
+ class Snapshot < Vagrant.plugin('2', :command)
8
+ def self.synopsis
9
+ 'implement snapshot for vagrant-arubacloud '
10
+ end
11
+ def execute
12
+ options = {:snapop => nil, :namevm => nil}
13
+ myparser = OptionParser.new do |opts|
14
+ opts.banner = "Usage: vagrant snapshot -t [create|delete|restore|list] -n name_server"
15
+ opts.on('-n', '--name name', 'Name server of virtual machine') do |name|
16
+ options[:namevm] = name;
17
+ end
18
+ opts.on('-t', '--type type', 'Type of snapshot : create|delete|restore|list') do |type|
19
+ options[:snapop] = type;
20
+ end
21
+ opts.on('-h', '--help', 'Displays Help') do
22
+ puts opts
23
+ return
24
+ end
25
+ end
26
+
27
+ myparser.parse!
28
+
29
+ if options[:namevm] == nil
30
+ puts 'Name of VM is missing'
31
+ return
32
+ end
33
+ if options[:snapop] == nil
34
+ puts "Type of action: 'create,delete,restore,list' is missing"
35
+ return
36
+ end
37
+ ck1 = ["create", "delete", "restore", "list"].include? options[:snapop]
38
+ if !ck1
39
+ puts 'Valid option type are: create,delete,restore,list '
40
+ return
41
+ end
42
+
43
+ not_found = true
44
+ with_target_vms( nil, :provider => :arubacloud) do |machine|
45
+ # if not machine.id....
46
+ if machine.id == nil
47
+ next
48
+ end
49
+ config1 = machine.provider_config
50
+ #if no url in config....
51
+ unless config1.url
52
+ machine.ui.info(" [dc?] " + I18n.t('vagrant_arubacloud.wrong_dc'))
53
+ return
54
+ end
55
+
56
+ arubacloud_dc = config1.endpoint
57
+ myprefix = "[#{arubacloud_dc}] "
58
+ params = {
59
+ :provider => :arubacloud,
60
+ :arubacloud_username => config1.arubacloud_username,
61
+ :arubacloud_password => config1.arubacloud_password,
62
+ :url => config1.url
63
+ }
64
+
65
+ envx = Fog::Compute.new params
66
+ server = envx.servers.get(machine.id)
67
+ if server.name == options[:namevm]
68
+
69
+ machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.connect_to_dc'))
70
+ machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_req_type') + " '#{options[:snapop]}'" + " target id:#{machine.id}" )
71
+ not_found = false
72
+ case options[:snapop]
73
+ # output if exist date creation and date expire for snapshot
74
+ when "list"
75
+ begin
76
+ myreq = server.list_snapshot
77
+ if myreq["Success"]
78
+ machine.ui.info(myprefix + 'snapshot ' + I18n.t('vagrant_arubacloud.snapshot_info_create') + " #{myreq['credate']} " + I18n.t('vagrant_arubacloud.snapshot_info_expired') + " #{myreq['expdate']} " )
79
+ else
80
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_info_not_found'))
81
+ end
82
+ rescue Fog::ArubaCloud::Errors::RequestError => e
83
+ message = ''
84
+ error = nil
85
+ @logger.debug(e.inspect.to_yaml)
86
+ machine.ui.warn(myprefix + " *ERR* list response message: #{e.response.to_yaml}")
87
+ end
88
+ # creation of snapshot ....
89
+ when "create"
90
+ if server.state == Fog::ArubaCloud::Compute::Server::RUNNING
91
+ #
92
+ # if state active and request snapshot create ...
93
+ #
94
+ begin
95
+ myreq = server.create_snapshot
96
+ if myreq
97
+ machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_created'))
98
+ else
99
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_create_err_fog'))
100
+ end
101
+ rescue Fog::ArubaCloud::Errors::RequestError => e
102
+ message = ''
103
+ error = nil
104
+ @logger.debug(e.inspect.to_yaml)
105
+ machine.ui.warn(myprefix + " *ERROR* response message: #{e.response.to_yaml}")
106
+ #raise error
107
+ end
108
+ #
109
+ else
110
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_create_err_not_on'))
111
+ end
112
+ # delete of snapshot...
113
+ when "delete"
114
+ #
115
+ # if snapshot delete ...
116
+ #
117
+ begin
118
+ myreq = server.delete_snapshot
119
+ if myreq
120
+ machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_deleted'))
121
+ else
122
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_delete_err_fog'))
123
+ end
124
+ rescue Fog::ArubaCloud::Errors::RequestError => e
125
+ message = ''
126
+ error = nil
127
+ @logger.debug(e.inspect.to_yaml)
128
+ machine.ui.warn(myprefix + " *ERROR* response message: #{e.response.to_yaml}")
129
+ #raise error
130
+ end
131
+ # if vm is power off and esiste a snapshot resorre vm from snapshot
132
+ # (waring : the machine is not power on after restart and snapshot image is removed)
133
+ when "restore"
134
+ if server.state == Fog::ArubaCloud::Compute::Server::STOPPED
135
+ #
136
+ # if state stopped (power off) and requets restore
137
+ # WARNING : the snapshot file is removed after restore
138
+ #
139
+ begin
140
+ myreq = server.apply_snapshot
141
+ if myreq
142
+ machine.ui.info(myprefix + I18n.t('vagrant_arubacloud.snapshot_restored'))
143
+ else
144
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_restore_err_fog'))
145
+ end
146
+ rescue Fog::ArubaCloud::Errors::RequestError => e
147
+ message = ''
148
+ error = nil
149
+ @logger.debug(e.inspect.to_yaml)
150
+ machine.ui.warn(myprefix + " *ERROR* response message: #{e.response.to_yaml}")
151
+ #raise error
152
+ end
153
+ else
154
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_restore_err_not_off'))
155
+ end
156
+
157
+ else
158
+ machine.ui.warn(myprefix + I18n.t('vagrant_arubacloud.snapshot_type_unknow') + " :#{options[:snapop]}" )
159
+ end
160
+
161
+ end # test if found machine.id
162
+
163
+ end #
164
+
165
+ if not_found
166
+ puts "==> ??? [dc?] " + I18n.t("vagrant_arubacloud.snapshot_server_unknow") + " :#{options[:namevm]}"
167
+ end
168
+
169
+ end
170
+ end
171
+ end
172
+ end
173
+
174
+
175
+