ucslib 0.0.2 → 0.0.3

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.
@@ -80,15 +80,95 @@
80
80
 
81
81
  <h1>ucslib (alpha)</h1>
82
82
 
83
- <p>Ruby Client Library for Cisco UCS that could be consumed by DevOps
84
- toolchain - Puppet or Chef and others - for deployment automation
85
- (OpenStack, Hadoop or even MaaS (Metal as Service) Use Cases).</p>
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>
86
87
 
87
88
  <h2>Install</h2>
88
89
 
89
90
  <p>gem install ucslib</p>
90
91
 
91
- <h2>Usage</h2>
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>
92
172
 
93
173
  <h2>Features</h2>
94
174
  <ol><li>
@@ -98,6 +178,8 @@ toolchain - Puppet or Chef and others - for deployment automation
98
178
  </li></ol>
99
179
 
100
180
  <h2>ToDo</h2>
181
+
182
+ <p>Besides Documentation, Documentation, Documentation!</p>
101
183
  <ol><li>
102
184
  <p>Firmware Management</p>
103
185
  </li><li>
@@ -116,8 +198,6 @@ implemented or the bug hasn’t been fixed yet.</p>
116
198
  <p>Check out the issue tracker to make sure someone already hasn’t requested
117
199
  it and/or contributed it.</p>
118
200
  </li><li>
119
- <p>Fork the project.</p>
120
- </li><li>
121
201
  <p>Start a feature/bugfix branch.</p>
122
202
  </li><li>
123
203
  <p>Commit and push until you are happy with your contribution.</p>
data/html/UCSToken.html CHANGED
@@ -178,7 +178,7 @@
178
178
 
179
179
  <span class="ruby-identifier">xml_builder</span> = <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span><span class="ruby-operator">::</span><span class="ruby-constant">Builder</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">xml</span><span class="ruby-operator">|</span>
180
180
  <span class="ruby-identifier">xml</span>.<span class="ruby-identifier">aaaLogin</span>(<span class="ruby-string">'inName'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">username</span>, <span class="ruby-string">'inPassword'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">password</span>)
181
- <span class="ruby-keyword">end</span>
181
+ <span class="ruby-keyword">end</span>
182
182
  <span class="ruby-identifier">aaa_login_xml</span> = <span class="ruby-identifier">xml_builder</span>.<span class="ruby-identifier">to_xml</span>.<span class="ruby-identifier">to_s</span>
183
183
  <span class="ruby-identifier">ucs_response</span> = <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">aaa_login_xml</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'text/xml'</span>).<span class="ruby-identifier">body</span>
184
184
  <span class="ruby-identifier">ucs_login_doc</span> = <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span>(<span class="ruby-identifier">ucs_response</span>)
@@ -229,8 +229,8 @@
229
229
  <span class="ruby-comment"># File lib/ucslib/session.rb, line 88</span>
230
230
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">logout</span>(<span class="ruby-identifier">tokenjson</span>)
231
231
 
232
- <span class="ruby-identifier">cookie</span> = <span class="ruby-node">&quot;#{JSON.parse(tokenjson).values[0]}&quot;</span>
233
- <span class="ruby-identifier">ip</span> = <span class="ruby-node">&quot;#{JSON.parse(tokenjson).values[3]}&quot;</span>
232
+ <span class="ruby-identifier">cookie</span> = <span class="ruby-node">&quot;#{JSON.parse(tokenjson)['cookie']}&quot;</span>
233
+ <span class="ruby-identifier">ip</span> = <span class="ruby-node">&quot;#{JSON.parse(tokenjson)['ip']}&quot;</span>
234
234
  <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;https://#{ip}/nuova&quot;</span>
235
235
 
236
236
  <span class="ruby-identifier">xml_builder</span> = <span class="ruby-constant">Nokogiri</span><span class="ruby-operator">::</span><span class="ruby-constant">XML</span><span class="ruby-operator">::</span><span class="ruby-constant">Builder</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">xml</span><span class="ruby-operator">|</span>
@@ -239,11 +239,10 @@
239
239
 
240
240
  <span class="ruby-identifier">aaaLogoutXML</span> = <span class="ruby-identifier">xml_builder</span>.<span class="ruby-identifier">to_xml</span>.<span class="ruby-identifier">to_s</span>
241
241
 
242
- <span class="ruby-identifier">ucsResponse</span> = <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">aaaLogoutXML</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'text/xml'</span>).<span class="ruby-identifier">body</span>
243
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">ucsResponse</span>
244
- <span class="ruby-identifier">puts</span> <span class="ruby-string">'Sucessfully logged out.'</span>
245
- <span class="ruby-keyword">else</span>
246
- <span class="ruby-identifier">puts</span> <span class="ruby-string">'Something went wrong. Lost connection to the UCS System'</span>
242
+ <span class="ruby-keyword">begin</span>
243
+ <span class="ruby-constant">RestClient</span>.<span class="ruby-identifier">post</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">aaaLogoutXML</span>, <span class="ruby-value">:content_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">'text/xml'</span>).<span class="ruby-identifier">body</span>
244
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
245
+ <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Error #{e}&quot;</span>
247
246
  <span class="ruby-keyword">end</span>
248
247
 
249
248
  <span class="ruby-keyword">end</span></pre>
data/html/created.rid CHANGED
@@ -1,7 +1,7 @@
1
- Sun, 13 May 2012 15:57:51 -0400
2
- README.rdoc Sun, 13 May 2012 15:57:18 -0400
1
+ Sun, 13 May 2012 16:46:01 -0400
2
+ README.rdoc Sun, 13 May 2012 16:43:42 -0400
3
3
  lib/ucslib/inventory.rb Sun, 13 May 2012 13:23:45 -0400
4
- lib/ucslib/provision.rb Sun, 13 May 2012 15:51:38 -0400
5
- lib/ucslib/session.rb Sun, 13 May 2012 13:23:49 -0400
4
+ lib/ucslib/provision.rb Sun, 13 May 2012 16:19:41 -0400
5
+ lib/ucslib/session.rb Sun, 13 May 2012 16:19:37 -0400
6
6
  lib/ucslib/version.rb Sun, 13 May 2012 13:23:52 -0400
7
7
  lib/ucslib.rb Sat, 12 May 2012 15:18:22 -0400
data/html/index.html CHANGED
@@ -25,15 +25,95 @@
25
25
  <div id="main">
26
26
 
27
27
 
28
- <p>Ruby Client Library for Cisco UCS that could be consumed by DevOps
29
- toolchain - Puppet or Chef and others - for deployment automation
30
- (OpenStack, Hadoop or even MaaS (Metal as Service) Use Cases).</p>
28
+ <p>Ruby Client Library for Cisco UCS Manager that could be used by DevOps
29
+ toolchains - Puppet or Chef and other custom tools - to provide MaaS
30
+ (Metal-as-a-Service) for installing and running OpenStack, Hadoop, etc.
31
+ ucslib accepts JSON as configuration for provisioning.</p>
31
32
 
32
33
  <h2>Install</h2>
33
34
 
34
35
  <p>gem install ucslib</p>
35
36
 
36
- <h2>Usage</h2>
37
+ <h2>Usage (example irb session)</h2>
38
+
39
+ <p>Just do “require ucslib” in your apps. Below is an introspection of some of
40
+ the capabilities using IRB.</p>
41
+
42
+ <p>➜ ucslib git:(master) ✗ irb 1.9.3p194 :001 &gt; require ‘ucslib’</p>
43
+
44
+ <pre>=&gt; true</pre>
45
+
46
+ <p>1.9.3p194 :002 &gt; auth_json = { :username =&gt; ‘admin’, :password =&gt;
47
+ ‘admin’, :ip =&gt; ‘172.16.75.137’ }.to_json</p>
48
+
49
+ <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>
50
+
51
+ <p>1.9.3p194 :003 &gt; ucs_session = UCSToken.new</p>
52
+
53
+ <pre>=&gt; #&lt;UCSToken:0x007ff4d92062c0&gt;</pre>
54
+
55
+ <p>1.9.3p194 :004 &gt; token_json = ucs_session.get_token(auth_json)</p>
56
+
57
+ <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>
58
+
59
+ <p>1.9.3p194 :005 &gt; ucs_inventory = UCSInventory.new</p>
60
+
61
+ <pre>=&gt; #&lt;UCSInventory:0x007ff4d92cd8c0&gt;</pre>
62
+
63
+ <p>1.9.3p194 :006 &gt; ucs_provision = <a
64
+ href="UCSProvision.html#method-c-new">UCSProvision.new(token_json)</a></p>
65
+
66
+ <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>
67
+
68
+ <p>1.9.3p194 :007 &gt; xml_dump = ucs_inventory.discover(token_json)</p>
69
+
70
+ <p>1.9.3p194 :008 &gt; ucs_inventory.methods</p>
71
+
72
+ <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>
73
+
74
+ <p>1.9.3p194 :009 &gt;</p>
75
+
76
+ <p>1.9.3p194 :009 &gt; ucs_inventory.list_blades(xml_dump) Blade : 1/5 model:
77
+ UCSB-B200-M3 with serial: 1049 is powered: off Blade : 1/6 model:
78
+ N20-B6625-1 with serial: 1053 is powered: off Blade : 1/1 model:
79
+ N20-B6620-1 with serial: 1045 is powered: on Blade : 1/7 model: N20-B6740-2
80
+ with serial: 1052 is powered: off Blade : 1/2 model: N20-B6620-1 with
81
+ serial: 1054 is powered: off Blade : 1/4 model: N20-B6620-1 with serial:
82
+ 1051 is powered: off Blade : 1/3 model: N20-B6620-1 with serial: 1055 is
83
+ powered: off</p>
84
+
85
+ <pre>=&gt; 0</pre>
86
+
87
+ <p>1.9.3p194 :010 &gt;</p>
88
+
89
+ <p>1.9.3p194 :010 &gt; vlan_json = { :vlan_id =&gt; ‘200’, :vlan_name =&gt;
90
+ ‘OpenStack-Mgmt’ }.to_json</p>
91
+
92
+ <pre>=&gt; &quot;{\&quot;vlan_id\&quot;:\&quot;200\&quot;,\&quot;vlan_name\&quot;:\&quot;OpenStack-Mgmt\&quot;}&quot;</pre>
93
+
94
+ <p>1.9.3p194 :011 &gt; ucs_provision.methods</p>
95
+
96
+ <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>
97
+
98
+ <p>1.9.3p194 :012 &gt;</p>
99
+
100
+ <p>1.9.3p194 :012 &gt; ucs_provision.create_vlan(vlan_json)</p>
101
+
102
+ <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>
103
+
104
+ <p>1.9.3p194 :013 &gt;</p>
105
+
106
+ <p>1.9.3p194 :015 &gt; xml_dump = ucs_inventory.discover(token_json)</p>
107
+
108
+ <p>1.9.3p194 :015 &gt; ucs_inventory.list_vlans(xml_dump) VLAN: 1 with name:
109
+ default VLAN: 1 with name: default VLAN: 5 with name: human-resource VLAN:
110
+ 1 with name: default VLAN: 3 with name: finance VLAN: 5 with name:
111
+ human-resource VLAN: 1 with name: default VLAN: 3 with name: finance VLAN:
112
+ 100 with name: Tenant-1 VLAN: 200 with name: OpenStack-Mgmt</p>
113
+
114
+ <pre>=&gt; 0</pre>
115
+
116
+ <p>1.9.3p194 :016 &gt;</p>
37
117
 
38
118
  <h2>Features</h2>
39
119
  <ol><li>
@@ -43,6 +123,8 @@ toolchain - Puppet or Chef and others - for deployment automation
43
123
  </li></ol>
44
124
 
45
125
  <h2>ToDo</h2>
126
+
127
+ <p>Besides Documentation, Documentation, Documentation!</p>
46
128
  <ol><li>
47
129
  <p>Firmware Management</p>
48
130
  </li><li>
@@ -61,8 +143,6 @@ implemented or the bug hasn’t been fixed yet.</p>
61
143
  <p>Check out the issue tracker to make sure someone already hasn’t requested
62
144
  it and/or contributed it.</p>
63
145
  </li><li>
64
- <p>Fork the project.</p>
65
- </li><li>
66
146
  <p>Start a feature/bugfix branch.</p>
67
147
  </li><li>
68
148
  <p>Commit and push until you are happy with your contribution.</p>
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2012-05-13 15:51:38 -0400</dd>
27
+ <dd class="modified-date">2012-05-13 16:19:41 -0400</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -24,7 +24,7 @@
24
24
  <div id="metadata">
25
25
  <dl>
26
26
  <dt class="modified-date">Last Modified</dt>
27
- <dd class="modified-date">2012-05-13 13:23:49 -0400</dd>
27
+ <dd class="modified-date">2012-05-13 16:19:37 -0400</dd>
28
28
 
29
29
 
30
30
  <dt class="requires">Requires</dt>
@@ -16,5 +16,5 @@
16
16
  #
17
17
 
18
18
  module Ucslib
19
- VERSION = "0.0.2"
19
+ VERSION = "0.0.3"
20
20
  end
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.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &70183491062120 !ruby/object:Gem::Requirement
16
+ requirement: &70163768824620 !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: *70183491062120
24
+ version_requirements: *70163768824620
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rest-client
27
- requirement: &70183491061540 !ruby/object:Gem::Requirement
27
+ requirement: &70163768824020 !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: *70183491061540
35
+ version_requirements: *70163768824020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: json
38
- requirement: &70183491061100 !ruby/object:Gem::Requirement
38
+ requirement: &70163768823600 !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: *70183491061100
46
+ version_requirements: *70163768823600
47
47
  description: RUby UCS Manager API abstraction to build automation tools
48
48
  email:
49
49
  - murali.raju@appliv.com