Class Cluster


public class Cluster extends XenAPIObject
Cluster-wide Cluster metadata First published in XenServer 7.6.
Author:
Cloud Software Group, Inc.
  • Field Details

    • ref

      protected final String ref
      The XenAPI reference (OpaqueRef) to this object.
  • Method Details

    • toWireString

      public String toWireString()
      Specified by:
      toWireString in class XenAPIObject
      Returns:
      The XenAPI reference (OpaqueRef) to this object.
    • equals

      public boolean equals(Object obj)
      If obj is a Cluster, compares XenAPI references for equality.
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getRecord

      public Cluster.Record getRecord(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get a record containing the current state of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      all fields from the object
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getByUuid

      public static Cluster getByUuid(Connection c, String uuid) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get a reference to the Cluster instance with the specified UUID. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      uuid - UUID of object to return
      Returns:
      reference to the object
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getUuid

      public String getUuid(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the uuid field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getClusterHosts

      public Set<ClusterHost> getClusterHosts(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the cluster_hosts field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getPendingForget

      public Set<String> getPendingForget(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the pending_forget field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getClusterToken

      public String getClusterToken(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the cluster_token field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getClusterStack

      public String getClusterStack(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the cluster_stack field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getAllowedOperations

      public Set<Types.ClusterOperation> getAllowedOperations(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the allowed_operations field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getCurrentOperations

      public Map<String,Types.ClusterOperation> getCurrentOperations(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the current_operations field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getPoolAutoJoin

      public Boolean getPoolAutoJoin(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the pool_auto_join field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getTokenTimeout

      public Double getTokenTimeout(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the token_timeout field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getTokenTimeoutCoefficient

      public Double getTokenTimeoutCoefficient(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the token_timeout_coefficient field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getClusterConfig

      public Map<String,String> getClusterConfig(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the cluster_config field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getOtherConfig

      public Map<String,String> getOtherConfig(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Get the other_config field of the given Cluster. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      value of the field
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • setOtherConfig

      public void setOtherConfig(Connection c, Map<String,String> otherConfig) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Set the other_config field of the given Cluster. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      otherConfig - New value to set
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • addToOtherConfig

      public void addToOtherConfig(Connection c, String key, String value) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Add the given key-value pair to the other_config field of the given Cluster. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      key - Key to add
      value - Value to add
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • removeFromOtherConfig

      public void removeFromOtherConfig(Connection c, String key) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Remove the given key and its corresponding value from the other_config field of the given Cluster. If the key is not in that Map, then do nothing. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      key - Key to remove
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • createAsync

      public static Task createAsync(Connection c, PIF PIF, String clusterStack, Boolean poolAutoJoin, Double tokenTimeout, Double tokenTimeoutCoefficient) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException, Types.InvalidClusterStack, Types.InvalidValue, Types.PifAllowsUnplug, Types.RequiredPifIsUnplugged
      Creates a Cluster object and one Cluster_host object as its first member Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      PIF - The PIF to connect the cluster's first cluster_host to
      clusterStack - simply the string 'corosync'. No other cluster stacks are currently supported
      poolAutoJoin - true if xapi is automatically joining new pool members to the cluster
      tokenTimeout - Corosync token timeout in seconds
      tokenTimeoutCoefficient - Corosync token timeout coefficient in seconds
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.InvalidClusterStack - The cluster stack provided is not supported.
      Types.InvalidValue - The value given is invalid
      Types.PifAllowsUnplug - The operation you requested cannot be performed because the specified PIF allows unplug.
      Types.RequiredPifIsUnplugged - The operation you requested cannot be performed because the specified PIF is currently unplugged.
    • create

      public static Cluster create(Connection c, PIF PIF, String clusterStack, Boolean poolAutoJoin, Double tokenTimeout, Double tokenTimeoutCoefficient) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException, Types.InvalidClusterStack, Types.InvalidValue, Types.PifAllowsUnplug, Types.RequiredPifIsUnplugged
      Creates a Cluster object and one Cluster_host object as its first member Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      PIF - The PIF to connect the cluster's first cluster_host to
      clusterStack - simply the string 'corosync'. No other cluster stacks are currently supported
      poolAutoJoin - true if xapi is automatically joining new pool members to the cluster
      tokenTimeout - Corosync token timeout in seconds
      tokenTimeoutCoefficient - Corosync token timeout coefficient in seconds
      Returns:
      the new Cluster
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.InvalidClusterStack - The cluster stack provided is not supported.
      Types.InvalidValue - The value given is invalid
      Types.PifAllowsUnplug - The operation you requested cannot be performed because the specified PIF allows unplug.
      Types.RequiredPifIsUnplugged - The operation you requested cannot be performed because the specified PIF is currently unplugged.
    • destroyAsync

      public Task destroyAsync(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException, Types.ClusterDoesNotHaveOneNode, Types.ClusterStackInUse
      Destroys a Cluster object and the one remaining Cluster_host member Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.ClusterDoesNotHaveOneNode - An operation failed as it expected the cluster to have only one node but found multiple cluster_hosts.
      Types.ClusterStackInUse - The cluster stack is still in use by at least one plugged PBD.
    • destroy

      public void destroy(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException, Types.ClusterDoesNotHaveOneNode, Types.ClusterStackInUse
      Destroys a Cluster object and the one remaining Cluster_host member Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.ClusterDoesNotHaveOneNode - An operation failed as it expected the cluster to have only one node but found multiple cluster_hosts.
      Types.ClusterStackInUse - The cluster stack is still in use by at least one plugged PBD.
    • getNetworkAsync

      public Task getNetworkAsync(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Returns the network used by the cluster for inter-host communication, i.e. the network shared by all cluster host PIFs Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getNetwork

      public Network getNetwork(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Returns the network used by the cluster for inter-host communication, i.e. the network shared by all cluster host PIFs Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      network of cluster
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • poolCreateAsync

      public static Task poolCreateAsync(Connection c, Network network, String clusterStack, Double tokenTimeout, Double tokenTimeoutCoefficient) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Attempt to create a Cluster from the entire pool Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      network - the single network on which corosync carries out its inter-host communications
      clusterStack - simply the string 'corosync'. No other cluster stacks are currently supported
      tokenTimeout - Corosync token timeout in seconds
      tokenTimeoutCoefficient - Corosync token timeout coefficient in seconds
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • poolCreate

      public static Cluster poolCreate(Connection c, Network network, String clusterStack, Double tokenTimeout, Double tokenTimeoutCoefficient) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Attempt to create a Cluster from the entire pool Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      network - the single network on which corosync carries out its inter-host communications
      clusterStack - simply the string 'corosync'. No other cluster stacks are currently supported
      tokenTimeout - Corosync token timeout in seconds
      tokenTimeoutCoefficient - Corosync token timeout coefficient in seconds
      Returns:
      the new Cluster
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • poolForceDestroyAsync

      public Task poolForceDestroyAsync(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException, Types.ClusterForceDestroyFailed
      Attempt to force destroy the Cluster_host objects, and then destroy the Cluster. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.ClusterForceDestroyFailed - Force destroy failed on a Cluster_host while force destroying the cluster.
    • poolForceDestroy

      public void poolForceDestroy(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException, Types.ClusterForceDestroyFailed
      Attempt to force destroy the Cluster_host objects, and then destroy the Cluster. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.ClusterForceDestroyFailed - Force destroy failed on a Cluster_host while force destroying the cluster.
    • poolDestroyAsync

      Attempt to destroy the Cluster_host objects for all hosts in the pool and then destroy the Cluster. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.ClusterStackInUse - The cluster stack is still in use by at least one plugged PBD.
      Types.ClusteringDisabled - An operation was attempted while clustering was disabled on the cluster_host.
      Types.ClusterHostIsLast - The last cluster host cannot be destroyed. Destroy the cluster instead
    • poolDestroy

      Attempt to destroy the Cluster_host objects for all hosts in the pool and then destroy the Cluster. Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
      Types.ClusterStackInUse - The cluster stack is still in use by at least one plugged PBD.
      Types.ClusteringDisabled - An operation was attempted while clustering was disabled on the cluster_host.
      Types.ClusterHostIsLast - The last cluster host cannot be destroyed. Destroy the cluster instead
    • poolResyncAsync

      public Task poolResyncAsync(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Resynchronise the cluster_host objects across the pool. Creates them where they need creating and then plugs them Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      Task
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • poolResync

      public void poolResync(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Resynchronise the cluster_host objects across the pool. Creates them where they need creating and then plugs them Minimum allowed role: pool-operator First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getAll

      public static Set<Cluster> getAll(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Return a list of all the Clusters known to the system. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      references to all objects
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.
    • getAllRecords

      public static Map<Cluster,Cluster.Record> getAllRecords(Connection c) throws Types.BadServerResponse, Types.XenAPIException, org.apache.xmlrpc.XmlRpcException
      Return a map of Cluster references to Cluster records for all Clusters known to the system. Minimum allowed role: read-only First published in XenServer 7.6.
      Parameters:
      c - The connection the call is made on
      Returns:
      records of all objects
      Throws:
      Types.BadServerResponse - Thrown if the response from the server contains an invalid status.
      Types.XenAPIException - Thrown if the call failed.
      org.apache.xmlrpc.XmlRpcException - Thrown if the result of an asynchronous call could not be parsed.