← Back to team overview

fuel-dev team mailing list archive

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

 

Mike,

This would require either bind mounting /etc/nailgun from the nailgun
container or reconfiguring /etc/nailgun/settings.yaml via puppet so
that this nailgun on the mcollective container could log into the
postgres DB to get node info.

On Sat, Apr 19, 2014 at 11:32 AM, Mike Scherbakov
<mscherbakov@xxxxxxxxxxxx> wrote:
> I'm with Evgeny on #3.
> However, as fast workaround, I see no issue having nailgun package installed
> in two containers. One of them is nailgun service, and another - just
> library, which is used by shotgun. It's like nova-compute importing
> nova-network code locally (at least it was so a long time ago). It adds
> mess, but it's satisfactory for fast workaround.
> Can we do it or I'm missing something?
>
> Thanks,
>
> On Apr 19, 2014 4:59 AM, "Andrew Woodward" <xarses@xxxxxxxxx> wrote:
>>
>> packages already broke /opt/nailgun [1]
>>
>> [root@nailgun ~]# which nailgun_dump
>> /usr/bin/nailgun_dump
>>
>> [1] https://bugs.launchpad.net/fuel/+bug/1309741
>>
>> On Fri, Apr 18, 2014 at 12:28 PM, Vladimir Kuklin <vkuklin@xxxxxxxxxxxx>
>> wrote:
>> > +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
>> >>
>> >
>> > --
>> > 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
>> >
>>
>>
>>
>> --
>> Andrew
>> Mirantis
>> Ceph community
>>
>> --
>> 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