cloudstack-cli 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9333cd14a9e146a183cc06b9c08cdec221ab090c
4
- data.tar.gz: ff4ad2339fe3ad8f8a05bf105e0a5b63ee875404
3
+ metadata.gz: 0627b894e7b7c1cef8693c8b0b467bb2deaa4cb2
4
+ data.tar.gz: b48db8f182a2d17717d7a9897ec775f975d0ed10
5
5
  SHA512:
6
- metadata.gz: b71a5b0fc8600a26c0c1e52ddbdc8e93dd941227e837f8e3edabefed51a6fb52270449c7babe5e01a67dbff570908b4af9cda2eea2d43770b7d40a21743d366e
7
- data.tar.gz: 840fe9f4f5fbfeb03030b73432ec632f8a81b0fd9f34b5a95ad5db25642c9b13b54cd401612445310e68649f9947bed91127487ecf493772263af8fa3e4a9c0b
6
+ metadata.gz: 50f9c65fcee553a3b35a9881e84b52a87a2481bbc9975c3ea66fec608b7bb0c4f1676299ddc16ae5bb813af256ff801387f3ae7395d181b6eedb070717789046
7
+ data.tar.gz: f084ea2345dd07d0ca976d93d72cd2b13fbef5fd8753215bd97b346a426850b3aa40ca7247407d8b5740e242e8e3f682fc4f9135f701b982b3ade62221da11e7
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: ../cloudstack_client/
3
3
  specs:
4
- cloudstack_client (1.3.1)
4
+ cloudstack_client (1.4.0)
5
5
 
6
6
  PATH
7
7
  remote: .
8
8
  specs:
9
- cloudstack-cli (1.5.0)
10
- cloudstack_client (~> 1.3)
9
+ cloudstack-cli (1.5.1)
10
+ cloudstack_client (~> 1.4)
11
11
  thor (~> 0.19)
12
12
 
13
13
  GEM
@@ -23,6 +23,6 @@ Gem::Specification.new do |gem|
23
23
 
24
24
  gem.add_development_dependency('rake', '~> 11.1')
25
25
 
26
- gem.add_dependency('cloudstack_client', '~> 1.3')
26
+ gem.add_dependency('cloudstack_client', '~> 1.4')
27
27
  gem.add_dependency('thor', '~> 0.19')
28
28
  end
@@ -33,6 +33,7 @@ class ComputeOffer < CloudstackCli::Base
33
33
  option :domain
34
34
  option :ha, type: :boolean
35
35
  option :tags
36
+ option :hosttags
36
37
  def create(name)
37
38
  resolve_domain
38
39
  options[:name] = name
@@ -73,12 +74,14 @@ class ComputeOffer < CloudstackCli::Base
73
74
 
74
75
  no_commands do
75
76
  def print_compute_offerings(offerings, totals = true)
76
- table = [%w(Name Displaytext Domain ID)]
77
+ table = [%w(Name Displaytext Domain Tags HostTags ID)]
77
78
  offerings.each do |offering|
78
79
  table << [
79
80
  offering["name"],
80
81
  offering["displaytext"],
81
82
  offering["domain"],
83
+ offering["tags"],
84
+ offering["hosttags"],
82
85
  offering["id"]
83
86
  ]
84
87
  end
@@ -22,18 +22,19 @@ class Stack < CloudstackCli::Base
22
22
  name: name,
23
23
  displayname: instance["decription"],
24
24
  zone: instance["zone"] || stack["zone"],
25
+ project: stack["project"],
25
26
  template: instance["template"],
26
27
  iso: instance["iso"] ,
27
28
  offering: instance["offering"],
28
29
  networks: load_string_or_array(instance["networks"]),
29
- project: stack["project"],
30
+ ip_network_list: instance["ip_network_list"],
30
31
  disk_offering: instance["disk_offering"],
31
32
  size: instance["disk_size"],
32
33
  group: instance["group"] || stack["group"],
33
34
  keypair: instance["keypair"] || stack["keypair"],
34
- ip_address: instance["ip_address"],
35
+ ip_address: instance["ip_address"]
35
36
  })
36
-
37
+
37
38
  jobs << {
38
39
  id: client.deploy_virtual_machine(
39
40
  vm_options_to_params,
@@ -123,6 +124,7 @@ class Stack < CloudstackCli::Base
123
124
  def string_to_array(string)
124
125
  string ? string.gsub(', ', ',').split(',') : nil
125
126
  end
126
- end
127
+
128
+ end # no_commands
127
129
 
128
130
  end
@@ -13,7 +13,11 @@ module CloudstackCli
13
13
  say "Error: Template or ISO is required.", :red
14
14
  exit 1
15
15
  end
16
- resolve_networks
16
+ if options[:ip_network_list]
17
+ resolve_ip_network_list
18
+ else
19
+ resolve_networks
20
+ end
17
21
  end
18
22
 
19
23
  def resolve_zone
@@ -86,8 +90,6 @@ module CloudstackCli
86
90
  end
87
91
  networks.compact!
88
92
  if networks.empty?
89
- #unless default_network = client.list_networks(project_id: options[:project_id]).find {
90
- # |n| n['isdefault'] == true }
91
93
  unless default_network = client.list_networks(project_id: options[:project_id]).first
92
94
  say "Error: No default network found.", :red
93
95
  exit 1
@@ -98,6 +100,31 @@ module CloudstackCli
98
100
  options
99
101
  end
100
102
 
103
+ def resolve_ip_network_list
104
+ network_list = []
105
+ available_networks = network = client.list_networks(
106
+ zone_id: options[:zone_id],
107
+ project_id: options[:project_id]
108
+ )
109
+ if options[:ip_network_list]
110
+ options[:ip_network_list].each do |item|
111
+ unless network = available_networks.find { |n| n['name'] == item["name"] }
112
+ say "Error: Network '#{name}' not found.", :red
113
+ exit 1
114
+ end
115
+ item.delete("name")
116
+ network_list << {networkid: network["id"]}.merge(item) # rescue nil
117
+ end
118
+ end
119
+ network_list.compact!
120
+ if network_list.empty?
121
+ say "Error: IP network list can't be empty.", :red
122
+ exit 1
123
+ end
124
+ options[:ip_to_network_list] = network_list
125
+ options
126
+ end
127
+
101
128
  def resolve_iso
102
129
  if options[:iso]
103
130
  iso = false
@@ -1,3 +1,3 @@
1
1
  module CloudstackCli
2
- VERSION = "1.5.0"
2
+ VERSION = "1.5.1"
3
3
  end
@@ -6,18 +6,18 @@
6
6
  project: "Playground"
7
7
  group: "my_web_stack"
8
8
  servers:
9
- -
10
- name: "web-001, web-002"
9
+ - name: "web-001, web-002"
11
10
  description: "Web nodes"
12
11
  template: "CentOS-7-x86_64"
13
12
  offering: "1cpu_1gb"
14
13
  networks: "M_PLAY"
15
14
  port_rules: ":80, :443"
16
- -
17
- name: "db-001"
15
+ - name: "db-001"
18
16
  description: "PostgreSQL Master"
19
17
  iso: "CentOS-7.0-x64"
20
18
  disk_offering: "Perf Storage"
21
19
  disk_size: "5"
22
20
  offering: "2cpu_4gb"
23
- networks: "M_PLAY"
21
+ ip_network_list:
22
+ - name: "M_PLAY"
23
+ ip: 10.101.64.42
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstack-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nik Wolfgramm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-04 00:00:00.000000000 Z
11
+ date: 2016-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: '1.4'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: '1.4'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thor
43
43
  requirement: !ruby/object:Gem::Requirement