1. 01 Apr, 2015 12 commits
    • Matthieu Hautreux's avatar
    • Matthieu Hautreux's avatar
      [PATCH 10/17] layouts: add read-only keyspec support · 0cccbefa
      Matthieu Hautreux authored
      Layout entities Key/value pairs were automatically merged during updates with
      the previous logic. It is still the case by default but keyspec can now
      also be declared as RDONLY in layouts plugins in order to avoid that.
      
      Note that RDONLY keys can still be written by the plugins implementations when
      necessary. It only affects the automerge logic avoiding to let administrators
      update them with 'scontrol layouts update ...' commands directly.
      0cccbefa
    • Matthieu Hautreux's avatar
      [PATCH 09/17] layouts: remove the slurm_ prefix from layouts API functions · a302f763
      Matthieu Hautreux authored
      it does not provide any information and make things longer than necessary.
      a302f763
    • Matthieu Hautreux's avatar
      [PATCH 06/17] layouts: add layouts_update_layout() logic and factorize conf parsing calls · 694d7840
      Matthieu Hautreux authored
      layouts_update_layout(...) now enables to process an incoming buffer containing
      a contiguous set of packed strings and push that information into a particular
      layout. Only the entities key/value pairs are updated for now.
      
      layouts_p_update_done is a new callback that will be triggered with an array of
      entities pointers when an update is performed on a particular layout. This
      callback will help layout plugins to perform various consistency checks and/or
      update any internal states that should be updated based on the modified entities
      information.
      
      No information concerning the udated key/value pairs are provided for now.
      For finer-grained controls over what has changed, the plugins will have to use
      both the parse_entity callback and the update_done callback to handle what has
      changed and what should be rebuilt after the update for now.
      694d7840
    • Matthieu Hautreux's avatar
    • Matthieu Hautreux's avatar
      [PATCH 06/17] layouts: add layouts_update_layout() logic and factorize conf parsing calls · 5ff4f187
      Matthieu Hautreux authored
      layouts_update_layout(...) now enables to process an incoming buffer containing
      a contiguous set of packed strings and push that information into a particular
      layout. Only the entities key/value pairs are updated for now.
      
      layouts_p_update_done is a new callback that will be triggered with an array of
      entities pointers when an update is performed on a particular layout. This
      callback will help layout plugins to perform various consistency checks and/or
      update any internal states that should be updated based on the modified entities
      information.
      
      No information concerning the udated key/value pairs are provided for now.
      For finer-grained controls over what has changed, the plugins will have to use
      both the parse_entity callback and the update_done callback to handle what has
      changed and what should be rebuilt after the update for now.
      5ff4f187
    • Matthieu Hautreux's avatar
      [PATCH 05/17] layouts: add support for key[+-*/]=value when loading configurations · 89d54f02
      Matthieu Hautreux authored
      see 024c9fab036c8e6110b9276367dcf875a81876ef
      89d54f02
    • Matthieu Hautreux's avatar
      [PATCH 04/17] config parser: add several modifications required by layouts management · e1d2a0c1
      Matthieu Hautreux authored
      > add a new 'operator' field in s_p_values_t
      
      Provide the capability to manage key[+-*/]=val entries in the parsing logic.
      A new operator field now enables to know which operation is associated to
      a pair of key/value instead of the classical set. Introduced operators are
      provided by the slurm_parser_operator_t type with the following value :
      
       * S_P_OPERATOR_ADD
       * S_P_OPERATOR_SUB
       * S_P_OPERATOR_MUL
       * S_P_OPERATOR_DIV
       * S_P_OPERATOR_MIN
       * S_P_OPERATOR_MAX
       * S_P_OPERATOR_AVG
      
      It is the caller of the parsing logic that is responsible of using that
      information in order to act as requested. The parsing logic do not do any
      computation based on the extracted operator.
      
      S_P_OPERATOR_{MIN,MAX,AVG} are internal operators not yet bound to particular
      char in the parsing logic of 'key[operator]=val' entries. They are only used
      for layouts internal logic.
      
      Why:
      
      Introducing the layouts framework, the parsing logic of SLURM was extended to
      manage efficiently conf elements expansions. Layouts heavily rely on the SLURM
      parser to tansform textual configurations into internal representations.
      
      Looking at a way to provide live update of Layouts information, it was
      interesting to reuse the parsing logic of SLURM instead of trying to do the
      same thing somewhere else.
      
      Introducing a "key[+-*/]=val" feature was thus mandatory in order to apply
      numerical modifications of the layouts internal states on the controller side
      instead of trying to compute that on the client side and then send the updated
      information, loosing the capability to perform operations atomicallly.
      
      > add S_P_{FLOAT,DOUBLE,LONG_DOUBLE} and related s_p_get_* functions
      
      > enable true/false string parameter with S_P_BOOLEAN
      
      Layouts logic was using true/false instead of yes/no|0/1|up/down
      that were supported with S_P_BOOLEAN. Add true/false instead of reverting
      to one of the already available parameters as it was strange to not have them.
      
      > add "_." as valid characters in key names
      
      > add s_p_parse_buffer to parse configuration lines from a Slurm Buffer
      
      s_p_parse_file is a convenient way to handle the parsing of Slurm configuration
      file. It however only works with traditional file and can not be used to process
      a bunch of configuration strings.
      
      s_p_parse_buffer provides the capability to parse a bunch of contiguous strings
      packed into a Buf type, stopping the processing at the first unsuccessfull
      string extraction from the buffer.
      e1d2a0c1
    • Matthieu Hautreux's avatar
      [PATCH 03/17] layouts: initial layouts state recovery logic in slurmctld (entities data only) · d3529c4f
      Matthieu Hautreux authored
      Add a stage 1.1 in the loading of the layouts in order to recover the updated
      entities prior to building the relationships among them (stage 2) using the
      states saved in Slurm state save location for the layouts to load.
      
      Information concerning the relations among entities provided by the 'Enclosed'
      conf pragma are not taken into account for now when reading from layouts state
      files. No layout plugins callbacks are called when doing that for now.
      d3529c4f
    • Matthieu Hautreux's avatar
      [PATCH 02/17] layouts: initial layout packing/state_save logic addition · a3dc3818
      Matthieu Hautreux authored
      Add a function to help packing a particular layout into a Buffer as a set of
      strings terminated by a "\0" string and representing the current expanded
      form of the layout configuration as it could be described in a standard conf
      file.
      
      Use that function to provide a state save logic generating expanded conf files
      in the state save location, one file per generated layout. Entities not linked
      to a particular layout at save state time will not be saved as considered as
      no longer necessary.
      
      Note that the tree structure of the layouts are also saved in the packed
      information as well as in the generated expanded file.
      
      Note: fix a bug when freeing layouts in slurm_layouts_fini along the way.
      a3dc3818
    • Matthieu Hautreux's avatar
      [PATCH 01/17] layouts_mgr: add shortkey field into layouts_keydef struct · 48893f8f
      Matthieu Hautreux authored
      The layouts_keydef struct only stored the associated key name prefixed by
      the type of layouts (or mgr) inorder to have a unique identification of
      all the keydefs in the central hash table.
      
      To help accessing the original key name as specified in the layout conf
      file, the shortkey field now stores a copy of the original key. This is
      a short increase in the memory footprint of the layouts_keydef struct but
      as this structure is only allocated once per key in a layout, the global
      overhead is very small but provides an efficient way to retrieve the key
      name.
      48893f8f
    • Morris Jette's avatar
      Code clean up to eliminate CLANG warnings · 5fc68cae
      Morris Jette authored
      5fc68cae
  2. 31 Mar, 2015 10 commits
  3. 30 Mar, 2015 2 commits
  4. 27 Mar, 2015 3 commits
    • Morris Jette's avatar
      Verify plugin versions at load time · 45f671a8
      Morris Jette authored
      Verify that all plugin version numbers are identical to the component
      attempting to load them. Without this verification, the plugin can reference
      Slurm functions in the caller which differ (e.g. the underlying function's
      arguments could have changed between Slurm versions).
      NOTE: All plugins (except SPANK) must be built against the identical
      version of Slurm in order to be used by any Slurm command or daemon. This
      should eliminate some very difficult to diagnose problems due to use of old
      plugins.
      45f671a8
    • Brian Christiansen's avatar
      Change list_for_each priority functions to always return SUCCESS. · b2be6159
      Brian Christiansen authored
      Bug 1469
      Return values from void functions are unknown and were causing
      list_for_each to short ciruit processing of the job list.
      b2be6159
    • David Bigagli's avatar
      Increase the size of MinJobAge. · 711d815e
      David Bigagli authored
      711d815e
  5. 26 Mar, 2015 9 commits
  6. 25 Mar, 2015 2 commits
  7. 24 Mar, 2015 1 commit
  8. 23 Mar, 2015 1 commit