)]}'
{"tempest/api/orchestration/stacks/test_autoscaling.py":[{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"28c242fe617173bcc4dd1972d0f19b7564e226c2","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    existing_keypair \u003d (tempest.config.TempestConfig()."},{"line_number":30,"context_line":"                        orchestration.keypair_name is not None)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    template \u003d \"\"\""},{"line_number":33,"context_line":"HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":34,"context_line":"Description: |"},{"line_number":35,"context_line":"  Template which tests autoscaling and load balancing"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Fxbw%3D","line":32,"updated":"2013-07-11 17:24:22.000000000","message":"Would it make sense to store heat templates in some type of data directory rather than define them in line?","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"52ce0211832f05b83f88b457343cd4ec502feb95","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    existing_keypair \u003d (tempest.config.TempestConfig()."},{"line_number":30,"context_line":"                        orchestration.keypair_name is not None)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    template \u003d \"\"\""},{"line_number":33,"context_line":"HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":34,"context_line":"Description: |"},{"line_number":35,"context_line":"  Template which tests autoscaling and load balancing"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FwyI%3D","line":32,"in_reply_to":"AAAAP3%2F%2Fxbw%3D","updated":"2013-07-11 20:07:47.000000000","message":"IMHO in this way it is easier to review.","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"c1d40c5c6b658284d9c9bd097d1c30652bf5dcdd","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                  import datetime"},{"line_number":158,"context_line":"                  a \u003d []"},{"line_number":159,"context_line":"                  while time.time() \u003c StackStart + ConsumeStopSeconds:"},{"line_number":160,"context_line":"                      vm \u003d psutil.virtual_memory()"},{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2F3Yo%3D","line":160,"updated":"2013-07-10 06:10:11.000000000","message":"cool, looks like the psutils knows how to calculate the free and the cached memory into the percentage :)","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"c1d40c5c6b658284d9c9bd097d1c30652bf5dcdd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                  while time.time() \u003c StackStart + ConsumeStopSeconds:"},{"line_number":160,"context_line":"                      vm \u003d psutil.virtual_memory()"},{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"},{"line_number":164,"context_line":"                      time.sleep(8)"},{"line_number":165,"context_line":"              mode: \u0027000700\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2F3WM%3D","line":162,"updated":"2013-07-10 06:10:11.000000000","message":"The threshold comment says scale up above 70%, but this will not increase it above 70% in all cases.\n\nIf the measurement method differs it can be risky.\n\nPlease update the threshold comment (\u003e\u003d70%) or the compare operator here (\u003c\u003d 70). (-1)","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"58f335807af5dd502127465af12fa273fbb8bbb5","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                  while time.time() \u003c StackStart + ConsumeStopSeconds:"},{"line_number":160,"context_line":"                      vm \u003d psutil.virtual_memory()"},{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"},{"line_number":164,"context_line":"                      time.sleep(8)"},{"line_number":165,"context_line":"              mode: \u0027000700\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FwXE%3D","line":162,"in_reply_to":"AAAAP3%2F%2F3WM%3D","updated":"2013-07-14 23:37:18.000000000","message":"I\u0027ll fix this, but in practice it hasn\u0027t been an issue, memory stabilizes at around 75%.","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"c1d40c5c6b658284d9c9bd097d1c30652bf5dcdd","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"},{"line_number":164,"context_line":"                      time.sleep(8)"},{"line_number":165,"context_line":"              mode: \u0027000700\u0027"},{"line_number":166,"context_line":"              owner: root"},{"line_number":167,"context_line":"              group: root"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2F3Xo%3D","line":164,"updated":"2013-07-10 06:10:11.000000000","message":"On Linux the memory info is always up to date.\n\nCheck the\nwatch -n 0.1 cat /proc/meminfo \n.\n\nIMHO: You can use 0.1 second sleep here.\nThis can be two slow if you are using  large memory instances.\n(16384*0.7/10)*8 \u003d 9175.04000000000000000000 sec\n\n16384*0.7/10*0.1 \u003d 114.68800000000000000000 sec","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"58f335807af5dd502127465af12fa273fbb8bbb5","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"},{"line_number":164,"context_line":"                      time.sleep(8)"},{"line_number":165,"context_line":"              mode: \u0027000700\u0027"},{"line_number":166,"context_line":"              owner: root"},{"line_number":167,"context_line":"              group: root"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FwWM%3D","line":164,"in_reply_to":"AAAAP3%2F%2F3Xo%3D","updated":"2013-07-14 23:37:18.000000000","message":"The slow rampup is mainly to allow the alarms to evaluate at least once below the threshold before triggering.\n\nThe runtime of this test is dependent on available memory, currently this test is tuned for m1.micro.","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8a46ba5ba51d77b6389583925fb35749f225dbe9","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"},{"line_number":164,"context_line":"                      time.sleep(8)"},{"line_number":165,"context_line":"              mode: \u0027000700\u0027"},{"line_number":166,"context_line":"              owner: root"},{"line_number":167,"context_line":"              group: root"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2FmUQ%3D","line":164,"in_reply_to":"AAAAP3%2F%2Fibw%3D","updated":"2013-07-26 20:00:44.000000000","message":"I\u0027m starting to think a better approach will be to wait for a specified delay, and then a rapid ramp-up to the specified threshold.","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"f2c51b59642cb2f8be62a3a6babf89bf1a7757c5","unresolved":false,"context_lines":[{"line_number":161,"context_line":"                      print vm.percent"},{"line_number":162,"context_line":"                      if vm.percent \u003c 70:"},{"line_number":163,"context_line":"                          a.append(\u0027 \u0027 * 10**7)"},{"line_number":164,"context_line":"                      time.sleep(8)"},{"line_number":165,"context_line":"              mode: \u0027000700\u0027"},{"line_number":166,"context_line":"              owner: root"},{"line_number":167,"context_line":"              group: root"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2Fibw%3D","line":164,"in_reply_to":"AAAAP3%2F%2FwWM%3D","updated":"2013-07-16 20:46:53.000000000","message":"May be if the allocation period or the the allocated memory would be a function of the available memory, it could work faster with bigger images.","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":6796,"name":"Giulio Fidente","email":"gfidente@redhat.com","username":"gfidente"},"change_message_id":"72371762039150a15641e49f4432508d88dde727","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        resp, body \u003d self.client.get_stack(sid)"},{"line_number":232,"context_line":"        self.assertEqual(\u0027CREATE_COMPLETE\u0027, body[\u0027stack_status\u0027])"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # he marched them up to the top of the hill"},{"line_number":235,"context_line":"        self.assertEqual(1, self.instances_in_group())"},{"line_number":236,"context_line":"        self.wait_for(lambda: self.assertEqual(self.instances_in_group(), 2))"},{"line_number":237,"context_line":"        self.wait_for(lambda: self.assertEqual(self.instances_in_group(), 3))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAP3%2F%2FpKg%3D","line":234,"updated":"2013-07-15 13:41:31.000000000","message":"I think the wait_for will just time out if the condition isn\u0027t reached, is there anything we could to to fail earlier if anything goes wrong?","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"},{"author":{"_account_id":4571,"name":"Steve Baker","email":"sbaker@redhat.com","username":"steve-stevebaker"},"change_message_id":"8a46ba5ba51d77b6389583925fb35749f225dbe9","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        resp, body \u003d self.client.get_stack(sid)"},{"line_number":232,"context_line":"        self.assertEqual(\u0027CREATE_COMPLETE\u0027, body[\u0027stack_status\u0027])"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # he marched them up to the top of the hill"},{"line_number":235,"context_line":"        self.assertEqual(1, self.instances_in_group())"},{"line_number":236,"context_line":"        self.wait_for(lambda: self.assertEqual(self.instances_in_group(), 2))"},{"line_number":237,"context_line":"        self.wait_for(lambda: self.assertEqual(self.instances_in_group(), 3))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAQn%2F%2F%2B34%3D","line":234,"in_reply_to":"AAAAP3%2F%2FpKg%3D","updated":"2013-07-26 20:00:44.000000000","message":"At this point the only thing that can go wrong is that the next server can fail to be created/deleted - so I see no alternative to failure on timeout.","commit_id":"b415b7ca017beabf807daa5f10ccb26415961b9a"}]}
