cloudstack-cli 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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