ucslib 0.1.7 → 0.1.8

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 (57) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +151 -0
  3. data/README.rdoc +88 -101
  4. data/lib/ucslib/Gemfile +4 -0
  5. data/lib/ucslib/{destroy.rb → service/ucs/destroy.rb} +3 -12
  6. data/lib/ucslib/{inventory.rb → service/ucs/inventory.rb} +34 -31
  7. data/lib/ucslib/{manage.rb → service/ucs/manage.rb} +14 -22
  8. data/lib/ucslib/{parser.rb → service/ucs/parser.rb} +19 -19
  9. data/lib/ucslib/{provision.rb → service/ucs/provision.rb} +59 -66
  10. data/lib/ucslib/service/ucs/session.rb +110 -0
  11. data/lib/ucslib/{stats.rb → service/ucs/stats.rb} +21 -1
  12. data/lib/ucslib/service/ucs/ucs.rb +70 -0
  13. data/lib/ucslib/{update.rb → service/ucs/update.rb} +9 -17
  14. data/lib/ucslib/version.rb +2 -1
  15. data/lib/ucslib.rb +3 -8
  16. metadata +26 -71
  17. data/.gitignore +0 -4
  18. data/Gemfile +0 -4
  19. data/html/README_rdoc.html +0 -226
  20. data/html/UCSInventory.html +0 -533
  21. data/html/UCSProvision.html +0 -1914
  22. data/html/UCSToken.html +0 -338
  23. data/html/Ucslib.html +0 -173
  24. data/html/created.rid +0 -7
  25. data/html/images/brick.png +0 -0
  26. data/html/images/brick_link.png +0 -0
  27. data/html/images/bug.png +0 -0
  28. data/html/images/bullet_black.png +0 -0
  29. data/html/images/bullet_toggle_minus.png +0 -0
  30. data/html/images/bullet_toggle_plus.png +0 -0
  31. data/html/images/date.png +0 -0
  32. data/html/images/find.png +0 -0
  33. data/html/images/loadingAnimation.gif +0 -0
  34. data/html/images/macFFBgHack.png +0 -0
  35. data/html/images/package.png +0 -0
  36. data/html/images/page_green.png +0 -0
  37. data/html/images/page_white_text.png +0 -0
  38. data/html/images/page_white_width.png +0 -0
  39. data/html/images/plugin.png +0 -0
  40. data/html/images/ruby.png +0 -0
  41. data/html/images/tag_green.png +0 -0
  42. data/html/images/wrench.png +0 -0
  43. data/html/images/wrench_orange.png +0 -0
  44. data/html/images/zoom.png +0 -0
  45. data/html/index.html +0 -273
  46. data/html/js/darkfish.js +0 -116
  47. data/html/js/jquery.js +0 -32
  48. data/html/js/quicksearch.js +0 -114
  49. data/html/js/thickbox-compressed.js +0 -10
  50. data/html/lib/ucslib/inventory_rb.html +0 -75
  51. data/html/lib/ucslib/provision_rb.html +0 -75
  52. data/html/lib/ucslib/session_rb.html +0 -75
  53. data/html/lib/ucslib/version_rb.html +0 -75
  54. data/html/lib/ucslib_rb.html +0 -89
  55. data/html/rdoc.css +0 -763
  56. data/lib/ucslib/session.rb +0 -108
  57. data/ucslib.gemspec +0 -45
@@ -0,0 +1,70 @@
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
+ require 'ucslib/service/ucs/session'
19
+ require 'ucslib/service/ucs/provision'
20
+ require 'ucslib/service/ucs/parser'
21
+ require 'ucslib/service/ucs/update'
22
+ require 'ucslib/service/ucs/inventory'
23
+ require 'ucslib/service/ucs/destroy'
24
+ require 'ucslib/service/ucs/manage'
25
+ require 'ucslib/service/ucs/stats'
26
+
27
+
28
+ class UCS
29
+ include Session
30
+ include Update
31
+ include Stats
32
+ include Provision
33
+ include Parser
34
+ include Manage
35
+ include Inventory
36
+ include Destroy
37
+
38
+ def initialize (authjson)
39
+
40
+ username = "#{JSON.parse(authjson)['username']}"
41
+ password = "#{JSON.parse(authjson)['password']}"
42
+ ip = "#{JSON.parse(authjson)['ip']}"
43
+ @url = "https://#{ip}/nuova"
44
+
45
+ xml_builder = Nokogiri::XML::Builder.new do |xml|
46
+ xml.aaaLogin('inName' => username, 'inPassword' => password)
47
+ end
48
+
49
+ aaa_login_xml = xml_builder.to_xml.to_s
50
+ ucs_response = RestClient.post(@url, aaa_login_xml, :content_type => 'text/xml').body
51
+ ucs_login_doc = Nokogiri::XML(ucs_response)
52
+ ucs_login_root = ucs_login_doc.root
53
+ @cookie = ucs_login_root.attributes['outCookie']
54
+
55
+
56
+ # Archive code to be removed later. #TODO
57
+ # begin
58
+ # return session = { :cookie => "#{cookie}",
59
+ # :username => "#{username}",
60
+ # :password => "#{password}",
61
+ # :ip => "#{ip}" }.to_json
62
+ # rescue Exception => e
63
+ # 'An Error Occured. Please check authentication credentials'
64
+ # else
65
+ # Process.exit
66
+ # end
67
+
68
+ end
69
+
70
+ end
@@ -15,18 +15,10 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
- class UCSUpdate
19
-
20
- def initialize(tokenjson)
21
-
22
- @cookie = "#{JSON.parse(tokenjson)['cookie']}"
23
- ip = "#{JSON.parse(tokenjson)['ip']}"
24
- @url = "https://#{ip}/nuova"
18
+ module Update
25
19
 
26
- end
27
-
28
20
  def update_host_firmware_package(json)
29
-
21
+
30
22
  host_firmware_pkg_name = JSON.parse(json)['host_firmware_pkg_name']
31
23
  hardware_model = JSON.parse(json)['hardware_model'].to_s
32
24
  hardware_type = JSON.parse(json)['hardware_type']
@@ -64,21 +56,21 @@ class UCSUpdate
64
56
  end
65
57
 
66
58
  def update_boot_policy_on_service_profile_template(json)
67
-
59
+
68
60
  service_profile_template_name = JSON.parse(json)['service_profile_template_name']
69
61
  org = JSON.parse(json)['org']
70
62
  service_profile_template_mgmt_ip_pool = JSON.parse(json)['service_profile_template_mgmt_ip_pool']
71
63
  service_profile_template_boot_policy = JSON.parse(json)['service_profile_template_boot_policy']
72
64
  service_profile_template_host_fw_policy = JSON.parse(json)['service_profile_template_host_fw_policy']
73
65
  service_profile_template_uuid_pool = JSON.parse(json)['service_profile_template_uuid_pool']
74
-
66
+
75
67
  xml_builder = Nokogiri::XML::Builder.new do |xml|
76
68
  xml.configConfMos('cookie' => "#{@cookie}", 'inHierarchical' => 'false'){
77
69
  xml.inConfigs{
78
70
  xml.pair('key' => "org-root/org-#{org}/ls-#{service_profile_template_name}"){
79
71
  xml.lsServer('agentPolicyName' => '', 'biosProfileName' => '', 'bootPolicyName' => "#{service_profile_template_boot_policy}",
80
72
  'descr' => '', 'dn' => "org-root/org-#{org}/ls-#{service_profile_template_name}",
81
- 'dynamicConPolicyName' => '', 'extIPPoolName' => "#{service_profile_template_mgmt_ip_pool}",
73
+ 'dynamicConPolicyName' => '', 'extIPPoolName' => "#{service_profile_template_mgmt_ip_pool}",
82
74
  'extIPState' => 'none', 'hostFwPolicyName' => "#{service_profile_template_host_fw_policy}",
83
75
  'identPoolName' => "#{service_profile_template_uuid_pool}", 'localDiskPolicyName' => 'default', 'maintPolicyName' => 'default',
84
76
  'mgmtAccessPolicyName' => '', 'mgmtFwPolicyName' => '', 'policyOwner' => 'local',
@@ -90,14 +82,14 @@ class UCSUpdate
90
82
  end
91
83
  #Create Template xml
92
84
  update_boot_policy_on_service_profile_template_xml = xml_builder.to_xml.to_s
93
-
85
+
94
86
  #Post Update Boot Policy on Service Profile Template
95
87
  begin
96
88
  RestClient.post(@url, update_boot_policy_on_service_profile_template_xml, :content_type => 'text/xml').body
97
89
  rescue Exception => e
98
90
  raise "Error #{e}"
99
- end
100
-
91
+ end
92
+
101
93
  end
102
-
94
+
103
95
  end
@@ -15,6 +15,7 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
+
18
19
  module Ucslib
19
- VERSION = "0.1.7"
20
+ VERSION = "0.1.8"
20
21
  end
data/lib/ucslib.rb CHANGED
@@ -15,15 +15,10 @@
15
15
  # limitations under the License.
16
16
  #
17
17
 
18
+
19
+
18
20
  require "ucslib/version"
19
- require "ucslib/session"
20
- require "ucslib/provision"
21
- require "ucslib/parser"
22
- require "ucslib/update"
23
- require "ucslib/inventory"
24
- require 'ucslib/destroy'
25
- require 'ucslib/manage'
26
- require 'ucslib/stats'
21
+ require "ucslib/service/ucs/ucs"
27
22
 
28
23
  require 'nokogiri'
29
24
  require 'rest-client'
metadata CHANGED
@@ -1,147 +1,102 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ucslib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
5
- prerelease:
4
+ version: 0.1.8
6
5
  platform: ruby
7
6
  authors:
8
7
  - Murali Raju
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-14 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: nokogiri
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rest-client
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: json
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
- description: Ruby Client Library for Cisco UCS Manager that can be used by DevOps
63
- toolchains (Chef/Puppet or others) to provide hardware deployment automation
55
+ description: Ruby Client Library for Cisco UCS Manager that can be used for Infrastructure
56
+ Automation
64
57
  email:
65
58
  - murali.raju@appliv.com
66
59
  executables: []
67
60
  extensions: []
68
61
  extra_rdoc_files: []
69
62
  files:
70
- - .gitignore
71
- - Gemfile
72
63
  - LICENSE.txt
64
+ - README.md
73
65
  - README.rdoc
74
66
  - Rakefile
75
- - html/README_rdoc.html
76
- - html/UCSInventory.html
77
- - html/UCSProvision.html
78
- - html/UCSToken.html
79
- - html/Ucslib.html
80
- - html/created.rid
81
- - html/images/brick.png
82
- - html/images/brick_link.png
83
- - html/images/bug.png
84
- - html/images/bullet_black.png
85
- - html/images/bullet_toggle_minus.png
86
- - html/images/bullet_toggle_plus.png
87
- - html/images/date.png
88
- - html/images/find.png
89
- - html/images/loadingAnimation.gif
90
- - html/images/macFFBgHack.png
91
- - html/images/package.png
92
- - html/images/page_green.png
93
- - html/images/page_white_text.png
94
- - html/images/page_white_width.png
95
- - html/images/plugin.png
96
- - html/images/ruby.png
97
- - html/images/tag_green.png
98
- - html/images/wrench.png
99
- - html/images/wrench_orange.png
100
- - html/images/zoom.png
101
- - html/index.html
102
- - html/js/darkfish.js
103
- - html/js/jquery.js
104
- - html/js/quicksearch.js
105
- - html/js/thickbox-compressed.js
106
- - html/lib/ucslib/inventory_rb.html
107
- - html/lib/ucslib/provision_rb.html
108
- - html/lib/ucslib/session_rb.html
109
- - html/lib/ucslib/version_rb.html
110
- - html/lib/ucslib_rb.html
111
- - html/rdoc.css
112
67
  - lib/ucslib.rb
113
- - lib/ucslib/destroy.rb
114
- - lib/ucslib/inventory.rb
115
- - lib/ucslib/manage.rb
116
- - lib/ucslib/parser.rb
117
- - lib/ucslib/provision.rb
118
- - lib/ucslib/session.rb
119
- - lib/ucslib/stats.rb
120
- - lib/ucslib/update.rb
68
+ - lib/ucslib/Gemfile
69
+ - lib/ucslib/service/ucs/destroy.rb
70
+ - lib/ucslib/service/ucs/inventory.rb
71
+ - lib/ucslib/service/ucs/manage.rb
72
+ - lib/ucslib/service/ucs/parser.rb
73
+ - lib/ucslib/service/ucs/provision.rb
74
+ - lib/ucslib/service/ucs/session.rb
75
+ - lib/ucslib/service/ucs/stats.rb
76
+ - lib/ucslib/service/ucs/ucs.rb
77
+ - lib/ucslib/service/ucs/update.rb
121
78
  - lib/ucslib/version.rb
122
- - ucslib.gemspec
123
79
  homepage: ''
124
80
  licenses: []
81
+ metadata: {}
125
82
  post_install_message:
126
83
  rdoc_options: []
127
84
  require_paths:
128
85
  - lib
129
86
  required_ruby_version: !ruby/object:Gem::Requirement
130
- none: false
131
87
  requirements:
132
- - - ! '>='
88
+ - - ">="
133
89
  - !ruby/object:Gem::Version
134
90
  version: '0'
135
91
  required_rubygems_version: !ruby/object:Gem::Requirement
136
- none: false
137
92
  requirements:
138
- - - ! '>='
93
+ - - ">="
139
94
  - !ruby/object:Gem::Version
140
95
  version: '0'
141
96
  requirements: []
142
97
  rubyforge_project: ucslib
143
- rubygems_version: 1.8.24
98
+ rubygems_version: 2.2.2
144
99
  signing_key:
145
- specification_version: 3
100
+ specification_version: 4
146
101
  summary: Ruby UCS Manager Client Library
147
102
  test_files: []
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- *.gem
2
- .bundle
3
- Gemfile.lock
4
- pkg/*
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Specify your gem's dependencies in ucslib.gemspec
4
- gemspec
@@ -1,226 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
-
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
- <head>
7
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
8
-
9
- <title>File: README.rdoc [ucslib]</title>
10
-
11
- <link type="text/css" media="screen" href="./rdoc.css" rel="stylesheet" />
12
-
13
- <script src="./js/jquery.js" type="text/javascript"
14
- charset="utf-8"></script>
15
- <script src="./js/thickbox-compressed.js" type="text/javascript"
16
- charset="utf-8"></script>
17
- <script src="./js/quicksearch.js" type="text/javascript"
18
- charset="utf-8"></script>
19
- <script src="./js/darkfish.js" type="text/javascript"
20
- charset="utf-8"></script>
21
- </head>
22
-
23
- <body class="file">
24
- <div id="metadata">
25
- <div id="home-metadata">
26
- <div id="home-section" class="section">
27
- <h3 class="section-header">
28
- <a href="./index.html">Home</a>
29
- <a href="./index.html#classes">Classes</a>
30
- <a href="./index.html#methods">Methods</a>
31
- </h3>
32
- </div>
33
- </div>
34
-
35
- <div id="project-metadata">
36
-
37
-
38
- <div id="fileindex-section" class="section project-section">
39
- <h3 class="section-header">Files</h3>
40
- <ul>
41
-
42
- <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
43
-
44
- </ul>
45
- </div>
46
-
47
-
48
- <div id="classindex-section" class="section project-section">
49
- <h3 class="section-header">Class Index
50
- <span class="search-toggle"><img src="./images/find.png"
51
- height="16" width="16" alt="[+]"
52
- title="show/hide quicksearch" /></span></h3>
53
- <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
54
- <fieldset>
55
- <legend>Quicksearch</legend>
56
- <input type="text" name="quicksearch" value=""
57
- class="quicksearch-field" />
58
- </fieldset>
59
- </form>
60
-
61
- <ul class="link-list">
62
-
63
- <li><a href="./UCSInventory.html">UCSInventory</a></li>
64
-
65
- <li><a href="./UCSProvision.html">UCSProvision</a></li>
66
-
67
- <li><a href="./UCSToken.html">UCSToken</a></li>
68
-
69
- <li><a href="./Ucslib.html">Ucslib</a></li>
70
-
71
- </ul>
72
- <div id="no-class-search-results" style="display: none;">No matching classes.</div>
73
- </div>
74
-
75
-
76
- </div>
77
- </div>
78
-
79
- <div id="documentation">
80
-
81
- <h1>ucslib (alpha)</h1>
82
-
83
- <p>Ruby Client Library for Cisco UCS Manager that could be used by DevOps
84
- toolchains - Puppet or Chef and other custom tools - to provide MaaS
85
- (Metal-as-a-Service) for installing and running OpenStack, Hadoop, etc.
86
- ucslib accepts JSON as configuration for provisioning.</p>
87
-
88
- <h2>Install</h2>
89
-
90
- <p>gem install ucslib</p>
91
-
92
- <h2>Usage (example irb session)</h2>
93
-
94
- <p>Just do “require ucslib” in your apps. Below is an introspection of some of
95
- the capabilities using IRB.</p>
96
-
97
- <p>➜ ucslib git:(master) ✗ irb 1.9.3p194 :001 &gt; require ‘ucslib’</p>
98
-
99
- <pre>=&gt; true</pre>
100
-
101
- <p>1.9.3p194 :002 &gt; auth_json = { :username =&gt; ‘admin’, :password =&gt;
102
- ‘admin’, :ip =&gt; ‘172.16.75.137’ }.to_json</p>
103
-
104
- <pre>=&gt; &quot;{\&quot;username\&quot;:\&quot;admin\&quot;,\&quot;password\&quot;:\&quot;admin\&quot;,\&quot;ip\&quot;:\&quot;172.16.75.137\&quot;}&quot;</pre>
105
-
106
- <p>1.9.3p194 :003 &gt; ucs_session = UCSToken.new</p>
107
-
108
- <pre>=&gt; #&lt;UCSToken:0x007ff4d92062c0&gt;</pre>
109
-
110
- <p>1.9.3p194 :004 &gt; token_json = ucs_session.get_token(auth_json)</p>
111
-
112
- <pre>=&gt; &quot;{\&quot;cookie\&quot;:\&quot;1336941096/ea496248-d200-4a10-8e46-c73b59971864\&quot;,\&quot;username\&quot;:\&quot;admin\&quot;,\&quot;password\&quot;:\&quot;admin\&quot;,\&quot;ip\&quot;:\&quot;172.16.75.137\&quot;}&quot;</pre>
113
-
114
- <p>1.9.3p194 :005 &gt; ucs_inventory = UCSInventory.new</p>
115
-
116
- <pre>=&gt; #&lt;UCSInventory:0x007ff4d92cd8c0&gt;</pre>
117
-
118
- <p>1.9.3p194 :006 &gt; ucs_provision = <a
119
- href="UCSProvision.html#method-c-new">UCSProvision.new(token_json)</a></p>
120
-
121
- <pre>=&gt; #&lt;UCSProvision:0x007ff4d92c0378 @cookie=&quot;1336941096/ea496248-d200-4a10-8e46-c73b59971864&quot;, @url=&quot;https://172.16.75.137/nuova&quot;&gt;</pre>
122
-
123
- <p>1.9.3p194 :007 &gt; xml_dump = ucs_inventory.discover(token_json)</p>
124
-
125
- <p>1.9.3p194 :008 &gt; ucs_inventory.methods</p>
126
-
127
- <pre>=&gt; [:discover, :list_blades, :list_vsans, :list_vlans, :list_cpus, :list_memory, :list_service_profiles, :list_running_firmware, :to_json, :nil?, :===, :=~, :!~, :eql?, :hash, :&lt;=&gt;, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :to_s, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]</pre>
128
-
129
- <p>1.9.3p194 :009 &gt;</p>
130
-
131
- <p>1.9.3p194 :009 &gt; ucs_inventory.list_blades(xml_dump) Blade : 1/5 model:
132
- UCSB-B200-M3 with serial: 1049 is powered: off Blade : 1/6 model:
133
- N20-B6625-1 with serial: 1053 is powered: off Blade : 1/1 model:
134
- N20-B6620-1 with serial: 1045 is powered: on Blade : 1/7 model: N20-B6740-2
135
- with serial: 1052 is powered: off Blade : 1/2 model: N20-B6620-1 with
136
- serial: 1054 is powered: off Blade : 1/4 model: N20-B6620-1 with serial:
137
- 1051 is powered: off Blade : 1/3 model: N20-B6620-1 with serial: 1055 is
138
- powered: off</p>
139
-
140
- <pre>=&gt; 0</pre>
141
-
142
- <p>1.9.3p194 :010 &gt;</p>
143
-
144
- <p>1.9.3p194 :010 &gt; vlan_json = { :vlan_id =&gt; ‘200’, :vlan_name =&gt;
145
- ‘OpenStack-Mgmt’ }.to_json</p>
146
-
147
- <pre>=&gt; &quot;{\&quot;vlan_id\&quot;:\&quot;200\&quot;,\&quot;vlan_name\&quot;:\&quot;OpenStack-Mgmt\&quot;}&quot;</pre>
148
-
149
- <p>1.9.3p194 :011 &gt; ucs_provision.methods</p>
150
-
151
- <pre>=&gt; [:set_power_policy, :set_chassis_discovery_policy, :set_time_zone, :set_ntp, :create_server_port, :create_network_uplink_port, :create_fc_uplink_port, :create_port_channel, :create_org, :set_local_disk_policy, :create_local_boot_policy, :create_pxe_boot_policy, :create_san_boot_policy, :create_management_ip_pool, :create_vlan, :create_mac_pool, :create_vnic_template, :create_vsan, :create_wwnn_pool, :create_wwpn_pool, :create_vhba_template, :create_uuid_pool, :create_service_profile_template, :create_service_profiles_from_template, :create_service_profiles, :to_json, :nil?, :===, :=~, :!~, :eql?, :hash, :&lt;=&gt;, :class, :singleton_class, :clone, :dup, :initialize_dup, :initialize_clone, :taint, :tainted?, :untaint, :untrust, :untrusted?, :trust, :freeze, :frozen?, :to_s, :inspect, :methods, :singleton_methods, :protected_methods, :private_methods, :public_methods, :instance_variables, :instance_variable_get, :instance_variable_set, :instance_variable_defined?, :instance_of?, :kind_of?, :is_a?, :tap, :send, :public_send, :respond_to?, :respond_to_missing?, :extend, :display, :method, :public_method, :define_singleton_method, :object_id, :to_enum, :enum_for, :==, :equal?, :!, :!=, :instance_eval, :instance_exec, :__send__, :__id__]</pre>
152
-
153
- <p>1.9.3p194 :012 &gt;</p>
154
-
155
- <p>1.9.3p194 :012 &gt; ucs_provision.create_vlan(vlan_json)</p>
156
-
157
- <pre>=&gt; &quot; &lt;configConfMos cookie=\&quot;1336941096/ea496248-d200-4a10-8e46-c73b59971864\&quot; response=\&quot;yes\&quot;&gt; &lt;outConfigs&gt; &lt;pair key=\&quot;fabric/lan/net-OpenStack-Mgmt\&quot;&gt; &lt;fabricVlan childAction=\&quot;deleteNonPresent\&quot; defaultNet=\&quot;no\&quot; dn=\&quot;fabric/lan/net-OpenStack-Mgmt\&quot; epDn=\&quot;\&quot; id=\&quot;200\&quot; ifRole=\&quot;network\&quot; ifType=\&quot;virtual\&quot; locale=\&quot;external\&quot; name=\&quot;OpenStack-Mgmt\&quot; operState=\&quot;ok\&quot; peerDn=\&quot;\&quot; pubNwDn=\&quot;\&quot; pubNwId=\&quot;0\&quot; pubNwName=\&quot;\&quot; sharing=\&quot;none\&quot; status=\&quot;created\&quot; switchId=\&quot;dual\&quot; transport=\&quot;ether\&quot; type=\&quot;lan\&quot;/&gt; &lt;/pair&gt; &lt;/outConfigs&gt; &lt;/configConfMos&gt;&quot;</pre>
158
-
159
- <p>1.9.3p194 :013 &gt;</p>
160
-
161
- <p>1.9.3p194 :015 &gt; xml_dump = ucs_inventory.discover(token_json)</p>
162
-
163
- <p>1.9.3p194 :015 &gt; ucs_inventory.list_vlans(xml_dump) VLAN: 1 with name:
164
- default VLAN: 1 with name: default VLAN: 5 with name: human-resource VLAN:
165
- 1 with name: default VLAN: 3 with name: finance VLAN: 5 with name:
166
- human-resource VLAN: 1 with name: default VLAN: 3 with name: finance VLAN:
167
- 100 with name: Tenant-1 VLAN: 200 with name: OpenStack-Mgmt</p>
168
-
169
- <pre>=&gt; 0</pre>
170
-
171
- <p>1.9.3p194 :016 &gt;</p>
172
-
173
- <h2>Features</h2>
174
- <ol><li>
175
- <p>List inventory of UCS components</p>
176
- </li><li>
177
- <p>Provision - turn up ports, create port channels, pools, service profiles</p>
178
- </li></ol>
179
-
180
- <h2>ToDo</h2>
181
-
182
- <p>Besides Documentation, Documentation, Documentation!</p>
183
- <ol><li>
184
- <p>Firmware Management</p>
185
- </li><li>
186
- <p>Example implementation (workflow) under examples (in progress)</p>
187
- </li><li>
188
- <p>Server Pools (in progress)</p>
189
- </li><li>
190
- <p>Service Profile Association (in progress)</p>
191
- </li></ol>
192
-
193
- <h2>Contributing to ucslib</h2>
194
- <ul><li>
195
- <p>Check out the latest master to make sure the feature hasn’t been
196
- implemented or the bug hasn’t been fixed yet.</p>
197
- </li><li>
198
- <p>Check out the issue tracker to make sure someone already hasn’t requested
199
- it and/or contributed it.</p>
200
- </li><li>
201
- <p>Start a feature/bugfix branch.</p>
202
- </li><li>
203
- <p>Commit and push until you are happy with your contribution.</p>
204
- </li><li>
205
- <p>Make sure to add tests for it. This is important so I don’t break it in a
206
- future version unintentionally.</p>
207
- </li><li>
208
- <p>Please try not to mess with the Rakefile, version, or history. If you want
209
- to have your own version, or is otherwise necessary, that is fine, but
210
- please isolate to its own commit so I can cherry-pick around it.</p>
211
- </li></ul>
212
-
213
- <h2>Copyright</h2>
214
-
215
- <p>Copyright © 2012 Murali Raju. See LICENSE.txt for further details.</p>
216
-
217
- </div>
218
-
219
- <div id="validator-badges">
220
- <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
221
- <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
222
- Rdoc Generator</a> 2</small>.</p>
223
- </div>
224
- </body>
225
- </html>
226
-