Opened 3 years ago

Last modified 3 years ago

#5138 assigned enhancement

Remote-management client: DHCPv4 commands

Reported by: tomek Owned by: UnAssigned
Priority: low Milestone: Outstanding Tasks
Component: remote-management Version: git
Keywords: Cc:
CVSS Scoring: Parent Tickets:
Sensitive: no Defect Severity: N/A
Sub-Project: Mozilla Feature Depending on Ticket:
Estimated Difficulty: 0 Add Hours to Ticket: 0
Total Hours: 0 Internal?: no

Description

After #5137 is done, we will need to implement support for all commands exposed by DHCPv4 server.

Subtickets

#5136: Remote-management client: designclosedtomek
#5137: Remote-management client: base implementationclosedtomek
#5136: Remote-management client: designclosedtomek

Change History (16)

comment:1 Changed 3 years ago by tomek

  • Summary changed from remove-management client: DHCPv4 commands to Remote-management client: DHCPv4 commands

comment:2 Changed 3 years ago by tomek

  • Type changed from task to enhancement

comment:3 Changed 3 years ago by tomek

  • Milestone changed from Kea-proposed to Kea1.2

comment:4 Changed 3 years ago by tomek

  • Parent Tickets set to 5137

comment:5 Changed 3 years ago by tomek

  • Parent Tickets 5137 deleted

comment:6 Changed 3 years ago by tomek

Add a subticket #5137.

comment:7 Changed 3 years ago by tomek

Add a subticket #5136.

comment:8 Changed 3 years ago by tomek

  • Sub-Project changed from DHCP to Mozilla

comment:9 Changed 3 years ago by tomek

  • Priority changed from medium to low

Lowering priority as discussed on 2017-02-23.

comment:10 Changed 3 years ago by fdupont

I suggest to begin with a prototype which supports DHCPv4 server list-commands.

comment:11 follow-up: Changed 3 years ago by fdupont

Currently the request syntax is:

{ "command": "xxx", "arguments": yyy }

where the command entry is mandatory, arguments optional and when present usually a map.
The answer is:

{ "result": r, "text": "ttt", "arguments": xxx }

where the integer result entry is mandatory, arguments and text optional.

The control agent returns a list of answers but takes only one request.
I propose:

  • modify CtrlAgentCommandMgr::handleCommand to encapsulate into a list only an element which is not already a list.
  • to add a new command "forward" with this syntax:
    { "command": "forward",
       "arguments":
      { "to": [ "dhcp4", "dhcp6" ],
        "command": "xxx",
        "arguments": yyy
      }
    }
    

comment:12 Changed 3 years ago by fdupont

  • Owner set to fdupont
  • Status changed from new to accepted

comment:13 in reply to: ↑ 11 Changed 3 years ago by marcin

Replying to fdupont:

Currently the request syntax is:

{ "command": "xxx", "arguments": yyy }

where the command entry is mandatory, arguments optional and when present usually a map.
The answer is:

{ "result": r, "text": "ttt", "arguments": xxx }

where the integer result entry is mandatory, arguments and text optional.

The control agent returns a list of answers but takes only one request.
I propose:

  • modify CtrlAgentCommandMgr::handleCommand to encapsulate into a list only an element which is not already a list.
  • to add a new command "forward" with this syntax:
    { "command": "forward",
       "arguments":
      { "to": [ "dhcp4", "dhcp6" ],
        "command": "xxx",
        "arguments": yyy
      }
    }
    

Francis. Forwarding commands is the work I am doing in the ticket #5078 and I already have asiolink class implemented for handling transmission via unix sockets. You should not duplicate work someone else has done! The control commands forwarding you're proposing here is against design. The client doesn't know if the command should be forwarded or not, it just sends the command to the CA and it is up to the CA to determine whether to forward to handle it on its own. Please consult: http://kea.isc.org/wiki/ControlAPIDesign

We have to discuss the way forward during the all hands.

comment:14 Changed 3 years ago by fdupont

  • Owner changed from fdupont to UnAssigned
  • Status changed from accepted to assigned

To answer to the comment about the syntax it was easier to extend a command than to extend the command manager itself. Anyway I give up on this as I misinterpreted the object of the ticket. I moved all branches (trac5138 and trac5138) and associated _base tags to _fd names.

comment:15 Changed 3 years ago by tomek

  • Milestone changed from Kea1.2 to Kea1.2-final

Code freeze for 1.2-beta. Moving all remaining open tickets to 1.2-final.

comment:16 Changed 3 years ago by tomek

  • Milestone changed from Kea1.2-final to Outstanding Tasks

As discussed on 2017-04-13 call, moving to outstanding.

Note: See TracTickets for help on using tickets.