)]}'
{"heat/engine/clients/os/openstacksdk.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            )"},{"line_number":105,"context_line":"        return False"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_profile_id(self, profile_name):"},{"line_number":108,"context_line":"        profile \u003d self.client().cluster.get_profile(profile_name)"},{"line_number":109,"context_line":"        return profile.id"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_c5652c47","line":107,"updated":"2018-01-12 18:23:03.000000000","message":"It seems a little weird to me to have all of these senlin-specific functions in the OpenStackSDK plugin. I wonder if it would make more sense to keep the Senlin plugin but just have it inherit from this plugin? We could even define:\n\n  def client(self):\n    return super(SenlinClientPlugin, self).client().cluster\n\nand then we\u0027d have only one place to update from cluster -\u003e clustering when 0.10 is available. WDYT?","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"311aa5923f0cc522228ad4355bb83c6e2a31794d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            )"},{"line_number":105,"context_line":"        return False"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_profile_id(self, profile_name):"},{"line_number":108,"context_line":"        profile \u003d self.client().cluster.get_profile(profile_name)"},{"line_number":109,"context_line":"        return profile.id"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_f6549dcc","line":107,"in_reply_to":"7f96bb07_10d6f4f2","updated":"2018-01-12 22:42:31.000000000","message":"So I guess a downside of doing multiple is that we end up with multiple Connections? But in the future they\u0027ll at least share a keystone session...\n\nI suppose we could always store the Connection in the context if that was a problem, and only create one for all of the SDK plugins instantiated with a single context.","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"63092e5b01b3854acdce6f55a5622cd1b1f2e8dc","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            )"},{"line_number":105,"context_line":"        return False"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_profile_id(self, profile_name):"},{"line_number":108,"context_line":"        profile \u003d self.client().cluster.get_profile(profile_name)"},{"line_number":109,"context_line":"        return profile.id"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_10d6f4f2","line":107,"in_reply_to":"7f96bb07_7009782a","updated":"2018-01-12 19:01:07.000000000","message":"It was news to me that we had _any_ sdk plugins, so I\u0027m just making it up as I go along ;)","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"092004f35c315389869d2937af8db8e0ffc873fd","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            )"},{"line_number":105,"context_line":"        return False"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_profile_id(self, profile_name):"},{"line_number":108,"context_line":"        profile \u003d self.client().cluster.get_profile(profile_name)"},{"line_number":109,"context_line":"        return profile.id"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_7009782a","line":107,"in_reply_to":"7f96bb07_c5652c47","updated":"2018-01-12 18:33:19.000000000","message":"I think that\u0027s a great idea! I wasn\u0027t sure if having more than one sdk-based plugin was the right or the wrong thing.","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"f22200d5d9452e86ac9e4661819028f7456620ca","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            )"},{"line_number":105,"context_line":"        return False"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def get_profile_id(self, profile_name):"},{"line_number":108,"context_line":"        profile \u003d self.client().cluster.get_profile(profile_name)"},{"line_number":109,"context_line":"        return profile.id"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f93b717_9d36f102","line":107,"in_reply_to":"7f96bb07_f6549dcc","updated":"2018-02-02 15:55:15.000000000","message":"The SDK Connections are pretty lightweight - I think just having 2 for now is a fine idea... we can optimize as you mention later.","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        policy \u003d self.client().cluster.get_policy(policy_name)"},{"line_number":117,"context_line":"        return policy.id"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def is_not_found(self, ex):"},{"line_number":120,"context_line":"        return isinstance(ex, exc.sdkexc.ResourceNotFound)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def is_bad_request(self, ex):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_65b698fd","line":119,"updated":"2018-01-12 18:23:03.000000000","message":"This is already defined on line 85.","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        return policy.id"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def is_not_found(self, ex):"},{"line_number":120,"context_line":"        return isinstance(ex, exc.sdkexc.ResourceNotFound)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def is_bad_request(self, ex):"},{"line_number":123,"context_line":"        return (isinstance(ex, exc.sdkexc.HttpException) and"}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_a5a100ac","line":120,"range":{"start_line":120,"start_character":30,"end_line":120,"end_character":33},"updated":"2018-01-12 18:23:03.000000000","message":"There\u0027s nothing imported named \u0027exc\u0027","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"}],"heat/tests/openstack/senlin/test_cluster.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"from heat.engine import template"},{"line_number":27,"context_line":"from heat.tests import common"},{"line_number":28,"context_line":"from heat.tests import utils"},{"line_number":29,"context_line":"from openstack import exeptions"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"cluster_stack_template \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_051794ef","line":29,"range":{"start_line":29,"start_character":22,"end_line":29,"end_character":31},"updated":"2018-01-12 18:23:03.000000000","message":"typo: exceptions","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"}],"heat/tests/openstack/senlin/test_node.py":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"from heat.engine import template"},{"line_number":26,"context_line":"from heat.tests import common"},{"line_number":27,"context_line":"from heat.tests import utils"},{"line_number":28,"context_line":"from openstack import exeptions"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"node_stack_template \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7f96bb07_85e084fc","line":28,"updated":"2018-01-12 18:23:03.000000000","message":"typo: exceptions","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"}],"setup.cfg":[{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    octavia \u003d heat.engine.clients.os.octavia:OctaviaClientPlugin"},{"line_number":83,"context_line":"    openstack \u003d heat.engine.clients.os.openstacksdk:OpenStackSDKPlugin"},{"line_number":84,"context_line":"    sahara \u003d heat.engine.clients.os.sahara:SaharaClientPlugin"},{"line_number":85,"context_line":"    senlin \u003d heat.engine.clients.os.senlin:SenlinClientPlugin"},{"line_number":86,"context_line":"    swift \u003d heat.engine.clients.os.swift:SwiftClientPlugin"},{"line_number":87,"context_line":"    trove \u003d heat.engine.clients.os.trove:TroveClientPlugin"},{"line_number":88,"context_line":"    zaqar \u003d heat.engine.clients.os.zaqar:ZaqarClientPlugin"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"7f96bb07_851164af","side":"PARENT","line":85,"updated":"2018-01-12 18:23:03.000000000","message":"I\u0027m mildly concerned that we\u0027re taking away the operator\u0027s ability to easily disable Senlin resources by removing the client.","commit_id":"ea0317c70746a2dbf07cd3fd983543d2af6670a6"},{"author":{"_account_id":4257,"name":"Zane Bitter","email":"zbitter@redhat.com","username":"zaneb"},"change_message_id":"03f5f2d3345ce01182ae9a4ecd3aaff591cecfb6","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    sahara.job_binary \u003d heat.engine.clients.os.sahara:JobBinaryConstraint"},{"line_number":158,"context_line":"    sahara.job_type \u003d heat.engine.clients.os.sahara:JobTypeConstraint"},{"line_number":159,"context_line":"    sahara.plugin \u003d heat.engine.clients.os.sahara:PluginConstraint"},{"line_number":160,"context_line":"    senlin.cluster \u003d heat.engine.clients.os.senlin:ClusterConstraint"},{"line_number":161,"context_line":"    senlin.policy \u003d heat.engine.clients.os.senlin:PolicyConstraint"},{"line_number":162,"context_line":"    senlin.policy_type \u003d heat.engine.clients.os.senlin:PolicyTypeConstraint"},{"line_number":163,"context_line":"    senlin.profile \u003d heat.engine.clients.os.senlin:ProfileConstraint"},{"line_number":164,"context_line":"    senlin.profile_type \u003d heat.engine.clients.os.senlin:ProfileTypeConstraint"},{"line_number":165,"context_line":"    trove.flavor \u003d heat.engine.clients.os.trove:FlavorConstraint"},{"line_number":166,"context_line":"    zaqar.queue \u003d heat.engine.clients.os.zaqar:QueueConstraint"},{"line_number":167,"context_line":""}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"7f96bb07_e54f08bb","line":164,"range":{"start_line":160,"start_character":0,"end_line":164,"end_character":77},"updated":"2018-01-12 18:23:03.000000000","message":"These have moved as well.","commit_id":"bb4f475b35ad63b0217156367ace7102540536de"}]}
