vcli 0.2.4 → 0.2.5

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: 2ca49ce6cb3ce084f921e40b31fdbffa3ce0280d
4
- data.tar.gz: ee9be5e5df59c172c3dde26e7ab68498d35d65ca
3
+ metadata.gz: b173126518d858853f8fde0e0b9d27fe71d7fe41
4
+ data.tar.gz: bcd88daf8c29e87f836299cc1515f0d7e1758e4a
5
5
  SHA512:
6
- metadata.gz: 92acb347d9f3414130323438211c68bf76f92244c6dbdbb839d81feda4d44f90af2d9772739b428c2e1159e3540c41e14f541071cbf49cec69dc5836910f281c
7
- data.tar.gz: 05784f604a14cd9a9bd140e31be5aac8ab96641686c4155dcd1c4d4df2b56a236ebd1039238827444405a6f966405441ae0df9404dfbcdb45a1ea7bfd957a302
6
+ metadata.gz: fc06acdf59f7578d0619d774d78f311a38aa36412c21aa8d63064b96d02e79589c7db357c6194ff657d90edb914a796668734711cce4b73822f21e3b1956fba7
7
+ data.tar.gz: 098e735691cfadf26c373b94480124f81f0546052707ae8247a01c8f6154a59a0330a82e72ed77a0af0c6e52f063074887f08ca2a02887da29f261417f895456
data/lib/vcli/cli.rb CHANGED
@@ -76,5 +76,108 @@ module Vcli
76
76
 
77
77
  desc "delete COMMANDS", "Delete items within the Abiquo VDC"
78
78
  subcommand "delete", Vcli::CLI::Delete
79
+
80
+ desc "deploy",
81
+ "deploy [optional] --vm=<virtualmachine id>
82
+ [required] --va=<virtualappliance id>
83
+ [required] --vdc=<vdc id>"
84
+ method_option :vm, :type => :string
85
+ method_option :va, :type => :string, :required => true
86
+ method_option :vdc, :type => :string, :required => true
87
+ def deploy()
88
+ abq = AbiquoAPI.new(:abiquo_api_url => Vcli::target,
89
+ :abiquo_username => Vcli::user,
90
+ :abiquo_password => Vcli::password)
91
+ # If --vm parameter passed
92
+ vdc=options[:vdc].to_s
93
+ va=options[:va].to_s
94
+ vm=options[:vm].to_s
95
+ if vm.length != 0
96
+ # if Virtual Machine Specified
97
+ link=AbiquoAPI::Link.new(:href => 'api/cloud/virtualdatacenters/' + vdc + '/virtualappliances/' + va + '/virtualmachines/' + vm + '/action/deploy',
98
+ :type => 'application/vnd.abiquo.acceptedrequest+json')
99
+ else
100
+ # If no Virtual Machine specified its a Virtual Appliance
101
+ link=AbiquoAPI::Link.new(:href => 'api/cloud/virtualdatacenters/' + vdc + '/virtualappliances/' + va + '/action/deploy')
102
+
103
+ end
104
+ response=abq.post(link,"{}")
105
+ end
106
+
107
+ desc "undeploy",
108
+ "undeploy [optional] --vm=<virtualmachine id>
109
+ [required] --va=<virtualappliance id>
110
+ [required] --vdc=<vdc id>"
111
+ method_option :vm, :type => :string
112
+ method_option :va, :type => :string, :required => true
113
+ method_option :vdc, :type => :string, :required => true
114
+ method_option :force, :type => :boolean
115
+ def undeploy()
116
+ begin
117
+ abq = AbiquoAPI.new(:abiquo_api_url => Vcli::target,
118
+ :abiquo_username => Vcli::user,
119
+ :abiquo_password => Vcli::password)
120
+ # If --vm parameter passed
121
+ vdc=options[:vdc].to_s
122
+ va=options[:va].to_s
123
+ vm=options[:vm].to_s
124
+ force=options[:force]
125
+ request=Hash.new
126
+ forcerequest=Hash.new
127
+ if force
128
+ forcerequest[:forceUndeploy]=true
129
+ else
130
+ forcerequest[:forceUndeploy]=false
131
+ end
132
+
133
+ request[:virtualmachinetask]=forcerequest
134
+ if vm.length != 0
135
+ # if Virtual Machine Specified
136
+ link=AbiquoAPI::Link.new(:href => 'api/cloud/virtualdatacenters/' + vdc + '/virtualappliances/' + va + '/virtualmachines/' + vm + '/action/undeploy',
137
+ :type => 'application/vnd.abiquo.virtualmachinetask+json')
138
+ else
139
+ # If no Virtual Machine specified its a Virtual Appliance
140
+ link=AbiquoAPI::Link.new(:href => 'api/cloud/virtualdatacenters/' + vdc + '/virtualappliances/' + va + '/action/undeploy',
141
+ :type => 'application/vnd.abiquo.virtualmachinetask+json')
142
+
143
+ end
144
+ reqoptions=Hash.new
145
+ reqoptions[:accept] = 'application/vnd.abiquo.acceptedrequest+json'
146
+ response=abq.post(link,request,reqoptions)
147
+ rescue AbiquoAPIClient::Forbidden
148
+ puts "Forbidden HTTP 403 Received"
149
+ rescue AbiquoAPIClient::InvalidCredentials
150
+ puts "Invalid Credentials - HTTP 401 Received"
151
+ rescue AbiquoAPIClient::BadRequest => e
152
+ puts "Bad Request - HTTP 400 or 406 Received"
153
+ puts e.inspect
154
+ rescue AbiquoAPIClient::NotFound
155
+ puts "Not Found - HTTP 400 Received"
156
+ rescue AbiquoAPIClient::UnsupportedMediaType
157
+ puts "Unsupported Media Type Specified - HTTP 415 Received"
158
+ end
159
+ end
160
+
161
+ desc "poweron",
162
+ "poweron [optional] --vm=<virtualmachine id>
163
+ [required] --va=<virtualappliance id>
164
+ [required] --vdc=<vdc id>"
165
+ method_option :virtualmachine, :type => :string, :aliases => "-vm"
166
+ method_option :virtualappliance, :type => :string, :aliases => "-va", :required => true
167
+ method_option :vdc, :type => :string, :required => true
168
+ def poweron()
169
+ #TODO
170
+ end
171
+
172
+ desc "poweroff",
173
+ "poweroff [optional] --vm=<virtualmachine id>
174
+ [required] --va=<virtualappliance id>
175
+ [required] --vdc=<vdc id>"
176
+ method_option :virtualmachine, :type => :string, :aliases => "-vm"
177
+ method_option :virtualappliance, :type => :string, :aliases => "-va", :required => true
178
+ method_option :vdc, :type => :string, :required => true
179
+ def poweroff()
180
+ #TODO
181
+ end
79
182
  end
80
183
  end
@@ -89,8 +89,7 @@ module Vcli
89
89
  :abiquo_username => Vcli::user,
90
90
  :abiquo_password => Vcli::password)
91
91
 
92
- # Get template link
93
-
92
+
94
93
  # Link to post
95
94
  link=AbiquoAPI::Link.new(:href => 'api/cloud/virtualdatacenters/' + vdc + '/virtualappliances/' + va + '/virtualmachines' ,
96
95
  :type => 'application/vnd.abiquo.virtualmachine+json')
data/lib/vcli/cli/show.rb CHANGED
@@ -99,6 +99,8 @@ module Vcli
99
99
  desc "show vlans", "Show all VLANS within your account, Options --vdc limits query to single VDC, --ips shows IP address"
100
100
  method_option :vdc, :type => :string
101
101
  method_option :ips, :type => :boolean
102
+ method_option :allocated, :type => :boolean, :default => false
103
+ method_option :free, :type => :boolean, :default => false
102
104
  def vlans( )
103
105
  begin
104
106
  abq = AbiquoAPI.new(:abiquo_api_url => Vcli::target,
@@ -120,7 +122,33 @@ module Vcli
120
122
  :type => 'application/vnd.abiquo.privateips+json')
121
123
  listofips=abq.list(link2)
122
124
  listofips.each { |m|
123
- puts " - #{m.id}, #{m.ip}, #{m.name}"
125
+ case options[:free]
126
+ when true
127
+ if !m.has_link?(:virtualmachine)
128
+ virtualmachine="Free"
129
+ puts " - #{m.id}, #{m.ip}, #{virtualmachine}"
130
+ end
131
+ when false
132
+ case options[:allocated]
133
+ when true
134
+ if m.has_link?(:virtualmachine)
135
+ virtualmachinelink=m.link(:virtualmachine)
136
+ virtualmachinelink.get
137
+ virtualmachine=virtualmachinelink.title
138
+ puts " - #{m.id}, #{m.ip}, #{virtualmachine}"
139
+ end
140
+ when false
141
+ if m.has_link?(:virtualmachine)
142
+ virtualmachinelink=m.link(:virtualmachine)
143
+ virtualmachinelink.get
144
+ virtualmachine=virtualmachinelink.title
145
+ puts " - #{m.id}, #{m.ip}, #{virtualmachine}"
146
+ else
147
+ virtualmachine="Free"
148
+ puts " - #{m.id}, #{m.ip}, #{virtualmachine}"
149
+ end
150
+ end
151
+ end
124
152
  }
125
153
  end
126
154
 
data/lib/vcli/version.rb CHANGED
@@ -19,6 +19,10 @@ module Vcli
19
19
  # # # nic uses default, need to work out nic
20
20
  # # # allocation.
21
21
  #################################################################
22
+ # 0.2.5 #31072015# Added deploy and undeploy for virtualappliance
23
+ # # # and virtualmachines
24
+ #################################################################
25
+
22
26
 
23
- VERSION = "0.2.4"
27
+ VERSION = "0.2.5"
24
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vcli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay Fearn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-30 00:00:00.000000000 Z
11
+ date: 2015-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.5.5
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-core
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '='
74
+ - !ruby/object:Gem::Version
75
+ version: 3.3.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '='
81
+ - !ruby/object:Gem::Version
82
+ version: 3.3.0
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: thor
71
85
  requirement: !ruby/object:Gem::Requirement