[Crowbar] Router_pref backport

Kevin Bringard kbringard at atti.com
Thu Jan 19 08:17:22 CST 2012


OK, I got this working. Please see the git diff below:

diff --git a/crowbar_framework/app/models/network_service.rb
b/crowbar_framework/app/models/network_service.rb
index 97047fe..4f1a539 100644
--- a/crowbar_framework/app/models/network_service.rb
+++ b/crowbar_framework/app/models/network_service.rb
@@ -67,6 +67,9 @@ class NetworkService < ServiceObject
       rangeH = db["network"]["ranges"][range]
       rangeH = db["network"]["ranges"]["host"] if rangeH.nil?
       conduit = db["network"]["conduit"]
+      unless db["network"]["router_pref"].nil?
+        router_pref = db["network"]["router_pref"]
+      end
 
       index = IPAddr.new(rangeH["start"]) & ~IPAddr.new(netmask)
       index = index.to_i
@@ -106,7 +109,7 @@ class NetworkService < ServiceObject
     return [404, "No Address Available"] if !found
 
     # Save the information.
-    net_info = { "conduit" => conduit, "address" => address.to_s,
"netmask" => netmask, "node" => name, "router" => router, "subnet" =>
subnet, "broadcast" => broadcast, "usage" => network, "use_vlan" =>
use_vlan, "vlan" => vlan, "add_bridge" => add_bridge }
+    net_info = { "conduit" => conduit, "address" => address.to_s,
"netmask" => netmask, "node" => name, "router" => router, "subnet" =>
subnet, "broadcast" => broadcast, "usage" => network, "use_vlan" =>
use_vlan, "vlan" => vlan, "add_bridge" => add_bridge, "router_pref" => rout
     node.crowbar["crowbar"]["network"][network] = net_info
     node.save
 
@@ -187,6 +190,9 @@ class NetworkService < ServiceObject
       router = db["network"]["router"]
       netmask = db["network"]["netmask"]
       conduit = db["network"]["conduit"]
+      unless db["network"]["router_pref"].nil?
+        router_pref = db["network"]["router_pref"]
+      end
 
     rescue Exception => e
       @logger.error("Error finding address: #{e.message}")
@@ -194,7 +200,7 @@ class NetworkService < ServiceObject
     end
 
     # Save the information.
-    net_info = { "conduit" => conduit, "netmask" => netmask, "node" =>
name, "router" => router, "subnet" => subnet, "broadcast" => broadcast,
"usage" => network, "use_vlan" => use_vlan, "vlan" => vlan, "add_bridge"
=> add_bridge }
+    net_info = { "conduit" => conduit, "netmask" => netmask, "node" =>
name, "router" => router, "subnet" => subnet, "broadcast" => broadcast,
"usage" => network, "use_vlan" => use_vlan, "vlan" => vlan, "add_bridge"
=> add_bridge, "router_pref" => router_pref }
     node.crowbar["crowbar"]["network"][network] = net_info
     node.save

I verified that making these changes and rebuilding the iso does indeed
resolve my issue and the default route is set correctly.


It doesn't look like the router_pref is added to the net_info hash in
trunk either, so unless the mechanism has changed it is possible it's
bugged there. 

-- Kevin


On 1/18/12 8:59 AM, "Gregory_Althaus at Dell.com" <Gregory_Althaus at Dell.com>
wrote:

>Delete would be safest.  The reinstall maintains that network stanza (and
>it isn't rebuilt).  On delete, it would be.
>
>Thanks,
>Greg
>
>-----Original Message-----
>From: crowbar-bounces On Behalf Of Kevin Bringard
>Sent: Wednesday, January 18, 2012 9:48 AM
>To: crowbar
>Subject: Re: [Crowbar] Router_pref backport
>
>If nodes have already been allocated will a reinstall of the node fix it?
>Or should I delete them, re-sledge, etc?
>
>On 1/18/12 8:46 AM, "Gregory_Althaus at Dell.com" <Gregory_Althaus at Dell.com>
>wrote:
>
>>It can be editted in place and the webserver restarted.  This needs to
>>be done before nodes are added though.
>>
>>Thanks,
>>Greg
>>
>>
>>-----Original Message-----
>>From: crowbar-bounces On Behalf Of Kevin Bringard
>>Sent: Wednesday, January 18, 2012 9:44 AM
>>To: crowbar
>>Subject: Re: [Crowbar] Router_pref backport
>>
>>I think I may have found it...
>>
>>In the recipe, this value is pulled from the node["crowbar"]["network"]
>>object. In the crowbar framework
>>(/opt/dell/barclamps/network/crowbar_framework/app/models/network_service
>>.
>>r
>>b) I found the following:
>>
>># Find the node
>>    node = NodeObject.find_node_by_name name
>>    @logger.error("Network allocate_ip: return node not found: #{name}
>>#{network} #{range}") if node.nil?
>>    return [404, "No node found"] if node.nil?
>>
>>...
>>
>>
>>db = ProposalObject.find_data_bag_item "crowbar/#{network}_network"
>>
>>      subnet = db["network"]["subnet"]
>>      vlan = db["network"]["vlan"]
>>      use_vlan = db["network"]["use_vlan"]
>>      add_bridge = db["network"]["add_bridge"]
>>      broadcast = db["network"]["broadcast"]
>>      router = db["network"]["router"]
>>      netmask = db["network"]["netmask"]
>>      rangeH = db["network"]["ranges"][range]
>>      rangeH = db["network"]["ranges"]["host"] if rangeH.nil?
>>      conduit = db["network"]["conduit"]
>>
>>It appears as though this is where the node object is being built as
>>those objects all exist in the network hash. So, I added the following
>>after
>>"conduit":
>>
>>
>>unless db["network"]["router_pref"].nil?
>>  router_pref = db["network"]["router_pref"]
>>      end
>>
>>Does this make sense? I don't know if I can just edit it in place on
>>the admin server or if there is something else I need to do to make the
>>changes take effect. I am rebuilding the iso and I'll redeploy the
>>admin node, but while I do that if someone replies and lets me know how
>>I can just make it take effect on my existing admin node, that would
>>save a lot of time :-D
>>
>>
>>Thanks!
>>
>>-- Kevin
>>
>>
>>
>>On 1/17/12 5:02 PM, "Gregory_Althaus at Dell.com"
>><Gregory_Althaus at Dell.com>
>>wrote:
>>
>>>Ignore this.  This only applies if you were applying/installing a
>>>barclamp to a running system.
>>>
>>>Thanks,
>>>Greg
>>>
>>>-----Original Message-----
>>>From: crowbar-bounces On Behalf Of Althaus, Gregory
>>>Sent: Tuesday, January 17, 2012 5:50 PM
>>>To: kbringard at atti.com; crowbar
>>>Subject: [Crowbar] [SPAM] RE: Router_pref backport
>>>
>>>So, the item is not incremental.  The network barclamp has an instance
>>>separate from the template.  So, the template has the new hash, but
>>>the current instance does not.  You can reinstall or you can edit the
>>>network barclamp instance and the hash to the json file and save it.
>>>Then apply the barclamp.  That should make it happen.
>>>
>>>Thanks,
>>>Greg
>>>
>>>-----Original Message-----
>>>From: crowbar-bounces On Behalf Of Kevin Bringard
>>>Sent: Tuesday, January 17, 2012 5:10 PM
>>>To: crowbar
>>>Subject: Re: [Crowbar] Router_pref backport
>>>
>>>Yea, I'm looking at the admin node and I see my changes are there. I
>>>did make a couple of changes after build, like adding some debug
>>>messages, and knifed them in, but they took effect because the logging
>>>I added output...
>>>I still see the router_pref schema/json in place as well as the
>>>router_pref code block in default.rb, again all on the admin node.
>>>
>>>But anyway, I guess the important bit is, there shouldn't be anything
>>>that I need to change elsewhere, correct? Like in the crowbar barclamp
>>>to push changes upstream via node or anything like that?
>>>
>>>Thanks for the help!
>>>
>>>-- Kevin
>>>
>>>On 1/17/12 4:04 PM, "Andi_Abes at Dell.com" <Andi_Abes at Dell.com> wrote:
>>>
>>>>This sounds more a build issue, rather than something specific to the
>>>>network bc.
>>>>
>>>>Only thing I can come up with is - check your changes are still
>>>>there, committed in git. The build script plays some hokey tricks
>>>>with git, that might toss away uncommitted changes.
>>>>
>>>>
>>>>-----Original Message-----
>>>>From: crowbar-bounces On Behalf Of Kevin Bringard
>>>>Sent: Tuesday, January 17, 2012 5:57 PM
>>>>To: crowbar
>>>>Subject: Re: [Crowbar] Router_pref backport
>>>>
>>>>I made the changes and then built a new iso, installed it, etc... But
>>>>again, the only changes I made were in the network barclamp.
>>>>
>>>>I can send you the output of the hashes if it would be helpful
>>>>
>>>>On 1/17/12 3:54 PM, "Andi_Abes at Dell.com" <Andi_Abes at Dell.com> wrote:
>>>>
>>>>>The network barclamp gets instantiated during admin node install time.
>>>>>Did you apply the changes you're describing on top of an existing
>>>>>admin node, or did you build a new ISO + node?
>>>>>
>>>>>-----Original Message-----
>>>>>From: crowbar-bounces On Behalf Of Kevin Bringard
>>>>>Sent: Tuesday, January 17, 2012 5:53 PM
>>>>>To: crowbar
>>>>>Subject: [Crowbar] Router_pref backport
>>>>>
>>>>>Hey guys,
>>>>>
>>>>>I'm trying to backport the router_pref setting to the v1.2 release,
>>>>>but I'm having some trouble. I've added the requisite code in the
>>>>>network barclamp (basically, I checked out HEAD on that submodule
>>>>>and manually copied it into place). It all seems to work, however in
>>>>>the network hash router_pref isn't one of the keys. I've added it to
>>>>>the json and schema, but it just isn't being built into the hash for
>>>>>some reason.
>>>>>
>>>>>Perhaps there is something else in the crowbar framework in the node
>>>>>setup that I'm missing? Any ideas?
>>>>>
>>>>>Thanks!
>>>>>
>>>>>-- Kevin
>>>>>
>>>>>_______________________________________________
>>>>>Crowbar mailing list
>>>>>Crowbar at dell.com
>>>>>https://lists.us.dell.com/mailman/listinfo/crowbar
>>>>>For more information: https://github.com/dellcloudedge/crowbar/wiki
>>>>
>>>>_______________________________________________
>>>>Crowbar mailing list
>>>>Crowbar at dell.com
>>>>https://lists.us.dell.com/mailman/listinfo/crowbar
>>>>For more information: https://github.com/dellcloudedge/crowbar/wiki
>>>
>>>_______________________________________________
>>>Crowbar mailing list
>>>Crowbar at dell.com
>>>https://lists.us.dell.com/mailman/listinfo/crowbar
>>>For more information: https://github.com/dellcloudedge/crowbar/wiki
>>>
>>>_______________________________________________
>>>Crowbar mailing list
>>>Crowbar at dell.com
>>>https://lists.us.dell.com/mailman/listinfo/crowbar
>>>For more information: https://github.com/dellcloudedge/crowbar/wiki
>>>
>>
>>_______________________________________________
>>Crowbar mailing list
>>Crowbar at dell.com
>>https://lists.us.dell.com/mailman/listinfo/crowbar
>>For more information: https://github.com/dellcloudedge/crowbar/wiki
>
>_______________________________________________
>Crowbar mailing list
>Crowbar at dell.com
>https://lists.us.dell.com/mailman/listinfo/crowbar
>For more information: https://github.com/dellcloudedge/crowbar/wiki



More information about the Crowbar mailing list