← Back to team overview

fuel-dev team mailing list archive

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

 

+1 to Matt's point

It will be harder for us to do containers separation in future than to
update some data serialized by nailgun.
18 апр. 2014 г. 20:45 пользователь "Matthew Mosesohn" <
mmosesohn@xxxxxxxxxxxx> написал:

> 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
>>>
>>>
>>
>
> --
> 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