← Back to team overview

fuel-dev team mailing list archive

Re: [Fuel] Problem with diagnostic snapshot in case of services containerization

 

I think that we should push all the data needed to complete the dump task
along with the task itself (json through to astute then to mcollective), so
that Shotgun (diagnostic snapshot tool) could serve independently.


On Fri, Apr 18, 2014 at 8:45 PM, Matthew Mosesohn <mmosesohn@xxxxxxxxxxxx>wrote:

> I think that we should push all the data needed to complete the dump task
> along with the task itself (json through to astute then to mcollective), so
> that Shotgun (diagnostic snapshot tool) could serve independently.
>
>
> On Fri, Apr 18, 2014 at 8:35 PM, Evgeniy L <eli@xxxxxxxxxxxx> wrote:
>
>> Hi,
>>
>> How diagnostic snapshot works right now.
>>
>> * user clicks "diagnostic snapshot" button
>> * nailgun creates a task and sends it to orchestrator [0]
>> * orchestrator via mcollective runs 'execute_shell_commad' and
>> mcollective plugin runs `/opt/nailgun/bin/nailgun_dump` command on the
>> master node [1]
>> * nailgun_dump is a part of nailgun codebase and it makes db calls to
>> retrieve nodes and other configs [2] [3]
>> * then it calls imported module shotgun, passes config and it generates
>> snapshot [3]
>>
>> [0]
>> https://github.com/stackforge/fuel-web/blob/0b10ed5fae7a8b140917c6b5381e1d14a2b0e727/nailgun/nailgun/task/task.py#L652-L666
>> [1]
>> https://github.com/stackforge/fuel-web/blob/0b10ed5fae7a8b140917c6b5381e1d14a2b0e727/nailgun/nailgun/task/task.py#L652-L666
>> [2]
>> https://github.com/stackforge/fuel-web/blob/0b10ed5fae7a8b140917c6b5381e1d14a2b0e727/nailgun/nailgun/task/task.py#L626-L650
>> [3]
>> https://github.com/stackforge/fuel-web/blob/0b10ed5fae7a8b140917c6b5381e1d14a2b0e727/nailgun/nailgun/task/task.py#L724
>>
>> As result nailgun and shotgun use each other's codebase, and we cannot
>> install mcollective and nailgun in separate containers.
>>
>> How we can solve this problem
>>
>>  1. fast workaround, install mcollective and nailgun in a single
>> container
>> 2. shotgun can retrieve all necessary data via nailgun api
>> 3. shotgun must have it's own executable endpoints and it should have
>> nothing in common with nailgun.
>> When nailgun creates task, it can send this config to orchestrator,
>> orchestrator can save this config into the file [4] and then execute
>> shotgun's endpoint and pass path to config file as a parameter.
>>
>> [4]
>> https://github.com/stackforge/fuel-astute/blob/master/mcagents/uploadfile.rb
>>
>> I like third solustion but it will take some time to refactor our code.
>> So, what do you think?
>>
>> Thanks
>>
>>
>> --
>> Mailing list: https://launchpad.net/~fuel-dev
>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~fuel-dev
>> More help   : https://help.launchpad.net/ListHelp
>>
>>
>

Follow ups

References