cloudbox-server 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +3 -0
- data/README.md +17 -0
- data/bin/cb-cluster-allocate +5 -0
- data/bin/cb-cluster-create +5 -0
- data/bin/cb-cluster-delete +5 -0
- data/bin/cb-cluster-desallocate +5 -0
- data/bin/cb-cluster-info +5 -0
- data/bin/cb-cluster-ls +5 -0
- data/bin/cb-node-destroy +5 -0
- data/bin/cb-node-detach +6 -0
- data/bin/cb-node-info +5 -0
- data/bin/cb-node-install +5 -0
- data/bin/cb-node-ls +5 -0
- data/bin/cb-service-add +5 -0
- data/bin/cb-service-component-add +5 -0
- data/bin/cb-service-component-delete +5 -0
- data/bin/cb-service-component-detach +5 -0
- data/bin/cb-service-conf-apply +5 -0
- data/bin/cb-service-conf-create +5 -0
- data/bin/cb-service-conf-get +5 -0
- data/bin/cb-service-conf-ls +5 -0
- data/bin/cb-service-follow-request +5 -0
- data/bin/cb-service-info +5 -0
- data/bin/cb-service-install +5 -0
- data/bin/cb-service-ls +5 -0
- data/bin/cb-service-start +5 -0
- data/bin/cb-service-stop +5 -0
- data/lib/command.rb +61 -0
- data/lib/command/ambari_add_host.rb +19 -0
- data/lib/command/ambari_cluster_command.rb +26 -0
- data/lib/command/ambari_cluster_component_command.rb +26 -0
- data/lib/command/ambari_cluster_component_host_command.rb +26 -0
- data/lib/command/ambari_cluster_create.rb +19 -0
- data/lib/command/ambari_cluster_host_command.rb +27 -0
- data/lib/command/ambari_cluster_list.rb +20 -0
- data/lib/command/ambari_cluster_service_command.rb +26 -0
- data/lib/command/ambari_cluster_service_host_command.rb +26 -0
- data/lib/command/ambari_command.rb +21 -0
- data/lib/command/ambari_create_cluster_configuration.rb +39 -0
- data/lib/command/ambari_get_cluster_configuration.rb +29 -0
- data/lib/command/ambari_host_list.rb +19 -0
- data/lib/command/ambari_install_cluster.rb +19 -0
- data/lib/command/ambari_install_component.rb +19 -0
- data/lib/command/ambari_install_host.rb +19 -0
- data/lib/command/ambari_install_host_component.rb +19 -0
- data/lib/command/ambari_install_host_components.rb +19 -0
- data/lib/command/ambari_install_service_components.rb +19 -0
- data/lib/command/ambari_service_add.rb +27 -0
- data/lib/command/ambari_service_component_add.rb +21 -0
- data/lib/command/ambari_service_component_delete.rb +21 -0
- data/lib/command/ambari_service_component_detach.rb +21 -0
- data/lib/command/ambari_service_component_info.rb +29 -0
- data/lib/command/ambari_service_conf_apply.rb +31 -0
- data/lib/command/ambari_service_conf_ls.rb +30 -0
- data/lib/command/ambari_service_delete.rb +21 -0
- data/lib/command/ambari_service_info.rb +20 -0
- data/lib/command/ambari_service_list.rb +21 -0
- data/lib/command/ambari_start_cluster.rb +19 -0
- data/lib/command/ambari_start_component.rb +19 -0
- data/lib/command/ambari_start_host.rb +19 -0
- data/lib/command/ambari_start_host_component.rb +19 -0
- data/lib/command/ambari_start_host_components.rb +19 -0
- data/lib/command/ambari_start_service_components.rb +19 -0
- data/lib/command/ambari_stop_cluster.rb +19 -0
- data/lib/command/ambari_stop_component.rb +19 -0
- data/lib/command/ambari_stop_host.rb +19 -0
- data/lib/command/ambari_stop_host_component.rb +19 -0
- data/lib/command/ambari_stop_host_components.rb +19 -0
- data/lib/command/ambari_stop_service_components.rb +19 -0
- data/lib/command/basic_command.rb +44 -0
- data/lib/command/cluster_create.rb +50 -0
- data/lib/command/cluster_delete.rb +30 -0
- data/lib/command/cluster_info.rb +30 -0
- data/lib/command/cluster_ls.rb +30 -0
- data/lib/command/crowbar_cluster_allocate.rb +42 -0
- data/lib/command/crowbar_command.rb +30 -0
- data/lib/command/crowbar_get_barclamps_list.rb +30 -0
- data/lib/command/crowbar_node_command.rb +21 -0
- data/lib/command/crowbar_node_list.rb +40 -0
- data/lib/command/crowbar_vcluster_command.rb +20 -0
- data/lib/command/filter.rb +15 -0
- data/lib/command/node_destroy.rb +58 -0
- data/lib/command/node_detach.rb +44 -0
- data/lib/command/node_info.rb +27 -0
- data/lib/command/node_install.rb +46 -0
- data/lib/command/node_reinstall.rb +44 -0
- data/lib/command/state_filter.rb +16 -0
- data/lib/common.rb +11 -0
- data/lib/common/cb-lib-node-erase-hard-disk.sh +29 -0
- data/lib/common/cloudbox_exceptions.rb +631 -0
- data/lib/common/cloudbox_logger.rb +81 -0
- data/lib/common/cloudbox_logger_mock.rb +43 -0
- data/lib/common/color.rb +267 -0
- data/lib/common/config_properties.rb +2027 -0
- data/lib/common/services_description.rb +192 -0
- data/lib/exec.rb +35 -0
- data/lib/exec/check_parameter.rb +208 -0
- data/lib/exec/cluster_allocate.rb +163 -0
- data/lib/exec/cluster_create.rb +99 -0
- data/lib/exec/cluster_delete.rb +38 -0
- data/lib/exec/cluster_desallocate.rb +37 -0
- data/lib/exec/cluster_info.rb +177 -0
- data/lib/exec/cluster_ls.rb +150 -0
- data/lib/exec/command_option.rb +222 -0
- data/lib/exec/executable_command.rb +194 -0
- data/lib/exec/node_destroy.rb +101 -0
- data/lib/exec/node_detach.rb +98 -0
- data/lib/exec/node_info.rb +280 -0
- data/lib/exec/node_install.rb +234 -0
- data/lib/exec/node_ls.rb +160 -0
- data/lib/exec/service_add.rb +224 -0
- data/lib/exec/service_component_add.rb +39 -0
- data/lib/exec/service_component_delete.rb +37 -0
- data/lib/exec/service_component_detach.rb +37 -0
- data/lib/exec/service_conf_apply.rb +57 -0
- data/lib/exec/service_conf_create.rb +80 -0
- data/lib/exec/service_conf_get.rb +165 -0
- data/lib/exec/service_conf_ls.rb +103 -0
- data/lib/exec/service_follow_request.rb +49 -0
- data/lib/exec/service_info.rb +346 -0
- data/lib/exec/service_install.rb +87 -0
- data/lib/exec/service_ls.rb +124 -0
- data/lib/exec/service_start.rb +110 -0
- data/lib/exec/service_stop.rb +112 -0
- data/lib/receiver.rb +14 -0
- data/lib/receiver/ambari_receiver.rb +812 -0
- data/lib/receiver/ambari_rest_api_connector.rb +599 -0
- data/lib/receiver/basic_receiver.rb +28 -0
- data/lib/receiver/connector.rb +28 -0
- data/lib/receiver/crowbar_receiver.rb +588 -0
- data/lib/receiver/crowbar_rest_api_connector.rb +518 -0
- data/lib/receiver/crowbar_shell_api.rb +643 -0
- data/lib/receiver/rest_api_connector.rb +275 -0
- data/resources/ambari-configurations/HBASE/default_hbase-site +33 -0
- data/resources/ambari-configurations/HDFS/default_hdfs-site +49 -0
- data/resources/ambari-configurations/HIVE/default_hive-site +33 -0
- data/resources/ambari-configurations/MAPREDUCE/default_mapred-site +72 -0
- data/resources/ambari-configurations/OOZIE/default_oozie-site +28 -0
- data/resources/ambari-configurations/WEBHCAT/default_webhcat-site +18 -0
- data/resources/ambari-configurations/ZOOKEEPER/default_zookeeper-site +8 -0
- data/resources/ambari-configurations/default_core-site +22 -0
- data/resources/ambari-configurations/default_global +141 -0
- data/resources/cloudbox-server.conf +10 -0
- data/spec/common/services_description.rb +130 -0
- data/spec/exec/check_parameter.rb +152 -0
- data/spec/exec/command_option_spec.rb +97 -0
- metadata +328 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author mbretaud (INGENSI)
|
3
|
+
|
4
|
+
require 'command/crowbar_vcluster_command'
|
5
|
+
|
6
|
+
#
|
7
|
+
# @author mbretaud
|
8
|
+
module Command
|
9
|
+
# display a list of cluster
|
10
|
+
class ClusterLs < CrowbarVclusterCommand
|
11
|
+
|
12
|
+
public
|
13
|
+
# Default constructor.
|
14
|
+
# @param vcluster_name [String] The cluster name.
|
15
|
+
# @param proposal_name [String] The proposal name.
|
16
|
+
# @author mbretaud
|
17
|
+
def initialize(vcluster_name, proposal_name)
|
18
|
+
super()
|
19
|
+
@logger.info("Command::ClusterLs initialize the parameters...")
|
20
|
+
@vcluster_name = vcluster_name
|
21
|
+
@proposal_name = proposal_name
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
# Method who return a List of cluster
|
26
|
+
def exec()
|
27
|
+
return @receiver.crowbar_vcluster_ls(@vcluster_name, @proposal_name)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# Author: mbr (INGENSI)
|
3
|
+
# Created: 22/08/13 11:42
|
4
|
+
|
5
|
+
# You are a good developer if you document this class
|
6
|
+
|
7
|
+
require 'receiver/crowbar_receiver'
|
8
|
+
require 'command/crowbar_command'
|
9
|
+
require 'command/filter'
|
10
|
+
|
11
|
+
module Command
|
12
|
+
|
13
|
+
# CrowbarCommand implementation for list Crowbar nodes.
|
14
|
+
# @author aboudot
|
15
|
+
class CrowbarClusterAllocate < CrowbarCommand
|
16
|
+
|
17
|
+
attr_reader :list_nodes
|
18
|
+
attr_reader :cluster_name
|
19
|
+
|
20
|
+
public
|
21
|
+
# Default constructor
|
22
|
+
#
|
23
|
+
def initialize(logger, cluster_name, all_nodes, list_node = nil)
|
24
|
+
super(logger)
|
25
|
+
@logger.info("Command::CrowbarClusterAllocate initialize the parameters...")
|
26
|
+
@list_node = list_node
|
27
|
+
@all_nodes = all_nodes
|
28
|
+
@cluster_name = cluster_name
|
29
|
+
end
|
30
|
+
|
31
|
+
public
|
32
|
+
# Run the command on receiver.
|
33
|
+
# @return output The output standard
|
34
|
+
def exec()
|
35
|
+
output = ""
|
36
|
+
|
37
|
+
output += @receiver.crowbar_allocate_cluster(@cluster_name, @all_nodes, @list_node)
|
38
|
+
|
39
|
+
return output
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# Author: mbr (INGENSI)
|
3
|
+
# Created: 22/08/13 11:43
|
4
|
+
|
5
|
+
require 'command/basic_command'
|
6
|
+
require 'receiver/crowbar_receiver'
|
7
|
+
|
8
|
+
module Command
|
9
|
+
|
10
|
+
# This class implement a BasicCommand. It essentially constrain the receiver to be a CrowbarReceiver.
|
11
|
+
# @author aboudot
|
12
|
+
class CrowbarCommand < BasicCommand
|
13
|
+
|
14
|
+
# Default CrowbarCommand which take a CrowbarReceiver as default receiver
|
15
|
+
# @author aboudot
|
16
|
+
private
|
17
|
+
def initialize(logger = nil)
|
18
|
+
super(Receiver::CrowbarReceiver.new(logger), logger)
|
19
|
+
@logger.info("Command::CrowbarCommand initialize the parameters...")
|
20
|
+
end
|
21
|
+
|
22
|
+
# Run the command. It has to be implemented in subclasses.
|
23
|
+
# @raise [NotImplementedError] All time.
|
24
|
+
public
|
25
|
+
def exec()
|
26
|
+
raise NotImplementedError
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author mbretaud (INGENSI)
|
3
|
+
|
4
|
+
require 'receiver/crowbar_receiver'
|
5
|
+
require 'command/crowbar_command'
|
6
|
+
|
7
|
+
#
|
8
|
+
# @author mbretaud
|
9
|
+
module Command
|
10
|
+
# Allows to get the list of barclamps
|
11
|
+
# @author mbretaud
|
12
|
+
class CrowbarGetBarclampsList < CrowbarCommand
|
13
|
+
|
14
|
+
public
|
15
|
+
# Default constructor
|
16
|
+
#
|
17
|
+
def initialize(logger)
|
18
|
+
super(logger)
|
19
|
+
@logger.info("Command::CrowbarGetBarclampsList initialize the parameters...")
|
20
|
+
end
|
21
|
+
|
22
|
+
public
|
23
|
+
# Run the command on receiver.
|
24
|
+
# @return The list of Barclamps
|
25
|
+
def exec()
|
26
|
+
return @receiver.crowbar_get_barclamps_list()
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# Author: mbr (INGENSI)
|
3
|
+
# Created: 22/08/13 11:42
|
4
|
+
|
5
|
+
# You are a good developer if you document this class
|
6
|
+
|
7
|
+
require 'command/crowbar_command'
|
8
|
+
|
9
|
+
module Command
|
10
|
+
# A superclass who manage Node command
|
11
|
+
class CrowbarNodeCommand < CrowbarCommand
|
12
|
+
|
13
|
+
public
|
14
|
+
# Default constructor
|
15
|
+
# @author mbretaud
|
16
|
+
def initialize()
|
17
|
+
super()
|
18
|
+
@logger.info("Command::CrowbarNodeCommand initialize the parameters...")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# Author: mbr (INGENSI)
|
3
|
+
# Created: 22/08/13 11:42
|
4
|
+
|
5
|
+
# You are a good developer if you document this class
|
6
|
+
|
7
|
+
require 'receiver/crowbar_receiver'
|
8
|
+
require 'command/crowbar_command'
|
9
|
+
require 'command/filter'
|
10
|
+
|
11
|
+
module Command
|
12
|
+
|
13
|
+
# CrowbarCommand implementation for list Crowbar nodes.
|
14
|
+
# @author aboudot
|
15
|
+
class CrowbarNodeList < CrowbarCommand
|
16
|
+
|
17
|
+
public
|
18
|
+
attr_reader :state_filter
|
19
|
+
|
20
|
+
public
|
21
|
+
# Default constructor
|
22
|
+
# @param logger [logger] The logger
|
23
|
+
# @param state [String] The state wanted
|
24
|
+
# @author mbretaud
|
25
|
+
def initialize(logger, state = nil)
|
26
|
+
super(logger)
|
27
|
+
@logger.info("Command::CrowbarNodeList initialize the parameters...")
|
28
|
+
@state_filter = state
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
public
|
33
|
+
# Run the command on receiver.
|
34
|
+
# @return The list of nodes
|
35
|
+
def exec()
|
36
|
+
@logger.info("Command::CrowbarNodeList : call the receiver with the function 'crowbar_node_list_nodes(#{@state_filter})'")
|
37
|
+
return @receiver.crowbar_node_list_nodes(@state_filter)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author mbretaud (INGENSI)
|
3
|
+
|
4
|
+
require 'command/crowbar_command'
|
5
|
+
|
6
|
+
#
|
7
|
+
# @author mbretaud
|
8
|
+
module Command
|
9
|
+
# A superclass who manage cluster command
|
10
|
+
class CrowbarVclusterCommand < CrowbarCommand
|
11
|
+
|
12
|
+
public
|
13
|
+
#
|
14
|
+
# @author mbretaud
|
15
|
+
def initialize()
|
16
|
+
super()
|
17
|
+
@logger.info("Command::CrowbarVclusterCommand initialize the parameters...")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author tmarmin (INGENSI)
|
3
|
+
|
4
|
+
# This class is the main class of filter classes.
|
5
|
+
# @abstract
|
6
|
+
class Filter
|
7
|
+
|
8
|
+
# Default protected constructor.
|
9
|
+
# @author tmarmin
|
10
|
+
protected
|
11
|
+
def initialize()
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author mbretaud (INGENSI)
|
3
|
+
|
4
|
+
require 'command/crowbar_node_command'
|
5
|
+
|
6
|
+
#
|
7
|
+
# @author mbretaud
|
8
|
+
module Command
|
9
|
+
# Allows to destroy a node
|
10
|
+
class NodeDestroy < CrowbarNodeCommand
|
11
|
+
|
12
|
+
attr_reader :node_name
|
13
|
+
|
14
|
+
public
|
15
|
+
# Default constructor
|
16
|
+
# @param node_name [String] The name of the node
|
17
|
+
# @author mbretaud
|
18
|
+
def initialize(node_name)
|
19
|
+
super()
|
20
|
+
@logger.info("Command::NodeDestroy initialize the parameters...")
|
21
|
+
@node_name = node_name
|
22
|
+
end
|
23
|
+
|
24
|
+
# Method who call crowbar receiver in order to destroy a node
|
25
|
+
# @author mbretaud
|
26
|
+
def exec()
|
27
|
+
begin
|
28
|
+
@receiver.crowbar_node_delete_proposal(@node_name)
|
29
|
+
rescue => e
|
30
|
+
puts "Error: Delete the node '#{@node_name}' in all proposals : " + e.message
|
31
|
+
end
|
32
|
+
|
33
|
+
begin
|
34
|
+
@receiver.crowbar_node_delete(@node_name)
|
35
|
+
rescue => e
|
36
|
+
puts "Error: Delete the node '#{@node_name}' of Crowbar : " + e.message
|
37
|
+
end
|
38
|
+
|
39
|
+
begin
|
40
|
+
@receiver.crowbar_erase_node_hard_disk(node_name)
|
41
|
+
rescue => e
|
42
|
+
puts "Error: Erase the hard disk into the node '#{@node_name}' : " + e.message
|
43
|
+
end
|
44
|
+
|
45
|
+
begin
|
46
|
+
@receiver.crowbar_erase_node_server(@node_name)
|
47
|
+
rescue => e
|
48
|
+
puts "Error: Erase the node '#{@node_name}' in the server Crowbar : " + e.message
|
49
|
+
end
|
50
|
+
|
51
|
+
begin
|
52
|
+
@receiver.crowbar_reboot_node(node_name)
|
53
|
+
rescue => e
|
54
|
+
puts "Error: Reboot the node '#{@node_name}' : " + e.message
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author mbretaud (INGENSI)
|
3
|
+
|
4
|
+
require 'command/crowbar_node_command'
|
5
|
+
|
6
|
+
module Command
|
7
|
+
# Allows to detach a node
|
8
|
+
class NodeDetach < CrowbarNodeCommand
|
9
|
+
|
10
|
+
attr_reader :node_name
|
11
|
+
|
12
|
+
public
|
13
|
+
# Default constructor
|
14
|
+
# @param node_name [String] The name of the node
|
15
|
+
# @author mbretaud
|
16
|
+
def initialize(node_name)
|
17
|
+
super()
|
18
|
+
@logger.info("Command::NodeDetach initialize the parameters...")
|
19
|
+
@node_name = node_name
|
20
|
+
end
|
21
|
+
|
22
|
+
# Method who call crowbar receiver in order to detach a node
|
23
|
+
# @author mbretaud
|
24
|
+
def exec()
|
25
|
+
begin
|
26
|
+
@receiver.crowbar_node_delete_proposal(@node_name)
|
27
|
+
rescue => e
|
28
|
+
puts "Error: Delete the node '#{@node_name}' in all proposals : " + e.message
|
29
|
+
end
|
30
|
+
|
31
|
+
begin
|
32
|
+
@receiver.crowbar_node_delete(@node_name)
|
33
|
+
rescue => e
|
34
|
+
puts "Error: Delete the node '#{@node_name}' of Crowbar : " + e.message
|
35
|
+
end
|
36
|
+
|
37
|
+
begin
|
38
|
+
@receiver.crowbar_erase_node_server(@node_name)
|
39
|
+
rescue => e
|
40
|
+
puts "Error: Erase the node '#{@node_name}' in the server Crowbar : " + e.message
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# Author: mbr (INGENSI)
|
3
|
+
# Created: 22/08/13 11:03
|
4
|
+
|
5
|
+
# You are a good developer if you document this class
|
6
|
+
|
7
|
+
require 'command/crowbar_node_command'
|
8
|
+
|
9
|
+
module Command
|
10
|
+
# Allows to display a information 's node
|
11
|
+
class NodeInfo < CrowbarNodeCommand
|
12
|
+
|
13
|
+
attr_reader :nodeName
|
14
|
+
|
15
|
+
def initialize(nodeName)
|
16
|
+
super()
|
17
|
+
@logger.info("Command::NodeInfo initialize the parameters...")
|
18
|
+
@nodeName = nodeName
|
19
|
+
end
|
20
|
+
|
21
|
+
def exec()
|
22
|
+
return @receiver.crowbar_node_info(@nodeName)
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# Author: mbr (INGENSI)
|
3
|
+
|
4
|
+
require 'command/crowbar_node_command'
|
5
|
+
|
6
|
+
module Command
|
7
|
+
# Allows to install node
|
8
|
+
class NodeInstall < CrowbarNodeCommand
|
9
|
+
|
10
|
+
attr_reader :node_name
|
11
|
+
attr_reader :bios_name
|
12
|
+
attr_reader :raid_name
|
13
|
+
|
14
|
+
public
|
15
|
+
# Default constructor
|
16
|
+
# @param node_name [String] The name of the node
|
17
|
+
# @param bios_name [String] The name of the bios
|
18
|
+
# @param raid_name [String] The name of the raid
|
19
|
+
# @author mbretaud
|
20
|
+
def initialize(node_name, bios_name = nil, raid_name = nil)
|
21
|
+
super()
|
22
|
+
@logger.info("Command::NodeInstall initialize the parameters...")
|
23
|
+
@node_name = node_name
|
24
|
+
@bios_name = bios_name
|
25
|
+
@raid_name = raid_name
|
26
|
+
end
|
27
|
+
|
28
|
+
# Method to call crowbar receiver for install a node
|
29
|
+
# @author mbretaud
|
30
|
+
def exec()
|
31
|
+
if @raid_name.nil?
|
32
|
+
@raid_name = "JBODOnly"
|
33
|
+
end
|
34
|
+
|
35
|
+
if !@bios_name.nil? && !@raid_name.nil?
|
36
|
+
@receiver.crowbar_set_bios_raid(@node_name, @bios_name, @raid_name)
|
37
|
+
end
|
38
|
+
|
39
|
+
if @bios_name.nil? && !@raid_name.nil?
|
40
|
+
@receiver.crowbar_set_raid(@node_name, @raid_name)
|
41
|
+
end
|
42
|
+
|
43
|
+
@receiver.crowbar_node_install(@node_name)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# This file is part of cloudbox-server project
|
2
|
+
# @author mbretaud (INGENSI)
|
3
|
+
|
4
|
+
require 'command/crowbar_node_command'
|
5
|
+
|
6
|
+
module Command
|
7
|
+
# Allows to reinstall a node
|
8
|
+
class NodeReinstall < CrowbarNodeCommand
|
9
|
+
|
10
|
+
attr_reader :node_name
|
11
|
+
attr_reader :bios_name
|
12
|
+
attr_reader :raid_name
|
13
|
+
|
14
|
+
public
|
15
|
+
# Default constructor
|
16
|
+
# @param node_name [String] The name of the node
|
17
|
+
# @param bios_name [String] The name of the bios
|
18
|
+
# @param raid_name [String] The name of the raid
|
19
|
+
# @author mbretaud
|
20
|
+
def initialize(node_name, bios_name = nil, raid_name = nil)
|
21
|
+
super()
|
22
|
+
@logger.info("Command::NodeReinstall initialize the parameters...")
|
23
|
+
@node_name = node_name
|
24
|
+
@bios_name = bios_name
|
25
|
+
@raid_name = raid_name
|
26
|
+
end
|
27
|
+
|
28
|
+
# Method to call crowbar receiver for reinstall a node
|
29
|
+
# @author mbretaud
|
30
|
+
def exec()
|
31
|
+
if @raid_name.nil?
|
32
|
+
@receiver.crowbar_set_raid(@node_name, "JBODOnly")
|
33
|
+
else
|
34
|
+
@receiver.crowbar_set_raid(@node_name, @raid_name)
|
35
|
+
end
|
36
|
+
|
37
|
+
if !@bios_name.nil?
|
38
|
+
@receiver.crowbar_set_bios(@node_name, @bios_name)
|
39
|
+
end
|
40
|
+
|
41
|
+
@receiver.crowbar_node_reinstall(@node_name)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|