cloudstack-cli 0.3.11 → 0.4.0

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.
Files changed (34) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile.lock +3 -1
  3. data/bin/cs +1 -2
  4. data/cloudstack-cli.gemspec +1 -0
  5. data/lib/{cloudstack_cli.rb → cloudstack-cli.rb} +2 -0
  6. data/lib/cloudstack-cli/commands/router.rb +3 -1
  7. data/lib/cloudstack-cli/version.rb +1 -1
  8. metadata +24 -44
  9. data/lib/cloudstack-client/client.rb +0 -136
  10. data/lib/cloudstack-client/commands/account.rb +0 -22
  11. data/lib/cloudstack-client/commands/capacity.rb +0 -19
  12. data/lib/cloudstack-client/commands/cluster.rb +0 -19
  13. data/lib/cloudstack-client/commands/disk_offering.rb +0 -49
  14. data/lib/cloudstack-client/commands/domain.rb +0 -22
  15. data/lib/cloudstack-client/commands/host.rb +0 -28
  16. data/lib/cloudstack-client/commands/ip_address.rb +0 -82
  17. data/lib/cloudstack-client/commands/iso.rb +0 -64
  18. data/lib/cloudstack-client/commands/job.rb +0 -29
  19. data/lib/cloudstack-client/commands/load_balancer_rule.rb +0 -61
  20. data/lib/cloudstack-client/commands/network.rb +0 -128
  21. data/lib/cloudstack-client/commands/pod.rb +0 -19
  22. data/lib/cloudstack-client/commands/port_forwarding_rule.rb +0 -49
  23. data/lib/cloudstack-client/commands/project.rb +0 -32
  24. data/lib/cloudstack-client/commands/router.rb +0 -89
  25. data/lib/cloudstack-client/commands/server.rb +0 -311
  26. data/lib/cloudstack-client/commands/service_offering.rb +0 -98
  27. data/lib/cloudstack-client/commands/snapshot.rb +0 -40
  28. data/lib/cloudstack-client/commands/ssh_key_pair.rb +0 -106
  29. data/lib/cloudstack-client/commands/template.rb +0 -60
  30. data/lib/cloudstack-client/commands/user.rb +0 -32
  31. data/lib/cloudstack-client/commands/volume.rb +0 -20
  32. data/lib/cloudstack-client/commands/zone.rb +0 -57
  33. data/lib/cloudstack-client/version.rb +0 -3
  34. data/lib/cloudstack_client.rb +0 -2
@@ -1,40 +0,0 @@
1
- module CloudstackClient
2
-
3
- module Snapshot
4
-
5
- ##
6
- # Lists snapshots.
7
-
8
- def list_snapshots(args = {})
9
- params = {
10
- 'command' => 'listSnapshots',
11
- 'isrecursive' => 'true'
12
- }
13
- params['name'] = args[:name] if args[:name]
14
-
15
- if args[:project]
16
- project = get_project(args[:project])
17
- unless project
18
- puts "Error: project #{args[:project]} not found."
19
- exit 1
20
- end
21
- params['projectid'] = project['id']
22
- end
23
- if args[:account]
24
- account = list_accounts({name: args[:account]}).first
25
- unless account
26
- puts "Error: Account #{args[:account]} not found."
27
- exit 1
28
- end
29
- params['domainid'] = account["domainid"]
30
- params['account'] = args[:account]
31
- end
32
- params['listall'] = args[:listall] if args[:listall]
33
-
34
- json = send_request(params)
35
- json['snapshot'] || []
36
- end
37
-
38
- end
39
-
40
- end
@@ -1,106 +0,0 @@
1
- module CloudstackClient
2
-
3
- module SshKeyPair
4
-
5
- ##
6
- # Lists ssh key pairs.
7
- #
8
-
9
- def list_ssh_key_pairs(args = {})
10
- params = {
11
- 'command' => 'listSSHKeyPairs',
12
- 'isrecursive' => true
13
- }
14
- params['listall'] = true if args[:listall]
15
- params['name'] = args[:name] if args[:name]
16
-
17
- if args[:project]
18
- project = get_project(args[:project])
19
- unless project
20
- puts "Error: project #{args[:project]} not found."
21
- exit 1
22
- end
23
- params['projectid'] = project['id']
24
- end
25
-
26
- if args[:account]
27
- account = list_accounts({name: args[:account]}).first
28
- unless account
29
- puts "Error: Account #{args[:account]} not found."
30
- exit 1
31
- end
32
- params['domainid'] = account["domainid"]
33
- params['account'] = args[:account]
34
- end
35
-
36
- json = send_request(params)
37
- json['sshkeypair'] || []
38
- end
39
-
40
- ##
41
- # Create ssh key pairs.
42
- #
43
-
44
- def create_ssh_key_pair(name, args = {})
45
- params = {
46
- 'command' => 'createSSHKeyPair',
47
- 'name' => name
48
- }
49
- if args[:project]
50
- project = get_project(args[:project])
51
- unless project
52
- puts "Error: project #{args[:project]} not found."
53
- exit 1
54
- end
55
- params['projectid'] = project['id']
56
- end
57
-
58
- if args[:account]
59
- account = list_accounts({name: args[:account]}).first
60
- unless account
61
- puts "Error: Account #{args[:account]} not found."
62
- exit 1
63
- end
64
- params['domainid'] = account["domainid"]
65
- params['account'] = args[:account]
66
- end
67
- params['publickey'] = args[:public_key] if args[:public_key]
68
-
69
- json = send_request(params)['keypair']
70
- end
71
-
72
- ##
73
- # Delete ssh key pairs.
74
- #
75
-
76
- def delete_ssh_key_pair(name, args = {})
77
- params = {
78
- 'command' => 'deleteSSHKeyPair',
79
- 'name' => name
80
- }
81
-
82
- if args[:project]
83
- project = get_project(args[:project])
84
- unless project
85
- puts "Error: project #{args[:project]} not found."
86
- exit 1
87
- end
88
- params['projectid'] = project['id']
89
- end
90
-
91
- if args[:account]
92
- account = list_accounts({name: args[:account]}).first
93
- unless account
94
- puts "Error: Account #{args[:account]} not found."
95
- exit 1
96
- end
97
- params['domainid'] = account["domainid"]
98
- params['account'] = args[:account]
99
- end
100
-
101
- json = send_request(params)
102
- end
103
-
104
- end
105
-
106
- end
@@ -1,60 +0,0 @@
1
- module CloudstackClient
2
-
3
- module Template
4
-
5
- ##
6
- # Finds the template with the specified name.
7
-
8
- def get_template(name)
9
-
10
- # TODO: use name parameter
11
- # listTemplates in CloudStack 2.2 doesn't seem to work
12
- # when the name parameter is specified. When this is fixed,
13
- # the name parameter should be added to the request.
14
- params = {
15
- 'command' => 'listTemplates',
16
- 'templateFilter' => 'executable'
17
- }
18
- json = send_request(params)
19
-
20
- templates = json['template']
21
- if !templates then
22
- return nil
23
- end
24
-
25
- templates.each { |t|
26
- if t['name'] == name then
27
- return t
28
- end
29
- }
30
-
31
- nil
32
- end
33
-
34
- ##
35
- # Lists all templates that match the specified filter.
36
- #
37
- # Allowable filter values are:
38
- #
39
- # * featured - templates that are featured and are public
40
- # * self - templates that have been registered/created by the owner
41
- # * self-executable - templates that have been registered/created by the owner that can be used to deploy a new VM
42
- # * executable - all templates that can be used to deploy a new VM
43
- # * community - templates that are public
44
-
45
- def list_templates(args = {})
46
- filter = args[:filter] || 'featured'
47
- params = {
48
- 'command' => 'listTemplates',
49
- 'templateFilter' => filter
50
- }
51
- params['projectid'] = args[:project_id] if args[:project_id]
52
- params['zoneid'] = args[:zone_id] if args[:zone_id]
53
-
54
- json = send_request(params)
55
- json['template'] || []
56
- end
57
-
58
- end
59
-
60
- end
@@ -1,32 +0,0 @@
1
- module CloudstackClient
2
-
3
- module User
4
-
5
- ##
6
- # Lists users.
7
- #
8
-
9
- def list_users(args = {})
10
- params = {
11
- 'command' => 'listUsers',
12
- 'isrecursive' => true
13
- }
14
- params['listall'] = true if args[:listall]
15
-
16
- if args[:account]
17
- account = list_accounts({name: args[:account]}).first
18
- unless account
19
- puts "Error: Account #{args[:account]} not found."
20
- exit 1
21
- end
22
- params['domainid'] = account["domainid"]
23
- params['account'] = args[:account]
24
- end
25
-
26
- json = send_request(params)
27
- json['user'] || []
28
- end
29
-
30
- end
31
-
32
- end
@@ -1,20 +0,0 @@
1
- module CloudstackClient
2
-
3
- module Volume
4
-
5
- ##
6
- # Lists all volumes.
7
-
8
- def list_volumes(project_id = nil)
9
- params = {
10
- 'command' => 'listVolumes',
11
- 'listall' => true,
12
- }
13
- params['projectid'] = project_id if project_id
14
- json = send_request(params)
15
- json['volume'] || []
16
- end
17
-
18
- end
19
-
20
- end
@@ -1,57 +0,0 @@
1
- module CloudstackClient
2
-
3
- module Zone
4
-
5
- ##
6
- # Finds the zone with the specified name.
7
-
8
- def get_zone(name)
9
- params = {
10
- 'command' => 'listZones',
11
- 'available' => 'true'
12
- }
13
- json = send_request(params)
14
-
15
- networks = json['zone']
16
- return nil unless networks
17
-
18
- networks.each { |z|
19
- if z['name'] == name then
20
- return z
21
- end
22
- }
23
-
24
- nil
25
- end
26
-
27
- ##
28
- # Finds the default zone for your account.
29
-
30
- def get_default_zone
31
- params = {
32
- 'command' => 'listZones',
33
- 'available' => 'true'
34
- }
35
- json = send_request(params)
36
-
37
- zones = json['zone']
38
- return nil unless zones
39
-
40
- zones.first
41
- end
42
-
43
- ##
44
- # Lists all available zones.
45
-
46
- def list_zones
47
- params = {
48
- 'command' => 'listZones',
49
- 'available' => 'true'
50
- }
51
- json = send_request(params)
52
- json['zone'] || []
53
- end
54
-
55
- end
56
-
57
- end
@@ -1,3 +0,0 @@
1
- module CloudstackClient
2
- VERSION = "0.2.9"
3
- end
@@ -1,2 +0,0 @@
1
- require "cloudstack-client/version"
2
- require "cloudstack-client/client"