Class: Network

Inherits:
CloudstackCli::Base show all
Defined in:
lib/cloudstack-cli/commands/network.rb

Constant Summary

Constants included from CloudstackCli::Helper

CloudstackCli::Helper::ASYNC_STATES

Instance Attribute Summary

Attributes inherited from CloudstackCli::Base

#config

Instance Method Summary collapse

Methods inherited from CloudstackCli::Base

exit_on_failure?

Methods included from CloudstackCli::Helper

#ask_number, #bootstrap_server, #bootstrap_server_interactive, #create_port_rules, #create_server, #print_job_status, #print_options, #update_job_status, #watch_jobs

Instance Method Details

#defaultObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/cloudstack-cli/commands/network.rb', line 56

def default
  network = client.get_default_network(options[:zone])
  unless network
    puts "No default network found."
  else
    table = [["Name", "Displaytext", "Domain", "Zone"]]
    table[0] << "ID" if options[:showid]
      table << [
        network["name"],
        network["displaytext"],
        network["domain"],
        network["zonename"]
      ]
      table[-1] << network["id"] if options[:showid]
    print_table table
  end
end

#delete(name) ⇒ Object



110
111
112
113
114
115
116
117
118
119
120
# File 'lib/cloudstack-cli/commands/network.rb', line 110

def delete(name)
  network = client.get_network(name)
  network = client.get_network(name, -1) unless network
  unless network
    say "Network \"#{name}\" not found."
    exit 1
  end
  if yes? "Destroy network \"#{network['name']}\"?"
    p client.delete_network(network['id'])
  end
end

#listObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/cloudstack-cli/commands/network.rb', line 9

def list
  project = find_project if options[:project]
  if options[:zone]
    unless zone = client.get_zone(options[:zone])
      say "Zone '#{options[:zone]}' not found.", :red
      exit 1
    end
    zone_id = zone['id']
  end

  networks = []
  if project
    networks = client.list_networks(project_id: project['id'], zone_id: zone_id)
  elsif options[:account]
    networks = client.list_networks(account: options[:account], zone_id: zone_id)
  else
    networks = client.list_networks(zone_id: zone_id)
    networks += client.list_networks(project_id: -1, zone_id: zone_id)
  end

  if options[:type]
    networks = filter_by(networks, 'type', options[:type])
  end

  if networks.size < 1
    puts "No networks found."
  else
    table = [["Name", "Displaytext", "Account/Project", "Zone", "Domain", "State", "Type"]]
    table[0] << "ID" if options[:showid]
    networks.each do |network|
      table << [
        network["name"],
        network["displaytext"],
        network["account"] || network["project"],
        network["zonename"],
        network["domain"],
        network["state"],
        network["type"]
      ]
      table[-1] << network["id"] if options[:showid]
    end
    print_table table
  end
end

#restart(name) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
# File 'lib/cloudstack-cli/commands/network.rb', line 97

def restart(name)
  network = client.get_network(name)
  network = client.get_network(name, -1) unless network
  unless network
    say "Network #{name} not found."
    exit 1
  end
  if yes? "Restart network \"#{network['name']}\" (cleanup=#{options[:cleanup]})?"
    p client.restart_network(network['id'], options[:cleanup])
  end
end

#show(name) ⇒ Object



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/cloudstack-cli/commands/network.rb', line 76

def show(name)
  if options[:project]
    if options[:project].downcase == "all"
      options[:project_id] = -1
    else
      project = find_project
      options[:project_id] = project['id']
    end
  end
  unless server = client.get_network(name, options[:project_id])
    puts "No network found."
  else
    server.each do |key, value|
      say "#{key}: ", :yellow
      say "#{value}"
    end
  end
end