Class: Exec::ClusterCreate

Inherits:
ExecutableCommand show all
Defined in:
lib/exec/cluster_create.rb

Overview

Allows the user to create a cluster

Instance Attribute Summary collapse

Attributes inherited from ExecutableCommand

#argv, #command_name, #logger, #options, #stderr, #stdin, #stdout, #values

Instance Method Summary collapse

Methods inherited from ExecutableCommand

#check_parameters, #create_logger, #run

Constructor Details

#initialize(argv, stdin, stdout, stderr, command_name) ⇒ ClusterCreate

Note:

Overrides default constructor by passing CustomCommandOption to super().

Default constructor of the class.

Author:

  • mbretaud



27
28
29
# File 'lib/exec/cluster_create.rb', line 27

def initialize(argv, stdin, stdout, stderr, command_name)
  super(argv, stdin, stdout, stderr, command_name)
end

Instance Attribute Details

#network_addressObject (readonly)

Returns the value of attribute network_address.



20
21
22
# File 'lib/exec/cluster_create.rb', line 20

def network_address
  @network_address
end

#vlan_idObject (readonly)

Returns the value of attribute vlan_id.



21
22
23
# File 'lib/exec/cluster_create.rb', line 21

def vlan_id
  @vlan_id
end

Instance Method Details

#execObject

The execution of the command.

Author:

  • tnoguer



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
# File 'lib/exec/cluster_create.rb', line 46

def exec
  @logger.info("Exec::ClusterCreate   Executing ClusterCreate")
  @logger.info("Exec::ClusterCreate   Create the vcluster '#{@values['cluster']}'...")
  Color::print_log("NONE", "Create the vcluster '#{@values['cluster']}'...", @stdout)

  default_cpu = 1024
  default_ram= "1g"

  cluster_name = @values['cluster']
  @network_address = values['address']
  address = @values['address'].split('/').first
  cidr = @values['address'].split('/').last
  if cidr == "8"
    network_mask="255.0.0.0"
  elsif cidr == "16"
    network_mask="255.255.0.0"
  else
    network_mask="255.255.255.0"
  end

  if @values['cpu_weight'].nil?
    cpu_weight = default_cpu
  else
    cpu_weight = @values['cpu_weight']
  end

  if @values['ram'].nil?
    ram = default_ram
  else
    ram = @values['ram']
  end

  unless @values['vlan_id'].nil?
    @vlan_id = values['vlan_id']
  end

  if @values['description'].nil?
    description = ""
  else
    description = @values['description']
  end

  output = ""
  cmd = Command::ClusterCreate.new(cluster_name, address, network_mask, cpu_weight, ram, @vlan_id, description)
  output += cmd.exec()

  cmd = Command::AmbariClusterCreate.new(cluster_name)
  cmd.exec()

  Color::echo_ok(@stdout)
  @stdout.print output
end

#set_optionsObject (private)

Parse and check the parameters of the function.

Author:

  • tnoguer



34
35
36
37
38
39
40
41
# File 'lib/exec/cluster_create.rb', line 34

def set_options
  @options.add_option("a", "address", "the adress Network and the cidr of the Cluster.", true, true, method(:check_network_address))
  @options.add_option("C", "cluster", "The name of the vcluster .", true, true, method(:check_cluster_name))
  @options.add_option("c", "cpu_weight", "CPU weight for each node in the virtual cluster .", false, true, method(:check_cpu_weight))
  @options.add_option("d", "description", "Description of the cluster (put quotes).", false, true)
  @options.add_option("i", "vlan_id", "Id VLAN.", false, true, method(:check_vlan_id))
  @options.add_option("r", "ram", "Min ram assigned for each node in the virtual cluster.", false, true, method(:check_ram_size))
end