)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This extension gathers keylime agent information on the node. Ironic calls this API to grab the info and start attestation."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Story: 2002713"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Task: 42947"},{"line_number":14,"context_line":"Change-Id: I98f1c1ff03868fc610e6133419fade094d15e2f6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"16102dfb_7e418963","line":12,"updated":"2021-09-14 14:28:06.000000000","message":"nit: no need for a line here.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"}],"ironic_python_agent/extensions/attestation.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":27,"context_line":"        :returns: A dict contains ip, uuid, port"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        LOG.debug(\u0027Getting keylime agent information\u0027)"},{"line_number":30,"context_line":"        port \u003d \"9002\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"6b5f03ea_0ed0e863","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":21},"updated":"2021-09-14 14:28:06.000000000","message":"Is this an IETF issued port? If not, I suspect this may need to be configurable. Actually, it might need to be regardless.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":27,"context_line":"        :returns: A dict contains ip, uuid, port"},{"line_number":28,"context_line":"        \"\"\""},{"line_number":29,"context_line":"        LOG.debug(\u0027Getting keylime agent information\u0027)"},{"line_number":30,"context_line":"        port \u003d \"9002\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"462e56b5_309952e0","line":30,"range":{"start_line":30,"start_character":0,"end_line":30,"end_character":21},"in_reply_to":"6b5f03ea_0ed0e863","updated":"2021-09-15 17:06:45.000000000","message":"It\u0027s configurable. I suppose it\u0027s better to read the port from keylime.conf.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f838b05eecc6df5bad7f88a0c4353fb657221762","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        port \u003d \"9002\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"},{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"4f7792eb_4dcd2dee","line":33,"updated":"2021-09-14 14:26:39.000000000","message":"Is using journalctl the best way to figure out the information about the keylime-agent? Just wondering","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        port \u003d \"9002\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"},{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"40faceb4_64700f33","line":33,"updated":"2021-09-14 14:28:06.000000000","message":"note: this should raise an exception on any non-zero return code.\n\nAlso, is there not any other way to get this information? Using journalctl architecturally ties this to linux+systemd.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        port \u003d \"9002\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"},{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ea00b1b_70917d37","line":33,"in_reply_to":"40faceb4_64700f33","updated":"2021-09-15 17:06:45.000000000","message":"ACK. Same as the answer below.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":30,"context_line":"        port \u003d \"9002\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"},{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"}],"source_content_type":"text/x-python","patch_set":3,"id":"2e04cc94_51ec64bd","line":33,"in_reply_to":"4f7792eb_4dcd2dee","updated":"2021-09-15 17:06:45.000000000","message":"Currently, the agent uuid is set to randomly generated. So we can only figure out the uuid from the log file. But it\u0027s not the best way and may not be stable. I\u0027m updating a patch that uses the hash of TPM EK as keylime-agent uuid so we don\u0027t rely on keylime-agent to boot in order to get uuid.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"},{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"},{"line_number":37,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":3,"id":"d3812a2f_57ed172e","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":26},"updated":"2021-09-14 14:28:06.000000000","message":"Lets only log stderr if there has been a failure.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        try:"},{"line_number":33,"context_line":"            out, _err \u003d utils.execute(\u0027journalctl\u0027, \u0027-u\u0027, \u0027keylime-agent\u0027)"},{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"},{"line_number":37,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":3,"id":"5e128868_80c4cb72","line":34,"range":{"start_line":34,"start_character":0,"end_line":34,"end_character":26},"in_reply_to":"d3812a2f_57ed172e","updated":"2021-09-15 17:06:45.000000000","message":"Ack","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"},{"line_number":37,"context_line":"            return"},{"line_number":38,"context_line":"        # get the keylime-agent uuid from agent log"},{"line_number":39,"context_line":"        uuid \u003d \u0027\u0027"},{"line_number":40,"context_line":"        out \u003d out.splitlines()"}],"source_content_type":"text/x-python","patch_set":3,"id":"f8809503_0a956c55","line":37,"updated":"2021-09-14 14:28:06.000000000","message":"The API client should be exposed to a failure, not success with the return of None on this line.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            LOG.info(_err)"},{"line_number":35,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":36,"context_line":"            LOG.error(\u0027Getting keylime agent log failed with error: %s\u0027, e)"},{"line_number":37,"context_line":"            return"},{"line_number":38,"context_line":"        # get the keylime-agent uuid from agent log"},{"line_number":39,"context_line":"        uuid \u003d \u0027\u0027"},{"line_number":40,"context_line":"        out \u003d out.splitlines()"}],"source_content_type":"text/x-python","patch_set":3,"id":"feedde66_7cf7fd27","line":37,"in_reply_to":"f8809503_0a956c55","updated":"2021-09-15 17:06:45.000000000","message":"Ack","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        uuid \u003d \u0027\u0027"},{"line_number":40,"context_line":"        out \u003d out.splitlines()"},{"line_number":41,"context_line":"        for line in out:"},{"line_number":42,"context_line":"            if \u0027Agent UUID:\u0027 in line:"},{"line_number":43,"context_line":"                uuid \u003d line.split(\":\")[-1].strip()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # get the node ip address"},{"line_number":46,"context_line":"        if self.agent.advertise_address is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"242c1f50_0162eeb1","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":50},"updated":"2021-09-14 14:28:06.000000000","message":"eek, is this stable?","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        uuid \u003d \u0027\u0027"},{"line_number":40,"context_line":"        out \u003d out.splitlines()"},{"line_number":41,"context_line":"        for line in out:"},{"line_number":42,"context_line":"            if \u0027Agent UUID:\u0027 in line:"},{"line_number":43,"context_line":"                uuid \u003d line.split(\":\")[-1].strip()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # get the node ip address"},{"line_number":46,"context_line":"        if self.agent.advertise_address is None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"f476d3fd_b539ab13","line":43,"range":{"start_line":42,"start_character":0,"end_line":43,"end_character":50},"in_reply_to":"242c1f50_0162eeb1","updated":"2021-09-15 17:06:45.000000000","message":"I guess there will be some format changes and mess this up. I\u0027ll remove this part and get the keylime-uuid from TPM EK.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":45,"context_line":"        # get the node ip address"},{"line_number":46,"context_line":"        if self.agent.advertise_address is None:"},{"line_number":47,"context_line":"            self.agent.set_agent_advertise_addr()"},{"line_number":48,"context_line":"        ip \u003d self.agent.advertise_address.hostname"},{"line_number":49,"context_line":"        LOG.debug(\u0027{\"keylime_agent_uuid\": %s, \"keylime_agent_ip\": %s, \\"},{"line_number":50,"context_line":"            \"keylime_agent_port\": %s}\u0027, uuid, ip, port)"},{"line_number":51,"context_line":"        return {\"keylime_agent_uuid\": uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fdab19bc_ba5e21ae","line":48,"updated":"2021-09-14 14:28:06.000000000","message":"is the assumption keylime is paired with the conductor?\n\nThis, if memory serves is the current address of the agent itself which is advertised to Ironic.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":45,"context_line":"        # get the node ip address"},{"line_number":46,"context_line":"        if self.agent.advertise_address is None:"},{"line_number":47,"context_line":"            self.agent.set_agent_advertise_addr()"},{"line_number":48,"context_line":"        ip \u003d self.agent.advertise_address.hostname"},{"line_number":49,"context_line":"        LOG.debug(\u0027{\"keylime_agent_uuid\": %s, \"keylime_agent_ip\": %s, \\"},{"line_number":50,"context_line":"            \"keylime_agent_port\": %s}\u0027, uuid, ip, port)"},{"line_number":51,"context_line":"        return {\"keylime_agent_uuid\": uuid,"}],"source_content_type":"text/x-python","patch_set":3,"id":"2ff64145_97f9767e","line":48,"updated":"2021-09-15 17:06:45.000000000","message":"keylime verifier/registrar is paired with ironic conductor. I\u0027m sending the node\u0027s ip to ironic to trigger keylime-tenant calls.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":48,"context_line":"        ip \u003d self.agent.advertise_address.hostname"},{"line_number":49,"context_line":"        LOG.debug(\u0027{\"keylime_agent_uuid\": %s, \"keylime_agent_ip\": %s, \\"},{"line_number":50,"context_line":"            \"keylime_agent_port\": %s}\u0027, uuid, ip, port)"},{"line_number":51,"context_line":"        return {\"keylime_agent_uuid\": uuid,"},{"line_number":52,"context_line":"                \"keylime_agent_ip\": ip,"},{"line_number":53,"context_line":"                \"keylime_agent_port\": port}"}],"source_content_type":"text/x-python","patch_set":3,"id":"0176a0a0_f74dbd57","line":51,"updated":"2021-09-14 14:28:06.000000000","message":"What happens if we can\u0027t supply all of these values? Do we fail? seems like we can\u0027t return a completed data structure.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":48,"context_line":"        ip \u003d self.agent.advertise_address.hostname"},{"line_number":49,"context_line":"        LOG.debug(\u0027{\"keylime_agent_uuid\": %s, \"keylime_agent_ip\": %s, \\"},{"line_number":50,"context_line":"            \"keylime_agent_port\": %s}\u0027, uuid, ip, port)"},{"line_number":51,"context_line":"        return {\"keylime_agent_uuid\": uuid,"},{"line_number":52,"context_line":"                \"keylime_agent_ip\": ip,"},{"line_number":53,"context_line":"                \"keylime_agent_port\": port}"}],"source_content_type":"text/x-python","patch_set":3,"id":"cb34702f_77208d08","line":51,"in_reply_to":"0176a0a0_f74dbd57","updated":"2021-09-15 17:06:45.000000000","message":"Failing the cleaning makes sense. I\u0027ll check if any of these values is none before return.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            \"keylime_agent_port\": %s}\u0027, uuid, ip, port)"},{"line_number":51,"context_line":"        return {\"keylime_agent_uuid\": uuid,"},{"line_number":52,"context_line":"                \"keylime_agent_ip\": ip,"},{"line_number":53,"context_line":"                \"keylime_agent_port\": port}"}],"source_content_type":"text/x-python","patch_set":3,"id":"66460514_c229c404","line":53,"updated":"2021-09-14 14:28:06.000000000","message":"Is it not necessary to have an API to force the agent to attempt to attest?","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":32617,"name":"Danni Shi","email":"sdanni@redhat.com","username":"sdanni"},"change_message_id":"dc88a911f9fcba7dbbeb9edbd7fb87a58e80d8f3","unresolved":true,"context_lines":[{"line_number":50,"context_line":"            \"keylime_agent_port\": %s}\u0027, uuid, ip, port)"},{"line_number":51,"context_line":"        return {\"keylime_agent_uuid\": uuid,"},{"line_number":52,"context_line":"                \"keylime_agent_ip\": ip,"},{"line_number":53,"context_line":"                \"keylime_agent_port\": port}"}],"source_content_type":"text/x-python","patch_set":3,"id":"6328b226_25ac1ec2","line":53,"in_reply_to":"66460514_c229c404","updated":"2021-09-15 17:06:45.000000000","message":"The APIs to tell the agent to attest are entirely done from keylime-tenant on Ironic conductor side.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"}],"ironic_python_agent/tests/unit/extensions/test_attestation.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[{"line_number":28,"context_line":"    @mock.patch.object(utils, \u0027execute\u0027, autospec\u003dTrue)"},{"line_number":29,"context_line":"    def test_get_keylime_info(self, mock_execute):"},{"line_number":30,"context_line":"        self.mock_agent.advertise_address \u003d agent.Host(\u0027127.0.0.1\u0027, 9990)"},{"line_number":31,"context_line":"        content \u003d \u0027Agent UUID: uuid\u0027"},{"line_number":32,"context_line":"        mock_execute.return_value \u003d (content, None)"},{"line_number":33,"context_line":"        expected_result \u003d {\u0027keylime_agent_uuid\u0027: \u0027uuid\u0027,"},{"line_number":34,"context_line":"                           \u0027keylime_agent_ip\u0027: \u0027127.0.0.1\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"780782a6_451a7f17","line":31,"range":{"start_line":31,"start_character":0,"end_line":31,"end_character":36},"updated":"2021-09-14 14:28:06.000000000","message":"Could we get more realistic test data, perhaps a multi-line string?","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"f838b05eecc6df5bad7f88a0c4353fb657221762","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b59bae44_8823545d","line":43,"updated":"2021-09-14 14:26:39.000000000","message":"Can you also add a test that will show failures that can occur when the information is requested in get_keylime_info?","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"164eb2eb2d643467d7bce6fe22fc3e620cb8b3a8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"61a4aaaf_e60473c2","line":43,"updated":"2021-09-14 14:28:06.000000000","message":"Could we get a test if journalctl is not present?\n\nAlso, we should have a test of if the string is not found.","commit_id":"d3ce9494431a01fabc376c2418d7fe905566bfc5"}]}
