ucslib 0.0.7 → 0.0.9

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.
@@ -0,0 +1,84 @@
1
+ # Author:: Murali Raju (<murali.raju@appliv.com>)
2
+ # Copyright:: Copyright (c) 2012 Murali Raju.
3
+ # License:: Apache License, Version 2.0
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ #
17
+
18
+ class UCSDestroy
19
+
20
+ def initialize(tokenjson)
21
+
22
+ @cookie = "#{JSON.parse(tokenjson)['cookie']}"
23
+ ip = "#{JSON.parse(tokenjson)['ip']}"
24
+ @url = "https://#{ip}/nuova"
25
+
26
+ end
27
+
28
+
29
+ def delete_org(json)
30
+
31
+ org = JSON.parse(json)['org']
32
+
33
+ xml_builder = Nokogiri::XML::Builder.new do |xml|
34
+ xml.configConfMos('cookie' => "#{@cookie}", 'inHierarchical' => 'false') {
35
+ xml.inConfigs{
36
+ xml.pair('key' => "org-root/org-#{org}") {
37
+ xml.orgOrg('dn' => "org-root/org-#{org}", 'status' => 'deleted')
38
+ }
39
+ }
40
+ }
41
+ end
42
+
43
+ #Create XML
44
+ delete_org_XML= xml_builder.to_xml.to_s
45
+
46
+ #Post
47
+
48
+ begin
49
+ RestClient.post(@url, delete_org_XML, :content_type => 'text/xml').body
50
+ rescue Exception => e
51
+ raise "Error #{e}"
52
+ end
53
+
54
+ end
55
+
56
+ def delete_vlan(json)
57
+
58
+ vlan_id = JSON.parse(json)['vlan_id']
59
+ vlan_name = JSON.parse(json)['vlan_name']
60
+
61
+ xml_builder = Nokogiri::XML::Builder.new do |xml|
62
+ xml.configConfMos('cookie' => "#{@cookie}", 'inHierarchical' => 'false'){
63
+ xml.inConfigs{
64
+ xml.pair('key' => "fabric/lan/net-#{vlan_name}"){
65
+ xml.fabricVlan('dn' => "fabric/lan/net-#{vlan_name}", 'id' => "#{vlan_id}",
66
+ 'name' => "#{vlan_name}", 'status' => 'deleted')
67
+ }
68
+ }
69
+ }
70
+ end
71
+
72
+ #Create XML
73
+ delete_vlan_XML = xml_builder.to_xml.to_s
74
+
75
+ #Post
76
+ begin
77
+ RestClient.post(@url, delete_vlan_XML, :content_type => 'text/xml').body
78
+ rescue Exception => e
79
+ raise "Error #{e}"
80
+ end
81
+
82
+ end
83
+
84
+ end
@@ -77,7 +77,7 @@ class UCSInventory
77
77
 
78
78
  #Uncomment the following to create a dump to review and debug elements
79
79
  # fh = File.new("ucs_response_multiclass.xml", "w")
80
- # fh.puts ucs_response_multiclass.inspect
80
+ # fh.puts ucs_response_multi_class.inspect
81
81
  # fh.close
82
82
 
83
83
  return Nokogiri::XML(ucs_response_multi_class)
@@ -277,26 +277,27 @@ class UCSProvision
277
277
 
278
278
  org = JSON.parse(json)['org']
279
279
 
280
- xml_builder = Nokogiri::XML::Builder.new do |xml|
281
- xml.configConfMos('cookie' => "#{@cookie}", 'inHierarchical' => 'true') {
282
- xml.inConfigs{
283
- xml.pair('key' => "org-root/org-#{org}") {
284
- xml.orgOrg('descr' => "#{org} org", 'dn' => "org-root/org-#{org}", 'name' => "#{org}", 'status' => 'created')
285
- }
286
- }
287
- }
288
- end
289
-
290
- #Create XML
291
- create_org_XML= xml_builder.to_xml.to_s
292
-
293
- #Post
294
-
295
- begin
296
- RestClient.post(@url, create_org_XML, :content_type => 'text/xml').body
297
- rescue Exception => e
298
- raise "Error #{e}"
299
- end
280
+ xml_builder = Nokogiri::XML::Builder.new do |xml|
281
+ xml.configConfMos('cookie' => "#{@cookie}", 'inHierarchical' => 'true') {
282
+ xml.inConfigs{
283
+ xml.pair('key' => "org-root/org-#{org}") {
284
+ xml.orgOrg('descr' => "#{org} org", 'dn' => "org-root/org-#{org}", 'name' => "#{org}", 'status' => 'created')
285
+ }
286
+ }
287
+ }
288
+ end
289
+
290
+ #Create XML
291
+ create_org_XML= xml_builder.to_xml.to_s
292
+
293
+ #Post
294
+
295
+ begin
296
+ RestClient.post(@url, create_org_XML, :content_type => 'text/xml').body
297
+ rescue Exception => e
298
+ raise "Error #{e}"
299
+ end
300
+
300
301
 
301
302
  end
302
303
 
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module Ucslib
19
- VERSION = "0.0.7"
19
+ VERSION = "0.0.9"
20
20
  end
data/lib/ucslib.rb CHANGED
@@ -19,6 +19,7 @@ require "ucslib/version"
19
19
  require "ucslib/session"
20
20
  require "ucslib/provision"
21
21
  require "ucslib/inventory"
22
+ require 'ucslib/destroyer'
22
23
 
23
24
  require 'nokogiri'
24
25
  require 'rest-client'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ucslib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-22 00:00:00.000000000 Z
12
+ date: 2012-05-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70303451979280 !ruby/object:Gem::Requirement
16
+ requirement: &70159780134300 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70303451979280
24
+ version_requirements: *70159780134300
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70303451978700 !ruby/object:Gem::Requirement
27
+ requirement: &70159780133380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70303451978700
35
+ version_requirements: *70159780133380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: json
38
- requirement: &70303451978000 !ruby/object:Gem::Requirement
38
+ requirement: &70159780132460 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70303451978000
46
+ version_requirements: *70159780132460
47
47
  description: Ruby Client Library for Cisco UCS Manager that can be used by DevOps
48
48
  toolchains (Chef/Puppet or others) to provide hardware deployment automation
49
49
  email:
@@ -95,6 +95,7 @@ files:
95
95
  - html/lib/ucslib_rb.html
96
96
  - html/rdoc.css
97
97
  - lib/ucslib.rb
98
+ - lib/ucslib/destroyer.rb
98
99
  - lib/ucslib/inventory.rb
99
100
  - lib/ucslib/provision.rb
100
101
  - lib/ucslib/session.rb