Project

General

Profile

Actions

Architecture #3727

closed

The cfengine processes management in system technique is splitted in various places

Added by Nicolas CHARLES over 11 years ago. Updated almost 7 years ago.

Status:
Rejected
Priority:
N/A
Assignee:
-
Category:
System techniques
Effort required:
Name check:
Fix check:
Regression:

Description

We have several places where the CFEngine processes are managed in our system technique :
- update.cf
- promises.cf
- process-matching

We need to factorize it a bit, and be sure of what we do (sometimes we handle disable-agent, sometimes not)


Related issues 1 (0 open1 closed)

Related to Rudder - Bug #3794: "disable-agent" feature does not work as expected (doesn't stop *running* agents)ReleasedNicolas CHARLES2013-07-30Actions
Actions #1

Updated by Nicolas CHARLES over 11 years ago

  • Project changed from 34 to 24
  • Category set to Techniques
Actions #2

Updated by Nicolas PERRON over 11 years ago

  • Target version changed from 2.7.0~beta1 to 2.7.0~rc1
Actions #3

Updated by Jonathan CLARKE over 11 years ago

  • Status changed from New to 8
  • Assignee set to Jonathan CLARKE

I'll look into this.

Actions #4

Updated by Jonathan CLARKE over 11 years ago

  • Assignee deleted (Jonathan CLARKE)

Nicolas CHARLES wrote:

We need to factorize it a bit, and be sure of what we do (sometimes we handle disable-agent, sometimes not)

Regarding the disable-agent feature, what currently is implemented is:

  • The cron entry will not re*start cf-execd or cf-agent if it is *already stopped and the disable-agent file exists
  • The promises will not re*start cf-execd or cf-serverd if they are *already stopped and the disable-agent file exists

However, we never actually stop a running agent when disable-agent is touched. This should be changed. A nice approach would be to have a bundle that does something like this:

  classes:
    "should_disable_agent" expression => fileexists("${g.rudder_base}/etc/disable-agent");
    "disable_agent" 
      expression => "should_disable_agent",
      ifvarclass => "abort_report_done";

  processes:
    "cf-execd, cf-serverd, cf-monitord" 
       attributes => kill them;

  reports:
    should_disable_agent::
      "Report saying OMG the server and executor have been stopped, and the agent is going to be killed!" 
         classes => if_ok("abort_report_done");
Actions #5

Updated by Nicolas PERRON over 11 years ago

  • Target version changed from 2.7.0~rc1 to 2.7.0
Actions #6

Updated by Jonathan CLARKE over 11 years ago

  • Tracker changed from User story to Architecture
  • Project changed from 24 to Rudder
  • Category changed from Techniques to System techniques
  • Target version changed from 2.7.0 to 2.8.0~beta1

This ticket is actually about two different things:

  1. The fact that CFEngine process checking is split across various bundles in our code. This is a refactoring task, which I will leave in this ticket (new ticket type: Architecture) and target it for next major release.
  2. The bug that "disable-agent" touch-file doesn't actually stop a running agent, it just stops cf-execd from being from being restarted (big difference). I will open a new ticket for this.
Actions #7

Updated by Jonathan CLARKE over 11 years ago

Jonathan CLARKE wrote:

  1. The bug that "disable-agent" touch-file doesn't actually stop a running agent, it just stops cf-execd from being from being restarted (big difference). I will open a new ticket for this.

This is #3794.

Actions #8

Updated by Nicolas PERRON about 11 years ago

  • Target version changed from 2.8.0~beta1 to Ideas (not version specific)

I don't think this change could be made for Rudder 2.8

Actions #9

Updated by Benoît PECCATTE over 9 years ago

  • Status changed from 8 to New
Actions #10

Updated by Benoît PECCATTE almost 7 years ago

  • Status changed from New to Rejected

All the process management is now done by rudder agent check

Actions

Also available in: Atom PDF