2016-05-13 12:53:13 |
Vladimir Kuklin |
bug |
|
|
added bug |
2016-05-13 12:53:32 |
Vladimir Kuklin |
nominated for series |
|
fuel/mitaka |
|
2016-05-13 12:53:32 |
Vladimir Kuklin |
bug task added |
|
fuel/mitaka |
|
2016-05-13 12:53:32 |
Vladimir Kuklin |
nominated for series |
|
fuel/newton |
|
2016-05-13 12:53:32 |
Vladimir Kuklin |
bug task added |
|
fuel/newton |
|
2016-05-13 12:53:54 |
Vladimir Kuklin |
tags |
area-python |
area-python feature-unlocked-settings-tab life-cycle-management |
|
2016-05-13 12:54:03 |
Vladimir Kuklin |
fuel/mitaka: milestone |
|
9.0 |
|
2016-05-13 12:54:05 |
Vladimir Kuklin |
fuel/mitaka: assignee |
|
Vladimir Kuklin (vkuklin) |
|
2016-05-13 12:54:07 |
Vladimir Kuklin |
fuel/mitaka: importance |
Undecided |
High |
|
2016-05-13 12:54:08 |
Vladimir Kuklin |
fuel/mitaka: status |
New |
Triaged |
|
2016-05-13 12:54:11 |
Vladimir Kuklin |
fuel/newton: status |
Confirmed |
Triaged |
|
2016-05-13 12:57:09 |
Vladimir Kuklin |
description |
This piece of nailgun-agent code
"int_meta[:pxe] = admin_mac == int_meta[:mac]" does not take into consideration that interface will become a part of a bridge.
The fix is trivial, although it should also respect the bridges:
re = perm_addr.match(/(00(:00){5})+/).nil? ? /[0-9a-f]+(:[0-9a-f]+){5}$/ : nil
end
int_meta[:mac] = perm_addr.match(re)[0] rescue addr
- int_meta[:pxe] = admin_mac == int_meta[:mac]
+ int_meta[:pxe] = false
+ if File.exist? "/sys/class/net/#{int_meta[:name]}/brport"
+ bridge_mac = nil
+ File.open("/sys/class/net/#{int_meta[:name]}/brport/bridge/address") do |f|
+ bridge_mac = f.read.chomp.downcase
+ end
+ int_meta[:pxe] = admin_mac == bridge_mac
+ else
+ int_meta[:pxe] = admin_mac == int_meta[:mac]
+ end
begin
int_info = Rethtool::InterfaceSettings.new(int)
int_meta[:driver] = int_info.driver |
This piece of nailgun-agent code
"int_meta[:pxe] = admin_mac == int_meta[:mac]" does not take into consideration that interface will become a part of a bridge.
The fix is trivial, although it should also respect the bonds:
re = perm_addr.match(/(00(:00){5})+/).nil? ? /[0-9a-f]+(:[0-9a-f]+){5}$/ : nil
end
int_meta[:mac] = perm_addr.match(re)[0] rescue addr
- int_meta[:pxe] = admin_mac == int_meta[:mac]
+ int_meta[:pxe] = false
+ if File.exist? "/sys/class/net/#{int_meta[:name]}/brport"
+ bridge_mac = nil
+ File.open("/sys/class/net/#{int_meta[:name]}/brport/bridge/address") do |f|
+ bridge_mac = f.read.chomp.downcase
+ end
+ int_meta[:pxe] = admin_mac == bridge_mac
+ else
+ int_meta[:pxe] = admin_mac == int_meta[:mac]
+ end
begin
int_info = Rethtool::InterfaceSettings.new(int)
int_meta[:driver] = int_info.driver |
|
2016-05-23 11:46:02 |
OpenStack Infra |
fuel: status |
Triaged |
In Progress |
|
2016-05-31 12:10:18 |
OpenStack Infra |
fuel: status |
In Progress |
Fix Committed |
|
2016-05-31 12:32:44 |
OpenStack Infra |
fuel/mitaka: status |
Triaged |
In Progress |
|
2016-06-01 11:55:45 |
OpenStack Infra |
fuel/mitaka: status |
In Progress |
Fix Committed |
|
2016-06-15 12:43:07 |
Andrey Lavrentyev |
tags |
area-python feature-unlocked-settings-tab life-cycle-management |
area-python feature-unlocked-settings-tab life-cycle-management on-verification |
|
2016-06-16 11:05:53 |
Andrey Lavrentyev |
tags |
area-python feature-unlocked-settings-tab life-cycle-management on-verification |
area-python feature-unlocked-settings-tab life-cycle-management |
|
2016-06-16 11:05:58 |
Andrey Lavrentyev |
fuel/mitaka: status |
Fix Committed |
Fix Released |
|