Class: Exec::ClusterLs
- Inherits:
-
ExecutableCommand
- Object
- ExecutableCommand
- Exec::ClusterLs
- Defined in:
- lib/exec/cluster_ls.rb
Overview
Allows user to list a cluster
Instance Attribute Summary
Attributes inherited from ExecutableCommand
#argv, #command_name, #logger, #options, #stderr, #stdin, #stdout, #values
Instance Method Summary collapse
-
#display_list(list) ⇒ Object
private
Displays the elements of the list.
-
#exec ⇒ Object
private
The execution of the command.
-
#initialize(argv, stdin, stdout, stderr, command_name) ⇒ ClusterLs
constructor
Default constructor of the class.
-
#set_options ⇒ Object
private
Parse and check the parameters of the function.
Methods inherited from ExecutableCommand
#check_parameters, #create_logger, #run
Constructor Details
#initialize(argv, stdin, stdout, stderr, command_name) ⇒ ClusterLs
Note:
Overrides default constructor by passing CustomCommandOption to super().
Default constructor of the class.
23 24 25 |
# File 'lib/exec/cluster_ls.rb', line 23 def initialize(argv, stdin, stdout, stderr, command_name) super(argv, stdin, stdout, stderr, command_name) end |
Instance Method Details
#display_list(list) ⇒ Object (private)
Displays the elements of the list
138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/exec/cluster_ls.rb', line 138 def display_list(list) output = "" begin list.sort.each { |element| output += element } rescue output += "Error: Displays the element of the list.\n" end return output end |
#exec ⇒ Object (private)
The execution of the command.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 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 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/exec/cluster_ls.rb', line 36 def exec @logger.info("Exec::ClusterLs Executing ClusterLs") output = "" ### Displays only vclusters ### if !@values['cluster'] @logger.info("Exec::ClusterLs Displays vclusters into the bash screen...") Color::print_log("NONE", "Display vclusters into the bash screen...", @stdout) begin # Getting vclusters list list_clusters = Dir["/opt/dell/barclamps/cb*"] list_clusters_to_diplay = Array.new rescue => e raise ClusterLsError.new("Retrieves the list of vclusters.") end begin # Displays of the vclusters list list_clusters.each { |dir| if File::directory?(dir) cluster = File.basename(dir) list_clusters_to_diplay.<< " - #{cluster[2..-1]}\n" end } unless list_clusters_to_diplay.empty? output += "\n" output += display_list(list_clusters_to_diplay) output += "\n" end rescue => e raise ClusterLsError.new("Displays the list of vclusters.") end Color::echo_ok(@stdout) @logger.info(output) if !output.empty? @stdout.print output else raise ClusterLsError.new("No vclusters available.") end end ### Displays machines associated with the vcluster ### if @values['cluster'] @logger.info("Exec::ClusterLs Displays machines associated with the vcluster '#{@values['cluster']}' into the bash screen...") Color::print_log("NONE", "Displays machines associated with the vcluster '#{@values['cluster']}' into the bash screen...", @stdout) cluster_name = @values['cluster'] = "cb#{cluster_name}" proposal_name = "default" role = "#{}-server" # Retrieves informations about the vcluster cmd = Command::ClusterInfo.new(cluster_name, proposal_name) p = cmd.exec() error = "false" out_error = "" # Displays the list of machines on the vclusters associated list_machines_to_display = Array.new if p['deployment'][] != nil if p['deployment'][]['elements'][role] != nil p['deployment'][]['elements'][role].each do |machine| machine2=`cat /etc/hosts | grep #{machine} | grep #{cluster_name} | awk '{ print $2 }'` if machine2 == "" out_error=out_error + "Error: The machine #{machine} doesn't exists in the file /etc/hosts" + "\n" else list_machines_to_display.<< " - #{cluster_name}-#{machine}\n" end end end end if error == "true" raise ClusterLsError.new(out_error) elsif !list_machines_to_display.empty? output += "\n" output += display_list(list_machines_to_display) output += "\n" elsif list_machines_to_display.empty? raise ClusterLsError.new("No machines are allocated to the vcluster '#{cluster_name}'.") end Color::echo_ok(@stdout) @logger.info(output) if !output.empty? @stdout.print output else @logger.info("Exec::ClusterLs No vclusters available.") @stdout.print "No vclusters available.\n" end end end |
#set_options ⇒ Object (private)
Parse and check the parameters of the function.
30 31 32 |
# File 'lib/exec/cluster_ls.rb', line 30 def @options.add_option("C", "cluster", "Displays informations about a Cluster.", false, true, method(:check_cluster_name)) end |