)]}'
{"specs/tempest/tempest-resources.rst":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"This has several drawbacks:"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"- it is not possible for a deployer to configure tempest until test resources"},{"line_number":26,"context_line":"  are created, which requires a running cloud"},{"line_number":27,"context_line":"- using different resources in different tests requires a proliferation of"},{"line_number":28,"context_line":"  configuration options: for instance we have a guest image for API tests, a"},{"line_number":29,"context_line":"  guest image for scenario tests and a guest image for third-party tests."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_0b5e3512","line":26,"updated":"2015-11-16 07:05:44.000000000","message":"That means\n\n A deployer needs to prepare test resources before configuring Tempest.\n\n?","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":23,"context_line":"This has several drawbacks:"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"- it is not possible for a deployer to configure tempest until test resources"},{"line_number":26,"context_line":"  are created, which requires a running cloud"},{"line_number":27,"context_line":"- using different resources in different tests requires a proliferation of"},{"line_number":28,"context_line":"  configuration options: for instance we have a guest image for API tests, a"},{"line_number":29,"context_line":"  guest image for scenario tests and a guest image for third-party tests."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_54929ea0","line":26,"in_reply_to":"da85f559_0b5e3512","updated":"2015-11-16 08:56:00.000000000","message":"Right. What I do at the moment is a pre-configuration step; once the cloud is up and running I provision test resources and finalise tempest configuration.\nWith this separation we could have tempest.conf not depending on the running cloud, and resources/accounts.yml generated against a running cloud.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  configuration options: for instance we have a guest image for API tests, a"},{"line_number":29,"context_line":"  guest image for scenario tests and a guest image for third-party tests."},{"line_number":30,"context_line":"  Each of them comes with it\u0027s own name or ID and ssh user and possibly other"},{"line_number":31,"context_line":"  metadata"},{"line_number":32,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":33,"context_line":"  a test requires a special guest image or a different flavor, it must either"},{"line_number":34,"context_line":"  define a new configuration option or impose its own image / flavour to all"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_4b1c3d13","line":31,"updated":"2015-11-16 07:05:44.000000000","message":"big +1 for this purpose.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":31,"context_line":"  metadata"},{"line_number":32,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":33,"context_line":"  a test requires a special guest image or a different flavor, it must either"},{"line_number":34,"context_line":"  define a new configuration option or impose its own image / flavour to all"},{"line_number":35,"context_line":"  other tests"},{"line_number":36,"context_line":"- the configuration file is large and difficult to handle"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_2bb0d942","line":34,"updated":"2015-11-16 07:05:44.000000000","message":"nit: s/flavour/flavor/","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":31,"context_line":"  metadata"},{"line_number":32,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":33,"context_line":"  a test requires a special guest image or a different flavor, it must either"},{"line_number":34,"context_line":"  define a new configuration option or impose its own image / flavour to all"},{"line_number":35,"context_line":"  other tests"},{"line_number":36,"context_line":"- the configuration file is large and difficult to handle"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_d461aea9","line":34,"in_reply_to":"da85f559_2bb0d942","updated":"2015-11-16 08:56:00.000000000","message":"I\u0027m a bit struggling with US English vs British English :D","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45b20a137ff105d9fb06b99a7f0cc6f9c99a1564","unresolved":false,"context_lines":[{"line_number":31,"context_line":"  metadata"},{"line_number":32,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":33,"context_line":"  a test requires a special guest image or a different flavor, it must either"},{"line_number":34,"context_line":"  define a new configuration option or impose its own image / flavour to all"},{"line_number":35,"context_line":"  other tests"},{"line_number":36,"context_line":"- the configuration file is large and difficult to handle"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_e43c7495","line":34,"in_reply_to":"da85f559_d461aea9","updated":"2015-11-17 02:55:31.000000000","message":"hehe, I see. but the the other parts represent \"flavor\" as the above instead of \"flavour\", so it is nice to make the words consistent for avoiding confusions.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    - resources:"},{"line_number":48,"context_line":"        - images:"},{"line_number":49,"context_line":"            - resource_name: small-footprint"},{"line_number":50,"context_line":"              id: [uuid]"},{"line_number":51,"context_line":"              size: 100MB"},{"line_number":52,"context_line":"              boot: quick"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_4b6e7d97","line":49,"updated":"2015-11-16 07:05:44.000000000","message":"s/resource_name/name/ ?","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    - resources:"},{"line_number":48,"context_line":"        - images:"},{"line_number":49,"context_line":"            - resource_name: small-footprint"},{"line_number":50,"context_line":"              id: [uuid]"},{"line_number":51,"context_line":"              size: 100MB"},{"line_number":52,"context_line":"              boot: quick"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_f46cf29d","line":49,"in_reply_to":"da85f559_4b6e7d97","updated":"2015-11-16 08:56:00.000000000","message":"Well we discussed during the summit that name is a bit overloaded, so we should use something more specific.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"              cfn-agent: true"},{"line_number":63,"context_line":"        - flavors:"},{"line_number":64,"context_line":"            - resource_name: tiny"},{"line_number":65,"context_line":"              name: tiny"},{"line_number":66,"context_line":"        - shared-networks:"},{"line_number":67,"context_line":"            - name: internal"},{"line_number":68,"context_line":"              external: false"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_8bcd45b9","line":65,"updated":"2015-11-16 07:05:44.000000000","message":"What is the difference between resource_name and name?\nMaybe \"name\" only is necessary?","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"45b20a137ff105d9fb06b99a7f0cc6f9c99a1564","unresolved":false,"context_lines":[{"line_number":62,"context_line":"              cfn-agent: true"},{"line_number":63,"context_line":"        - flavors:"},{"line_number":64,"context_line":"            - resource_name: tiny"},{"line_number":65,"context_line":"              name: tiny"},{"line_number":66,"context_line":"        - shared-networks:"},{"line_number":67,"context_line":"            - name: internal"},{"line_number":68,"context_line":"              external: false"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_47978290","line":65,"in_reply_to":"da85f559_14edf6ee","updated":"2015-11-17 02:55:31.000000000","message":"Thanks, that is important and these meanings should be written on this spec.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":62,"context_line":"              cfn-agent: true"},{"line_number":63,"context_line":"        - flavors:"},{"line_number":64,"context_line":"            - resource_name: tiny"},{"line_number":65,"context_line":"              name: tiny"},{"line_number":66,"context_line":"        - shared-networks:"},{"line_number":67,"context_line":"            - name: internal"},{"line_number":68,"context_line":"              external: false"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_14edf6ee","line":65,"in_reply_to":"da85f559_8bcd45b9","updated":"2015-11-16 08:56:00.000000000","message":"Name is the actual name of the resource as returned by the OpenStack API. resource_name is a logical name which can be used by tests to select a resource. For flavours is the same here because the name is already semantically meaningful, but for images for instance is not obvious from the names \"cirros\" or \u0027ubuntu\" which one is the smallest footprint one.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":78,"context_line":".. code-block:: python"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    # Test specific filters"},{"line_number":81,"context_line":"    @resources.prefers(\u0027image\u0027, id\u003d\u0027small-footprint\u0027)"},{"line_number":82,"context_line":"    @resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":83,"context_line":"    def test_check_vm_metadata_service():"},{"line_number":84,"context_line":"        # boot VM and check connectivity"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_cb610daa","line":81,"updated":"2015-11-16 07:05:44.000000000","message":"I guess here should be\n\n @resources.prefers(\u0027images\u0027, name\u003d\u0027small-footprint\u0027)","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":78,"context_line":".. code-block:: python"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    # Test specific filters"},{"line_number":81,"context_line":"    @resources.prefers(\u0027image\u0027, id\u003d\u0027small-footprint\u0027)"},{"line_number":82,"context_line":"    @resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":83,"context_line":"    def test_check_vm_metadata_service():"},{"line_number":84,"context_line":"        # boot VM and check connectivity"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_b4a18aab","line":81,"in_reply_to":"da85f559_cb610daa","updated":"2015-11-16 08:56:00.000000000","message":"yes good catch - or maybe even resource_name\u003d\u0027...","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":99,"context_line":"    def test_rebuild_vm(self):"},{"line_number":100,"context_line":"        _image1 \u003d resources.get_resource(\"image\")"},{"line_number":101,"context_line":"        _image2 \u003d resources.get_resource(\"image\", force_new\u003dTrue)"},{"line_number":102,"context_line":"  "},{"line_number":103,"context_line":"Let test access properties of test resources in use."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_0bff15ab","line":100,"updated":"2015-11-16 07:05:44.000000000","message":"I guess the first argument should be the same as resources\u0027 name in yhe YAML file.\nSo here should be\n\n _image1 \u003d resources.get_resource(\"images\")\n\nright?","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":99,"context_line":"    def test_rebuild_vm(self):"},{"line_number":100,"context_line":"        _image1 \u003d resources.get_resource(\"image\")"},{"line_number":101,"context_line":"        _image2 \u003d resources.get_resource(\"image\", force_new\u003dTrue)"},{"line_number":102,"context_line":"  "},{"line_number":103,"context_line":"Let test access properties of test resources in use."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_14a9767b","line":100,"in_reply_to":"da85f559_0bff15ab","updated":"2015-11-16 08:56:00.000000000","message":"good point, it makes sense.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":99,"context_line":"    def test_rebuild_vm(self):"},{"line_number":100,"context_line":"        _image1 \u003d resources.get_resource(\"image\")"},{"line_number":101,"context_line":"        _image2 \u003d resources.get_resource(\"image\", force_new\u003dTrue)"},{"line_number":102,"context_line":"  "},{"line_number":103,"context_line":"Let test access properties of test resources in use."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_cb2fcd3c","line":101,"updated":"2015-11-16 07:05:44.000000000","message":"ditto","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":99,"context_line":"    def test_rebuild_vm(self):"},{"line_number":100,"context_line":"        _image1 \u003d resources.get_resource(\"image\")"},{"line_number":101,"context_line":"        _image2 \u003d resources.get_resource(\"image\", force_new\u003dTrue)"},{"line_number":102,"context_line":"  "},{"line_number":103,"context_line":"Let test access properties of test resources in use."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_94b326e9","line":101,"in_reply_to":"da85f559_cb2fcd3c","updated":"2015-11-16 08:56:00.000000000","message":"Done","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    def test_rebuild_vm(self):"},{"line_number":100,"context_line":"        _image1 \u003d resources.get_resource(\"image\")"},{"line_number":101,"context_line":"        _image2 \u003d resources.get_resource(\"image\", force_new\u003dTrue)"},{"line_number":102,"context_line":"  "},{"line_number":103,"context_line":"Let test access properties of test resources in use."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_0b8cf57d","line":102,"updated":"2015-11-16 07:05:44.000000000","message":"nit: unnecessary spaces","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    def test_rebuild_vm(self):"},{"line_number":100,"context_line":"        _image1 \u003d resources.get_resource(\"image\")"},{"line_number":101,"context_line":"        _image2 \u003d resources.get_resource(\"image\", force_new\u003dTrue)"},{"line_number":102,"context_line":"  "},{"line_number":103,"context_line":"Let test access properties of test resources in use."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_74b002de","line":102,"in_reply_to":"da85f559_0b8cf57d","updated":"2015-11-16 08:56:00.000000000","message":"Done","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    from tempest import resources"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @resources.requires(\u0027image\u0027, id\u003d\u0027small-footprint\u0027)"},{"line_number":110,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":111,"context_line":"        # gets the right image details from the context"},{"line_number":112,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_cbd6ed26","line":109,"updated":"2015-11-16 07:05:44.000000000","message":"ditto","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    from tempest import resources"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    @resources.requires(\u0027image\u0027, id\u003d\u0027small-footprint\u0027)"},{"line_number":110,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":111,"context_line":"        # gets the right image details from the context"},{"line_number":112,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_d4b9aecc","line":109,"in_reply_to":"da85f559_cbd6ed26","updated":"2015-11-16 08:56:00.000000000","message":"Done","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"c573ebafb65d33182b8d05bc734a29f34d11d7bd","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Example workflow:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"1. Install tempest"},{"line_number":161,"context_line":"2. tempest init"},{"line_number":162,"context_line":"3. edit tempest.conf"},{"line_number":163,"context_line":"4. create account.yml - optional"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_5cbb92e5","line":160,"updated":"2015-11-10 15:54:50.000000000","message":"How about having also a CLI tool taking care of the tempest config?","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":157,"context_line":""},{"line_number":158,"context_line":"Example workflow:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"1. Install tempest"},{"line_number":161,"context_line":"2. tempest init"},{"line_number":162,"context_line":"3. edit tempest.conf"},{"line_number":163,"context_line":"4. create account.yml - optional"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_f42072f9","line":160,"in_reply_to":"da85f559_5cbb92e5","updated":"2015-11-16 08:56:00.000000000","message":"Well, this is just one possible workflow - I can add a comment about this, but it would after tempest init in any case.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"48cd27a17c0120ff10370ff4b3371a4a593682a5","unresolved":false,"context_lines":[{"line_number":162,"context_line":"3. edit tempest.conf"},{"line_number":163,"context_line":"4. create account.yml - optional"},{"line_number":164,"context_line":"5. create resources.yml - optional"},{"line_number":165,"context_line":"6. generate yml files via script - mandatory if (5) was not done"},{"line_number":166,"context_line":"7. run tests"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Extra Ideas"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_2bcf7980","line":165,"updated":"2015-11-16 07:05:44.000000000","message":"What are yml files generated at step 6?","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":162,"context_line":"3. edit tempest.conf"},{"line_number":163,"context_line":"4. create account.yml - optional"},{"line_number":164,"context_line":"5. create resources.yml - optional"},{"line_number":165,"context_line":"6. generate yml files via script - mandatory if (5) was not done"},{"line_number":166,"context_line":"7. run tests"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Extra Ideas"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_74356244","line":165,"in_reply_to":"da85f559_2bcf7980","updated":"2015-11-16 08:56:00.000000000","message":"accounts and resources - so this is about generating them automatically if they were not generated manually","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":14885,"name":"Daniel Mellado","email":"dmellado@redhat.com","username":"daniel-mellado"},"change_message_id":"c573ebafb65d33182b8d05bc734a29f34d11d7bd","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  The configuration file generated here does not depend on any resource ID."},{"line_number":182,"context_line":"  The result could be saved as named template."},{"line_number":183,"context_line":"- Init tempest [named template]"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Next Steps"},{"line_number":186,"context_line":"----------"},{"line_number":187,"context_line":"Once stable, migrate the test resource management code to tempest-lib."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_5c2dd244","line":184,"updated":"2015-11-10 15:54:50.000000000","message":"How about use a common format for the test resources?- i.e. have scenario tests defining own resources in the same format, so we can re-use parsers,\n\nI was thinking in something close to in the lines of https://review.openstack.org/#/c/133733/1/specs/tempest-scenario-builder.rst or maybe we could even try to do something with heat.\n\nthe provisioning and de-provisioning of resources could be done in code that is used internally by tempest for the test level resources, and also consumed externally by the tool used to provision resources in resources.yml","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"3718f5b7ae51d0901ca0e28b45385db23deba2cd","unresolved":false,"context_lines":[{"line_number":181,"context_line":"  The configuration file generated here does not depend on any resource ID."},{"line_number":182,"context_line":"  The result could be saved as named template."},{"line_number":183,"context_line":"- Init tempest [named template]"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Next Steps"},{"line_number":186,"context_line":"----------"},{"line_number":187,"context_line":"Once stable, migrate the test resource management code to tempest-lib."}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_d0259cae","line":184,"in_reply_to":"da85f559_5c2dd244","updated":"2015-11-16 08:56:00.000000000","message":"Regarding provisioning of test resources, it\u0027s an interesting concept, but it\u0027s something that would not be part of this spec - I can add a comment anyways in the extra ideas section.\n\nAbout the format of resources.yml itself, I\u0027m not so convinced about which format to use, perhaps we should use an existing language (e.g. heat templates). More comments on this are welcome.\n\nI don\u0027t think anyways that the spec must give the final word on the format itself; we should have it properly documented once implemented.","commit_id":"26a51e25485c9f601d031ce89e62f5b480e2f2eb"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"6cbd7d511a71da284827f3639b7f7fb7fc87f53b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                keypair: yes"},{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - id: fedora"},{"line_number":61,"context_line":"              size: 1GB"},{"line_number":62,"context_line":"              boot: slow"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_942d16aa","line":59,"updated":"2015-11-19 05:15:38.000000000","message":"This solves the problem of if a specific command that we need to get data from lives somewhere else on the system, but does this address the problem of if you need to use a different command with different output to get the data? The remote client in pretty specific in the parsing it does.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                keypair: yes"},{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - id: fedora"},{"line_number":61,"context_line":"              size: 1GB"},{"line_number":62,"context_line":"              boot: slow"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_35764f3f","line":59,"in_reply_to":"ba8a016a_942d16aa","updated":"2015-12-03 17:40:46.000000000","message":"That\u0027s a good point. \n\nWe could make this result oriented rather than tool, e.g. what is the helper that I need to invoke to obtain a certain result (the IP address on the first interface) for a certain guest? The problem would be where to maintain such helpers, because I don\u0027t think tempest could hold a repo of them unless we started testing different guest images in the gate.\n\nWe could have some form of plugin mechanism for that, but I think that\u0027s not something for this spec.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - id: fedora"},{"line_number":61,"context_line":"              size: 1GB"},{"line_number":62,"context_line":"              boot: slow"},{"line_number":63,"context_line":"              cfn-agent: true"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_4496a04d","line":60,"updated":"2015-11-17 03:05:25.000000000","message":"Here should be\n\n name: fedora\n\nI guess.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - id: fedora"},{"line_number":61,"context_line":"              size: 1GB"},{"line_number":62,"context_line":"              boot: slow"},{"line_number":63,"context_line":"              cfn-agent: true"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_15947335","line":60,"in_reply_to":"ba8a016a_4496a04d","updated":"2015-12-03 17:40:46.000000000","message":"Done","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":76,"context_line":"version must be documented as part of this spec."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Let test select test resources, as well as whether to run or skip, based on"},{"line_number":79,"context_line":"filters. Examples:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":".. code-block:: python"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_2774be33","line":79,"updated":"2015-11-17 03:05:25.000000000","message":"Filter ways will be hard-coded on each test with decorators or get_resource() calls.\nSo if resource.xml doesn\u0027t contain necessary resources for some tests, these tests will fail?\n\nI am imaging it is difficult to understand all test filters and the above thing will happen generally.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":76,"context_line":"version must be documented as part of this spec."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Let test select test resources, as well as whether to run or skip, based on"},{"line_number":79,"context_line":"filters. Examples:"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":".. code-block:: python"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_09e9ba1a","line":79,"in_reply_to":"ba8a016a_2774be33","updated":"2015-12-03 17:40:46.000000000","message":"We discussed this in the QA meeting and agreed that we should fail on missing resources. That\u0027s the same behaviour as now like missing image_ref, only where the filter is used the requirement will be more explicit.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":81,"context_line":".. code-block:: python"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # Test specific filters"},{"line_number":84,"context_line":"    @resources.prefers(\u0027image\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":85,"context_line":"    @resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":86,"context_line":"    def test_check_vm_metadata_service():"},{"line_number":87,"context_line":"        # boot VM and check connectivity"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_840fa8e0","line":84,"updated":"2015-11-17 03:05:25.000000000","message":"s/image/images/ for fitting to YAML file.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":81,"context_line":".. code-block:: python"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # Test specific filters"},{"line_number":84,"context_line":"    @resources.prefers(\u0027image\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":85,"context_line":"    @resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":86,"context_line":"    def test_check_vm_metadata_service():"},{"line_number":87,"context_line":"        # boot VM and check connectivity"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_69e4fe3a","line":84,"in_reply_to":"ba8a016a_840fa8e0","updated":"2015-12-03 17:40:46.000000000","message":"Done","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    from tempest import resources"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @resources.requires(\u0027image\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":113,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":114,"context_line":"        # gets the right image details from the context"},{"line_number":115,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_040418be","line":112,"updated":"2015-11-17 03:05:25.000000000","message":"ditto: s/image/images/ for fitting to YAML file.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    from tempest import resources"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @resources.requires(\u0027image\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":113,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":114,"context_line":"        # gets the right image details from the context"},{"line_number":115,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_a9c18682","line":112,"in_reply_to":"ba8a016a_040418be","updated":"2015-12-03 17:40:46.000000000","message":"Done","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    @resources.requires(\u0027image\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":113,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":114,"context_line":"        # gets the right image details from the context"},{"line_number":115,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"},{"line_number":116,"context_line":"        # The size is either configured or discovered"},{"line_number":117,"context_line":"        image_size \u003d resources.get_resource(\"image\").size"},{"line_number":118,"context_line":"        # bootable volume"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_07041abe","line":115,"updated":"2015-11-17 03:05:25.000000000","message":"ditto: s/image/images/ for fitting to YAML file.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    @resources.requires(\u0027image\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":113,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":114,"context_line":"        # gets the right image details from the context"},{"line_number":115,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"},{"line_number":116,"context_line":"        # The size is either configured or discovered"},{"line_number":117,"context_line":"        image_size \u003d resources.get_resource(\"image\").size"},{"line_number":118,"context_line":"        # bootable volume"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_49bee200","line":115,"in_reply_to":"ba8a016a_07041abe","updated":"2015-12-03 17:40:46.000000000","message":"Done","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        # gets the right image details from the context"},{"line_number":115,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"},{"line_number":116,"context_line":"        # The size is either configured or discovered"},{"line_number":117,"context_line":"        image_size \u003d resources.get_resource(\"image\").size"},{"line_number":118,"context_line":"        # bootable volume"},{"line_number":119,"context_line":"        volume \u003d self.volume_client.create_bootable_volume("},{"line_number":120,"context_line":"            image_id\u003dimage_id, size\u003dimage_size)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_27011eaf","line":117,"updated":"2015-11-17 03:05:25.000000000","message":"ditto: s/image/images/ for fitting to YAML file.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        # gets the right image details from the context"},{"line_number":115,"context_line":"        image_id \u003d resources.get_resource(\"image\").id"},{"line_number":116,"context_line":"        # The size is either configured or discovered"},{"line_number":117,"context_line":"        image_size \u003d resources.get_resource(\"image\").size"},{"line_number":118,"context_line":"        # bootable volume"},{"line_number":119,"context_line":"        volume \u003d self.volume_client.create_bootable_volume("},{"line_number":120,"context_line":"            image_id\u003dimage_id, size\u003dimage_size)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_69bb9e0f","line":117,"in_reply_to":"ba8a016a_27011eaf","updated":"2015-12-03 17:40:46.000000000","message":"Done","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":143,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavour_id_from_yml\u003e"},{"line_number":144,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":145,"context_line":"            # idempotent_id as the source test."},{"line_number":146,"context_line":"            _image \u003d resources.get_resource(\"image\").id"},{"line_number":147,"context_line":"            vm \u003d self.servers_client.create_vm(_image.id)"},{"line_number":148,"context_line":"            expected_private_ip \u003d self._get_ip(vm)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_4421c04c","line":145,"updated":"2015-11-17 03:05:25.000000000","message":"ditto: s/image/images/ for fitting to YAML file.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7745d2be4d4b05dd5118ff191ca6ba42907a5d90","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavour_id_from_yml\u003e"},{"line_number":144,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":145,"context_line":"            # idempotent_id as the source test."},{"line_number":146,"context_line":"            _image \u003d resources.get_resource(\"image\").id"},{"line_number":147,"context_line":"            vm \u003d self.servers_client.create_vm(_image.id)"},{"line_number":148,"context_line":"            expected_private_ip \u003d self._get_ip(vm)"},{"line_number":149,"context_line":"            rc \u003d remote_client.RemoteClient(vm)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"ba8a016a_4721c24c","line":146,"updated":"2015-11-17 03:05:25.000000000","message":"ditto: s/image/images/ for fitting to YAML file.","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ec7acd72c8fe7934a5983e16375ba04c449e0d83","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavour_id_from_yml\u003e"},{"line_number":144,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":145,"context_line":"            # idempotent_id as the source test."},{"line_number":146,"context_line":"            _image \u003d resources.get_resource(\"image\").id"},{"line_number":147,"context_line":"            vm \u003d self.servers_client.create_vm(_image.id)"},{"line_number":148,"context_line":"            expected_private_ip \u003d self._get_ip(vm)"},{"line_number":149,"context_line":"            rc \u003d remote_client.RemoteClient(vm)"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7a740942_c95732c9","line":146,"in_reply_to":"ba8a016a_4721c24c","updated":"2015-12-03 17:40:46.000000000","message":"Done","commit_id":"59967ab324f1ab4b8ec91ef1c83eb361c9b5db55"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"ceda1f2117ff3ab9abaa39150178241bd6ddfd0a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  metadata"},{"line_number":33,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":34,"context_line":"  a test requires a special guest image or a different flavor, it must either"},{"line_number":35,"context_line":"  define a new configuration option or impose its own image / flavour to all"},{"line_number":36,"context_line":"  other tests"},{"line_number":37,"context_line":"- the configuration file is large and difficult to handle"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_e4dcec74","line":35,"updated":"2015-12-08 08:25:19.000000000","message":"very nit, I think here should be\n\n s/flavour/flavor\n\n(at least, keep the consistency in this spec :)","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":32,"context_line":"  metadata"},{"line_number":33,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":34,"context_line":"  a test requires a special guest image or a different flavor, it must either"},{"line_number":35,"context_line":"  define a new configuration option or impose its own image / flavour to all"},{"line_number":36,"context_line":"  other tests"},{"line_number":37,"context_line":"- the configuration file is large and difficult to handle"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa69d971_42c28b54","line":35,"in_reply_to":"7a740942_e4dcec74","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Move all test resources related configurations to a dedicated YAML file,"},{"line_number":43,"context_line":"structured as follows:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_89e3a7d8","line":42,"updated":"2015-12-21 14:57:36.000000000","message":"Would it make sense to draw a comparison between how users work (etc/accounts.yaml)?  This appears to be a more generalized version of that paradigm.  Could the resources yaml file incorporate users as well, thereby cutting down on the number of required configuration files?  Is there a strategic reason to keep these files separate?","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":39,"context_line":"Proposed change"},{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Move all test resources related configurations to a dedicated YAML file,"},{"line_number":43,"context_line":"structured as follows:"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa69d971_e2637f18","line":42,"in_reply_to":"3a7e1126_89e3a7d8","updated":"2016-01-12 00:15:42.000000000","message":"There\u0027s no specific need to keep test accounts and resources separated.\nThey could in fact go in the same file, as they are pre-provisioned resources in both cases.\n\nHowever test accounts are locked when in use by tests, test resources are not. I guess it could be possible to have locks on shared resources as well, but I don\u0027t see a concrete use case for that.\n\nWe might anyways re-use / share the YAML parsing code at least.","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"              boot: quick"},{"line_number":54,"context_line":"              ssh:"},{"line_number":55,"context_line":"                user: cirros"},{"line_number":56,"context_line":"                keypair: yes"},{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_698bdb1f","line":56,"range":{"start_line":56,"start_character":25,"end_line":56,"end_character":28},"updated":"2015-12-21 14:57:36.000000000","message":"This value is \"yes\", but in the sample code that references it, it appears to be compared to Python \"True\".  Maybe have the value be true/false for the sake of consistency?","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":53,"context_line":"              boot: quick"},{"line_number":54,"context_line":"              ssh:"},{"line_number":55,"context_line":"                user: cirros"},{"line_number":56,"context_line":"                keypair: yes"},{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_bdb477d1","line":56,"range":{"start_line":56,"start_character":25,"end_line":56,"end_character":28},"in_reply_to":"3a7e1126_698bdb1f","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":54,"context_line":"              ssh:"},{"line_number":55,"context_line":"                user: cirros"},{"line_number":56,"context_line":"                keypair: yes"},{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - resource_name: fedora"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_298153fb","line":57,"range":{"start_line":57,"start_character":26,"end_line":57,"end_character":29},"updated":"2015-12-21 14:57:36.000000000","message":"See above.","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":54,"context_line":"              ssh:"},{"line_number":55,"context_line":"                user: cirros"},{"line_number":56,"context_line":"                keypair: yes"},{"line_number":57,"context_line":"                password: yes"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - resource_name: fedora"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_5dca1b51","line":57,"range":{"start_line":57,"start_character":26,"end_line":57,"end_character":29},"in_reply_to":"3a7e1126_298153fb","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":103,"context_line":"    def test_rebuild_vm(self):"},{"line_number":104,"context_line":"        _image1 \u003d resources.get_resource(\"images\")"},{"line_number":105,"context_line":"        _image2 \u003d resources.get_resource(\"images\", force_new\u003dTrue)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Let test access properties of test resources in use."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_290e33e5","line":105,"range":{"start_line":105,"start_character":61,"end_line":105,"end_character":65},"updated":"2015-12-21 14:57:36.000000000","message":"What is the purpose of this parameter?  Is it to ensure that _image2 is different from _image1?  If so, how could this be implemented in a stateless function vs. a test-specific class instance that can maintain state?","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":103,"context_line":"    def test_rebuild_vm(self):"},{"line_number":104,"context_line":"        _image1 \u003d resources.get_resource(\"images\")"},{"line_number":105,"context_line":"        _image2 \u003d resources.get_resource(\"images\", force_new\u003dTrue)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Let test access properties of test resources in use."},{"line_number":108,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_fd2f4ff4","line":105,"range":{"start_line":105,"start_character":61,"end_line":105,"end_character":65},"in_reply_to":"3a7e1126_290e33e5","updated":"2016-01-12 00:15:42.000000000","message":"Yes, that\u0027s a very good point, this would require a state. The problem could be solved by making this a single call, where the number of required resources is specified.","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            image_id\u003dimage_id, size\u003dimage_size)"},{"line_number":122,"context_line":"        vm \u003d self.servers_client.create_vm(volume)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_c67bdcbc","line":124,"range":{"start_line":124,"start_character":11,"end_line":124,"end_character":15},"updated":"2015-12-21 14:57:36.000000000","message":"Grammar is a bit off here. Some correct alternatives: \"a test selects\" or \"tests select\"","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            image_id\u003dimage_id, size\u003dimage_size)"},{"line_number":122,"context_line":"        vm \u003d self.servers_client.create_vm(volume)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_9d597391","line":124,"range":{"start_line":124,"start_character":11,"end_line":124,"end_character":15},"in_reply_to":"3a7e1126_c67bdcbc","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        vm \u003d self.servers_client.create_vm(volume)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_8905e711","line":125,"range":{"start_line":125,"start_character":44,"end_line":125,"end_character":49},"updated":"2015-12-21 14:57:36.000000000","message":"\"...at the class level...\"","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        vm \u003d self.servers_client.create_vm(volume)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_062484c2","line":125,"range":{"start_line":125,"start_character":63,"end_line":125,"end_character":67},"updated":"2015-12-21 14:57:36.000000000","message":"Either \"a test\" or \"tests\"","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        vm \u003d self.servers_client.create_vm(volume)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_fd642f4a","line":125,"range":{"start_line":125,"start_character":44,"end_line":125,"end_character":49},"in_reply_to":"3a7e1126_8905e711","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: python"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_065d6446","line":126,"range":{"start_line":126,"start_character":45,"end_line":126,"end_character":49},"updated":"2015-12-21 14:57:36.000000000","message":"should be \"than\"","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":123,"context_line":""},{"line_number":124,"context_line":"By default test select one (or zero) resource from the resource filters"},{"line_number":125,"context_line":"specified. This behaviour can be changed at class level to let test run"},{"line_number":126,"context_line":"multiple times (using testscenarios) if more then one resource is filtered."},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: python"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_5d545b53","line":126,"range":{"start_line":126,"start_character":45,"end_line":126,"end_character":49},"in_reply_to":"3a7e1126_065d6446","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"ceda1f2117ff3ab9abaa39150178241bd6ddfd0a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        from tempest.common import remote_client"},{"line_number":133,"context_line":"        from tempest import resources"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        test_scenarios \u003d [\u0027images\u0027, \u0027flavours\u0027]"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        @test.idempotent_id(\u0027a3c27e94-f56c-42c4-8600-d6790650b9c5\u0027)"},{"line_number":138,"context_line":"        @requires(\u0027image-property\u0027, tools\u003d\u0027ip\u0027)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_e4406c36","line":135,"updated":"2015-12-08 08:25:19.000000000","message":"ditto here","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        from tempest.common import remote_client"},{"line_number":133,"context_line":"        from tempest import resources"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        test_scenarios \u003d [\u0027images\u0027, \u0027flavours\u0027]"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        @test.idempotent_id(\u0027a3c27e94-f56c-42c4-8600-d6790650b9c5\u0027)"},{"line_number":138,"context_line":"        @requires(\u0027image-property\u0027, tools\u003d\u0027ip\u0027)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_3d4ba7b2","line":135,"in_reply_to":"7a740942_e4406c36","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"ceda1f2117ff3ab9abaa39150178241bd6ddfd0a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            # the \u0027ip\u0027 tool available."},{"line_number":142,"context_line":"            # Test discovery with no cloud will return one test."},{"line_number":143,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":144,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavour_id_from_yml\u003e"},{"line_number":145,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":146,"context_line":"            # idempotent_id as the source test."},{"line_number":147,"context_line":"            _image \u003d resources.get_resource(\"images\").id"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_647b1c8d","line":144,"updated":"2015-12-08 08:25:19.000000000","message":"ditto here","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            # the \u0027ip\u0027 tool available."},{"line_number":142,"context_line":"            # Test discovery with no cloud will return one test."},{"line_number":143,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":144,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavour_id_from_yml\u003e"},{"line_number":145,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":146,"context_line":"            # idempotent_id as the source test."},{"line_number":147,"context_line":"            _image \u003d resources.get_resource(\"images\").id"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_ddc60b16","line":144,"in_reply_to":"7a740942_647b1c8d","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":164,"context_line":"1. Install tempest"},{"line_number":165,"context_line":"2. tempest init"},{"line_number":166,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":167,"context_line":"4. create account.yml - optional"},{"line_number":168,"context_line":"5. create resources.yml - optional"},{"line_number":169,"context_line":"6. generate yml files (4) and (5) via script - mandatory if (5) was not done"},{"line_number":170,"context_line":"7. run tests"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_69667b2b","line":167,"updated":"2015-12-21 14:57:36.000000000","message":"Existing logic has this file as \"accounts.yaml\"","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":164,"context_line":"1. Install tempest"},{"line_number":165,"context_line":"2. tempest init"},{"line_number":166,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":167,"context_line":"4. create account.yml - optional"},{"line_number":168,"context_line":"5. create resources.yml - optional"},{"line_number":169,"context_line":"6. generate yml files (4) and (5) via script - mandatory if (5) was not done"},{"line_number":170,"context_line":"7. run tests"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_5ddbfbed","line":167,"in_reply_to":"3a7e1126_69667b2b","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":165,"context_line":"2. tempest init"},{"line_number":166,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":167,"context_line":"4. create account.yml - optional"},{"line_number":168,"context_line":"5. create resources.yml - optional"},{"line_number":169,"context_line":"6. generate yml files (4) and (5) via script - mandatory if (5) was not done"},{"line_number":170,"context_line":"7. run tests"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_a980e38b","line":168,"updated":"2015-12-21 14:57:36.000000000","message":"Maybe make this \"resources.yaml\" (4-letter suffix) for consistency?","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":165,"context_line":"2. tempest init"},{"line_number":166,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":167,"context_line":"4. create account.yml - optional"},{"line_number":168,"context_line":"5. create resources.yml - optional"},{"line_number":169,"context_line":"6. generate yml files (4) and (5) via script - mandatory if (5) was not done"},{"line_number":170,"context_line":"7. run tests"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_9d9e5306","line":168,"in_reply_to":"3a7e1126_a980e38b","updated":"2016-01-12 00:15:42.000000000","message":"Done","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"3017e9fd548787079954f2cc7126c9352be07e6f","unresolved":false,"context_lines":[{"line_number":166,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":167,"context_line":"4. create account.yml - optional"},{"line_number":168,"context_line":"5. create resources.yml - optional"},{"line_number":169,"context_line":"6. generate yml files (4) and (5) via script - mandatory if (5) was not done"},{"line_number":170,"context_line":"7. run tests"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Extra Ideas (not in scope for this spec)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a7e1126_29b5d37c","line":169,"updated":"2015-12-21 14:57:36.000000000","message":"Where would this script get the necessary information to generate account.yml and resources.yml?  From tempest.conf?  If so, why not have tempest initially do this step automatically while the existing configuration settings are still deprecated (vs. disabled).","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7a240a8f7596f4f7bb961191859c1b084b21f445","unresolved":false,"context_lines":[{"line_number":166,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":167,"context_line":"4. create account.yml - optional"},{"line_number":168,"context_line":"5. create resources.yml - optional"},{"line_number":169,"context_line":"6. generate yml files (4) and (5) via script - mandatory if (5) was not done"},{"line_number":170,"context_line":"7. run tests"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Extra Ideas (not in scope for this spec)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da6ed579_fd674f23","line":169,"in_reply_to":"3a7e1126_29b5d37c","updated":"2016-01-12 00:15:42.000000000","message":"Well this is not very well defined indeed, my idea here was to use discovery to generate the files. They can be manually amended after generation if needed.","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"ceda1f2117ff3ab9abaa39150178241bd6ddfd0a","unresolved":false,"context_lines":[{"line_number":210,"context_line":"Primary assignees:"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"  Andrea Frittoli (andrea.frittoli@hpe.com)"},{"line_number":213,"context_line":"  John S Warren (jswarren@us.ibm.com)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"Milestones"},{"line_number":216,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7a740942_f9c9f959","line":213,"updated":"2015-12-08 08:25:19.000000000","message":"It seems better like below\n\n - Andrea...\n - John...","commit_id":"2fe2446cd11ebc0eb5068b65207d8546c1c12521"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"24d90ac819c140f4928bd474e9a9cdcb35d3de0b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"- using different resources in different tests requires a proliferation of"},{"line_number":29,"context_line":"  configuration options: for instance we have a guest image for API tests, a"},{"line_number":30,"context_line":"  guest image for scenario tests and a guest image for third-party tests."},{"line_number":31,"context_line":"  Each of them comes with it\u0027s own name or ID and ssh user and possibly other"},{"line_number":32,"context_line":"  metadata"},{"line_number":33,"context_line":"- we have very little flexibility on how we use test resources for tests. If"},{"line_number":34,"context_line":"  a test requires a special guest image or a different flavor, it must either"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_4b83facc","line":31,"updated":"2016-01-12 20:54:16.000000000","message":"minor nit, but it\u0027s -\u003e its","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"24d90ac819c140f4928bd474e9a9cdcb35d3de0b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                password: true"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - resource_name: fedora"},{"line_number":61,"context_line":"              id: [uuid]"},{"line_number":62,"context_line":"              size: 1GB"},{"line_number":63,"context_line":"              boot: slow"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_0b03c243","line":60,"updated":"2016-01-12 20:54:16.000000000","message":"I know this is mostly example data, but I think having the distro (Ubuntu/debian/etc) as a property of images would be helpful since the image name may not always reflect its distro","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"53218937e21c0352ee0c77afea98b9d493cda08f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                password: true"},{"line_number":58,"context_line":"              tools:"},{"line_number":59,"context_line":"                ip: /bin/ip"},{"line_number":60,"context_line":"            - resource_name: fedora"},{"line_number":61,"context_line":"              id: [uuid]"},{"line_number":62,"context_line":"              size: 1GB"},{"line_number":63,"context_line":"              boot: slow"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bae84128_3e2677ce","line":60,"in_reply_to":"da6ed579_0b03c243","updated":"2016-02-21 23:26:00.000000000","message":"The resource name is a logical identifier of the image. We could have the disto to be part of the image properties.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":74,"context_line":"              cidr: 10.1.0.0/16"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The exact syntax of the YAML file might change during implementation, the final"},{"line_number":77,"context_line":"version must be documented as part of this spec."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The YAML file will be validated once, before test execution - test won\u0027t run"},{"line_number":80,"context_line":"if an invalid YAML file is configured. The resources specified in the file"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_7172704b","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":47},"updated":"2016-01-12 22:23:05.000000000","message":"does it really? I assume we\u0027ll write real documentation in the configuration guide wouldn\u0027t that take precedence?","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"53218937e21c0352ee0c77afea98b9d493cda08f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"              cidr: 10.1.0.0/16"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The exact syntax of the YAML file might change during implementation, the final"},{"line_number":77,"context_line":"version must be documented as part of this spec."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The YAML file will be validated once, before test execution - test won\u0027t run"},{"line_number":80,"context_line":"if an invalid YAML file is configured. The resources specified in the file"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bae84128_5e2b7b94","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":47},"in_reply_to":"da6ed579_7172704b","updated":"2016-02-21 23:26:00.000000000","message":"Heh, I meant must be part of the docs... I\u0027ll fix this.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"24d90ac819c140f4928bd474e9a9cdcb35d3de0b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"The exact syntax of the YAML file might change during implementation, the final"},{"line_number":77,"context_line":"version must be documented as part of this spec."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The YAML file will be validated once, before test execution - test won\u0027t run"},{"line_number":80,"context_line":"if an invalid YAML file is configured. The resources specified in the file"},{"line_number":81,"context_line":"won\u0027t be validated."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_8bbc926d","line":79,"updated":"2016-01-12 20:54:16.000000000","message":"What would be the mechanism that performs this validation? Would this be a check in test fixtures or a function of the test runner?","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"The exact syntax of the YAML file might change during implementation, the final"},{"line_number":77,"context_line":"version must be documented as part of this spec."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The YAML file will be validated once, before test execution - test won\u0027t run"},{"line_number":80,"context_line":"if an invalid YAML file is configured. The resources specified in the file"},{"line_number":81,"context_line":"won\u0027t be validated."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_31087891","line":79,"in_reply_to":"da6ed579_8bbc926d","updated":"2016-01-12 22:23:05.000000000","message":"I assume it\u0027ll be as part of setUpClass when the file is first parsed and the resource manager class is initialized. This is basically how we did things for accounts.yaml","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"24d90ac819c140f4928bd474e9a9cdcb35d3de0b","unresolved":false,"context_lines":[{"line_number":86,"context_line":".. code-block:: python"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # Test specific filters"},{"line_number":89,"context_line":"    @resources.prefers(\u0027images\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":90,"context_line":"    @resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":91,"context_line":"    def test_check_vm_metadata_service():"},{"line_number":92,"context_line":"        # boot VM and check connectivity"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_660e3536","line":89,"updated":"2016-01-12 20:54:16.000000000","message":"Going back to example above, wouldn\u0027t \u0027small-footprint\u0027 be better as an attribute of the image and not it\u0027s name? The naming could be confusing because an environment may not have a small image. Another possibility would be to let the resource manager determine the smallest image from the listed resources by its size","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e7dbcb6c26a478bec3dbd1735ac9040b995da94d","unresolved":false,"context_lines":[{"line_number":86,"context_line":".. code-block:: python"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    # Test specific filters"},{"line_number":89,"context_line":"    @resources.prefers(\u0027images\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":90,"context_line":"    @resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":91,"context_line":"    def test_check_vm_metadata_service():"},{"line_number":92,"context_line":"        # boot VM and check connectivity"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_170684ce","line":89,"in_reply_to":"da6ed579_660e3536","updated":"2016-01-12 22:55:17.000000000","message":"The resource name is just a logical name to be used in tests to refer to the resource, it\u0027s not meant as an actual image name registered in glance.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        def resource_setup(self):"},{"line_number":101,"context_line":"            # Instance wide filters"},{"line_number":102,"context_line":"            resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code-block:: python"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_51216cfa","line":102,"range":{"start_line":102,"start_character":12,"end_line":102,"end_character":21},"updated":"2016-01-12 22:23:05.000000000","message":"is this just for skip logic? Why not just have this return the image ids","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e7dbcb6c26a478bec3dbd1735ac9040b995da94d","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        def resource_setup(self):"},{"line_number":101,"context_line":"            # Instance wide filters"},{"line_number":102,"context_line":"            resources.requires(\u0027image-property\u0027, ssh\u003d{\u0027keypair\u0027: True})"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code-block:: python"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_17d4441e","line":102,"range":{"start_line":102,"start_character":12,"end_line":102,"end_character":21},"in_reply_to":"da6ed579_51216cfa","updated":"2016-01-12 22:55:17.000000000","message":"sure, this was just meant to show that filter logic can be used at test class level as well.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":107,"context_line":"    def test_rebuild_vm(self):"},{"line_number":108,"context_line":"        # Qty allows requesting N distinct resources"},{"line_number":109,"context_line":"        _image1, _image2 \u003d resources.get_resource(\"images\", qty\u003d2)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Let test access properties of test resources in use."},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_1113f4b9","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":15},"updated":"2016-01-12 22:23:05.000000000","message":"Is this the id or the body response from an actual get?","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e7dbcb6c26a478bec3dbd1735ac9040b995da94d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    @resources.requires(\u0027image-property\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":107,"context_line":"    def test_rebuild_vm(self):"},{"line_number":108,"context_line":"        # Qty allows requesting N distinct resources"},{"line_number":109,"context_line":"        _image1, _image2 \u003d resources.get_resource(\"images\", qty\u003d2)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Let test access properties of test resources in use."},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_57f2bcd3","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":15},"in_reply_to":"da6ed579_1113f4b9","updated":"2016-01-12 22:55:17.000000000","message":"I thought it would be the id, as most APIs only need that, but I may be wrong.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    from tempest import resources"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @resources.requires(\u0027images\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":118,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":119,"context_line":"        # gets the right image details from the context"},{"line_number":120,"context_line":"        image_id \u003d resources.get_resource(\"images\").id"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_34862666","line":117,"range":{"start_line":117,"start_character":5,"end_line":117,"end_character":23},"updated":"2016-01-12 22:23:05.000000000","message":"Are we going to have to decorate every test that creates a server? (or add a line to every resource_setup) That seems overly verbose. I feel like it\u0027s a safe assumption to assume 1 image and flavor is required for for every test and the decorator is only needed to indicate preferences or requirements beyond that bare minimum. (or turn off that assumption)","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e7dbcb6c26a478bec3dbd1735ac9040b995da94d","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    from tempest import resources"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    @resources.requires(\u0027images\u0027, resource_name\u003d\u0027small-footprint\u0027)"},{"line_number":118,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":119,"context_line":"        # gets the right image details from the context"},{"line_number":120,"context_line":"        image_id \u003d resources.get_resource(\"images\").id"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_7772604b","line":117,"range":{"start_line":117,"start_character":5,"end_line":117,"end_character":23},"in_reply_to":"da6ed579_34862666","updated":"2016-01-12 22:55:17.000000000","message":"Yes I never intended the decorator to be something required on all tests.\nA base image and flavor can be added in the resource setup of the base test class for instance, so that all test have them available.\nIt\u0027s probably better to detail this in the spec.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":170,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":171,"context_line":"4. create accounts.yaml - optional"},{"line_number":172,"context_line":"5. create resources.yaml - optional"},{"line_number":173,"context_line":"6. generate yml files (4) and (5) via script using discover - mandatory if (5)"},{"line_number":174,"context_line":"   was not done. Files can be amended after the automatic generation."},{"line_number":175,"context_line":"7. run tests"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_74ba5e0c","line":173,"range":{"start_line":173,"start_character":0,"end_line":173,"end_character":2},"updated":"2016-01-12 22:23:05.000000000","message":"Is there a simple configuration case? While I understand the importance of having a syntax for describing resources I don\u0027t think we want to force that on users. Just like accounts.yaml is a good thing we still have tenant isolation to enable the simple configuration case.\n\nThe real advantage here is we can remove a lot of the cruft, inconsistencies, and duplication from the tempest config. That was a poor interface for describing the extra layer of complexity. But with this new file we are adding an additional layer of complexity when in the base case all that is literally needed is a single image id and flavor id. Sure you\u0027re making assumptions about what that image and flavor are, but we can be explicit about that and say if you need more granularity use the file.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e7dbcb6c26a478bec3dbd1735ac9040b995da94d","unresolved":false,"context_lines":[{"line_number":170,"context_line":"3. edit tempest.conf (manually or via script)"},{"line_number":171,"context_line":"4. create accounts.yaml - optional"},{"line_number":172,"context_line":"5. create resources.yaml - optional"},{"line_number":173,"context_line":"6. generate yml files (4) and (5) via script using discover - mandatory if (5)"},{"line_number":174,"context_line":"   was not done. Files can be amended after the automatic generation."},{"line_number":175,"context_line":"7. run tests"},{"line_number":176,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_57f39c9e","line":173,"range":{"start_line":173,"start_character":0,"end_line":173,"end_character":2},"in_reply_to":"da6ed579_74ba5e0c","updated":"2016-01-12 22:55:17.000000000","message":"Well I thought that if generation of the YAML file is done automatically we don\u0027t need then to support multiple code paths.\nBut also supporting a simple set of CONF options, and move everything else to the YAML file sounds like a viable option.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b73a5d7c52d1a29ee5650b2d716548b4d1906fc4","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Work Items"},{"line_number":227,"context_line":"----------"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"- YAML parser"},{"line_number":230,"context_line":"- Define decorators / class level methods to filter resources"},{"line_number":231,"context_line":"- Functions to access resources from within the tests"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_74ed7eee","line":228,"updated":"2016-01-12 22:23:05.000000000","message":"We also need to start the deprecation timer on the old config options this will be replacing.","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"e7dbcb6c26a478bec3dbd1735ac9040b995da94d","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Work Items"},{"line_number":227,"context_line":"----------"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"- YAML parser"},{"line_number":230,"context_line":"- Define decorators / class level methods to filter resources"},{"line_number":231,"context_line":"- Functions to access resources from within the tests"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da6ed579_172c4401","line":228,"in_reply_to":"da6ed579_74ed7eee","updated":"2016-01-12 22:55:17.000000000","message":"Yes, good point","commit_id":"442873f1909d026662325f147b78a27f38171f3f"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"9d935d17e15c51844a711b7803ee2e91b968b1c3","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"},{"line_number":47,"context_line":"the YAML file instead of tempest.conf, a richer syntax is available which"},{"line_number":48,"context_line":"allows for testing with differen guest images and flavours."},{"line_number":49,"context_line":"The YAML file could be structured as follows:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":9,"id":"bae84128_d7d2c2d1","line":48,"range":{"start_line":48,"start_character":24,"end_line":48,"end_character":32},"updated":"2016-02-22 08:41:29.000000000","message":"typo: different","commit_id":"83b50ad28c27f80542a06f43e1ce1d810b5c1ecd"},{"author":{"_account_id":10016,"name":"Joseph Lanoux","email":"joseph.lanoux@hpe.com","username":"lanoux"},"change_message_id":"9d935d17e15c51844a711b7803ee2e91b968b1c3","unresolved":false,"context_lines":[{"line_number":91,"context_line":"decorator, i.e. the decorator set-up for the duration of the test a variable"},{"line_number":92,"context_line":"which contains the dict of the resources as returned by the API."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Tests by default will fall back to configured resources if no match can b"},{"line_number":95,"context_line":"found, but fall_back can be disabled, which leads to the test being sipped."},{"line_number":96,"context_line":"Examples:"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"bae84128_77c016e1","line":94,"range":{"start_line":94,"start_character":72,"end_line":94,"end_character":73},"updated":"2016-02-22 08:41:29.000000000","message":"type be","commit_id":"83b50ad28c27f80542a06f43e1ce1d810b5c1ecd"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6215e398ed389deea702822ccd081b8f775b57ec","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  the expected features in the cloud and tempest desired behaviour"},{"line_number":28,"context_line":"- using different resources in different tests requires a proliferation of"},{"line_number":29,"context_line":"  configuration options: for instance we have a guest image for API tests, a"},{"line_number":30,"context_line":"  guest image for scenario tests and a guest image for third-party tests."},{"line_number":31,"context_line":"  Each of them comes with its own name or ID and ssh user and possibly other"},{"line_number":32,"context_line":"  metadata"},{"line_number":33,"context_line":"- we have very little flexibility on how we use test resources for tests. If"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bae84128_aa1f30b6","line":30,"updated":"2016-02-24 20:06:17.000000000","message":"nit: There are no third party tests anymore","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dde67aeb2643bd64a93f600fad1d4a9e0abded78","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  the expected features in the cloud and tempest desired behaviour"},{"line_number":28,"context_line":"- using different resources in different tests requires a proliferation of"},{"line_number":29,"context_line":"  configuration options: for instance we have a guest image for API tests, a"},{"line_number":30,"context_line":"  guest image for scenario tests and a guest image for third-party tests."},{"line_number":31,"context_line":"  Each of them comes with its own name or ID and ssh user and possibly other"},{"line_number":32,"context_line":"  metadata"},{"line_number":33,"context_line":"- we have very little flexibility on how we use test resources for tests. If"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_c253bd15","line":30,"in_reply_to":"bae84128_aa1f30b6","updated":"2016-03-31 16:16:27.000000000","message":"yeah, it is nice to remove that.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6215e398ed389deea702822ccd081b8f775b57ec","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":43,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":44,"context_line":"floating IPs pool."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bae84128_8a1cecc2","line":43,"updated":"2016-02-24 20:06:17.000000000","message":"So we\u0027re dropping support for running rebuild in resize tests with just a tempest.conf?","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":43,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":44,"context_line":"floating IPs pool."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_dd023b6f","line":43,"in_reply_to":"ba0121b8_22c8b9a7","updated":"2016-04-04 09:00:57.000000000","message":"Actually in the gate we use the same image ID for image_ref and image_ref_alt. While it would be a nicer test if it used two different images, it doesn\u0027t in the gate atm.\nThere are a few API and scenario tests where rebuild is done, using alt image, but a different image is never enforced.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dde67aeb2643bd64a93f600fad1d4a9e0abded78","unresolved":false,"context_lines":[{"line_number":40,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":43,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":44,"context_line":"floating IPs pool."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_22c8b9a7","line":43,"in_reply_to":"bae84128_8a1cecc2","updated":"2016-03-31 16:16:27.000000000","message":"nice point, these APIs(rebuild, resize) require two resources for each at least. It is fine if the default YAML file contains these alternative resources. These default values can be a good sample I guess.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fb5035b7d4bdf8fbdb33a7f494eb4df3796f2047","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"},{"line_number":47,"context_line":"the YAML file instead of tempest.conf, a richer syntax is available which"},{"line_number":48,"context_line":"allows for testing with differen guest images and flavours."},{"line_number":49,"context_line":"The YAML file could be structured as follows:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":".. code-block:: yaml"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aef4532_c23d7bde","line":48,"updated":"2016-03-10 10:09:16.000000000","message":"differen","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dde67aeb2643bd64a93f600fad1d4a9e0abded78","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    resources:"},{"line_number":55,"context_line":"        images:"},{"line_number":56,"context_line":"            - resource_name: small-footprint"},{"line_number":57,"context_line":"              id: [uuid]"},{"line_number":58,"context_line":"              size: 100MB"},{"line_number":59,"context_line":"              boot: quick"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_a2ab2974","line":56,"range":{"start_line":56,"start_character":14,"end_line":56,"end_character":27},"updated":"2016-03-31 16:16:27.000000000","message":"How about just \"name\" instead of \"resource_name\"?\n\nAPIs returns \"name\" in a response body in most cases, and it is easy to handle the  \"name\" from the implementation viewpoint. In addition, this is the name of resource clearly because of upper level \"resources\". So \"resource_\" seems a little redundant.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"1d58c525430a588219feed32e53cbf33ccfffb63","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    resources:"},{"line_number":55,"context_line":"        images:"},{"line_number":56,"context_line":"            - resource_name: small-footprint"},{"line_number":57,"context_line":"              id: [uuid]"},{"line_number":58,"context_line":"              size: 100MB"},{"line_number":59,"context_line":"              boot: quick"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_f3617206","line":56,"range":{"start_line":56,"start_character":14,"end_line":56,"end_character":27},"in_reply_to":"ba0121b8_a2ab2974","updated":"2016-03-31 16:47:39.000000000","message":"Looking at earlier versions, it appears that the thinking was that a resource might be referenced by name (using the \"name\" attribute) instead of uuid.  It would be good if the attribute naming were consistent (resource_name being used for all resource types), regardless of whether a given resource type can be referenced by name instead of uuid.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    resources:"},{"line_number":55,"context_line":"        images:"},{"line_number":56,"context_line":"            - resource_name: small-footprint"},{"line_number":57,"context_line":"              id: [uuid]"},{"line_number":58,"context_line":"              size: 100MB"},{"line_number":59,"context_line":"              boot: quick"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_2010704e","line":56,"range":{"start_line":56,"start_character":14,"end_line":56,"end_character":27},"in_reply_to":"ba0121b8_f3617206","updated":"2016-04-04 09:00:57.000000000","message":"Indeed, there are two different \"names\" here, one if how the conf references to a resource, and the other is how a test references to a resource.\n\n\"resource_name\" is what test use to reference to a resource.\n\"name\" is what conf may use to reference to a resource.\n\nWe decided in the initial implementation to use IDs for simplicity. But eventually I\u0027d love to be able to have resources referenced by name in CONF, so that CONF doesn\u0027t need to change if a cloud is re-deployed or test resources are re-created.\n\nResolving names to IDs involves a bit more complexity because it requires to use the right tenant to be used for that.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fb5035b7d4bdf8fbdb33a7f494eb4df3796f2047","unresolved":false,"context_lines":[{"line_number":79,"context_line":"version must be included in tempest docs."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"One resource config class (singleton) will take care of loading the YAML file"},{"line_number":82,"context_line":"and expose one methods to access the dict of resources:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- If no YAML file is specified, the resource config class will build the same"},{"line_number":85,"context_line":"  dict based on tempest.conf flags."}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aef4532_e28197fc","line":82,"updated":"2016-03-10 10:09:16.000000000","message":"method","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":79,"context_line":"version must be included in tempest docs."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"One resource config class (singleton) will take care of loading the YAML file"},{"line_number":82,"context_line":"and expose one methods to access the dict of resources:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"- If no YAML file is specified, the resource config class will build the same"},{"line_number":85,"context_line":"  dict based on tempest.conf flags."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_c02534af","line":82,"in_reply_to":"5aef4532_e28197fc","updated":"2016-04-04 09:00:57.000000000","message":"Done","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6215e398ed389deea702822ccd081b8f775b57ec","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Tests by default will fall back to the closest matching resources if no"},{"line_number":97,"context_line":"perfect match can be found, but fall_back can be disabled, which leads to the"},{"line_number":98,"context_line":"test being sipped."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Examples:"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bae84128_ea777806","line":98,"updated":"2016-02-24 20:06:17.000000000","message":"While I\u0027m sure sipping a test preserves the flavor, I think this should be s/sipped/skipped","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Tests by default will fall back to the closest matching resources if no"},{"line_number":97,"context_line":"perfect match can be found, but fall_back can be disabled, which leads to the"},{"line_number":98,"context_line":"test being sipped."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Examples:"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_2037d0e4","line":98,"in_reply_to":"bae84128_ea777806","updated":"2016-04-04 09:00:57.000000000","message":"LoL I love sipping tests :D","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dde67aeb2643bd64a93f600fad1d4a9e0abded78","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            self.image \u003d self.resources.requires(\u0027images\u0027,"},{"line_number":111,"context_line":"                                                 ssh_keypair\u003dTrue,"},{"line_number":112,"context_line":"                                                 fall_back\u003dFalse)"},{"line_number":113,"context_line":"            self.flavour \u003d self.resources.requires(\u0027flavours\u0027,"},{"line_number":114,"context_line":"                                                   resource_name\u003d\u0027tiny\u0027)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_82a54548","line":113,"range":{"start_line":113,"start_character":52,"end_line":113,"end_character":60},"updated":"2016-03-31 16:16:27.000000000","message":"s/flavours/flavors/ for matching the above YAML sample.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            self.image \u003d self.resources.requires(\u0027images\u0027,"},{"line_number":111,"context_line":"                                                 ssh_keypair\u003dTrue,"},{"line_number":112,"context_line":"                                                 fall_back\u003dFalse)"},{"line_number":113,"context_line":"            self.flavour \u003d self.resources.requires(\u0027flavours\u0027,"},{"line_number":114,"context_line":"                                                   resource_name\u003d\u0027tiny\u0027)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_8034dcde","line":113,"range":{"start_line":113,"start_character":52,"end_line":113,"end_character":60},"in_reply_to":"ba0121b8_82a54548","updated":"2016-04-04 09:00:57.000000000","message":"Done","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dde67aeb2643bd64a93f600fad1d4a9e0abded78","unresolved":false,"context_lines":[{"line_number":111,"context_line":"                                                 ssh_keypair\u003dTrue,"},{"line_number":112,"context_line":"                                                 fall_back\u003dFalse)"},{"line_number":113,"context_line":"            self.flavour \u003d self.resources.requires(\u0027flavours\u0027,"},{"line_number":114,"context_line":"                                                   resource_name\u003d\u0027tiny\u0027)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":".. code-block:: python"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_627911c8","line":114,"range":{"start_line":114,"start_character":51,"end_line":114,"end_character":64},"updated":"2016-03-31 16:16:27.000000000","message":"ditto: how about \"name\"?","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dde67aeb2643bd64a93f600fad1d4a9e0abded78","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    # Multiple calls allow allocating multiple distinct resources of the"},{"line_number":119,"context_line":"    # same type"},{"line_number":120,"context_line":"    def resource_setup(self):"},{"line_number":121,"context_line":"        self.image1 \u003d self.resources.requires(\u0027images\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":122,"context_line":"        self.image2 \u003d self.resources.requires(\u0027images\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def test_rebuild_vm(self):"},{"line_number":125,"context_line":"        print(\"Got two images: %s, %s\" % (self.image1[\u0027name\u0027],"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba0121b8_9022aca1","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":68},"updated":"2016-03-31 16:16:27.000000000","message":"In this case, it seems possible to select the same resource as self.image1 and self.image2.\nThen the rebuild API test fails, how to handle that?","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    # Multiple calls allow allocating multiple distinct resources of the"},{"line_number":119,"context_line":"    # same type"},{"line_number":120,"context_line":"    def resource_setup(self):"},{"line_number":121,"context_line":"        self.image1 \u003d self.resources.requires(\u0027images\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":122,"context_line":"        self.image2 \u003d self.resources.requires(\u0027images\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def test_rebuild_vm(self):"},{"line_number":125,"context_line":"        print(\"Got two images: %s, %s\" % (self.image1[\u0027name\u0027],"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_40964495","line":122,"range":{"start_line":121,"start_character":0,"end_line":122,"end_character":68},"in_reply_to":"ba0121b8_9022aca1","updated":"2016-04-04 09:00:57.000000000","message":"Resources will have state, so a new call can provide a different image.\nWe could actually have the ability to ask for a different image as nice to have, or as mandatory.\nATM rebuild test in the gate use the same image.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6215e398ed389deea702822ccd081b8f775b57ec","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                                          self.image2[\u0027name\u0027]))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Let test access properties of test resources in use. Extra properties"},{"line_number":129,"context_line":"configured in resources.yaml are merged to the original dict."},{"line_number":130,"context_line":""},{"line_number":131,"context_line":".. code-block:: python"},{"line_number":132,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bae84128_ca7c34ee","line":129,"updated":"2016-02-24 20:06:17.000000000","message":"So the requires call does an API get() to get the response dict? This isn\u0027t exactly clear to me.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fb5035b7d4bdf8fbdb33a7f494eb4df3796f2047","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            # Test discovery with no cloud will return one test."},{"line_number":169,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":170,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavor_id_from_yml\u003e"},{"line_number":171,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":172,"context_line":"            # idempotent_id as the source test."},{"line_number":173,"context_line":"            vm \u003d self.servers_client.create_vm(image[\u0027id\u0027])"},{"line_number":174,"context_line":"            expected_private_ip \u003d self._get_ip(vm)"}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aef4532_e234f74a","line":171,"updated":"2016-03-10 10:09:16.000000000","message":"I am a bit worried by this. I thought we were not in favor of testscenarios and dynamically generated tests.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            # Test discovery with no cloud will return one test."},{"line_number":169,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":170,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavor_id_from_yml\u003e"},{"line_number":171,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":172,"context_line":"            # idempotent_id as the source test."},{"line_number":173,"context_line":"            vm \u003d self.servers_client.create_vm(image[\u0027id\u0027])"},{"line_number":174,"context_line":"            expected_private_ip \u003d self._get_ip(vm)"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_a0e120d3","line":171,"in_reply_to":"5aef4532_e234f74a","updated":"2016-04-04 09:00:57.000000000","message":"Yes this may need to be specified clearly. testscenarios atm is a problem because it uses API calls to generate the dictionary of options. So it requires a running cloud to list tests.\nThe idea is that by using a resources.yml we could have resources specified there, so we could use testscenarios safely (without API calls involved). \nWe won\u0027t probably use that in the gate anyways, but it is a useful feature to have to test real clouds.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fb5035b7d4bdf8fbdb33a7f494eb4df3796f2047","unresolved":false,"context_lines":[{"line_number":185,"context_line":"  of resources is implemented"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"This change has an impact on tempest workflow. The change shall have as little"},{"line_number":188,"context_line":"impact as possible, ideally allowing for people to keep a very similar workflow"},{"line_number":189,"context_line":"to what they have today, and only use a more complex one when using the new"},{"line_number":190,"context_line":"features described in this spec."},{"line_number":191,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aef4532_827ff3de","line":188,"updated":"2016-03-10 10:09:16.000000000","message":"Yes please. Let\u0027s try to be concise and not add a ton of code.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"fb5035b7d4bdf8fbdb33a7f494eb4df3796f2047","unresolved":false,"context_lines":[{"line_number":198,"context_line":"5. create or generate resources.yaml - optional"},{"line_number":199,"context_line":"6. run tests"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Extra Ideas (not in scope for this spec)"},{"line_number":202,"context_line":"----------------------------------------"},{"line_number":203,"context_line":"Provide consistent access to global test resources as well as tenant test"},{"line_number":204,"context_line":"resources, whether pre-provisioned or dynamic."}],"source_content_type":"text/x-rst","patch_set":12,"id":"5aef4532_42532b39","line":201,"updated":"2016-03-10 10:09:16.000000000","message":"I am not sure this should be here. If it\u0027s not in the scope for this spec, then why add it here ?","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5499f4092f2b0047e392369cabd8df4598713080","unresolved":false,"context_lines":[{"line_number":198,"context_line":"5. create or generate resources.yaml - optional"},{"line_number":199,"context_line":"6. run tests"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Extra Ideas (not in scope for this spec)"},{"line_number":202,"context_line":"----------------------------------------"},{"line_number":203,"context_line":"Provide consistent access to global test resources as well as tenant test"},{"line_number":204,"context_line":"resources, whether pre-provisioned or dynamic."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_c011b4b1","line":201,"in_reply_to":"5aef4532_42532b39","updated":"2016-04-04 09:00:57.000000000","message":"I can remove this if you\u0027re really keen on that.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"5b067f61ed33c3c01ecae6adca2ae104bb30ca33","unresolved":false,"context_lines":[{"line_number":198,"context_line":"5. create or generate resources.yaml - optional"},{"line_number":199,"context_line":"6. run tests"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Extra Ideas (not in scope for this spec)"},{"line_number":202,"context_line":"----------------------------------------"},{"line_number":203,"context_line":"Provide consistent access to global test resources as well as tenant test"},{"line_number":204,"context_line":"resources, whether pre-provisioned or dynamic."}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a061dce_cb9a75c5","line":201,"in_reply_to":"9a061dce_c011b4b1","updated":"2016-04-04 09:10:23.000000000","message":"Yes, please.","commit_id":"6e0f734d92c92edaf74c8e90f68a565255042a92"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"7755cbfe09222e6e00163e6e9fc4abdb2657f8b7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":42,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":43,"context_line":"floating IPs pool."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a061dce_274b01b2","line":42,"updated":"2016-04-05 20:40:37.000000000","message":"Does the \"one network to attach VMs to\" refer to the compute/fixed_network_name option?  If so, shouldn\u0027t the network in the sample YAML be referenced by name?  How else will compatibility be maintained?","commit_id":"1f8e8257d32feb7484b6b917249d882d1bf6187d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81d4b515dfc95394221d7d8847855c5c1f804c85","unresolved":false,"context_lines":[{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":42,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":43,"context_line":"floating IPs pool."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9abb7d3a_92309aa0","line":42,"in_reply_to":"9a061dce_274b01b2","updated":"2016-05-27 05:55:50.000000000","message":"I guess it is fine to specify either id or name for each resource even if they are the same resource type in YAML file as line 30.\n\nAnd I am not sure what is compatible concern about this.","commit_id":"1f8e8257d32feb7484b6b917249d882d1bf6187d"},{"author":{"_account_id":8001,"name":"John Warren","email":"jswarren@us.ibm.com","username":"jswarren"},"change_message_id":"7755cbfe09222e6e00163e6e9fc4abdb2657f8b7","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":42,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":43,"context_line":"floating IPs pool."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"},{"line_number":46,"context_line":"the YAML file instead of tempest.conf, a richer syntax is available which"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a061dce_c7a04546","line":43,"updated":"2016-04-05 20:40:37.000000000","message":"What configuration option does this correspond to?  network/floating_network_name?","commit_id":"1f8e8257d32feb7484b6b917249d882d1bf6187d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"81d4b515dfc95394221d7d8847855c5c1f804c85","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Keep in tempest.conf only the bare minimum resource configuration required"},{"line_number":42,"context_line":"for tests, e.g. one image, one flavour, one network to attach VMs to, one"},{"line_number":43,"context_line":"floating IPs pool."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Implement the ability to specify all test resources in a YAML file. When using"},{"line_number":46,"context_line":"the YAML file instead of tempest.conf, a richer syntax is available which"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9abb7d3a_d27222ad","line":43,"in_reply_to":"9a061dce_c7a04546","updated":"2016-05-27 05:55:50.000000000","message":"yeah, I think so.","commit_id":"1f8e8257d32feb7484b6b917249d882d1bf6187d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d0fdfeec9b9db39e8560daabe4a33db11174ffee","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    resources:"},{"line_number":54,"context_line":"        images:"},{"line_number":55,"context_line":"            - resource_name: small-footprint"},{"line_number":56,"context_line":"              id: [uuid]"},{"line_number":57,"context_line":"              size: 100MB"},{"line_number":58,"context_line":"              boot: quick"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a061dce_9dd5faba","line":55,"range":{"start_line":55,"start_character":14,"end_line":55,"end_character":27},"updated":"2016-04-05 21:31:22.000000000","message":"Thanks for IRC talking, I understand this resource_name is abstraction name, not name of actual name.\nSo it is necessary to write it clearly here.","commit_id":"1f8e8257d32feb7484b6b917249d882d1bf6187d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d0fdfeec9b9db39e8560daabe4a33db11174ffee","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    resources:"},{"line_number":54,"context_line":"        images:"},{"line_number":55,"context_line":"            - resource_name: small-footprint"},{"line_number":56,"context_line":"              id: [uuid]"},{"line_number":57,"context_line":"              size: 100MB"},{"line_number":58,"context_line":"              boot: quick"},{"line_number":59,"context_line":"              ssh_user: cirros"},{"line_number":60,"context_line":"              ssh_keypair: true"},{"line_number":61,"context_line":"              ssh_password: true"},{"line_number":62,"context_line":"              tools_ip: /bin/ip"},{"line_number":63,"context_line":"            - resource_name: fedora"},{"line_number":64,"context_line":"              id: [uuid]"},{"line_number":65,"context_line":"              size: 1GB"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9a061dce_d82140a1","line":62,"range":{"start_line":56,"start_character":0,"end_line":62,"end_character":31},"updated":"2016-04-05 21:31:22.000000000","message":"This mixture of both resource specification and resource metadata made me confused.\nSo how about defining here like\n\n - resource_name: small-footprint\n   actual_resources:\n       id: [uuid]\n   metadata:\n       size: 100MB\n       boot: quick\n       ...\n\nIn addition, I am thinking the above \"id\" can be a list of resources because we want to make the selected resource abstract. That should be applied to \"name\" case also like\n\n - resource_name: small-footprint\n   actual_resources:\n       names: [m1.tiny, m1.small]\n   metadata:\n       size: 100MB\n       boot: quick\n       ...","commit_id":"1f8e8257d32feb7484b6b917249d882d1bf6187d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c17345229d8d20bf2ea4b0fbf3ec61abf147646c","unresolved":false,"context_lines":[{"line_number":58,"context_line":"              boot: quick"},{"line_number":59,"context_line":"              ssh_user: cirros"},{"line_number":60,"context_line":"              ssh_keypair: true"},{"line_number":61,"context_line":"              ssh_password: true"},{"line_number":62,"context_line":"              tools_ip: /bin/ip"},{"line_number":63,"context_line":"            - label: fedora"},{"line_number":64,"context_line":"              resource_id: \u003cuuid\u003e"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_78afad94","line":61,"range":{"start_line":61,"start_character":28,"end_line":61,"end_character":32},"updated":"2016-08-03 00:34:38.000000000","message":"This should be \"password\" for current string config.","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c17345229d8d20bf2ea4b0fbf3ec61abf147646c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"              ssh_user: cirros"},{"line_number":60,"context_line":"              ssh_keypair: true"},{"line_number":61,"context_line":"              ssh_password: true"},{"line_number":62,"context_line":"              tools_ip: /bin/ip"},{"line_number":63,"context_line":"            - label: fedora"},{"line_number":64,"context_line":"              resource_id: \u003cuuid\u003e"},{"line_number":65,"context_line":"              size: 1GB"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_73022e71","line":62,"updated":"2016-08-03 00:34:38.000000000","message":"unnecessary here on the first step.","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"d133e2e5685872d733b1343b5af94766b4cedae9","unresolved":false,"context_lines":[{"line_number":78,"context_line":"version must be included in tempest docs."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Initially only IDs will be used by specifying actual resources with resource_id."},{"line_number":81,"context_line":"In future we shall support names or IDs. Names have a the advantage that they"},{"line_number":82,"context_line":"do not require reconfigured in case of redeploy or resource recreation, and"},{"line_number":83,"context_line":"names would be specified with resource_name in the YAML file. However the"},{"line_number":84,"context_line":"increase complexity as they require to be resolved to IDs, using the right"}],"source_content_type":"text/x-rst","patch_set":14,"id":"dada55a8_d6ac6937","line":81,"range":{"start_line":81,"start_character":52,"end_line":81,"end_character":54},"updated":"2016-07-19 17:32:48.000000000","message":"typo","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"98b8cbb2b815a8460248d6d499c527e88b6cbee8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"version must be included in tempest docs."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Initially only IDs will be used by specifying actual resources with resource_id."},{"line_number":81,"context_line":"In future we shall support names or IDs. Names have a the advantage that they"},{"line_number":82,"context_line":"do not require reconfigured in case of redeploy or resource recreation, and"},{"line_number":83,"context_line":"names would be specified with resource_name in the YAML file. However the"},{"line_number":84,"context_line":"increase complexity as they require to be resolved to IDs, using the right"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_d83979da","line":81,"range":{"start_line":81,"start_character":52,"end_line":81,"end_character":54},"in_reply_to":"dada55a8_d6ac6937","updated":"2016-08-02 23:41:38.000000000","message":"Thanks, done","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"d133e2e5685872d733b1343b5af94766b4cedae9","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Initially only IDs will be used by specifying actual resources with resource_id."},{"line_number":81,"context_line":"In future we shall support names or IDs. Names have a the advantage that they"},{"line_number":82,"context_line":"do not require reconfigured in case of redeploy or resource recreation, and"},{"line_number":83,"context_line":"names would be specified with resource_name in the YAML file. However the"},{"line_number":84,"context_line":"increase complexity as they require to be resolved to IDs, using the right"},{"line_number":85,"context_line":"tenant, and a valid policy in case of multiple matches."}],"source_content_type":"text/x-rst","patch_set":14,"id":"dada55a8_564eb996","line":82,"range":{"start_line":82,"start_character":3,"end_line":82,"end_character":27},"updated":"2016-07-19 17:32:48.000000000","message":"I guess you meant \"do not require to be reconfigured\"","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"19ab927d9f723dbcbcea62ac835a596375afa39e","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Initially only IDs will be used by specifying actual resources with resource_id."},{"line_number":81,"context_line":"In future we shall support names or IDs. Names have a the advantage that they"},{"line_number":82,"context_line":"do not require reconfigured in case of redeploy or resource recreation, and"},{"line_number":83,"context_line":"names would be specified with resource_name in the YAML file. However the"},{"line_number":84,"context_line":"increase complexity as they require to be resolved to IDs, using the right"},{"line_number":85,"context_line":"tenant, and a valid policy in case of multiple matches."}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_fe5ee510","line":82,"range":{"start_line":82,"start_character":3,"end_line":82,"end_character":27},"in_reply_to":"dada55a8_564eb996","updated":"2016-08-03 01:32:54.000000000","message":"Done","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"d133e2e5685872d733b1343b5af94766b4cedae9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Initially only IDs will be used by specifying actual resources with resource_id."},{"line_number":81,"context_line":"In future we shall support names or IDs. Names have a the advantage that they"},{"line_number":82,"context_line":"do not require reconfigured in case of redeploy or resource recreation, and"},{"line_number":83,"context_line":"names would be specified with resource_name in the YAML file. However the"},{"line_number":84,"context_line":"increase complexity as they require to be resolved to IDs, using the right"},{"line_number":85,"context_line":"tenant, and a valid policy in case of multiple matches."},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"dada55a8_0c7eeead","line":83,"range":{"start_line":83,"start_character":70,"end_line":83,"end_character":73},"updated":"2016-07-19 17:32:48.000000000","message":"s/the/they","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"19ab927d9f723dbcbcea62ac835a596375afa39e","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Initially only IDs will be used by specifying actual resources with resource_id."},{"line_number":81,"context_line":"In future we shall support names or IDs. Names have a the advantage that they"},{"line_number":82,"context_line":"do not require reconfigured in case of redeploy or resource recreation, and"},{"line_number":83,"context_line":"names would be specified with resource_name in the YAML file. However the"},{"line_number":84,"context_line":"increase complexity as they require to be resolved to IDs, using the right"},{"line_number":85,"context_line":"tenant, and a valid policy in case of multiple matches."},{"line_number":86,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_5e9a91c6","line":83,"range":{"start_line":83,"start_character":70,"end_line":83,"end_character":73},"in_reply_to":"dada55a8_0c7eeead","updated":"2016-08-03 01:32:54.000000000","message":"Done","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4802d21ca69da743fa5c3ce44785869bb338b32a","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                                                 ssh_keypair\u003dTrue,"},{"line_number":124,"context_line":"                                                 fall_back\u003dFalse)"},{"line_number":125,"context_line":"            self.flavor \u003d self.resources.requires(\u0027flavors\u0027,"},{"line_number":126,"context_line":"                                                  label\u003d\u003d\u0027tiny\u0027)"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":".. code-block:: python"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7aa08908_e88c7637","line":126,"range":{"start_line":126,"start_character":55,"end_line":126,"end_character":57},"updated":"2016-06-06 08:04:58.000000000","message":"nit: label\u003d\u0027tiny\u0027?","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4802d21ca69da743fa5c3ce44785869bb338b32a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.image2 \u003d self.resources.requires(\u0027images\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_rebuild_vm(self):"},{"line_number":138,"context_line":"        print(\"Got two images: %s, %s\" % (self.image1[\u0027name\u0027],"},{"line_number":139,"context_line":"                                          self.image2[\u0027name\u0027]))"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Let test access properties of test resources in use configured in YAML"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7aa08908_b292dc55","line":138,"range":{"start_line":138,"start_character":55,"end_line":138,"end_character":59},"updated":"2016-06-06 08:04:58.000000000","message":"label?","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"19ab927d9f723dbcbcea62ac835a596375afa39e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        self.image2 \u003d self.resources.requires(\u0027images\u0027, boot\u003d\u0027fast\u0027)"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_rebuild_vm(self):"},{"line_number":138,"context_line":"        print(\"Got two images: %s, %s\" % (self.image1[\u0027name\u0027],"},{"line_number":139,"context_line":"                                          self.image2[\u0027name\u0027]))"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Let test access properties of test resources in use configured in YAML"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_9efd2971","line":138,"range":{"start_line":138,"start_character":55,"end_line":138,"end_character":59},"in_reply_to":"7aa08908_b292dc55","updated":"2016-08-03 01:32:54.000000000","message":"Oh, good point.\nI am guessing the returned value of self.resources.requires() should be based on a response of REST APIs and \u0027name\u0027 seems good for me.\nThat means Tempest needs to verify the existences of each resource before actual test operations.\nThis should be written on this spec.","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4802d21ca69da743fa5c3ce44785869bb338b32a","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_rebuild_vm(self):"},{"line_number":138,"context_line":"        print(\"Got two images: %s, %s\" % (self.image1[\u0027name\u0027],"},{"line_number":139,"context_line":"                                          self.image2[\u0027name\u0027]))"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Let test access properties of test resources in use configured in YAML"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"7aa08908_5288d822","line":139,"range":{"start_line":139,"start_character":55,"end_line":139,"end_character":59},"updated":"2016-06-06 08:04:58.000000000","message":"ditto","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4802d21ca69da743fa5c3ce44785869bb338b32a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    def resource_setup(self):"},{"line_number":146,"context_line":"        self.image1 \u003d self.resources.requires(\u0027images\u0027)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_create_persistent_vm(self, image1):"},{"line_number":149,"context_line":"        # The UUID as configured in YAML"},{"line_number":150,"context_line":"        image_id \u003d image1[\u0027id\u0027]"},{"line_number":151,"context_line":"        # The size as configured in YAML"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7aa08908_f51a8e6d","line":148,"range":{"start_line":148,"start_character":38,"end_line":148,"end_character":46},"updated":"2016-06-06 08:04:58.000000000","message":"I actually don\u0027t understand here. Who does give this parameter?","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2fa506e4991fba3662d41d948097b3e0c96cfcd0","unresolved":false,"context_lines":[{"line_number":145,"context_line":"    def resource_setup(self):"},{"line_number":146,"context_line":"        self.image1 \u003d self.resources.requires(\u0027images\u0027)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_create_persistent_vm(self, image1):"},{"line_number":149,"context_line":"        # The UUID as configured in YAML"},{"line_number":150,"context_line":"        image_id \u003d image1[\u0027id\u0027]"},{"line_number":151,"context_line":"        # The size as configured in YAML"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_bed74dbe","line":148,"range":{"start_line":148,"start_character":38,"end_line":148,"end_character":46},"in_reply_to":"7aa08908_f51a8e6d","updated":"2016-08-03 01:45:10.000000000","message":"Yeah, here should be self instead.","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4802d21ca69da743fa5c3ce44785869bb338b32a","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_create_persistent_vm(self, image1):"},{"line_number":149,"context_line":"        # The UUID as configured in YAML"},{"line_number":150,"context_line":"        image_id \u003d image1[\u0027id\u0027]"},{"line_number":151,"context_line":"        # The size as configured in YAML"},{"line_number":152,"context_line":"        image_size \u003d image1[\u0027size\u0027]"},{"line_number":153,"context_line":"        # bootable volume"}],"source_content_type":"text/x-rst","patch_set":14,"id":"7aa08908_d27cc822","line":150,"range":{"start_line":150,"start_character":27,"end_line":150,"end_character":29},"updated":"2016-06-06 08:04:58.000000000","message":"resource_id?","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2fa506e4991fba3662d41d948097b3e0c96cfcd0","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def test_create_persistent_vm(self, image1):"},{"line_number":149,"context_line":"        # The UUID as configured in YAML"},{"line_number":150,"context_line":"        image_id \u003d image1[\u0027id\u0027]"},{"line_number":151,"context_line":"        # The size as configured in YAML"},{"line_number":152,"context_line":"        image_size \u003d image1[\u0027size\u0027]"},{"line_number":153,"context_line":"        # bootable volume"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_5eed718d","line":150,"range":{"start_line":150,"start_character":27,"end_line":150,"end_character":29},"in_reply_to":"7aa08908_d27cc822","updated":"2016-08-03 01:45:10.000000000","message":"No, that should be id because of based on the response of glance API.","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"4802d21ca69da743fa5c3ce44785869bb338b32a","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavor_id_from_yml\u003e"},{"line_number":187,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":188,"context_line":"            # idempotent_id as the source test."},{"line_number":189,"context_line":"            vm \u003d self.servers_client.create_vm(image[\u0027id\u0027])"},{"line_number":190,"context_line":"            expected_private_ip \u003d self._get_ip(vm)"},{"line_number":191,"context_line":"            rc \u003d remote_client.RemoteClient(vm)"},{"line_number":192,"context_line":"            observed_private_ip \u003d rc.execute_cmd("}],"source_content_type":"text/x-rst","patch_set":14,"id":"7aa08908_528f3823","line":189,"range":{"start_line":189,"start_character":54,"end_line":189,"end_character":56},"updated":"2016-06-06 08:04:58.000000000","message":"ditto","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":9152,"name":"Castulo J. Martinez","email":"castulo.martinez@intel.com","username":"cas"},"change_message_id":"d133e2e5685872d733b1343b5af94766b4cedae9","unresolved":false,"context_lines":[{"line_number":218,"context_line":"two distinct test images. Rebuild and resize use the alt image, but that is"},{"line_number":219,"context_line":"always configured to be the same as the first image. We can retain this"},{"line_number":220,"context_line":"behaviour to allow one image to be returned twice to tests. This would have the"},{"line_number":221,"context_line":"advantage to moving avoiding to configure the same image twice, which is"},{"line_number":222,"context_line":"an artificial thing required to go around a non-enforce requirements from tests."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Projects"}],"source_content_type":"text/x-rst","patch_set":14,"id":"dada55a8_ef738c7e","line":221,"range":{"start_line":221,"start_character":9,"end_line":221,"end_character":29},"updated":"2016-07-19 17:32:48.000000000","message":"this part of the sentence sounds strange, wouldn\u0027t be better to say something like \"...advantage of avoiding having to configure...\", or \"...advantage of not having to configure...\".","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2fa506e4991fba3662d41d948097b3e0c96cfcd0","unresolved":false,"context_lines":[{"line_number":218,"context_line":"two distinct test images. Rebuild and resize use the alt image, but that is"},{"line_number":219,"context_line":"always configured to be the same as the first image. We can retain this"},{"line_number":220,"context_line":"behaviour to allow one image to be returned twice to tests. This would have the"},{"line_number":221,"context_line":"advantage to moving avoiding to configure the same image twice, which is"},{"line_number":222,"context_line":"an artificial thing required to go around a non-enforce requirements from tests."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"Projects"}],"source_content_type":"text/x-rst","patch_set":14,"id":"bacf61ea_3e999d20","line":221,"range":{"start_line":221,"start_character":9,"end_line":221,"end_character":29},"in_reply_to":"dada55a8_ef738c7e","updated":"2016-08-03 01:45:10.000000000","message":"nice catch, done.","commit_id":"000fddf11108691ceda1684f3892c120f2b8e5bc"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7129eac755883c21ae5744057f803050a8faa524","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    resources:"},{"line_number":54,"context_line":"        images:"},{"line_number":55,"context_line":"            - resource_id: e3abb67f-2d51-4097-b0b1-fc17809a69d9"},{"line_number":56,"context_line":"              os: linux"},{"line_number":57,"context_line":"              size: 100MB"},{"line_number":58,"context_line":"              ssh_user: cirros"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_79359a44","line":55,"range":{"start_line":55,"start_character":27,"end_line":55,"end_character":63},"updated":"2016-08-04 12:25:26.000000000","message":"Since we have UUIDs, the resource name becomes not so useful, so I guess this looks ok in that sense. \n\nSince this file is going to be edited manually most likely, I still believe (see my patchiest #3) that it would be better to use the resource name instead of the uuid to match the resource. \n\nThis would allow writing this file once and using it in many deployments, which is a valid use case if CI / test environments.\nThe alternative being to make this file a template of some type (e.g. a j2 file with ansible) and inject the resource IDs post cloud deployment.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9d834de44d3afeaf978330b64c6b6c068edd4805","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    resources:"},{"line_number":54,"context_line":"        images:"},{"line_number":55,"context_line":"            - resource_id: e3abb67f-2d51-4097-b0b1-fc17809a69d9"},{"line_number":56,"context_line":"              os: linux"},{"line_number":57,"context_line":"              size: 100MB"},{"line_number":58,"context_line":"              ssh_user: cirros"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_d638aff0","line":55,"range":{"start_line":55,"start_character":27,"end_line":55,"end_character":63},"in_reply_to":"bacf61ea_79359a44","updated":"2016-08-05 00:15:56.000000000","message":"Yeah, that is a nice point.\nResource IDs are always changed in devstack envs also, and the resource names will be very useful for us.\n\nI want to make this as simple as possible on this first step.\nSo I will replace resource_id with resource_name.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7129eac755883c21ae5744057f803050a8faa524","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            - resource_id: c7be1550-0181-419f-85fc-788e48bf6ade"},{"line_number":62,"context_line":"              os: linux"},{"line_number":63,"context_line":"              size: 1GB"},{"line_number":64,"context_line":"              requirement:"},{"line_number":65,"context_line":"                  flavors:"},{"line_number":66,"context_line":"                     ram: 512MB+"},{"line_number":67,"context_line":"        flavors:"},{"line_number":68,"context_line":"            - resource_id: 1"},{"line_number":69,"context_line":"              ram: 128MB"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_39604235","line":66,"range":{"start_line":64,"start_character":14,"end_line":66,"end_character":32},"updated":"2016-08-04 12:25:26.000000000","message":"Nice :)","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7129eac755883c21ae5744057f803050a8faa524","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                     ram: 512MB+"},{"line_number":67,"context_line":"        flavors:"},{"line_number":68,"context_line":"            - resource_id: 1"},{"line_number":69,"context_line":"              ram: 128MB"},{"line_number":70,"context_line":"            - resource_id: 2"},{"line_number":71,"context_line":"              ram: 1GB"},{"line_number":72,"context_line":"        networks:"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_b9db92ec","line":69,"range":{"start_line":69,"start_character":14,"end_line":69,"end_character":24},"updated":"2016-08-04 12:25:26.000000000","message":"This will usually be part of the actual flavour definition, so does it have to be here? \n\nThe reason for having API properties in the YAML is to allow test filtering by such properties without the need of resolving the resources in YAML to actual resources in the cloud, until the moment they are used by the test.\n\nThe downside is that it\u0027s easier to generated an invalid YAML. If we want to keep this approach we may want to give more details about tools we provide to generate this file.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9d834de44d3afeaf978330b64c6b6c068edd4805","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                     ram: 512MB+"},{"line_number":67,"context_line":"        flavors:"},{"line_number":68,"context_line":"            - resource_id: 1"},{"line_number":69,"context_line":"              ram: 128MB"},{"line_number":70,"context_line":"            - resource_id: 2"},{"line_number":71,"context_line":"              ram: 1GB"},{"line_number":72,"context_line":"        networks:"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_748a9c65","line":69,"range":{"start_line":69,"start_character":14,"end_line":69,"end_character":24},"in_reply_to":"bacf61ea_b9db92ec","updated":"2016-08-05 00:15:56.000000000","message":"Thanks for pointing this up, this is a nice point.\nYeah, this could make invalid metadata easily, and it would be a great option to create such metadata from actual resources automatically.\nHowever, I\u0027d like to keep this description as the easy implementation option and a good example to explain this feature on the following sentence.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"c7bb00058c5c266ab570566df2a6fae68a2d4b6f","unresolved":false,"context_lines":[{"line_number":99,"context_line":"  dict based on tempest.conf flags."},{"line_number":100,"context_line":"- If a YAML file is available, it will be validated once, before test"},{"line_number":101,"context_line":"  execution - test won\u0027t run if an invalid YAML file is configured."},{"line_number":102,"context_line":"  The resources specified in the file won\u0027t be validated via API."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"A resource provider class (singleton) implements the logic to filter resources."},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_0c4a0555","line":102,"range":{"start_line":102,"start_character":38,"end_line":102,"end_character":46},"updated":"2016-08-05 21:33:05.000000000","message":"Why do we validate the resources before the test operation via API? The validation will help us to verify the existences of resources.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"7129eac755883c21ae5744057f803050a8faa524","unresolved":false,"context_lines":[{"line_number":111,"context_line":"perfect match can be found, but fall_back can be disabled, which leads to raise"},{"line_number":112,"context_line":"an exception."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Tempest needs to verify the existences of each resource before the test"},{"line_number":115,"context_line":"operation and self.resources.requires() returns a value which is returned value"},{"line_number":116,"context_line":"of service clients. By doing that, we can implement tests on the same ways as"},{"line_number":117,"context_line":"the other tests."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Examples:"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_af8984cc","line":117,"range":{"start_line":114,"start_character":0,"end_line":117,"end_character":16},"updated":"2016-08-04 12:25:26.000000000","message":"If we do this, we may as well use names instead of UUIDs, and do not include metadata from the API in the YAML.\nThis seems to go against what we say in L80-85.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9d834de44d3afeaf978330b64c6b6c068edd4805","unresolved":false,"context_lines":[{"line_number":111,"context_line":"perfect match can be found, but fall_back can be disabled, which leads to raise"},{"line_number":112,"context_line":"an exception."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Tempest needs to verify the existences of each resource before the test"},{"line_number":115,"context_line":"operation and self.resources.requires() returns a value which is returned value"},{"line_number":116,"context_line":"of service clients. By doing that, we can implement tests on the same ways as"},{"line_number":117,"context_line":"the other tests."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"Examples:"},{"line_number":120,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"bacf61ea_143ec08a","line":117,"range":{"start_line":114,"start_character":0,"end_line":117,"end_character":16},"in_reply_to":"bacf61ea_af8984cc","updated":"2016-08-05 00:15:56.000000000","message":"Yeah, I will update here including L80-85.","commit_id":"b30cb2fd4aaf4027794d5f7ceeaa9ef9aed6753d"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e282df36ef7705a21772f632bbf246b949fb054","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        test_scenarios \u003d [\u0027images\u0027, \u0027flavors\u0027]"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        def resource_setup(self):"},{"line_number":179,"context_line":"            self.image1 \u003d self.resources.requires(\u0027images\u0027, os\u003d\u0027linux\u0027)"},{"line_number":180,"context_line":"            if not self.image1.get(\u0027tools_ip\u0027):"},{"line_number":181,"context_line":"                raise self.skipException(\u0027No image with ip tool available\u0027)"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_24854106","line":179,"range":{"start_line":179,"start_character":12,"end_line":179,"end_character":71},"updated":"2016-11-18 05:00:57.000000000","message":"so here we need to define \u0027scenarios\u0027 with fetched number of resources.\nand None if not any.\n\nBut its more implementation detail so it is fine as it till it is clear that based on resources same test can be run multiple times using testscenarios","commit_id":"8e731d90ae498cbcd05660226e849b01a2d5de06"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8dbb65263c317b0bf78dcb27886b9b7ef6bfe89d","unresolved":false,"context_lines":[{"line_number":176,"context_line":"        test_scenarios \u003d [\u0027images\u0027, \u0027flavors\u0027]"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        def resource_setup(self):"},{"line_number":179,"context_line":"            self.image1 \u003d self.resources.requires(\u0027images\u0027, os\u003d\u0027linux\u0027)"},{"line_number":180,"context_line":"            if not self.image1.get(\u0027tools_ip\u0027):"},{"line_number":181,"context_line":"                raise self.skipException(\u0027No image with ip tool available\u0027)"},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"3f044301_9b6c6037","line":179,"range":{"start_line":179,"start_character":12,"end_line":179,"end_character":71},"in_reply_to":"7a77a97e_24854106","updated":"2017-05-04 22:21:14.000000000","message":"Yeah, this kind of thing will be needed when we need to implement complex tests on this framework. but at this time, we could skip it as the first step.","commit_id":"8e731d90ae498cbcd05660226e849b01a2d5de06"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e282df36ef7705a21772f632bbf246b949fb054","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            # the \u0027ip\u0027 tool available."},{"line_number":187,"context_line":"            # Test discovery with no cloud will return one test."},{"line_number":188,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":189,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavor_id_from_yml\u003e"},{"line_number":190,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":191,"context_line":"            # idempotent_id as the source test."},{"line_number":192,"context_line":"            vm \u003d self.servers_client.create_server(self.image1[\u0027id\u0027])"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_64949942","line":189,"range":{"start_line":189,"start_character":16,"end_line":189,"end_character":67},"updated":"2016-11-18 05:00:57.000000000","message":"it will be more like \n-test_my_ip(\u003cimage_id_from_yml\u003e)\n-test_my_ip(\u003cflavor_id_from_yml\u003e)\n\nditto- it is enough as example.","commit_id":"8e731d90ae498cbcd05660226e849b01a2d5de06"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8dbb65263c317b0bf78dcb27886b9b7ef6bfe89d","unresolved":false,"context_lines":[{"line_number":186,"context_line":"            # the \u0027ip\u0027 tool available."},{"line_number":187,"context_line":"            # Test discovery with no cloud will return one test."},{"line_number":188,"context_line":"            # Test discovery with cloud, will return tests named"},{"line_number":189,"context_line":"            #   test_my_ip_\u003cimage_id_from_yml\u003e_\u003cflavor_id_from_yml\u003e"},{"line_number":190,"context_line":"            # All tests generated dynamically will have the same"},{"line_number":191,"context_line":"            # idempotent_id as the source test."},{"line_number":192,"context_line":"            vm \u003d self.servers_client.create_server(self.image1[\u0027id\u0027])"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3f044301_1b8f3024","line":189,"range":{"start_line":189,"start_character":16,"end_line":189,"end_character":67},"in_reply_to":"7a77a97e_64949942","updated":"2017-05-04 22:21:14.000000000","message":"I could not get this point..\n\nThe test name should contain selected resources, and both image_id and flavor_id are selected on this sample test.\nThen the test needs to contain both resource name on a single test name..","commit_id":"8e731d90ae498cbcd05660226e849b01a2d5de06"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"b291b933a36e8ba53a612e842937dc30fb43d189","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"- Andrea Frittoli (andrea.frittoli@hpe.com)"},{"line_number":242,"context_line":"- John S Warren (jswarren@us.ibm.com)"},{"line_number":243,"context_line":"- Kenichi Omichi (kenichi.omichi@necam.com)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Milestones"},{"line_number":246,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3ac371cc_c4441e1d","line":243,"updated":"2016-08-18 16:53:11.000000000","message":"Should probably be on the top of the list?","commit_id":"8e731d90ae498cbcd05660226e849b01a2d5de06"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5e282df36ef7705a21772f632bbf246b949fb054","unresolved":false,"context_lines":[{"line_number":246,"context_line":"----------"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"Target Milestone for completion:"},{"line_number":249,"context_line":"  Newton-3"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"Work Items"},{"line_number":252,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"7a77a97e_e4950933","line":249,"range":{"start_line":249,"start_character":1,"end_line":249,"end_character":10},"updated":"2016-11-18 05:00:57.000000000","message":"Ocata-3 ?","commit_id":"8e731d90ae498cbcd05660226e849b01a2d5de06"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"1622d3cc70eb2e9985982d183d4e0e428534aa0f","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                  flavors:"},{"line_number":66,"context_line":"                     ram: 512MB+"},{"line_number":67,"context_line":"        flavors:"},{"line_number":68,"context_line":"            - resource_name: m1.small"},{"line_number":69,"context_line":"              ram: 128MB"},{"line_number":70,"context_line":"            - resource_name: m1.medium"},{"line_number":71,"context_line":"              ram: 1GB"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_22e060fa","line":68,"range":{"start_line":68,"start_character":14,"end_line":68,"end_character":27},"updated":"2017-07-03 02:20:03.000000000","message":"here no name nor id is provided, can we get them from resource_name? from the discussion resource_name seems just a description string.","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"1622d3cc70eb2e9985982d183d4e0e428534aa0f","unresolved":false,"context_lines":[{"line_number":68,"context_line":"            - resource_name: m1.small"},{"line_number":69,"context_line":"              ram: 128MB"},{"line_number":70,"context_line":"            - resource_name: m1.medium"},{"line_number":71,"context_line":"              ram: 1GB"},{"line_number":72,"context_line":"        networks:"},{"line_number":73,"context_line":"            - resource_name: external-network"},{"line_number":74,"context_line":"              external: true"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_425a3cf3","line":71,"range":{"start_line":71,"start_character":0,"end_line":71,"end_character":22},"updated":"2017-07-03 02:20:03.000000000","message":"attributes like these seem to burden the configuration of yaml file, imo I want users only need to provide the resources\ninformation as less as possible, all that can be achieved automatically shouldn\u0027t be left for users to fill it manually","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Initially only names will be used by specifying actual resources with resource_name."},{"line_number":81,"context_line":"Names have the advantage that they do not require to be reconfigured in case of"},{"line_number":82,"context_line":"redeploy or resource recreation, and names would be specified with resource_name"},{"line_number":83,"context_line":"in the YAML file. Some resource types can have duplicated names. If the resource_name"},{"line_number":84,"context_line":"specifies duplicated resources, Tempest should raise an exception and fail."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The part of requirement is for specifying necessary resource from the other"},{"line_number":87,"context_line":"resource in the YAML file. On the above sample, the second image requires"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_2549d131","line":84,"range":{"start_line":83,"start_character":18,"end_line":84,"end_character":75},"updated":"2017-07-07 19:46:40.000000000","message":"This is unclear to me. The way I read this is: even though some resource types can have duplicate names, resource_name has to be unique or else Tempest will raise an exception and fail.","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"in the YAML file. Some resource types can have duplicated names. If the resource_name"},{"line_number":84,"context_line":"specifies duplicated resources, Tempest should raise an exception and fail."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The part of requirement is for specifying necessary resource from the other"},{"line_number":87,"context_line":"resource in the YAML file. On the above sample, the second image requires"},{"line_number":88,"context_line":"bigger flavor m1.medium."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_650d89e7","line":86,"range":{"start_line":86,"start_character":0,"end_line":86,"end_character":23},"updated":"2017-07-07 19:46:40.000000000","message":"The requirement field","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"in the YAML file. Some resource types can have duplicated names. If the resource_name"},{"line_number":84,"context_line":"specifies duplicated resources, Tempest should raise an exception and fail."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The part of requirement is for specifying necessary resource from the other"},{"line_number":87,"context_line":"resource in the YAML file. On the above sample, the second image requires"},{"line_number":88,"context_line":"bigger flavor m1.medium."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_6526a96b","line":86,"range":{"start_line":86,"start_character":52,"end_line":86,"end_character":60},"updated":"2017-07-07 19:46:40.000000000","message":"What do you mean by resource? Requirements used for finding other resources in the YAML file that match those requirements?","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"specifies duplicated resources, Tempest should raise an exception and fail."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The part of requirement is for specifying necessary resource from the other"},{"line_number":87,"context_line":"resource in the YAML file. On the above sample, the second image requires"},{"line_number":88,"context_line":"bigger flavor m1.medium."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The other parts(os, size, ram, etc.) are metadata and they are used to"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_45128d0b","line":87,"range":{"start_line":87,"start_character":0,"end_line":87,"end_character":8},"updated":"2017-07-07 19:46:40.000000000","message":"resources","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"The part of requirement is for specifying necessary resource from the other"},{"line_number":87,"context_line":"resource in the YAML file. On the above sample, the second image requires"},{"line_number":88,"context_line":"bigger flavor m1.medium."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The other parts(os, size, ram, etc.) are metadata and they are used to"},{"line_number":91,"context_line":"select resource from tests side. The units(MB, GB, etc.) should be calculated"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_455dede7","line":88,"range":{"start_line":88,"start_character":0,"end_line":88,"end_character":13},"updated":"2017-07-07 19:46:40.000000000","message":"a bigger flavor than","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":87,"context_line":"resource in the YAML file. On the above sample, the second image requires"},{"line_number":88,"context_line":"bigger flavor m1.medium."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The other parts(os, size, ram, etc.) are metadata and they are used to"},{"line_number":91,"context_line":"select resource from tests side. The units(MB, GB, etc.) should be calculated"},{"line_number":92,"context_line":"automatically and +/- should be supported for bigger/less values."},{"line_number":93,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_2520b149","line":90,"range":{"start_line":90,"start_character":15,"end_line":90,"end_character":16},"updated":"2017-07-07 19:46:40.000000000","message":"need space before (","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"bigger flavor m1.medium."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The other parts(os, size, ram, etc.) are metadata and they are used to"},{"line_number":91,"context_line":"select resource from tests side. The units(MB, GB, etc.) should be calculated"},{"line_number":92,"context_line":"automatically and +/- should be supported for bigger/less values."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"One resource config class (singleton) will take care of loading the YAML file"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_65db494f","line":91,"range":{"start_line":91,"start_character":7,"end_line":91,"end_character":31},"updated":"2017-07-07 19:46:40.000000000","message":"I understand this as: \"resources from the tests themselves\". Do you mean that the resources like os, size, ram, etc. will be used to find the appropriate resource inside the test at run time?","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"The other parts(os, size, ram, etc.) are metadata and they are used to"},{"line_number":91,"context_line":"select resource from tests side. The units(MB, GB, etc.) should be calculated"},{"line_number":92,"context_line":"automatically and +/- should be supported for bigger/less values."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"One resource config class (singleton) will take care of loading the YAML file"},{"line_number":95,"context_line":"and expose one methods to access the dict of resources:"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_05e25502","line":92,"range":{"start_line":92,"start_character":46,"end_line":92,"end_character":57},"updated":"2017-07-07 19:46:40.000000000","message":"I think you mean: \u003e\u003d/\u003c (greater than equal/less than).","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"automatically and +/- should be supported for bigger/less values."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"One resource config class (singleton) will take care of loading the YAML file"},{"line_number":95,"context_line":"and expose one methods to access the dict of resources:"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"- If no YAML file is specified, the resource config class will build the same"},{"line_number":98,"context_line":"  dict based on tempest.conf flags."}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_a5ba81de","line":95,"range":{"start_line":95,"start_character":15,"end_line":95,"end_character":22},"updated":"2017-07-07 19:46:40.000000000","message":"method","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"from the YAML are returned."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Tests by default will fall back to the closest matching resources if no"},{"line_number":110,"context_line":"perfect match can be found, but fall_back can be disabled, which leads to raise"},{"line_number":111,"context_line":"an exception."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Examples:"},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_45ae0d99","line":111,"range":{"start_line":110,"start_character":74,"end_line":111,"end_character":13},"updated":"2017-07-07 19:46:40.000000000","message":"an exception being raised.","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        from tempest import resources"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        def resource_setup(self):"},{"line_number":122,"context_line":"            # self.resources is an instance of the resource tracker"},{"line_number":123,"context_line":"            self.image \u003d self.resources.requires(\u0027images\u0027,"},{"line_number":124,"context_line":"                                                 ssh_keypair\u003dTrue)"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_65822903","line":121,"range":{"start_line":121,"start_character":12,"end_line":121,"end_character":26},"updated":"2017-07-07 19:46:40.000000000","message":"Is this going to be decorated with @classmethod? Also what happens if you try to delete self.image inside a test?","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    # Multiple calls allow allocating multiple distinct resources of the"},{"line_number":132,"context_line":"    # same type. `resources` has status, so it can be controlled to return"},{"line_number":133,"context_line":"    # any matching image, or one not returned used yet by this test."},{"line_number":134,"context_line":"    def resource_setup(self):"},{"line_number":135,"context_line":"        self.image1 \u003d self.resources.requires(\u0027images\u0027, os\u003d\u0027linux\u0027)"},{"line_number":136,"context_line":"        self.image2 \u003d self.resources.requires(\u0027images\u0027, os\u003d\u0027linux\u0027)"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_e59cf96b","line":133,"range":{"start_line":133,"start_character":37,"end_line":133,"end_character":45},"updated":"2017-07-07 19:46:40.000000000","message":"remove this","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        print(\"Got two images: %s, %s\" % (self.image1[\u0027name\u0027],"},{"line_number":140,"context_line":"                                          self.image2[\u0027name\u0027]))"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Let test access properties of test resources in use configured in YAML"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":".. code-block:: python"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_c5c0dd2d","line":142,"range":{"start_line":142,"start_character":45,"end_line":142,"end_character":62},"updated":"2017-07-07 19:46:40.000000000","message":"configured","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"1622d3cc70eb2e9985982d183d4e0e428534aa0f","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":150,"context_line":"        # The UUID as configured in YAML"},{"line_number":151,"context_line":"        image_id \u003d self.image1[\u0027id\u0027]"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # The size as configured in YAML"},{"line_number":154,"context_line":"        image_size \u003d self.image1[\u0027size\u0027]"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_c2f08ccc","line":151,"range":{"start_line":151,"start_character":30,"end_line":151,"end_character":36},"updated":"2017-07-03 02:20:03.000000000","message":"id seems not defined in yaml, how can it be got?","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"5fffb765db1961c5a963b570d243d14a48bcba8d","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def test_create_persistent_vm(self):"},{"line_number":150,"context_line":"        # The UUID as configured in YAML"},{"line_number":151,"context_line":"        image_id \u003d self.image1[\u0027id\u0027]"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # The size as configured in YAML"},{"line_number":154,"context_line":"        image_size \u003d self.image1[\u0027size\u0027]"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3f1d235d_65b0e9de","line":151,"range":{"start_line":151,"start_character":30,"end_line":151,"end_character":36},"in_reply_to":"3f1d235d_c2f08ccc","updated":"2017-07-07 19:46:40.000000000","message":"I am wondering this too. L101-107 to me sounds like the resources will be queried via API calls and stored in the resource tracker.","commit_id":"569130f575625057d05f24f6cc165f7fa20d08e1"}]}
