)]}'
{"etc/trove/trove-guestagent.conf.sample":[{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"e121a638f66a4234199e26bd972c4c28d11bc706","unresolved":false,"context_lines":[{"line_number":32,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# To fetch from Keystone, comment out swift_url, and uncomment the others."},{"line_number":35,"context_line":"#swift_url \u003d http://10.254.4.151:7480/auth/1.0"},{"line_number":36,"context_line":"#storage_strategy \u003d \"CephStorage\""},{"line_number":37,"context_line":"#storage_namespace \u003d \"trove.common.strategies.storage.ceph\""},{"line_number":38,"context_line":"#backup_swift_container \u003d \"database_backups\""},{"line_number":39,"context_line":"#ceph_user \u003d \"trove:swift\""},{"line_number":40,"context_line":"#ceph_key \u003d \"tyPSBOLyVhHRIQTkiiwMT8iUTeG82Cc1ppTC3b8F\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Datastore Manager Configurations \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9f91af0f_2f5ce77c","line":40,"range":{"start_line":35,"start_character":0,"end_line":40,"end_character":54},"updated":"2018-01-04 10:10:44.000000000","message":"Looks like you have put your env url and key here.","commit_id":"e91dc917ade89d1400234f16c3c8d5f75e8c8208"},{"author":{"_account_id":26472,"name":"wangjun","email":"wangjun@yovole.com","username":"j.wong"},"change_message_id":"c283ea98d67934eda528a616ea0775d942c224ee","unresolved":false,"context_lines":[{"line_number":32,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"# To fetch from Keystone, comment out swift_url, and uncomment the others."},{"line_number":35,"context_line":"#swift_url \u003d http://10.254.4.151:7480/auth/1.0"},{"line_number":36,"context_line":"#storage_strategy \u003d \"CephStorage\""},{"line_number":37,"context_line":"#storage_namespace \u003d \"trove.common.strategies.storage.ceph\""},{"line_number":38,"context_line":"#backup_swift_container \u003d \"database_backups\""},{"line_number":39,"context_line":"#ceph_user \u003d \"trove:swift\""},{"line_number":40,"context_line":"#ceph_key \u003d \"tyPSBOLyVhHRIQTkiiwMT8iUTeG82Cc1ppTC3b8F\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Datastore Manager Configurations \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":43,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9f91af0f_28f7ebf7","line":40,"range":{"start_line":35,"start_character":0,"end_line":40,"end_character":54},"in_reply_to":"9f91af0f_2f5ce77c","updated":"2018-01-05 02:39:06.000000000","message":"yeah,just test env.","commit_id":"e91dc917ade89d1400234f16c3c8d5f75e8c8208"}],"etc/trove/trove-taskmanager.conf.sample":[{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"e121a638f66a4234199e26bd972c4c28d11bc706","unresolved":false,"context_lines":[{"line_number":126,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# To fetch from Keystone, comment out swift_url, and uncomment the others."},{"line_number":129,"context_line":"#swift_url \u003d http://10.254.4.151:7480/auth/1.0"},{"line_number":130,"context_line":"#storage_strategy \u003d \"CephStorage\""},{"line_number":131,"context_line":"#storage_namespace \u003d \"trove.common.strategies.storage.ceph\""},{"line_number":132,"context_line":"#backup_swift_container \u003d \"database_backups\""},{"line_number":133,"context_line":"#ceph_user \u003d \"trove:swift\""},{"line_number":134,"context_line":"#ceph_key \u003d \"tyPSBOLyVhHRIQTkiiwMT8iUTeG82Cc1ppTC3b8F\""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Notification System configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":137,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9f91af0f_4fd4cbbd","line":134,"range":{"start_line":129,"start_character":0,"end_line":134,"end_character":54},"updated":"2018-01-04 10:10:44.000000000","message":"Same here. Better use \u003cNone\u003e or \u003cKey\u003e to replace, I guess?","commit_id":"e91dc917ade89d1400234f16c3c8d5f75e8c8208"}],"etc/trove/trove.conf.sample":[{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"24dff56ab5b7857f994c111890ab9e015ca30cc3","unresolved":false,"context_lines":[{"line_number":125,"context_line":"# Trove api-paste file name"},{"line_number":126,"context_line":"api_paste_config \u003d api-paste.ini"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Configuration options for ceph object storage \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":131,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"9f91af0f_4fee2223","line":128,"range":{"start_line":128,"start_character":59,"end_line":128,"end_character":69},"updated":"2018-01-03 10:09:51.000000000","message":"ceph object storage configuration options need not set in trove.conf","commit_id":"b066df2fac68b3a15a17d6faafb09c1d4954e9e7"},{"author":{"_account_id":26472,"name":"wangjun","email":"wangjun@yovole.com","username":"j.wong"},"change_message_id":"33089fb54c7580dfcc74957f01d6366816756260","unresolved":false,"context_lines":[{"line_number":125,"context_line":"# Trove api-paste file name"},{"line_number":126,"context_line":"api_paste_config \u003d api-paste.ini"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Configuration options for ceph object storage \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":131,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"9f91af0f_85608bd0","line":128,"range":{"start_line":128,"start_character":59,"end_line":128,"end_character":69},"in_reply_to":"9f91af0f_4fee2223","updated":"2018-01-04 01:15:35.000000000","message":"why?\"trove\\trove\\instance\\models.py\" use \"check_swift_object_exist\" ,it needs \"create_swift_client\"","commit_id":"b066df2fac68b3a15a17d6faafb09c1d4954e9e7"},{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"68f0d7128afedb08a6e8a67479fd160b3fda09e3","unresolved":false,"context_lines":[{"line_number":125,"context_line":"# Trove api-paste file name"},{"line_number":126,"context_line":"api_paste_config \u003d api-paste.ini"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Configuration options for ceph object storage \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":131,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":4,"id":"9f91af0f_cf06a087","line":128,"range":{"start_line":128,"start_character":59,"end_line":128,"end_character":69},"in_reply_to":"9f91af0f_85608bd0","updated":"2018-01-04 02:16:33.000000000","message":"yes, you are right. I miss this.","commit_id":"b066df2fac68b3a15a17d6faafb09c1d4954e9e7"},{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"e121a638f66a4234199e26bd972c4c28d11bc706","unresolved":false,"context_lines":[{"line_number":130,"context_line":"# The swift_url can be specified directly or fetched from Keystone catalog."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"# To fetch from Keystone, comment out swift_url, and uncomment the others."},{"line_number":133,"context_line":"#swift_url \u003d http://10.254.4.151:7480/auth/1.0"},{"line_number":134,"context_line":"#storage_strategy \u003d \"CephStorage\""},{"line_number":135,"context_line":"#storage_namespace \u003d \"trove.common.strategies.storage.ceph\""},{"line_number":136,"context_line":"#backup_swift_container \u003d \"database_backups\""},{"line_number":137,"context_line":"#ceph_user \u003d \"trove:swift\""},{"line_number":138,"context_line":"#ceph_key \u003d \"tyPSBOLyVhHRIQTkiiwMT8iUTeG82Cc1ppTC3b8F\""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"# \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Notification System configuration \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":141,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":7,"id":"9f91af0f_32cc4cbb","line":138,"range":{"start_line":133,"start_character":0,"end_line":138,"end_character":54},"updated":"2018-01-04 10:10:44.000000000","message":"Same here.","commit_id":"e91dc917ade89d1400234f16c3c8d5f75e8c8208"}],"trove/common/remote.py":[{"author":{"_account_id":25113,"name":"Fan Zhang","email":"zh.f@outlook.com","username":"fanzhang"},"change_message_id":"e121a638f66a4234199e26bd972c4c28d11bc706","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    elif CONF.storage_strategy \u003d\u003d \u0027CephStorage\u0027:"},{"line_number":161,"context_line":"        client \u003d Connection(user\u003dCONF.ceph_user,"},{"line_number":162,"context_line":"                            key\u003dCONF.ceph_key,"},{"line_number":163,"context_line":"                            authurl\u003dCONF.swift_url)"},{"line_number":164,"context_line":"    return client"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f91af0f_f221044f","line":163,"range":{"start_line":163,"start_character":36,"end_line":163,"end_character":50},"updated":"2018-01-04 10:10:44.000000000","message":"What if here the CONF.swift_url is None? Should we check if CONF.swift_url as above?","commit_id":"e91dc917ade89d1400234f16c3c8d5f75e8c8208"},{"author":{"_account_id":26472,"name":"wangjun","email":"wangjun@yovole.com","username":"j.wong"},"change_message_id":"c283ea98d67934eda528a616ea0775d942c224ee","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    elif CONF.storage_strategy \u003d\u003d \u0027CephStorage\u0027:"},{"line_number":161,"context_line":"        client \u003d Connection(user\u003dCONF.ceph_user,"},{"line_number":162,"context_line":"                            key\u003dCONF.ceph_key,"},{"line_number":163,"context_line":"                            authurl\u003dCONF.swift_url)"},{"line_number":164,"context_line":"    return client"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f91af0f_88e71741","line":163,"range":{"start_line":163,"start_character":36,"end_line":163,"end_character":50},"in_reply_to":"9f91af0f_f221044f","updated":"2018-01-05 02:39:06.000000000","message":"good idea","commit_id":"e91dc917ade89d1400234f16c3c8d5f75e8c8208"}],"trove/common/strategies/storage/ceph.py":[{"author":{"_account_id":22608,"name":"zhanggang","email":"zhanggang@cmss.chinamobile.com","username":"zhanggang"},"change_message_id":"24dff56ab5b7857f994c111890ab9e015ca30cc3","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        return (True, \"Successfully saved data to Ceph!\",\r"},{"line_number":161,"context_line":"                final_swift_checksum, location)\r"},{"line_number":162,"context_line":"\r"},{"line_number":163,"context_line":"    def get_container_name(self):\r"},{"line_number":164,"context_line":"        \"\"\"Get the name of the container.\"\"\"\r"},{"line_number":165,"context_line":"        # Ceph requires the bucket name to be unique across users\r"},{"line_number":166,"context_line":"        return BACKUP_CONTAINER + \u0027_\u0027 + self.context.tenant\r"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_0f5fbae2","line":163,"range":{"start_line":163,"start_character":31,"end_line":163,"end_character":33},"updated":"2018-01-03 10:09:51.000000000","message":"It is true ceph require unique bucket name across users, but trove only use one user. If you change this, I suggest you support multi user also.","commit_id":"b066df2fac68b3a15a17d6faafb09c1d4954e9e7"},{"author":{"_account_id":26472,"name":"wangjun","email":"wangjun@yovole.com","username":"j.wong"},"change_message_id":"33089fb54c7580dfcc74957f01d6366816756260","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        return (True, \"Successfully saved data to Ceph!\",\r"},{"line_number":161,"context_line":"                final_swift_checksum, location)\r"},{"line_number":162,"context_line":"\r"},{"line_number":163,"context_line":"    def get_container_name(self):\r"},{"line_number":164,"context_line":"        \"\"\"Get the name of the container.\"\"\"\r"},{"line_number":165,"context_line":"        # Ceph requires the bucket name to be unique across users\r"},{"line_number":166,"context_line":"        return BACKUP_CONTAINER + \u0027_\u0027 + self.context.tenant\r"}],"source_content_type":"text/x-python","patch_set":4,"id":"9f91af0f_6a07541e","line":163,"range":{"start_line":163,"start_character":31,"end_line":163,"end_character":33},"in_reply_to":"9f91af0f_0f5fbae2","updated":"2018-01-04 01:15:35.000000000","message":"yeah","commit_id":"b066df2fac68b3a15a17d6faafb09c1d4954e9e7"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"6cbd46ebb5e3498e2eff44f3a978b31c8ae9cde6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"BACKUP_CONTAINER \u003d CONF.backup_swift_container\r"},{"line_number":30,"context_line":"\r"},{"line_number":31,"context_line":"\r"},{"line_number":32,"context_line":"class CephStorage(swift.SwiftStorage):\r"},{"line_number":33,"context_line":"    \"\"\"Implementation of Storage Strategy for Ceph.\r"},{"line_number":34,"context_line":"    This uses Ceph\u0027s Swift API compatibility features.\r"},{"line_number":35,"context_line":"    \"\"\"\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_c500d337","line":32,"updated":"2018-01-03 12:20:09.000000000","message":"Why inherit from SwiftStorage instead from Base?","commit_id":"9211f08c1007f37f8b626fb668f2dd2f0f550609"},{"author":{"_account_id":26472,"name":"wangjun","email":"wangjun@yovole.com","username":"j.wong"},"change_message_id":"33089fb54c7580dfcc74957f01d6366816756260","unresolved":false,"context_lines":[{"line_number":29,"context_line":"BACKUP_CONTAINER \u003d CONF.backup_swift_container\r"},{"line_number":30,"context_line":"\r"},{"line_number":31,"context_line":"\r"},{"line_number":32,"context_line":"class CephStorage(swift.SwiftStorage):\r"},{"line_number":33,"context_line":"    \"\"\"Implementation of Storage Strategy for Ceph.\r"},{"line_number":34,"context_line":"    This uses Ceph\u0027s Swift API compatibility features.\r"},{"line_number":35,"context_line":"    \"\"\"\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f91af0f_d4063587","line":32,"in_reply_to":"9f91af0f_c500d337","updated":"2018-01-04 01:15:35.000000000","message":"because we can use swiftclient to send data","commit_id":"9211f08c1007f37f8b626fb668f2dd2f0f550609"},{"author":{"_account_id":22694,"name":"jian.song","email":"jiansong19941206@gmail.com","username":"jiansong"},"change_message_id":"d6411465018a180d66f331c43c0bb0887ae67341","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    def get_container_name(self):\r"},{"line_number":164,"context_line":"        \"\"\"Get the name of the container.\"\"\"\r"},{"line_number":165,"context_line":"        # Ceph requires the bucket name to be unique across users\r"},{"line_number":166,"context_line":"        return BACKUP_CONTAINER + \u0027_\u0027 + self.context.tenant\r"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f91af0f_74682d1c","line":166,"range":{"start_line":166,"start_character":40,"end_line":166,"end_character":59},"updated":"2018-01-09 02:31:05.000000000","message":"Although this patch abandon, but to point out here is a problem, I made a similar change. When I use the latest image I made, I use a new version of the oslo library due to the requirements of the new version of trove,unable to get context.tenant","commit_id":"0bde50686bf833a6c79c59b223cc2e2531b4f2ae"}]}
