)]}'
{"openstack_dashboard/dashboards/project/key_pairs/urls.py":[{"author":{"_account_id":14151,"name":"ziyu032","email":"chen.qiaomin@99cloud.net","username":"ziyu032"},"change_message_id":"1c85b1b9c2d734bb4fd41cf14c0e3c6ebb6c0ddc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from horizon.browsers import views"},{"line_number":24,"context_line":"from openstack_dashboard.dashboards.project.key_pairs import views as legacy"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"if settings.ANGULAR_FEATURES.get(\u0027key_pairs_panel\u0027):"},{"line_number":27,"context_line":"    title \u003d _(\"Key Pairs\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_f0a8ae8c","line":24,"range":{"start_line":24,"start_character":70,"end_line":24,"end_character":76},"updated":"2017-07-05 04:16:50.000000000","message":"legacy_views","commit_id":"3ce0ba3476a8327d77fa5721b2e80cb96fea91e7"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"870b1e5d2ac47f038c7fcfbd47e83efe04cb6c74","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from horizon.browsers import views"},{"line_number":24,"context_line":"from openstack_dashboard.dashboards.project.key_pairs import views as legacy"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"if settings.ANGULAR_FEATURES.get(\u0027key_pairs_panel\u0027):"},{"line_number":27,"context_line":"    title \u003d _(\"Key Pairs\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_b126b514","line":24,"range":{"start_line":24,"start_character":70,"end_line":24,"end_character":76},"in_reply_to":"3f1d235d_f0a8ae8c","updated":"2017-07-05 07:58:53.000000000","message":"Done","commit_id":"3ce0ba3476a8327d77fa5721b2e80cb96fea91e7"}],"openstack_dashboard/local/local_settings.d/_11_toggle_angular_features.py.example":[{"author":{"_account_id":11885,"name":"Ying Zuo","email":"yingzuo4@gmail.com","username":"yingzuo"},"change_message_id":"b0b0dd2f206302c44483a5b1590b55953627e9ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9f436f4f_95d55246","updated":"2017-08-18 03:47:22.000000000","message":"This file should be an example to override the default settings. I think you want to add the one for key_pairs and set it as True as you mention in the commit message but there\u0027s really no need to add the whole list with the same value as the default.","commit_id":"d9f0685dc1b2db5b2c3d844f2da65edebc4e3cec"}],"openstack_dashboard/static/app/core/keypairs/_keypairs.scss":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"5b7533eeae3eff9e660c664cc574240ba5896e7b","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      width: calc(100vw - 281px);"},{"line_number":7,"context_line":"    }"},{"line_number":8,"context_line":"  }"},{"line_number":9,"context_line":"}"}],"source_content_type":"text/x-scss","patch_set":10,"id":"7f287b81_92616ed6","line":9,"updated":"2017-08-28 07:30:59.000000000","message":"This needs to be handled better. We do not allow pixel specific handling as it cannot be themed and rarely scales well.","commit_id":"4982dc3cdaa94dfb1960207656ec20fe60d84388"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"7bf02bfa66c0514517c0dace66db01ab0cd4ae9c","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      width: calc(100vw - 281px);"},{"line_number":7,"context_line":"    }"},{"line_number":8,"context_line":"  }"},{"line_number":9,"context_line":"}"}],"source_content_type":"text/x-scss","patch_set":10,"id":"7f287b81_92aa8e6e","line":9,"in_reply_to":"7f287b81_92616ed6","updated":"2017-08-28 10:22:44.000000000","message":"Done. Use constant variables.","commit_id":"4982dc3cdaa94dfb1960207656ec20fe60d84388"}],"openstack_dashboard/static/app/core/keypairs/keypairs.module.js":[{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"f333615fce303918568db2888ee5c1fb00031077","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    .setNames(gettext(\u0027Key Pair\u0027), gettext(\u0027Key Pairs\u0027))"},{"line_number":49,"context_line":"    // for detail summary view on table row."},{"line_number":50,"context_line":"    .setSummaryTemplateUrl(basePath + \u0027summary.html\u0027)"},{"line_number":51,"context_line":"    // for table row items and detail summary view."},{"line_number":52,"context_line":"    .setProperties(keypairProperties())"},{"line_number":53,"context_line":"    .setListFunction(keypairsService.getKeypairsPromise)"},{"line_number":54,"context_line":"    .tableColumns"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_a4c9f2ac","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":51},"updated":"2017-07-04 09:43:22.000000000","message":"?","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"0b366bb9f639a77162469602f4ab868617fd8f7f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    .setNames(gettext(\u0027Key Pair\u0027), gettext(\u0027Key Pairs\u0027))"},{"line_number":49,"context_line":"    // for detail summary view on table row."},{"line_number":50,"context_line":"    .setSummaryTemplateUrl(basePath + \u0027summary.html\u0027)"},{"line_number":51,"context_line":"    // for table row items and detail summary view."},{"line_number":52,"context_line":"    .setProperties(keypairProperties())"},{"line_number":53,"context_line":"    .setListFunction(keypairsService.getKeypairsPromise)"},{"line_number":54,"context_line":"    .tableColumns"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_2a4eb996","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":51},"in_reply_to":"3f1d235d_a4c9f2ac","updated":"2017-07-05 03:01:34.000000000","message":"removed","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"f333615fce303918568db2888ee5c1fb00031077","unresolved":false,"context_lines":[{"line_number":56,"context_line":"      id: \u0027name\u0027,"},{"line_number":57,"context_line":"      priority: 1,"},{"line_number":58,"context_line":"      sortDefault: true,"},{"line_number":59,"context_line":"      filters: [\u0027noName\u0027]"},{"line_number":60,"context_line":"    })"},{"line_number":61,"context_line":"    .append({"},{"line_number":62,"context_line":"      id: \u0027fingerprint\u0027,"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_246162d4","line":59,"range":{"start_line":59,"start_character":6,"end_line":59,"end_character":25},"updated":"2017-07-04 09:43:22.000000000","message":"duplicated with keypairProperties()?","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"0b366bb9f639a77162469602f4ab868617fd8f7f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"      id: \u0027name\u0027,"},{"line_number":57,"context_line":"      priority: 1,"},{"line_number":58,"context_line":"      sortDefault: true,"},{"line_number":59,"context_line":"      filters: [\u0027noName\u0027]"},{"line_number":60,"context_line":"    })"},{"line_number":61,"context_line":"    .append({"},{"line_number":62,"context_line":"      id: \u0027fingerprint\u0027,"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_ea43216b","line":59,"range":{"start_line":59,"start_character":6,"end_line":59,"end_character":25},"in_reply_to":"3f1d235d_246162d4","updated":"2017-07-05 03:01:34.000000000","message":"yes, removed","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"f333615fce303918568db2888ee5c1fb00031077","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    });"},{"line_number":65,"context_line":"    // for magic-search"},{"line_number":66,"context_line":"    registry.getResourceType(resourceType).filterFacets"},{"line_number":67,"context_line":"    .append({"},{"line_number":68,"context_line":"      \u0027label\u0027: gettext(\u0027Name\u0027),"},{"line_number":69,"context_line":"      \u0027name\u0027: \u0027name\u0027,"},{"line_number":70,"context_line":"      \u0027singleton\u0027: true"},{"line_number":71,"context_line":"    });"},{"line_number":72,"context_line":"  }"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  function keypairProperties() {"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_84595636","line":71,"range":{"start_line":67,"start_character":4,"end_line":71,"end_character":7},"updated":"2017-07-04 09:43:22.000000000","message":"two space indent","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"0b366bb9f639a77162469602f4ab868617fd8f7f","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    });"},{"line_number":65,"context_line":"    // for magic-search"},{"line_number":66,"context_line":"    registry.getResourceType(resourceType).filterFacets"},{"line_number":67,"context_line":"    .append({"},{"line_number":68,"context_line":"      \u0027label\u0027: gettext(\u0027Name\u0027),"},{"line_number":69,"context_line":"      \u0027name\u0027: \u0027name\u0027,"},{"line_number":70,"context_line":"      \u0027singleton\u0027: true"},{"line_number":71,"context_line":"    });"},{"line_number":72,"context_line":"  }"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"  function keypairProperties() {"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_aa61a907","line":71,"range":{"start_line":67,"start_character":4,"end_line":71,"end_character":7},"in_reply_to":"3f1d235d_84595636","updated":"2017-07-05 03:01:34.000000000","message":"Done","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":11880,"name":"Gloria Gu","email":"gloriafanggu@gmail.com","username":"gugl"},"change_message_id":"a9ff282729ac28cffab786f68538ad147d329815","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    registry.getResourceType(resourceType)"},{"line_number":48,"context_line":"      .setNames(gettext(\u0027Key Pair\u0027), gettext(\u0027Key Pairs\u0027))"},{"line_number":49,"context_line":"      // for detail summary view on table row."},{"line_number":50,"context_line":"      .setSummaryTemplateUrl(basePath + \u0027summary.html\u0027)"},{"line_number":51,"context_line":"      .setProperties(keypairProperties())"},{"line_number":52,"context_line":"      .setListFunction(keypairsService.getKeypairsPromise)"},{"line_number":53,"context_line":"      .tableColumns"}],"source_content_type":"text/javascript","patch_set":4,"id":"3f1d235d_7f21639f","line":50,"range":{"start_line":50,"start_character":53,"end_line":50,"end_character":55},"updated":"2017-07-10 20:39:34.000000000","message":"@Shu, it seems to me that the pattern for the summary.html or detail/drawer.html is not consistent through out the horizon. Not sure what should be used. If you have checked...it is great...if not please double check with core folks.","commit_id":"2d8786fcb6bb09e1ff2b5e26e290a0a66805e7e7"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"76a29500a9bba8e7f550fe848eb1ee66bc47e881","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    registry.getResourceType(resourceType)"},{"line_number":48,"context_line":"      .setNames(gettext(\u0027Key Pair\u0027), gettext(\u0027Key Pairs\u0027))"},{"line_number":49,"context_line":"      // for detail summary view on table row."},{"line_number":50,"context_line":"      .setSummaryTemplateUrl(basePath + \u0027summary.html\u0027)"},{"line_number":51,"context_line":"      .setProperties(keypairProperties())"},{"line_number":52,"context_line":"      .setListFunction(keypairsService.getKeypairsPromise)"},{"line_number":53,"context_line":"      .tableColumns"}],"source_content_type":"text/javascript","patch_set":4,"id":"3f1d235d_663e772a","line":50,"range":{"start_line":50,"start_character":53,"end_line":50,"end_character":55},"in_reply_to":"3f1d235d_7f21639f","updated":"2017-07-11 04:32:34.000000000","message":"I\u0027m not sure which is better \u0027summary\u0027 or \u0027drawer\u0027. But in \u0027app.core\u0027, \u0027summary\u0027 seems to be major, so I used \u0027summary\u0027. However, I know that \u0027drawer\u0027 is used in several plugins and \u0027identity\u0027 dashboard. So I will change to \u0027drawer\u0027.","commit_id":"2d8786fcb6bb09e1ff2b5e26e290a0a66805e7e7"},{"author":{"_account_id":11885,"name":"Ying Zuo","email":"yingzuo4@gmail.com","username":"yingzuo"},"change_message_id":"b0b0dd2f206302c44483a5b1590b55953627e9ee","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    return {"},{"line_number":75,"context_line":"      \u0027id\u0027: {label: gettext(\u0027ID\u0027), filters: [\u0027noValue\u0027] },"},{"line_number":76,"context_line":"      \u0027name\u0027: {label: gettext(\u0027Name\u0027), filters: [\u0027noName\u0027] },"},{"line_number":77,"context_line":"      \u0027fingerprint\u0027: {label: gettext(\u0027Finger print\u0027), filters: [\u0027noValue\u0027] },"},{"line_number":78,"context_line":"      \u0027created_at\u0027: {label: gettext(\u0027Created\u0027), filters: [\u0027simpleDate\u0027] },"},{"line_number":79,"context_line":"      \u0027user_id\u0027: {label: gettext(\u0027User ID\u0027), filters: [\u0027noValue\u0027] },"},{"line_number":80,"context_line":"      \u0027public_key\u0027: {label: gettext(\u0027Public Key\u0027), filters: [\u0027noValue\u0027] }"}],"source_content_type":"text/javascript","patch_set":7,"id":"9f436f4f_953af295","line":77,"updated":"2017-08-18 03:47:22.000000000","message":"The label should be \u0027Fingerprint\u0027.","commit_id":"d9f0685dc1b2db5b2c3d844f2da65edebc4e3cec"}],"openstack_dashboard/static/app/core/keypairs/keypairs.module.spec.js":[{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"5b7533eeae3eff9e660c664cc574240ba5896e7b","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      expect(names).toContain(\u0027name\u0027);"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"      function getName(x) {"},{"line_number":43,"context_line":"        // underscore.js and .pluck() would be great here."},{"line_number":44,"context_line":"        return x.name;"},{"line_number":45,"context_line":"      }"},{"line_number":46,"context_line":"    });"}],"source_content_type":"text/javascript","patch_set":10,"id":"7f287b81_529d46ba","line":43,"updated":"2017-08-28 07:30:59.000000000","message":"??? This comment needs to be removed.","commit_id":"4982dc3cdaa94dfb1960207656ec20fe60d84388"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"7bf02bfa66c0514517c0dace66db01ab0cd4ae9c","unresolved":false,"context_lines":[{"line_number":40,"context_line":"      expect(names).toContain(\u0027name\u0027);"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"      function getName(x) {"},{"line_number":43,"context_line":"        // underscore.js and .pluck() would be great here."},{"line_number":44,"context_line":"        return x.name;"},{"line_number":45,"context_line":"      }"},{"line_number":46,"context_line":"    });"}],"source_content_type":"text/javascript","patch_set":10,"id":"7f287b81_7272824b","line":43,"in_reply_to":"7f287b81_529d46ba","updated":"2017-08-28 10:22:44.000000000","message":"Done","commit_id":"4982dc3cdaa94dfb1960207656ec20fe60d84388"}],"openstack_dashboard/static/app/core/keypairs/keypairs.service.js":[{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"f333615fce303918568db2888ee5c1fb00031077","unresolved":false,"context_lines":[{"line_number":49,"context_line":"      * called \u0027trackBy\u0027 to assist the display mechanism when updating rows."},{"line_number":50,"context_line":"      */"},{"line_number":51,"context_line":"    function getKeypairsPromise(params) {"},{"line_number":52,"context_line":"      return userSession.get().then(getKeypairs);"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"      function getKeypairs() {"},{"line_number":55,"context_line":"        return nova.getKeypairs(params).then(modifyResponse);"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_a457b2ca","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":30},"updated":"2017-07-04 09:43:22.000000000","message":"remove","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"0b366bb9f639a77162469602f4ab868617fd8f7f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"      * called \u0027trackBy\u0027 to assist the display mechanism when updating rows."},{"line_number":50,"context_line":"      */"},{"line_number":51,"context_line":"    function getKeypairsPromise(params) {"},{"line_number":52,"context_line":"      return userSession.get().then(getKeypairs);"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"      function getKeypairs() {"},{"line_number":55,"context_line":"        return nova.getKeypairs(params).then(modifyResponse);"}],"source_content_type":"text/javascript","patch_set":1,"id":"3f1d235d_ca3d05de","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":30},"in_reply_to":"3f1d235d_a457b2ca","updated":"2017-07-05 03:01:34.000000000","message":"Done","commit_id":"22b95ed660f00769af325e6e7f4210000e2b335c"},{"author":{"_account_id":12826,"name":"Rob Cresswell","display_name":"robcresswell","email":"robert.cresswell@outlook.com","username":"rob-cresswell"},"change_message_id":"5b7533eeae3eff9e660c664cc574240ba5896e7b","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        function modifyItems(item) {"},{"line_number":57,"context_line":"          item \u003d item.keypair;"},{"line_number":58,"context_line":"          item.trackBy \u003d item.name;"},{"line_number":59,"context_line":"          return item;"},{"line_number":60,"context_line":"        }"},{"line_number":61,"context_line":"      }"}],"source_content_type":"text/javascript","patch_set":10,"id":"7f287b81_928f2e74","line":58,"updated":"2017-08-28 07:30:59.000000000","message":"ID would probably be a safer value to track by, no? Are keypair names always unique?","commit_id":"4982dc3cdaa94dfb1960207656ec20fe60d84388"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"7bf02bfa66c0514517c0dace66db01ab0cd4ae9c","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        function modifyItems(item) {"},{"line_number":57,"context_line":"          item \u003d item.keypair;"},{"line_number":58,"context_line":"          item.trackBy \u003d item.name;"},{"line_number":59,"context_line":"          return item;"},{"line_number":60,"context_line":"        }"},{"line_number":61,"context_line":"      }"}],"source_content_type":"text/javascript","patch_set":10,"id":"7f287b81_521666aa","line":58,"in_reply_to":"7f287b81_928f2e74","updated":"2017-08-28 10:22:44.000000000","message":"Yes, `name` is always unique. If we try to create keypair with existing name, API returns Conflict (409 HTTP) error. Also keypair list API does not return ID for each keypair.","commit_id":"4982dc3cdaa94dfb1960207656ec20fe60d84388"}],"openstack_dashboard/static/app/core/keypairs/panel.html":[{"author":{"_account_id":6763,"name":"jingliuqing","email":"jing.liuqing@99cloud.net","username":"jing"},"change_message_id":"5ca3532618bfa0d51f3df2f9d2205574a672ebe3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003chz-resource-panel resource-type-name\u003d\"OS::Nova::Keypair\"\u003e"},{"line_number":2,"context_line":"  \u003chz-resource-table resource-type-name\u003d\"OS::Nova::Keypair\""},{"line_number":3,"context_line":"                     track-by\u003d\"trackBy\"\u003e\u003c/hz-resource-table\u003e"},{"line_number":4,"context_line":"\u003c/hz-resource-panel\u003e"}],"source_content_type":"text/html","patch_set":5,"id":"3f1d235d_a66c8f08","line":3,"range":{"start_line":2,"start_character":2,"end_line":3,"end_character":60},"updated":"2017-07-11 04:42:15.000000000","message":"\u003chz-resource-table resource-type-name\u003d\"OS::Nova::Keypair\"\n                     track-by\u003d\"trackBy\"\u003e\n\u003c/hz-resource-table\u003e\n\nmore readable html","commit_id":"13872be601ca0ebf85263d1ceca64b1204b56c49"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"6cc4d208e9bfaea4b2df1262f20a0ec7cbd85b69","unresolved":false,"context_lines":[{"line_number":1,"context_line":"\u003chz-resource-panel resource-type-name\u003d\"OS::Nova::Keypair\"\u003e"},{"line_number":2,"context_line":"  \u003chz-resource-table resource-type-name\u003d\"OS::Nova::Keypair\""},{"line_number":3,"context_line":"                     track-by\u003d\"trackBy\"\u003e\u003c/hz-resource-table\u003e"},{"line_number":4,"context_line":"\u003c/hz-resource-panel\u003e"}],"source_content_type":"text/html","patch_set":5,"id":"1f1a1f67_8ff6925c","line":3,"range":{"start_line":2,"start_character":2,"end_line":3,"end_character":60},"in_reply_to":"3f1d235d_a66c8f08","updated":"2017-07-20 03:03:54.000000000","message":"Done","commit_id":"13872be601ca0ebf85263d1ceca64b1204b56c49"}],"releasenotes/notes/bp-ng-keypairs-876c38a1a8aed60f.yaml":[{"author":{"_account_id":14151,"name":"ziyu032","email":"chen.qiaomin@99cloud.net","username":"ziyu032"},"change_message_id":"1c85b1b9c2d734bb4fd41cf14c0e3c6ebb6c0ddc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The Key Pairs panel allows users to view a list of created key pairs."},{"line_number":4,"context_line":"    This panel displays a table view of the name, fingerprint, user id"},{"line_number":5,"context_line":"    and created date of each key pair."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f1d235d_2ba35bb4","line":5,"range":{"start_line":4,"start_character":43,"end_line":5,"end_character":21},"updated":"2017-07-05 04:16:50.000000000","message":"The table only show name and fingerprint of the keypair.","commit_id":"3ce0ba3476a8327d77fa5721b2e80cb96fea91e7"},{"author":{"_account_id":16352,"name":"Shu Muto","email":"shu.mutow@gmail.com","username":"shu.mutow"},"change_message_id":"870b1e5d2ac47f038c7fcfbd47e83efe04cb6c74","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The Key Pairs panel allows users to view a list of created key pairs."},{"line_number":4,"context_line":"    This panel displays a table view of the name, fingerprint, user id"},{"line_number":5,"context_line":"    and created date of each key pair."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f1d235d_d1a491a8","line":5,"range":{"start_line":4,"start_character":43,"end_line":5,"end_character":21},"in_reply_to":"3f1d235d_2ba35bb4","updated":"2017-07-05 07:58:53.000000000","message":"Done","commit_id":"3ce0ba3476a8327d77fa5721b2e80cb96fea91e7"},{"author":{"_account_id":11885,"name":"Ying Zuo","email":"yingzuo4@gmail.com","username":"yingzuo"},"change_message_id":"8a3276a8ed051fa36163d18692aa9008a32991a6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - The Key Pairs panel allows users to view a list of created key pairs."},{"line_number":4,"context_line":"    This panel displays a table view of the name and fingerprint of each"},{"line_number":5,"context_line":"    key pair. Also, public key is shown in expanded row."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f287b81_3e99951e","line":3,"updated":"2017-08-25 04:05:07.000000000","message":"Can you mention this is for adding the Angular key pairs panel and the link to the blueprint?","commit_id":"6d937841fc0722dc2769961c6b16c1e9aeba2cdc"}]}
