Add support for querying network timestamps
authorChristos Stavrakakis <cstavr@grnet.gr>
Wed, 10 Jul 2013 10:48:20 +0000 (13:48 +0300)
committerGuido Trotter <ultrotter@google.com>
Wed, 10 Jul 2013 12:45:08 +0000 (14:45 +0200)
Add creation and modified timestamps when creating a new network, and
extend the available query fields for networks with these fields,
namely 'ctime' and 'mtime'.

Signed-off-by: Christos Stavrakakis <cstavr@grnet.gr>
Signed-off-by: Guido Trotter <ultrotter@google.com>
Reviewed-by: Guido Trotter <ultrotter@google.com>

lib/config.py
lib/query.py
src/Ganeti/Objects.hs
test/hs/Test/Ganeti/Objects.hs

index 93ccec8..6fd4279 100644 (file)
@@ -2490,6 +2490,7 @@ class ConfigWriter:
       self._EnsureUUID(net, ec_id)
 
     net.serial_no = 1
+    net.ctime = net.mtime = time.time()
     self._config_data.networks[net.uuid] = net
     self._config_data.cluster.serial_no += 1
 
index a9e0274..030f470 100644 (file)
@@ -2649,6 +2649,9 @@ def _BuildNetworkFields():
     compat.partial(_GetNetworkStatsField, name, kind))
     for (name, (title, kind, _, doc)) in _NETWORK_STATS_FIELDS.items()])
 
+  # Add timestamps
+  fields.extend(_GetItemTimestampFields(IQ_NETWORKS))
+
   return _PrepareFieldList(fields, [])
 
 #: Fields for cluster information
index 760b1b4..07d7f20 100644 (file)
@@ -186,6 +186,7 @@ $(buildObject "Network" "network" $
   , optionalField $
     simpleField "ext_reservations" [t| String |]
   ]
+  ++ timeStampFields
   ++ serialFields
   ++ tagsFields)
 
@@ -195,6 +196,10 @@ instance SerialNoObject Network where
 instance TagsObject Network where
   tagsOf = networkTags
 
+instance TimeStampObject Network where
+  cTimeOf = networkCtime
+  mTimeOf = networkMtime
+
 -- * NIC definitions
 
 $(buildParam "Nic" "nicp"
index 59f67e1..110df56 100644 (file)
@@ -174,8 +174,10 @@ genValidNetwork = do
   gateway6 <- genMaybe genIp6Addr
   res <- liftM Just (genBitString $ netmask2NumHosts netmask)
   ext_res <- liftM Just (genBitString $ netmask2NumHosts netmask)
+  ctime <- arbitrary
+  mtime <- arbitrary
   let n = Network name mac_prefix net net6 gateway
-          gateway6 res ext_res 0 Set.empty
+          gateway6 res ext_res ctime mtime 0 Set.empty
   return n
 
 -- | Generate an arbitrary string consisting of '0' and '1' of the given length.