)]}'
{"Makefile":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"aeaa39a68d7ca262269b532d6166fe0abf4fb691","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"undercloud-vm-ironic.yaml: undercloud-vm.yaml ironic-source.yaml"},{"line_number":10,"context_line":"        python merge.py $^ \u003e $@.tmp"},{"line_number":11,"context_line":"        mv $@.tmp $@"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"test:"},{"line_number":14,"context_line":"\t@bash test_merge.bash"}],"source_content_type":"application/octet-stream","patch_set":7,"id":"AAAATH%2F%2FXVY%3D","line":11,"updated":"2013-10-17 06:57:14.000000000","message":"In this case you do need real tabs. ctrl-V[tab] should get it done in vim.","commit_id":"4f4d6adb037003ffe3a0d8fc983747977b2bbbbe"}],"ironic-source.yaml":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"fc10f7578ae03bab0e9b889af26288fbd2d366f2","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  ironic:"},{"line_number":4,"context_line":"    Type: AWS::AutoScaling::LaunchConfiguration"},{"line_number":5,"context_line":"    Metadata:"},{"line_number":6,"context_line":"      OpenStack::Role: notcomputeConfig"},{"line_number":7,"context_line":"      ironic:"},{"line_number":8,"context_line":"        db: mysql://ironic:unset@localhost/ironic"},{"line_number":9,"context_line":"        keystonehost: localhost"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"AAAATH%2F%2FHfw%3D","line":6,"updated":"2013-10-22 22:57:01.000000000","message":"Shouldn\u0027t this be on the compute node?","commit_id":"fd1a0142ed07bad2cff85c26af0587a719520129"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"4400a79299282e7ad248623af34b4abb08130447","unresolved":false,"context_lines":[{"line_number":6,"context_line":"      OpenStack::Role: notcomputeConfig"},{"line_number":7,"context_line":"      ironic:"},{"line_number":8,"context_line":"        db: mysql://ironic:unset@localhost/ironic"},{"line_number":9,"context_line":"        keystonehost: localhost"},{"line_number":10,"context_line":"        keystoneadminpassword: {Ref: AdminPassword}"},{"line_number":11,"context_line":"        glancehost: localhost"},{"line_number":12,"context_line":"        rabbithost: localhost"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"AAAATH%2F%2FHfY%3D","line":9,"updated":"2013-10-22 22:48:23.000000000","message":"This was not there before. Seems like you would want to have these absent, or at least you want them to match the values in the other templates you will merge with, otherwise these values are a bit misleading.","commit_id":"fd1a0142ed07bad2cff85c26af0587a719520129"}],"ironic.yaml":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a38af32b5adf40d8fb336d6d8c6be832d72536e7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":2,"context_line":"Description: \u0027Ironic\u0027"},{"line_number":3,"context_line":"Parameters:"},{"line_number":4,"context_line":"  KeyName: "},{"line_number":5,"context_line":"    Description: Name of an existing EC2 KeyPair to enable SSH access to the instances"},{"line_number":6,"context_line":"    Type: String"},{"line_number":7,"context_line":"    Default: default"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"AAAASn%2F%2FTTo%3D","line":4,"updated":"2013-09-06 18:23:51.000000000","message":"whitespace","commit_id":"2dca75eac8725b44e8a26350dd1e79afee6e0086"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"a38af32b5adf40d8fb336d6d8c6be832d72536e7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    Metadata:"},{"line_number":48,"context_line":"      OpenStack::Role: stateless"},{"line_number":49,"context_line":"      OpenStack::ImageBuilder::Elements: [ ironic ]"},{"line_number":50,"context_line":"      heat: "},{"line_number":51,"context_line":"        access_key_id:"},{"line_number":52,"context_line":"          Ref: Key"},{"line_number":53,"context_line":"        secret_key:"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"AAAASn%2F%2FTTk%3D","line":50,"updated":"2013-09-06 18:23:51.000000000","message":"ditto","commit_id":"2dca75eac8725b44e8a26350dd1e79afee6e0086"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"fea408d5f23f5a2f1166678b516f3444c6977d40","unresolved":false,"context_lines":[{"line_number":24,"context_line":"  RabbitPassword:"},{"line_number":25,"context_line":"    Type: String"},{"line_number":26,"context_line":"Resources:"},{"line_number":27,"context_line":"  AccessPolicy:"},{"line_number":28,"context_line":"    Type: OS::Heat::AccessPolicy"},{"line_number":29,"context_line":"    Properties:"},{"line_number":30,"context_line":"      AllowedResources: [ Ironic ]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"AAAASn%2F%2FTA4%3D","line":27,"updated":"2013-09-06 20:12:39.000000000","message":"I\u0027ve had trouble with using the same accesspolicy/user/key when merging. It would be better if you prefix these all with Ironic.","commit_id":"6499c95847a703225dc6899768cfbfb2c24bedd0"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"fea408d5f23f5a2f1166678b516f3444c6977d40","unresolved":false,"context_lines":[{"line_number":38,"context_line":"      UserName:"},{"line_number":39,"context_line":"        Ref: User"},{"line_number":40,"context_line":"  Ironic:"},{"line_number":41,"context_line":"    Type: AWS::EC2::Instance"},{"line_number":42,"context_line":"    Properties:"},{"line_number":43,"context_line":"      ImageId:"},{"line_number":44,"context_line":"        {Ref: IronicImage}"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"AAAASn%2F%2FTA0%3D","line":41,"updated":"2013-09-06 20:12:39.000000000","message":"Heat just landed OS::Nova::Server... never a better time to start using it. I will be switching all of the templates soon.","commit_id":"6499c95847a703225dc6899768cfbfb2c24bedd0"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"fea408d5f23f5a2f1166678b516f3444c6977d40","unresolved":false,"context_lines":[{"line_number":43,"context_line":"      ImageId:"},{"line_number":44,"context_line":"        {Ref: IronicImage}"},{"line_number":45,"context_line":"      InstanceType: {Ref: InstanceType}"},{"line_number":46,"context_line":"      KeyName: {Ref: KeyName}"},{"line_number":47,"context_line":"    Metadata:"},{"line_number":48,"context_line":"      OpenStack::Role: stateless"},{"line_number":49,"context_line":"      OpenStack::ImageBuilder::Elements: [ ironic ]"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"AAAASn%2F%2FTAs%3D","line":46,"updated":"2013-09-06 20:12:39.000000000","message":"OS::Nova::Server uses the nova API properties, so:\n\nImageID -\u003e image\n\nInstanceType -\u003e flavor\n\nKeyName -\u003e key_name","commit_id":"6499c95847a703225dc6899768cfbfb2c24bedd0"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"fea408d5f23f5a2f1166678b516f3444c6977d40","unresolved":false,"context_lines":[{"line_number":56,"context_line":"          name: {Ref: \u0027AWS::StackName\u0027}"},{"line_number":57,"context_line":"          region: {Ref: \u0027AWS::Region\u0027}"},{"line_number":58,"context_line":"        refresh:"},{"line_number":59,"context_line":"          - resource: Ironic"},{"line_number":60,"context_line":"      keystone:"},{"line_number":61,"context_line":"        host: {Ref: KeystoneHost}"},{"line_number":62,"context_line":"      ironic:"}],"source_content_type":"text/x-yaml","patch_set":3,"id":"AAAASn%2F%2FTAk%3D","line":59,"updated":"2013-09-06 20:12:39.000000000","message":"These are old-school. See the current templates, you\u0027ll want an os-collect-config section instead.","commit_id":"6499c95847a703225dc6899768cfbfb2c24bedd0"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"6f87fe7951ec0de86987732ec487b6f63c66a67d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            Ref: IronicKey"},{"line_number":47,"context_line":"          secret_access_key:"},{"line_number":48,"context_line":"            Fn::GetAtt: [ IronicKey, SecretAccessKey ]"},{"line_number":49,"context_line":"          stack_name: {Ref: \u0027AWS::StackName\u0027} "},{"line_number":50,"context_line":"      keystone:"},{"line_number":51,"context_line":"        host: {\"Fn::GetAtt\": [ notcompute, PrivateIp ]}"},{"line_number":52,"context_line":"      ironic:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"AAAASn%2F%2FEmY%3D","line":49,"updated":"2013-09-12 15:05:57.000000000","message":"white space","commit_id":"d7acb94eba2ff5c18d5aed30f6bd7248168ad5ad"},{"author":{"_account_id":6456,"name":"Sahdev Zala","email":"spzala@us.ibm.com","username":"spzala"},"change_message_id":"33c5d9252ff0a316e63041d52d839657be98a298","unresolved":false,"context_lines":[{"line_number":1,"context_line":"HeatTemplateFormatVersion: \u00272012-12-12\u0027"},{"line_number":2,"context_line":"Description: \u0027Ironic\u0027"},{"line_number":3,"context_line":"Parameters:"},{"line_number":4,"context_line":"  KeyName:"},{"line_number":5,"context_line":"    Description: Name of an existing EC2 KeyPair to enable SSH access to the instances"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"AAAASn%2F%2FCxo%3D","line":2,"updated":"2013-09-13 00:56:38.000000000","message":"Chris, can you please add some description? May be something from the commit message where you are explaining what\u0027s this template for. Overall looks great!","commit_id":"da88b99fe59cc96e3d6bc4aa25f583d08ea03a0d"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Description: Name of an existing EC2 KeyPair to enable SSH access to the instances"},{"line_number":6,"context_line":"    Type: String"},{"line_number":7,"context_line":"    Default: default"},{"line_number":8,"context_line":"  IronicInstanceType:"},{"line_number":9,"context_line":"    Description: Use this flavor"},{"line_number":10,"context_line":"    Type: String"},{"line_number":11,"context_line":"    Default: baremetal"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4Lc%3D","line":8,"updated":"2013-09-17 20:14:45.000000000","message":"This isn\u0027t actually the Ironic instance type - it\u0027s just the machine you\u0027re booting\u0027s instance-type, which is already defined in undercloud-vm, so if this is intended for merging, it is redundant and should be removed.\n\nDitto keyname and image.","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    Default: baremetal"},{"line_number":12,"context_line":"  IronicImage:"},{"line_number":13,"context_line":"    Type: String"},{"line_number":14,"context_line":"    Default: ironic"},{"line_number":15,"context_line":"  ServicePassword:"},{"line_number":16,"context_line":"    Type: String"},{"line_number":17,"context_line":"  RabbitPassword:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4K0%3D","line":14,"updated":"2013-09-17 20:14:45.000000000","message":"As is this.","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  ServicePassword:"},{"line_number":16,"context_line":"    Type: String"},{"line_number":17,"context_line":"  RabbitPassword:"},{"line_number":18,"context_line":"    Type: String"},{"line_number":19,"context_line":"Resources:"},{"line_number":20,"context_line":"  IronicAccessPolicy:"},{"line_number":21,"context_line":"    Type: OS::Heat::AccessPolicy"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4Ks%3D","line":18,"updated":"2013-09-17 20:14:45.000000000","message":"This is also redundant.","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":17,"context_line":"  RabbitPassword:"},{"line_number":18,"context_line":"    Type: String"},{"line_number":19,"context_line":"Resources:"},{"line_number":20,"context_line":"  IronicAccessPolicy:"},{"line_number":21,"context_line":"    Type: OS::Heat::AccessPolicy"},{"line_number":22,"context_line":"    Properties:"},{"line_number":23,"context_line":"      AllowedResources: [ Ironic ]"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4Kk%3D","line":20,"updated":"2013-09-17 20:14:45.000000000","message":"as is this.","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    Type: OS::Heat::AccessPolicy"},{"line_number":22,"context_line":"    Properties:"},{"line_number":23,"context_line":"      AllowedResources: [ Ironic ]"},{"line_number":24,"context_line":"  IronicUser:"},{"line_number":25,"context_line":"    Type: AWS::IAM::User"},{"line_number":26,"context_line":"    Properties:"},{"line_number":27,"context_line":"      Policies: [ { Ref: IronicAccessPolicy } ]"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4Kg%3D","line":24,"updated":"2013-09-17 20:14:45.000000000","message":"And this.","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    Type: AWS::IAM::User"},{"line_number":26,"context_line":"    Properties:"},{"line_number":27,"context_line":"      Policies: [ { Ref: IronicAccessPolicy } ]"},{"line_number":28,"context_line":"  IronicKey:"},{"line_number":29,"context_line":"    Type: AWS::IAM::AccessKey"},{"line_number":30,"context_line":"    Properties:"},{"line_number":31,"context_line":"      UserName:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4KY%3D","line":28,"updated":"2013-09-17 20:14:45.000000000","message":"And this.","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0e9f31bf50411cba5e428a49e86c92af0ab5f7cc","unresolved":false,"context_lines":[{"line_number":31,"context_line":"      UserName:"},{"line_number":32,"context_line":"        Ref: IronicUser"},{"line_number":33,"context_line":"  Ironic:"},{"line_number":34,"context_line":"    Type: OS::Nova::Server"},{"line_number":35,"context_line":"    Properties:"},{"line_number":36,"context_line":"      image: {Ref: IronicImage}"},{"line_number":37,"context_line":"      flavor: {Ref: IronicInstanceType}"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"AAAAS3%2F%2F4KU%3D","line":34,"updated":"2013-09-17 20:14:45.000000000","message":"And this....","commit_id":"83af0e73103c44a3abaff7b263d4120727a80927"}],"undercloud-vm.yaml":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c3fe22f53756a01262d20a821d492e7696e8bc51","unresolved":false,"context_lines":[{"line_number":47,"context_line":"          - notcompute"},{"line_number":48,"context_line":"          - PrivateIp"},{"line_number":49,"context_line":"      ironic:"},{"line_number":50,"context_line":"        db: mysql://ironic:unset@localhost/ironic"},{"line_number":51,"context_line":"      cinder:"},{"line_number":52,"context_line":"        db: mysql://cinder:unset@localhost/cinder"},{"line_number":53,"context_line":"        volume_size_mb: \u00275000\u0027"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"AAAASn%2F%2Fou8%3D","line":50,"updated":"2013-09-02 03:02:22.000000000","message":"I think this should be a separate yaml file we merge in.","commit_id":"b8fda824bc2e614e98c904307682f08f56bf7018"}]}
