)]}'
{"fenix/workflow/actions/dummy.py":[{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"63876359acff87c1cec157496cdde82a117537d5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def run(self):"},{"line_number":30,"context_line":"        LOG.info(\"%s: Dummy action plugin run %s\" % (self.wf.session_id,"},{"line_number":31,"context_line":"                                                     self.hostname))"},{"line_number":32,"context_line":"        try_ssh \u003d subprocess.check_output(\"echo Dummy running in %s\" %"},{"line_number":33,"context_line":"                                          self.hostname,"},{"line_number":34,"context_line":"                                          shell\u003dTrue)"},{"line_number":35,"context_line":"        LOG.info(\"%s: OUTPUT: %s\" % (self.wf.session_id, try_ssh))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_55cbb251","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":15},"updated":"2019-04-09 05:32:45.000000000","message":"I used ssh to node here and this name remained. I will change it.","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"56bcf8a4ff5b20624cabd54893d7154eba86f853","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def run(self):"},{"line_number":30,"context_line":"        LOG.info(\"%s: Dummy action plugin run %s\" % (self.wf.session_id,"},{"line_number":31,"context_line":"                                                     self.hostname))"},{"line_number":32,"context_line":"        try_ssh \u003d subprocess.check_output(\"echo Dummy running in %s\" %"},{"line_number":33,"context_line":"                                          self.hostname,"},{"line_number":34,"context_line":"                                          shell\u003dTrue)"},{"line_number":35,"context_line":"        LOG.info(\"%s: OUTPUT: %s\" % (self.wf.session_id, try_ssh))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.ap_dbi.state \u003d \"DONE\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_24da2d4a","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":66},"updated":"2019-04-09 04:59:47.000000000","message":"This is only for debugging purposes, I guess. Could it be expensive in production?","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"63876359acff87c1cec157496cdde82a117537d5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    def run(self):"},{"line_number":30,"context_line":"        LOG.info(\"%s: Dummy action plugin run %s\" % (self.wf.session_id,"},{"line_number":31,"context_line":"                                                     self.hostname))"},{"line_number":32,"context_line":"        try_ssh \u003d subprocess.check_output(\"echo Dummy running in %s\" %"},{"line_number":33,"context_line":"                                          self.hostname,"},{"line_number":34,"context_line":"                                          shell\u003dTrue)"},{"line_number":35,"context_line":"        LOG.info(\"%s: OUTPUT: %s\" % (self.wf.session_id, try_ssh))"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"        self.ap_dbi.state \u003d \"DONE\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_b5b216e4","line":35,"range":{"start_line":32,"start_character":0,"end_line":35,"end_character":66},"in_reply_to":"5fc1f717_24da2d4a","updated":"2019-04-09 05:32:45.000000000","message":"Yes, it could if used like this and your output would not be going to log file. Anyhow one defines his own action plugin and makes his own logging. The error would come here as an exception if the command fails. In the demo I had here command over ssh to node. Only some \"echo\" lines were shown, details went to local logs and things like \"stack.sh\" run were forwarded to /dev/null to not show here","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"06bbaa39da9e8d2fedfe167940c4ec2d2519ccec","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                             shell\u003dTrue)"},{"line_number":36,"context_line":"            self.ap_dbi.state \u003d \"DONE\""},{"line_number":37,"context_line":"        except subprocess.CalledProcessError:"},{"line_number":38,"context_line":"            self.ap_dbi.state \u003d \"FAILED\""},{"line_number":39,"context_line":"        LOG.debug(\"%s: OUTPUT: %s\" % (self.wf.session_id, output))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_bc045d19","line":38,"updated":"2019-04-30 02:39:42.000000000","message":"Shouldn\u0027t we LOG something in the exception?","commit_id":"55d9de2b3829aa7ed448f7148ed7c57d09bf3e92"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"e967f50e79ca404d01a40148c2c2300f7cf57397","unresolved":false,"context_lines":[{"line_number":35,"context_line":"                                             shell\u003dTrue)"},{"line_number":36,"context_line":"            self.ap_dbi.state \u003d \"DONE\""},{"line_number":37,"context_line":"        except subprocess.CalledProcessError:"},{"line_number":38,"context_line":"            self.ap_dbi.state \u003d \"FAILED\""},{"line_number":39,"context_line":"        LOG.debug(\"%s: OUTPUT: %s\" % (self.wf.session_id, output))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_42868b15","line":38,"in_reply_to":"ffb9cba7_bc045d19","updated":"2019-04-30 20:58:44.000000000","message":"This is dummy, but as an example, yes","commit_id":"55d9de2b3829aa7ed448f7148ed7c57d09bf3e92"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"06bbaa39da9e8d2fedfe167940c4ec2d2519ccec","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            self.ap_dbi.state \u003d \"DONE\""},{"line_number":37,"context_line":"        except subprocess.CalledProcessError:"},{"line_number":38,"context_line":"            self.ap_dbi.state \u003d \"FAILED\""},{"line_number":39,"context_line":"        LOG.debug(\"%s: OUTPUT: %s\" % (self.wf.session_id, output))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_7f001702","line":39,"range":{"start_line":39,"start_character":7,"end_line":39,"end_character":66},"updated":"2019-04-30 02:39:42.000000000","message":"I\u0027m not sure if we get anything if an exception is raised.","commit_id":"55d9de2b3829aa7ed448f7148ed7c57d09bf3e92"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"e967f50e79ca404d01a40148c2c2300f7cf57397","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            self.ap_dbi.state \u003d \"DONE\""},{"line_number":37,"context_line":"        except subprocess.CalledProcessError:"},{"line_number":38,"context_line":"            self.ap_dbi.state \u003d \"FAILED\""},{"line_number":39,"context_line":"        LOG.debug(\"%s: OUTPUT: %s\" % (self.wf.session_id, output))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_82956335","line":39,"range":{"start_line":39,"start_character":7,"end_line":39,"end_character":66},"in_reply_to":"ffb9cba7_7f001702","updated":"2019-04-30 20:58:44.000000000","message":"yes, have to do this sooner","commit_id":"55d9de2b3829aa7ed448f7148ed7c57d09bf3e92"}],"fenix/workflow/workflow.py":[{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"56bcf8a4ff5b20624cabd54893d7154eba86f853","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.info(\u0027%s:  init_projects: %s\u0027 % (self.session_id, project_ids))"},{"line_number":85,"context_line":"        for project_id in project_ids:"},{"line_number":86,"context_line":"            transport \u003d messaging.get_transport(self.conf)"},{"line_number":87,"context_line":"            self.notif_proj[project_id] \u003d ("},{"line_number":88,"context_line":"                messaging.Notifier(transport,"},{"line_number":89,"context_line":"                                   \u0027maintenance.planned\u0027,"},{"line_number":90,"context_line":"                                   driver\u003d\u0027messaging\u0027,"},{"line_number":91,"context_line":"                                   topics\u003d[\u0027notifications\u0027]))"},{"line_number":92,"context_line":"            self.notif_proj[project_id] \u003d ("},{"line_number":93,"context_line":"                self.notif_proj[project_id].prepare(publisher_id\u003d\u0027fenix\u0027))"},{"line_number":94,"context_line":"        return db_api.create_projects(self.session_id, project_ids)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def convert(self, data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_15ec4af2","line":93,"range":{"start_line":87,"start_character":1,"end_line":93,"end_character":74},"updated":"2019-04-09 04:59:47.000000000","message":"I don\u0027t understand this. Why did you assign different values for self.notif_proj[project_id]?","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9cb1bdd9f9659e63686500194bd4910c518060df","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def init_projects(self, project_ids):"},{"line_number":84,"context_line":"        LOG.info(\u0027%s:  init_projects: %s\u0027 % (self.session_id, project_ids))"},{"line_number":85,"context_line":"        for project_id in project_ids:"},{"line_number":86,"context_line":"            transport \u003d messaging.get_transport(self.conf)"},{"line_number":87,"context_line":"            self.notif_proj[project_id] \u003d ("},{"line_number":88,"context_line":"                messaging.Notifier(transport,"},{"line_number":89,"context_line":"                                   \u0027maintenance.planned\u0027,"},{"line_number":90,"context_line":"                                   driver\u003d\u0027messaging\u0027,"},{"line_number":91,"context_line":"                                   topics\u003d[\u0027notifications\u0027]))"},{"line_number":92,"context_line":"            self.notif_proj[project_id] \u003d ("},{"line_number":93,"context_line":"                self.notif_proj[project_id].prepare(publisher_id\u003d\u0027fenix\u0027))"},{"line_number":94,"context_line":"        return db_api.create_projects(self.session_id, project_ids)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def convert(self, data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_64bd95d6","line":93,"range":{"start_line":85,"start_character":0,"end_line":93,"end_character":74},"updated":"2019-03-29 08:15:22.000000000","message":"some problems with alarms with multitenancy and thus made this separate for each project","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"63876359acff87c1cec157496cdde82a117537d5","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        LOG.info(\u0027%s:  init_projects: %s\u0027 % (self.session_id, project_ids))"},{"line_number":85,"context_line":"        for project_id in project_ids:"},{"line_number":86,"context_line":"            transport \u003d messaging.get_transport(self.conf)"},{"line_number":87,"context_line":"            self.notif_proj[project_id] \u003d ("},{"line_number":88,"context_line":"                messaging.Notifier(transport,"},{"line_number":89,"context_line":"                                   \u0027maintenance.planned\u0027,"},{"line_number":90,"context_line":"                                   driver\u003d\u0027messaging\u0027,"},{"line_number":91,"context_line":"                                   topics\u003d[\u0027notifications\u0027]))"},{"line_number":92,"context_line":"            self.notif_proj[project_id] \u003d ("},{"line_number":93,"context_line":"                self.notif_proj[project_id].prepare(publisher_id\u003d\u0027fenix\u0027))"},{"line_number":94,"context_line":"        return db_api.create_projects(self.session_id, project_ids)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def convert(self, data):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_d505627b","line":93,"range":{"start_line":87,"start_character":1,"end_line":93,"end_character":74},"in_reply_to":"5fc1f717_15ec4af2","updated":"2019-04-09 05:32:45.000000000","message":"I had problems getting all alarm trough and tried different things. It might really be this was not needed. At the end did not lose any events. I need to try without this still.","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9cb1bdd9f9659e63686500194bd4910c518060df","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        self.notif_proj[project_id].info({\u0027some\u0027: \u0027context\u0027},"},{"line_number":437,"context_line":"                                         \u0027maintenance.scheduled\u0027,"},{"line_number":438,"context_line":"                                         payload)"},{"line_number":439,"context_line":"        # TBD seems sending message quickly after other causes one to disappear"},{"line_number":440,"context_line":"        # time.sleep(2)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _admin_notify(self, project, host, state, session_id):"},{"line_number":443,"context_line":"        payload \u003d dict(project_id\u003dproject, host\u003dhost, state\u003dstate,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_44b659fb","line":440,"range":{"start_line":439,"start_character":0,"end_line":440,"end_character":23},"updated":"2019-03-29 08:15:22.000000000","message":"This can be removed","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"56bcf8a4ff5b20624cabd54893d7154eba86f853","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        self.notif_proj[project_id].info({\u0027some\u0027: \u0027context\u0027},"},{"line_number":437,"context_line":"                                         \u0027maintenance.scheduled\u0027,"},{"line_number":438,"context_line":"                                         payload)"},{"line_number":439,"context_line":"        # TBD seems sending message quickly after other causes one to disappear"},{"line_number":440,"context_line":"        # time.sleep(2)"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"    def _admin_notify(self, project, host, state, session_id):"},{"line_number":443,"context_line":"        payload \u003d dict(project_id\u003dproject, host\u003dhost, state\u003dstate,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_95d83a52","line":440,"range":{"start_line":439,"start_character":0,"end_line":440,"end_character":23},"in_reply_to":"5fc1f717_44b659fb","updated":"2019-04-09 04:59:47.000000000","message":"+1","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"}],"fenix/workflow/workflows/default.py":[{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9cb1bdd9f9659e63686500194bd4910c518060df","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def _init_hosts_by_services(self):"},{"line_number":63,"context_line":"        LOG.info(\"%s: Dicovering hosts by Nova services\" % self.session_id)"},{"line_number":64,"context_line":"        hosts \u003d []"},{"line_number":65,"context_line":"        contoller_host_names \u003d []"},{"line_number":66,"context_line":"        controllers \u003d self.nova.services.list(binary\u003d\u0027nova-conductor\u0027)"},{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_047a9122","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":33},"updated":"2019-03-29 08:15:22.000000000","message":"There might be more than one service instance on host, so do not handle twice","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"56bcf8a4ff5b20624cabd54893d7154eba86f853","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def _init_hosts_by_services(self):"},{"line_number":63,"context_line":"        LOG.info(\"%s: Dicovering hosts by Nova services\" % self.session_id)"},{"line_number":64,"context_line":"        hosts \u003d []"},{"line_number":65,"context_line":"        contoller_host_names \u003d []"},{"line_number":66,"context_line":"        controllers \u003d self.nova.services.list(binary\u003d\u0027nova-conductor\u0027)"},{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_d5bb22e2","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":17},"updated":"2019-04-09 04:59:47.000000000","message":"controller_hostnames","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"63876359acff87c1cec157496cdde82a117537d5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def _init_hosts_by_services(self):"},{"line_number":63,"context_line":"        LOG.info(\"%s: Dicovering hosts by Nova services\" % self.session_id)"},{"line_number":64,"context_line":"        hosts \u003d []"},{"line_number":65,"context_line":"        contoller_host_names \u003d []"},{"line_number":66,"context_line":"        controllers \u003d self.nova.services.list(binary\u003d\u0027nova-conductor\u0027)"},{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_95fb5a79","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":17},"in_reply_to":"5fc1f717_d5bb22e2","updated":"2019-04-09 05:32:45.000000000","message":"Thanks.","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"56bcf8a4ff5b20624cabd54893d7154eba86f853","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"},{"line_number":69,"context_line":"            service_host \u003d str(controller.__dict__.get(u\u0027host\u0027))"},{"line_number":70,"context_line":"            if service_host in contoller_host_names:"},{"line_number":71,"context_line":"                continue"},{"line_number":72,"context_line":"            host[\u0027hostname\u0027] \u003d service_host"},{"line_number":73,"context_line":"            contoller_host_names.append(service_host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_f5c09e52","line":70,"range":{"start_line":70,"start_character":31,"end_line":70,"end_character":51},"updated":"2019-04-09 04:59:47.000000000","message":"controller_hostnames","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"eece13229d8e18f7d724332a83742224e8f7570e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"},{"line_number":69,"context_line":"            service_host \u003d str(controller.__dict__.get(u\u0027host\u0027))"},{"line_number":70,"context_line":"            if service_host in contoller_host_names:"},{"line_number":71,"context_line":"                continue"},{"line_number":72,"context_line":"            host[\u0027hostname\u0027] \u003d service_host"},{"line_number":73,"context_line":"            contoller_host_names.append(service_host)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_7894a38b","line":70,"range":{"start_line":70,"start_character":31,"end_line":70,"end_character":51},"in_reply_to":"5fc1f717_f5c09e52","updated":"2019-04-09 08:12:29.000000000","message":"Done","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"56bcf8a4ff5b20624cabd54893d7154eba86f853","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            if service_host in contoller_host_names:"},{"line_number":71,"context_line":"                continue"},{"line_number":72,"context_line":"            host[\u0027hostname\u0027] \u003d service_host"},{"line_number":73,"context_line":"            contoller_host_names.append(service_host)"},{"line_number":74,"context_line":"            host[\u0027type\u0027] \u003d \u0027controller\u0027"},{"line_number":75,"context_line":"            if str(controller.__dict__.get(u\u0027status\u0027)) \u003d\u003d \u0027disabled\u0027:"},{"line_number":76,"context_line":"                LOG.error(\"%s: %s nova-conductor disabled before maintenance\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_95b11a04","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":32},"updated":"2019-04-09 04:59:47.000000000","message":"controller_hostnames","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"eece13229d8e18f7d724332a83742224e8f7570e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            if service_host in contoller_host_names:"},{"line_number":71,"context_line":"                continue"},{"line_number":72,"context_line":"            host[\u0027hostname\u0027] \u003d service_host"},{"line_number":73,"context_line":"            contoller_host_names.append(service_host)"},{"line_number":74,"context_line":"            host[\u0027type\u0027] \u003d \u0027controller\u0027"},{"line_number":75,"context_line":"            if str(controller.__dict__.get(u\u0027status\u0027)) \u003d\u003d \u0027disabled\u0027:"},{"line_number":76,"context_line":"                LOG.error(\"%s: %s nova-conductor disabled before maintenance\""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_188d5f7b","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":32},"in_reply_to":"5fc1f717_95b11a04","updated":"2019-04-09 08:12:29.000000000","message":"Done","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9cb1bdd9f9659e63686500194bd4910c518060df","unresolved":false,"context_lines":[{"line_number":610,"context_line":"                    if instance.state \u003d\u003d \u0027error\u0027:"},{"line_number":611,"context_line":"                        LOG.error(\u0027instance %s migration failed, state: %s\u0027"},{"line_number":612,"context_line":"                                  % (server_id, instance.state))"},{"line_number":613,"context_line":"                        instance.host \u003d host"},{"line_number":614,"context_line":"                        return False"},{"line_number":615,"context_line":"                    time.sleep(5)"},{"line_number":616,"context_line":"                    retries \u003d retries - 1"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_8493e14e","line":613,"range":{"start_line":613,"start_character":24,"end_line":613,"end_character":44},"updated":"2019-03-29 08:15:22.000000000","message":"instance.host needs to be consistent","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"9cb1bdd9f9659e63686500194bd4910c518060df","unresolved":false,"context_lines":[{"line_number":777,"context_line":"                # nova-compute service is disabled, so projects cannot have"},{"line_number":778,"context_line":"                # instances scheduled to not maintained hosts"},{"line_number":779,"context_line":"                self.disable_host_nova_compute(compute)"},{"line_number":780,"context_line":"            for host in self.get_controller_hosts():"},{"line_number":781,"context_line":"                LOG.info(\u0027IN_MAINTENANCE controller %s\u0027 % host)"},{"line_number":782,"context_line":"                self._admin_notify(self.conf.workflow_project, host,"},{"line_number":783,"context_line":"                                   \u0027IN_MAINTENANCE\u0027,"},{"line_number":784,"context_line":"                                   self.session_id)"},{"line_number":785,"context_line":"                self.host_maintenance(host)"},{"line_number":786,"context_line":"                self._admin_notify(self.conf.workflow_project, host,"},{"line_number":787,"context_line":"                                   \u0027MAINTENANCE_COMPLETE\u0027,"},{"line_number":788,"context_line":"                                   self.session_id)"},{"line_number":789,"context_line":"                LOG.info(\u0027MAINTENANCE_COMPLETE controller %s\u0027 % host)"},{"line_number":790,"context_line":"                self.host_maintained(host)"},{"line_number":791,"context_line":"            # First we maintain all empty hosts"},{"line_number":792,"context_line":"            for host in empty_hosts:"},{"line_number":793,"context_line":"                # TBD we wait host VCPUs to report right, but this is not"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_e4cc256b","line":790,"range":{"start_line":780,"start_character":12,"end_line":790,"end_character":42},"updated":"2019-03-29 08:15:22.000000000","message":"For now we do all controllers here. To minimize some downtime this might need to be more optimized later if the wisdom to minimize something like networking downtime cannot be put to action plugins","commit_id":"0c6183b8c19d365f8a299bb94a1c8beb3c74e502"},{"author":{"_account_id":27068,"name":"Trinh Nguyen","email":"dangtrinhnt@gmail.com","username":"dangtrinhnt"},"change_message_id":"06bbaa39da9e8d2fedfe167940c4ec2d2519ccec","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def _init_hosts_by_services(self):"},{"line_number":63,"context_line":"        LOG.info(\"%s: Dicovering hosts by Nova services\" % self.session_id)"},{"line_number":64,"context_line":"        hosts \u003d []"},{"line_number":65,"context_line":"        contoller_hostnames \u003d []"},{"line_number":66,"context_line":"        controllers \u003d self.nova.services.list(binary\u003d\u0027nova-conductor\u0027)"},{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_1f11db52","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":17},"updated":"2019-04-30 02:39:42.000000000","message":"I guess you want to keep it this way for the demo.","commit_id":"55d9de2b3829aa7ed448f7148ed7c57d09bf3e92"},{"author":{"_account_id":15834,"name":"Tomi Juvonen","email":"tomi.juvonen@nokia.com","username":"tojuvone"},"change_message_id":"e967f50e79ca404d01a40148c2c2300f7cf57397","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    def _init_hosts_by_services(self):"},{"line_number":63,"context_line":"        LOG.info(\"%s: Dicovering hosts by Nova services\" % self.session_id)"},{"line_number":64,"context_line":"        hosts \u003d []"},{"line_number":65,"context_line":"        contoller_hostnames \u003d []"},{"line_number":66,"context_line":"        controllers \u003d self.nova.services.list(binary\u003d\u0027nova-conductor\u0027)"},{"line_number":67,"context_line":"        for controller in controllers:"},{"line_number":68,"context_line":"            host \u003d {}"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_22e4b7df","line":65,"range":{"start_line":65,"start_character":8,"end_line":65,"end_character":17},"in_reply_to":"ffb9cba7_1f11db52","updated":"2019-04-30 20:58:44.000000000","message":"I could remove that \"controller\" from this.","commit_id":"55d9de2b3829aa7ed448f7148ed7c57d09bf3e92"}]}
