mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
lxc: Converting 'if, else' logic into a 'switch, case'
The structure used to handle network entries was based on 'if,else' conditions. This commit converts this ugly structure into a switch to clearify each option of the handler. Signed-off-by: Julio Faracco <jcfaracco@gmail.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
087a7c9a88
commit
ac62e297db
@ -35,6 +35,20 @@
|
||||
|
||||
VIR_LOG_INIT("lxc.lxc_native");
|
||||
|
||||
VIR_ENUM_IMPL(virLXCNetworkConfigEntry, VIR_LXC_NETWORK_CONFIG_LAST,
|
||||
"name",
|
||||
"type",
|
||||
"link",
|
||||
"hwaddr",
|
||||
"flags",
|
||||
"macvlan.mode",
|
||||
"vlan.id",
|
||||
"ipv4",
|
||||
"ipv4.gateway",
|
||||
"ipv6",
|
||||
"ipv6.gateway"
|
||||
);
|
||||
|
||||
static virDomainFSDefPtr
|
||||
lxcCreateFSDef(int type,
|
||||
const char *src,
|
||||
@ -626,37 +640,49 @@ lxcNetworkParseDataIPs(const char *name,
|
||||
|
||||
|
||||
static int
|
||||
lxcNetworkParseDataSuffix(const char *name,
|
||||
lxcNetworkParseDataSuffix(const char *entry,
|
||||
virConfValuePtr value,
|
||||
lxcNetworkParseData *parseData)
|
||||
{
|
||||
if (STREQ(name, "type")) {
|
||||
int elem = virLXCNetworkConfigEntryTypeFromString(entry);
|
||||
|
||||
switch (elem) {
|
||||
case VIR_LXC_NETWORK_CONFIG_TYPE:
|
||||
if (lxcNetworkParseDataType(value, parseData) < 0)
|
||||
return -1;
|
||||
}
|
||||
else if (STREQ(name, "link"))
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_LINK:
|
||||
parseData->link = value->str;
|
||||
else if (STREQ(name, "hwaddr"))
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_HWADDR:
|
||||
parseData->mac = value->str;
|
||||
else if (STREQ(name, "flags"))
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_FLAGS:
|
||||
parseData->flag = value->str;
|
||||
else if (STREQ(name, "macvlan.mode"))
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_MACVLAN_MODE:
|
||||
parseData->macvlanmode = value->str;
|
||||
else if (STREQ(name, "vlan.id"))
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_VLAN_ID:
|
||||
parseData->vlanid = value->str;
|
||||
else if (STREQ(name, "name"))
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_NAME:
|
||||
parseData->name = value->str;
|
||||
else if (STREQ(name, "ipv4") ||
|
||||
STREQ(name, "ipv6")) {
|
||||
if (lxcNetworkParseDataIPs(name, value, parseData) < 0)
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_IPV4:
|
||||
case VIR_LXC_NETWORK_CONFIG_IPV6:
|
||||
if (lxcNetworkParseDataIPs(entry, value, parseData) < 0)
|
||||
return -1;
|
||||
} else if (STREQ(name, "ipv4.gateway")) {
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_IPV4_GATEWAY:
|
||||
parseData->gateway_ipv4 = value->str;
|
||||
} else if (STREQ(name, "ipv6.gateway")) {
|
||||
break;
|
||||
case VIR_LXC_NETWORK_CONFIG_IPV6_GATEWAY:
|
||||
parseData->gateway_ipv6 = value->str;
|
||||
} else {
|
||||
break;
|
||||
default:
|
||||
VIR_WARN("Unhandled network property: %s = %s",
|
||||
name,
|
||||
entry,
|
||||
value->str);
|
||||
return -1;
|
||||
}
|
||||
|
@ -25,6 +25,23 @@
|
||||
|
||||
# define LXC_CONFIG_FORMAT "lxc-tools"
|
||||
|
||||
typedef enum {
|
||||
VIR_LXC_NETWORK_CONFIG_NAME,
|
||||
VIR_LXC_NETWORK_CONFIG_TYPE,
|
||||
VIR_LXC_NETWORK_CONFIG_LINK,
|
||||
VIR_LXC_NETWORK_CONFIG_HWADDR,
|
||||
VIR_LXC_NETWORK_CONFIG_FLAGS,
|
||||
VIR_LXC_NETWORK_CONFIG_MACVLAN_MODE,
|
||||
VIR_LXC_NETWORK_CONFIG_VLAN_ID,
|
||||
VIR_LXC_NETWORK_CONFIG_IPV4,
|
||||
VIR_LXC_NETWORK_CONFIG_IPV4_GATEWAY,
|
||||
VIR_LXC_NETWORK_CONFIG_IPV6,
|
||||
VIR_LXC_NETWORK_CONFIG_IPV6_GATEWAY,
|
||||
VIR_LXC_NETWORK_CONFIG_LAST,
|
||||
} virLXCNetworkConfigEntry;
|
||||
|
||||
VIR_ENUM_DECL(virLXCNetworkConfigEntry);
|
||||
|
||||
virDomainDefPtr lxcParseConfigString(const char *config,
|
||||
virCapsPtr caps,
|
||||
virDomainXMLOptionPtr xmlopt);
|
||||
|
Loading…
x
Reference in New Issue
Block a user