This slot was not used by Ganeti so the same info can be
provided via tags. In order not to break configuration data
we add a FromDict() method in Network config object that
removes the deprecated network_type (if found) and then invoke
the parent's method (which does the validation).

Signed-off-by: Dimitris Aragiorgis <[email protected]>
---
 doc/hooks.rst               |   11 +++++------
 doc/rapi.rst                |    1 -
 lib/cli.py                  |    5 -----
 lib/client/gnt_network.py   |   13 +++++--------
 lib/cmdlib.py               |   19 +------------------
 lib/constants.py            |   10 ----------
 lib/hypervisor/hv_kvm.py    |    6 ++----
 lib/objects.py              |   15 ++++++++++++---
 lib/opcodes.py              |    5 -----
 lib/query.py                |    1 -
 lib/rapi/client.py          |    3 +--
 lib/rapi/rlib2.py           |    2 +-
 man/ganeti-os-interface.rst |    3 ---
 man/gnt-network.rst         |    4 ----
 14 files changed, 27 insertions(+), 71 deletions(-)

diff --git a/doc/hooks.rst b/doc/hooks.rst
index a9f073e..3f27953 100644
--- a/doc/hooks.rst
+++ b/doc/hooks.rst
@@ -224,7 +224,7 @@ Adds a network to the cluster.
 
 :directory: network-add
 :env. vars: NETWORK_NAME, NETWORK_SUBNET, NETWORK_GATEWAY, NETWORK_SUBNET6,
-            NETWORK_GATEWAY6, NETWORK_TYPE, NETWORK_MAC_PREFIX, NETWORK_TAGS
+            NETWORK_GATEWAY6, NETWORK_MAC_PREFIX, NETWORK_TAGS
 :pre-execution: master node
 :post-execution: master node
 
@@ -247,7 +247,7 @@ Connects a network to a nodegroup.
 :env. vars: GROUP_NAME, NETWORK_NAME,
             GROUP_NETWORK_MODE, GROUP_NETWORK_LINK,
             NETWORK_SUBNET, NETWORK_GATEWAY, NETWORK_SUBNET6,
-            NETWORK_GATEWAY6, NETWORK_TYPE, NETWORK_MAC_PREFIX, NETWORK_TAGS
+            NETWORK_GATEWAY6, NETWORK_MAC_PREFIX, NETWORK_TAGS
 :pre-execution: nodegroup nodes
 :post-execution: nodegroup nodes
 
@@ -261,7 +261,7 @@ Disconnects a network from a nodegroup.
 :env. vars: GROUP_NAME, NETWORK_NAME,
             GROUP_NETWORK_MODE, GROUP_NETWORK_LINK,
             NETWORK_SUBNET, NETWORK_GATEWAY, NETWORK_SUBNET6,
-            NETWORK_GATEWAY6, NETWORK_TYPE, NETWORK_MAC_PREFIX, NETWORK_TAGS
+            NETWORK_GATEWAY6, NETWORK_MAC_PREFIX, NETWORK_TAGS
 :pre-execution: nodegroup nodes
 :post-execution: nodegroup nodes
 
@@ -273,7 +273,7 @@ Modifies a network.
 
 :directory: network-modify
 :env. vars: NETWORK_NAME, NETWORK_SUBNET, NETWORK_GATEWAY, NETWORK_SUBNET6,
-            NETWORK_GATEWAY6, NETWORK_TYPE, NETWORK_MAC_PREFIX, NETWORK_TAGS
+            NETWORK_GATEWAY6, NETWORK_MAC_PREFIX, NETWORK_TAGS
 :pre-execution: master node
 :post-execution: master node
 
@@ -290,8 +290,7 @@ INSTANCE_NICn_NETWORK, INSTANCE_NICn_NETWORK_FAMILY,
 INSTANCE_NICn_NETWORK_UUID, INSTANCE_NICn_NETWORK_SUBNET,
 INSTANCE_NICn_NETWORK_GATEWAY, INSTANCE_NICn_NETWORK_SUBNET6,
 INSTANCE_NICn_NETWORK_GATEWAY6, INSTANCE_NICn_NETWORK_MAC_PREFIX,
-INSTANCE_NICn_NETWORK_TYPE, INSTANCE_DISK_COUNT, INSTANCE_DISKn_SIZE,
-INSTANCE_DISKn_MODE.
+INSTANCE_DISK_COUNT, INSTANCE_DISKn_SIZE, INSTANCE_DISKn_MODE.
 
 The INSTANCE_NICn_* and INSTANCE_DISKn_* variables represent the
 properties of the *n* -th NIC and disk, and are zero-indexed.
diff --git a/doc/rapi.rst b/doc/rapi.rst
index f70f8ca..11c64c1 100644
--- a/doc/rapi.rst
+++ b/doc/rapi.rst
@@ -698,7 +698,6 @@ Example::
         'name': 'nat',
         'network': '10.0.0.0/28',
         'network6': None,
-        'network_type': 'private',
         'reserved_count': 3,
         'tags': ['nfdhcpd'],
         …
diff --git a/lib/cli.py b/lib/cli.py
index 950578e..e5cd524 100644
--- a/lib/cli.py
+++ b/lib/cli.py
@@ -117,7 +117,6 @@ __all__ = [
   "NET_OPT",
   "NETWORK_OPT",
   "NETWORK6_OPT",
-  "NETWORK_TYPE_OPT",
   "NEW_CLUSTER_CERT_OPT",
   "NEW_CLUSTER_DOMAIN_SECRET_OPT",
   "NEW_CONFD_HMAC_KEY_OPT",
@@ -1527,10 +1526,6 @@ REMOVE_RESERVED_IPS_OPT = 
cli_option("--remove-reserved-ips",
                                      help="Comma-delimited list of"
                                      " reserved IPs to remove")
 
-NETWORK_TYPE_OPT = cli_option("--network-type",
-                              action="store", default=None, 
dest="network_type",
-                              help="Network type: private, public, None")
-
 NETWORK6_OPT = cli_option("--network6",
                           action="store", default=None, dest="network6",
                           help="IP network in CIDR notation")
diff --git a/lib/client/gnt_network.py b/lib/client/gnt_network.py
index 7210ab3..2407f39 100644
--- a/lib/client/gnt_network.py
+++ b/lib/client/gnt_network.py
@@ -36,7 +36,7 @@ from ganeti import errors
 
 #: default list of fields for L{ListNetworks}
 _LIST_DEF_FIELDS = ["name", "network", "gateway",
-                    "network_type", "mac_prefix", "group_list", "tags"]
+                    "mac_prefix", "group_list", "tags"]
 
 
 def _HandleReservedIPs(ips):
@@ -77,7 +77,6 @@ def AddNetwork(opts, args):
                             gateway6=opts.gateway6,
                             network6=opts.network6,
                             mac_prefix=opts.mac_prefix,
-                            network_type=opts.network_type,
                             add_reserved_ips=reserved_ips,
                             conflicts_check=opts.conflicts_check,
                             tags=tags)
@@ -202,7 +201,7 @@ def ShowNetworkConfig(_, args):
   cl = GetClient()
   result = cl.QueryNetworks(fields=["name", "network", "gateway",
                                     "network6", "gateway6",
-                                    "mac_prefix", "network_type",
+                                    "mac_prefix",
                                     "free_count", "reserved_count",
                                     "map", "group_list", "inst_list",
                                     "external_reservations",
@@ -210,7 +209,7 @@ def ShowNetworkConfig(_, args):
                             names=args, use_locking=False)
 
   for (name, network, gateway, network6, gateway6,
-       mac_prefix, network_type, free_count, reserved_count,
+       mac_prefix, free_count, reserved_count,
        mapping, group_list, instances, ext_res, serial, uuid) in result:
     size = free_count + reserved_count
     ToStdout("Network name: %s", name)
@@ -221,7 +220,6 @@ def ShowNetworkConfig(_, args):
     ToStdout("  IPv6 Subnet: %s", network6)
     ToStdout("  IPv6 Gateway: %s", gateway6)
     ToStdout("  Mac Prefix: %s", mac_prefix)
-    ToStdout("  Type: %s", network_type)
     ToStdout("  Size: %d", size)
     ToStdout("  Free: %d (%.2f%%)", free_count,
              100 * float(free_count) / float(size))
@@ -277,7 +275,6 @@ def SetNetworkParams(opts, args):
     "add_reserved_ips": _HandleReservedIPs(opts.add_reserved_ips),
     "remove_reserved_ips": _HandleReservedIPs(opts.remove_reserved_ips),
     "mac_prefix": opts.mac_prefix,
-    "network_type": opts.network_type,
     "gateway6": opts.gateway6,
     "network6": opts.network6,
   }
@@ -312,7 +309,7 @@ commands = {
   "add": (
     AddNetwork, ARGS_ONE_NETWORK,
     [DRY_RUN_OPT, NETWORK_OPT, GATEWAY_OPT, ADD_RESERVED_IPS_OPT,
-     MAC_PREFIX_OPT, NETWORK_TYPE_OPT, NETWORK6_OPT, GATEWAY6_OPT,
+     MAC_PREFIX_OPT, NETWORK6_OPT, GATEWAY6_OPT,
      NOCONFLICTSCHECK_OPT, TAG_ADD_OPT, PRIORITY_OPT, SUBMIT_OPT],
     "<network_name>", "Add a new IP network to the cluster"),
   "list": (
@@ -331,7 +328,7 @@ commands = {
   "modify": (
     SetNetworkParams, ARGS_ONE_NETWORK,
     [DRY_RUN_OPT, SUBMIT_OPT, ADD_RESERVED_IPS_OPT, REMOVE_RESERVED_IPS_OPT,
-     GATEWAY_OPT, MAC_PREFIX_OPT, NETWORK_TYPE_OPT, NETWORK6_OPT, GATEWAY6_OPT,
+     GATEWAY_OPT, MAC_PREFIX_OPT, NETWORK6_OPT, GATEWAY6_OPT,
      PRIORITY_OPT],
     "<network_name>", "Alters the parameters of a network"),
   "connect": (
diff --git a/lib/cmdlib.py b/lib/cmdlib.py
index 5ddecff..bb1e01d 100644
--- a/lib/cmdlib.py
+++ b/lib/cmdlib.py
@@ -1385,7 +1385,7 @@ def _ExpandInstanceName(cfg, name):
 
 
 def _BuildNetworkHookEnv(name, subnet, gateway, network6, gateway6,
-                         network_type, mac_prefix, tags):
+                         mac_prefix, tags):
   """Builds network related env variables for hooks
 
   This builds the hook environment from individual variables.
@@ -1400,8 +1400,6 @@ def _BuildNetworkHookEnv(name, subnet, gateway, network6, 
gateway6,
   @param network6: the ipv6 subnet
   @type gateway6: string
   @param gateway6: the ipv6 gateway
-  @type network_type: string
-  @param network_type: the type of the network
   @type mac_prefix: string
   @param mac_prefix: the mac_prefix
   @type tags: list
@@ -1421,8 +1419,6 @@ def _BuildNetworkHookEnv(name, subnet, gateway, network6, 
gateway6,
     env["NETWORK_GATEWAY6"] = gateway6
   if mac_prefix:
     env["NETWORK_MAC_PREFIX"] = mac_prefix
-  if network_type:
-    env["NETWORK_TYPE"] = network_type
   if tags:
     env["NETWORK_TAGS"] = " ".join(tags)
 
@@ -16226,7 +16222,6 @@ class LUNetworkAdd(LogicalUnit):
       "network6": self.op.network6,
       "gateway6": self.op.gateway6,
       "mac_prefix": self.op.mac_prefix,
-      "network_type": self.op.network_type,
       "tags": self.op.tags,
       }
     return _BuildNetworkHookEnv(**args) # pylint: disable=W0142
@@ -16241,7 +16236,6 @@ class LUNetworkAdd(LogicalUnit):
                            network6=self.op.network6,
                            gateway6=self.op.gateway6,
                            mac_prefix=self.op.mac_prefix,
-                           network_type=self.op.network_type,
                            uuid=self.network_uuid,
                            family=constants.IP4_VERSION)
     # Initialize the associated address pool
@@ -16383,7 +16377,6 @@ class LUNetworkSetParams(LogicalUnit):
     """
     self.network = self.cfg.GetNetwork(self.network_uuid)
     self.gateway = self.network.gateway
-    self.network_type = self.network.network_type
     self.mac_prefix = self.network.mac_prefix
     self.network6 = self.network.network6
     self.gateway6 = self.network.gateway6
@@ -16401,12 +16394,6 @@ class LUNetworkSetParams(LogicalUnit):
                                      " reserved" % self.gateway,
                                      errors.ECODE_STATE)
 
-    if self.op.network_type:
-      if self.op.network_type == constants.VALUE_NONE:
-        self.network_type = None
-      else:
-        self.network_type = self.op.network_type
-
     if self.op.mac_prefix:
       if self.op.mac_prefix == constants.VALUE_NONE:
         self.mac_prefix = None
@@ -16437,7 +16424,6 @@ class LUNetworkSetParams(LogicalUnit):
       "network6": self.network6,
       "gateway6": self.gateway6,
       "mac_prefix": self.mac_prefix,
-      "network_type": self.network_type,
       "tags": self.tags,
       }
     return _BuildNetworkHookEnv(**args) # pylint: disable=W0142
@@ -16497,9 +16483,6 @@ class LUNetworkSetParams(LogicalUnit):
     if self.op.gateway6:
       self.network.gateway6 = self.gateway6
 
-    if self.op.network_type:
-      self.network.network_type = self.network_type
-
     self.pool.Validate()
 
     self.cfg.Update(self.network, feedback_fn)
diff --git a/lib/constants.py b/lib/constants.py
index b99b12c..2d7a722 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -1213,16 +1213,6 @@ NIC_VALID_MODES = compat.UniqueFrozenset([
 RESERVE_ACTION = "reserve"
 RELEASE_ACTION = "release"
 
-# An extra description of the network.
-# Can be used by hooks/kvm-vif-bridge to apply different rules
-NETWORK_TYPE_PRIVATE = "private"
-NETWORK_TYPE_PUBLIC = "public"
-
-NETWORK_VALID_TYPES = compat.UniqueFrozenset([
-  NETWORK_TYPE_PRIVATE,
-  NETWORK_TYPE_PUBLIC,
-  ])
-
 NICS_PARAMETER_TYPES = {
   NIC_MODE: VTYPE_STRING,
   NIC_LINK: VTYPE_STRING,
diff --git a/lib/hypervisor/hv_kvm.py b/lib/hypervisor/hv_kvm.py
index 26aacfd..2fe5b43 100644
--- a/lib/hypervisor/hv_kvm.py
+++ b/lib/hypervisor/hv_kvm.py
@@ -149,7 +149,7 @@ def _OpenTap(vnet_hdr=True):
 
 
 def _BuildNetworkEnv(name, network, gateway, network6, gateway6,
-                     network_type, mac_prefix, tags, env):
+                     mac_prefix, tags, env):
   """Build environment variables concerning a Network.
 
   """
@@ -165,8 +165,6 @@ def _BuildNetworkEnv(name, network, gateway, network6, 
gateway6,
     env["NETWORK_GATEWAY6"] = gateway6
   if mac_prefix:
     env["NETWORK_MAC_PREFIX"] = mac_prefix
-  if network_type:
-    env["NETWORK_TYPE"] = network_type
   if tags:
     env["NETWORK_TAGS"] = " ".join(tags)
 
@@ -857,7 +855,7 @@ class KVMHypervisor(hv_base.BaseHypervisor):
     if nic.network:
       n = objects.Network.FromDict(nic.netinfo)
       _BuildNetworkEnv(nic.network, n.network, n.gateway,
-                       n.network6, n.gateway6, n.network_type,
+                       n.network6, n.gateway6,
                        n.mac_prefix, n.tags, env)
 
     if nic.nicparams[constants.NIC_MODE] == constants.NIC_MODE_BRIDGED:
diff --git a/lib/objects.py b/lib/objects.py
index 60f6afc..6c6c794 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -2027,7 +2027,6 @@ class Network(TaggableObject):
   __slots__ = [
     "name",
     "serial_no",
-    "network_type",
     "mac_prefix",
     "family",
     "network",
@@ -2062,11 +2061,21 @@ class Network(TaggableObject):
       result["%sNETWORK_GATEWAY6" % prefix] = self.gateway6
     if self.mac_prefix:
       result["%sNETWORK_MAC_PREFIX" % prefix] = self.mac_prefix
-    if self.network_type:
-      result["%sNETWORK_TYPE" % prefix] = self.network_type
 
     return result
 
+  @classmethod
+  def FromDict(cls, val):
+    """Custom function for networks.
+
+    Remove deprecated network_type. Still this info can be passed via tags.
+
+    """
+    if "network_type" in val:
+      del val["network_type"]
+    obj = super(Network, cls).FromDict(val)
+    return obj
+
 
 class SerializableConfigParser(ConfigParser.SafeConfigParser):
   """Simple wrapper over ConfigParse that allows serialization.
diff --git a/lib/opcodes.py b/lib/opcodes.py
index 2c88363..f30ec41 100644
--- a/lib/opcodes.py
+++ b/lib/opcodes.py
@@ -361,8 +361,6 @@ def _CheckStorageType(storage_type):
 _PStorageType = ("storage_type", ht.NoDefault, _CheckStorageType,
                  "Storage type")
 
-_CheckNetworkType = ht.TElemOf(constants.NETWORK_VALID_TYPES)
-
 
 @ht.WithDesc("IPv4 network")
 def _CheckCIDRNetNotation(value):
@@ -2065,7 +2063,6 @@ class OpNetworkAdd(OpCode):
   OP_DSC_FIELD = "network_name"
   OP_PARAMS = [
     _PNetworkName,
-    ("network_type", None, ht.TMaybe(_CheckNetworkType), "Network type"),
     ("network", ht.NoDefault, _TIpNetwork4, "IPv4 subnet"),
     ("gateway", None, ht.TMaybe(_TIpAddress4), "IPv4 gateway"),
     ("network6", None, ht.TMaybe(_TIpNetwork6), "IPv6 subnet"),
@@ -2099,8 +2096,6 @@ class OpNetworkSetParams(OpCode):
   OP_DSC_FIELD = "network_name"
   OP_PARAMS = [
     _PNetworkName,
-    ("network_type", None, ht.TMaybeValueNone(_CheckNetworkType),
-     "Network type"),
     ("gateway", None, ht.TMaybeValueNone(_TIpAddress4), "IPv4 gateway"),
     ("network6", None, ht.TMaybeValueNone(_TIpNetwork6), "IPv6 subnet"),
     ("gateway6", None, ht.TMaybeValueNone(_TIpAddress6), "IPv6 gateway"),
diff --git a/lib/query.py b/lib/query.py
index dc07159..ef52d08 100644
--- a/lib/query.py
+++ b/lib/query.py
@@ -2531,7 +2531,6 @@ _NETWORK_SIMPLE_FIELDS = {
   "network6": ("IPv6Subnet", QFT_OTHER, 0, "IPv6 subnet"),
   "gateway6": ("IPv6Gateway", QFT_OTHER, 0, "IPv6 gateway"),
   "mac_prefix": ("MacPrefix", QFT_OTHER, 0, "MAC address prefix"),
-  "network_type": ("NetworkType", QFT_OTHER, 0, "Network type"),
   "serial_no": ("SerialNo", QFT_NUMBER, 0, _SERIAL_NO_DOC % "Network"),
   "uuid": ("UUID", QFT_TEXT, 0, "Network UUID"),
   }
diff --git a/lib/rapi/client.py b/lib/rapi/client.py
index 452fa95..cf79711 100644
--- a/lib/rapi/client.py
+++ b/lib/rapi/client.py
@@ -1768,7 +1768,7 @@ class GanetiRapiClient(object): # pylint: disable=R0904
                              None, None)
 
   def CreateNetwork(self, network_name, network, gateway=None, network6=None,
-                    gateway6=None, mac_prefix=None, network_type=None,
+                    gateway6=None, mac_prefix=None,
                     add_reserved_ips=None, tags=None, dry_run=False):
     """Creates a new network.
 
@@ -1797,7 +1797,6 @@ class GanetiRapiClient(object): # pylint: disable=R0904
       "gateway6": gateway6,
       "network6": network6,
       "mac_prefix": mac_prefix,
-      "network_type": network_type,
       "add_reserved_ips": add_reserved_ips,
       "tags": tags,
       }
diff --git a/lib/rapi/rlib2.py b/lib/rapi/rlib2.py
index d748913..3a28a84 100644
--- a/lib/rapi/rlib2.py
+++ b/lib/rapi/rlib2.py
@@ -94,7 +94,7 @@ N_FIELDS = ["name", "offline", "master_candidate", "drained",
 
 NET_FIELDS = ["name", "network", "gateway",
               "network6", "gateway6",
-              "mac_prefix", "network_type",
+              "mac_prefix",
               "free_count", "reserved_count",
               "map", "group_list", "inst_list",
               "external_reservations", "tags",
diff --git a/man/ganeti-os-interface.rst b/man/ganeti-os-interface.rst
index cd7c763..ed5872f 100644
--- a/man/ganeti-os-interface.rst
+++ b/man/ganeti-os-interface.rst
@@ -144,9 +144,6 @@ NIC_%d_NETWORK_GATEWAY6
 NIC_%d_NETWORK_MAC_PREFIX
     (Optional) If a NIC network is specified, the network's mac prefix.
 
-NIC_%d_NETWORK_TYPE
-    (Optional) If a NIC network is specified, the network's type.
-
 NIC_%d_NETWORK_TAGS
     (Optional) If a NIC network is specified, the network's tags, space
     separated.
diff --git a/man/gnt-network.rst b/man/gnt-network.rst
index 3e4a551..69848cd 100644
--- a/man/gnt-network.rst
+++ b/man/gnt-network.rst
@@ -32,7 +32,6 @@ ADD
 | [--network6=*NETWORK6*]
 | [--gateway6=*GATEWAY6*]
 | [--mac-prefix=*MACPREFIX*]
-| [--network-type=*NETWORKTYPE*]
 | [--submit]
 | {*network*}
 
@@ -46,8 +45,6 @@ notation.
 The ``--gateway`` option allows you to specify the default gateway for
 this network.
 
-The ``--network-type`` can be none, private or public.
-
 IPv6 semantics can be assigned to the network via the ``--network6`` and
 ``--gateway6`` options. IP pool is meaningless for IPV6 so those two
 values can be used for EUI64 generation from a NIC's MAC address.
@@ -71,7 +68,6 @@ MODIFY
 | [--network6=*NETWORK6*]
 | [--gateway6=*GATEWAY6*]
 | [--mac-prefix=*MACPREFIX*]
-| [--network-type=*NETWORKTYPE*]
 | [--submit]
 | {*network*}
 
-- 
1.7.10.4

Reply via email to