Add test for backend._GetBlockDevSymlinkPath
[ganeti-local] / lib / rapi / rlib2.py
index 584833a..bfd5415 100644 (file)
@@ -97,8 +97,8 @@ NET_FIELDS = ["name", "network", "gateway",
               "mac_prefix", "network_type",
               "free_count", "reserved_count",
               "map", "group_list", "inst_list",
-              "external_reservations",
-             ] 
+              "external_reservations", "tags",
+              ]
 
 G_FIELDS = [
   "alloc_policy",
@@ -155,7 +155,7 @@ _NODE_MIGRATE_REQV1 = "node-migrate-reqv1"
 # Feature string for node evacuation with LU-generated jobs
 _NODE_EVAC_RES1 = "node-evac-res1"
 
-ALL_FEATURES = frozenset([
+ALL_FEATURES = compat.UniqueFrozenset([
   _INST_CREATE_REQV1,
   _INST_REINSTALL_REQV1,
   _NODE_MIGRATE_REQV1,
@@ -295,7 +295,7 @@ class R_2_jobs(baserlib.ResourceBase):
     @return: a dictionary with jobs id and uri.
 
     """
-    client = self.GetClient()
+    client = self.GetClient(query=True)
 
     if self.useBulk():
       bulkdata = client.QueryJobs(None, J_FIELDS_BULK)
@@ -324,7 +324,7 @@ class R_2_jobs_id(baserlib.ResourceBase):
 
     """
     job_id = self.items[0]
-    result = self.GetClient().QueryJobs([job_id, ], J_FIELDS)[0]
+    result = self.GetClient(query=True).QueryJobs([job_id, ], J_FIELDS)[0]
     if result is None:
       raise http.HttpNotFound()
     return baserlib.MapFields(J_FIELDS, result)
@@ -688,7 +688,7 @@ class R_2_networks(baserlib.OpcodeResource):
 
 
 class R_2_networks_name(baserlib.OpcodeResource):
-  """/2/network/[network_name] resource.
+  """/2/networks/[network_name] resource.
 
   """
   DELETE_OPCODE = opcodes.OpNetworkRemove
@@ -717,8 +717,9 @@ class R_2_networks_name(baserlib.OpcodeResource):
       "dry_run": self.dryRun(),
       })
 
+
 class R_2_networks_name_connect(baserlib.OpcodeResource):
-  """/2/network/[network_name]/connect.
+  """/2/networks/[network_name]/connect resource.
 
   """
   PUT_OPCODE = opcodes.OpNetworkConnect
@@ -730,10 +731,12 @@ class R_2_networks_name_connect(baserlib.OpcodeResource):
     assert self.items
     return (self.request_body, {
       "network_name": self.items[0],
+      "dry_run": self.dryRun(),
       })
 
+
 class R_2_networks_name_disconnect(baserlib.OpcodeResource):
-  """/2/network/[network_name]/disconnect.
+  """/2/networks/[network_name]/disconnect resource.
 
   """
   PUT_OPCODE = opcodes.OpNetworkDisconnect
@@ -745,8 +748,26 @@ class R_2_networks_name_disconnect(baserlib.OpcodeResource):
     assert self.items
     return (self.request_body, {
       "network_name": self.items[0],
+      "dry_run": self.dryRun(),
+      })
+
+
+class R_2_networks_name_modify(baserlib.OpcodeResource):
+  """/2/networks/[network_name]/modify resource.
+
+  """
+  PUT_OPCODE = opcodes.OpNetworkSetParams
+
+  def GetPutOpInput(self):
+    """Changes some parameters of network.
+
+    """
+    assert self.items
+    return (self.request_body, {
+      "network_name": self.items[0],
       })
 
+
 class R_2_groups(baserlib.OpcodeResource):
   """/2/groups resource.
 
@@ -1547,6 +1568,15 @@ class R_2_groups_name_tags(_R_Tags):
   TAG_LEVEL = constants.TAG_NODEGROUP
 
 
+class R_2_networks_name_tags(_R_Tags):
+  """ /2/networks/[network_name]/tags resource.
+
+  Manages per-network tags.
+
+  """
+  TAG_LEVEL = constants.TAG_NETWORK
+
+
 class R_2_tags(_R_Tags):
   """ /2/tags resource.