Revision be6c403e
b/NEWS | ||
---|---|---|
37 | 37 |
a cluster from a machine by stopping all daemons, removing |
38 | 38 |
certificates and ssconf files. Unless the ``--no-backup`` option is |
39 | 39 |
given, copies of the certificates are made. |
40 |
- Draining (``gnt-cluster queue drain``) and un-draining the job queue |
|
41 |
(``gnt-cluster queue undrain``) now affects all nodes in a cluster and |
|
42 |
the flag is not reset after a master failover. |
|
40 | 43 |
|
41 | 44 |
|
42 | 45 |
Version 2.6.1 |
b/lib/jqueue.py | ||
---|---|---|
1800 | 1800 |
logging.error("Failed to upload file %s to node %s: %s", |
1801 | 1801 |
file_name, node_name, msg) |
1802 | 1802 |
|
1803 |
# Set queue drained flag |
|
1804 |
result = \ |
|
1805 |
self._GetRpc(addrs).call_jobqueue_set_drain_flag([node_name], |
|
1806 |
self._drained) |
|
1807 |
msg = result[node_name].fail_msg |
|
1808 |
if msg: |
|
1809 |
logging.error("Failed to set queue drained flag on node %s: %s", |
|
1810 |
node_name, msg) |
|
1811 |
|
|
1803 | 1812 |
self._nodes[node_name] = node.primary_ip |
1804 | 1813 |
|
1805 | 1814 |
@locking.ssynchronized(_LOCK) |
... | ... | |
2123 | 2132 |
@param drain_flag: Whether to set or unset the drain flag |
2124 | 2133 |
|
2125 | 2134 |
""" |
2135 |
# Change flag locally |
|
2126 | 2136 |
jstore.SetDrainFlag(drain_flag) |
2127 | 2137 |
|
2128 | 2138 |
self._drained = drain_flag |
2129 | 2139 |
|
2140 |
# ... and on all nodes |
|
2141 |
(names, addrs) = self._GetNodeIp() |
|
2142 |
result = \ |
|
2143 |
self._GetRpc(addrs).call_jobqueue_set_drain_flag(names, drain_flag) |
|
2144 |
self._CheckRpcResult(result, self._nodes, |
|
2145 |
"Setting queue drain flag to %s" % drain_flag) |
|
2146 |
|
|
2130 | 2147 |
return True |
2131 | 2148 |
|
2132 | 2149 |
@_RequireOpenQueue |
b/lib/rpc_defs.py | ||
---|---|---|
522 | 522 |
("jobqueue_rename", MULTI, None, constants.RPC_TMO_URGENT, [ |
523 | 523 |
("rename", None, None), |
524 | 524 |
], None, None, "Rename job queue file"), |
525 |
("jobqueue_set_drain_flag", MULTI, None, constants.RPC_TMO_URGENT, [ |
|
526 |
("flag", None, None), |
|
527 |
], None, None, "Set job queue drain flag"), |
|
525 | 528 |
]), |
526 | 529 |
"RpcClientBootstrap": _Prepare([ |
527 | 530 |
("node_start_master_daemons", SINGLE, None, constants.RPC_TMO_FAST, [ |
b/lib/server/noded.py | ||
---|---|---|
944 | 944 |
# TODO: What if a file fails to rename? |
945 | 945 |
return [backend.JobQueueRename(old, new) for old, new in params[0]] |
946 | 946 |
|
947 |
@staticmethod |
|
948 |
@_RequireJobQueueLock |
|
949 |
def perspective_jobqueue_set_drain_flag(params): |
|
950 |
"""Set job queue's drain flag. |
|
951 |
|
|
952 |
""" |
|
953 |
(flag, ) = params |
|
954 |
|
|
955 |
return jstore.SetDrainFlag(flag) |
|
956 |
|
|
947 | 957 |
# hypervisor --------------- |
948 | 958 |
|
949 | 959 |
@staticmethod |
Also available in: Unified diff