)]}'
{"api-ref/source/security-services.inc":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"65d361801c3ba7a5d164c99bfa68e46562d3854b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"You can configure a security service with these options:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- A DNS IP address. Some drivers may allow a comma separated list of multiple"},{"line_number":25,"context_line":"  addresses, e.g. NetApp cDOT."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- An IP address or host name."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":5,"id":"9fdfeff1_f459a48d","line":25,"range":{"start_line":25,"start_character":25,"end_line":25,"end_character":29},"updated":"2019-01-28 14:42:25.000000000","message":"ONTAP","commit_id":"57b3550f58b8381846e10ea46bfed6273a8afd4d"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"a434c1ffa44f3ac3841051d1a8c48c10ac9e3e8e","unresolved":false,"context_lines":[{"line_number":22,"context_line":"You can configure a security service with these options:"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"- A DNS IP address. Some drivers may allow a comma separated list of multiple"},{"line_number":25,"context_line":"  addresses, e.g. NetApp cDOT."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"- An IP address or host name."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":5,"id":"9fdfeff1_571ba471","line":25,"range":{"start_line":25,"start_character":25,"end_line":25,"end_character":29},"in_reply_to":"9fdfeff1_f459a48d","updated":"2019-01-30 16:57:12.000000000","message":"Done","commit_id":"57b3550f58b8381846e10ea46bfed6273a8afd4d"}],"manila/share/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"e9df9d350d8ab59ba3d1ad0d661dcfc717e3bd54","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"            \u0027name-servers\u0027: [],"},{"line_number":1466,"context_line":"            \u0027dns-state\u0027: \u0027enabled\u0027,"},{"line_number":1467,"context_line":"        }"},{"line_number":1468,"context_line":"        dns_ips \u003d [x.strip() for x in security_service[\u0027dns_ip\u0027].split(\u0027,\u0027)]"},{"line_number":1469,"context_line":"        if len(dns_ips) \u003d\u003d 1:"},{"line_number":1470,"context_line":"            api_args[\u0027name-servers\u0027] \u003d {\u0027ip-address\u0027: dns_ips[0]}"},{"line_number":1471,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_7f707cdb","line":1468,"range":{"start_line":1468,"start_character":8,"end_line":1468,"end_character":76},"updated":"2018-09-11 21:40:03.000000000","message":"Personal preference: change \u0027x\u0027 to \u0027dns_ip\u0027 for readability.","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"9441265138699ff4f914b8d5ba724760ede90b20","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"            \u0027name-servers\u0027: [],"},{"line_number":1466,"context_line":"            \u0027dns-state\u0027: \u0027enabled\u0027,"},{"line_number":1467,"context_line":"        }"},{"line_number":1468,"context_line":"        dns_ips \u003d [x.strip() for x in security_service[\u0027dns_ip\u0027].split(\u0027,\u0027)]"},{"line_number":1469,"context_line":"        if len(dns_ips) \u003d\u003d 1:"},{"line_number":1470,"context_line":"            api_args[\u0027name-servers\u0027] \u003d {\u0027ip-address\u0027: dns_ips[0]}"},{"line_number":1471,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_10c9a358","line":1468,"range":{"start_line":1468,"start_character":8,"end_line":1468,"end_character":76},"in_reply_to":"3f79a3b5_7f707cdb","updated":"2018-10-02 06:26:00.000000000","message":"Done","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"e9df9d350d8ab59ba3d1ad0d661dcfc717e3bd54","unresolved":false,"context_lines":[{"line_number":1466,"context_line":"            \u0027dns-state\u0027: \u0027enabled\u0027,"},{"line_number":1467,"context_line":"        }"},{"line_number":1468,"context_line":"        dns_ips \u003d [x.strip() for x in security_service[\u0027dns_ip\u0027].split(\u0027,\u0027)]"},{"line_number":1469,"context_line":"        if len(dns_ips) \u003d\u003d 1:"},{"line_number":1470,"context_line":"            api_args[\u0027name-servers\u0027] \u003d {\u0027ip-address\u0027: dns_ips[0]}"},{"line_number":1471,"context_line":"        else:"},{"line_number":1472,"context_line":"            for ip in dns_ips:"},{"line_number":1473,"context_line":"                api_args[\u0027name-servers\u0027].append({\u0027ip-address\u0027: ip})"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"        try:"},{"line_number":1476,"context_line":"            self.send_request(\u0027net-dns-create\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_ff1b2c7d","line":1473,"range":{"start_line":1469,"start_character":8,"end_line":1473,"end_character":67},"updated":"2018-09-11 21:40:03.000000000","message":"The first clause is a private case of the second, can be reduced into:\napi_args[\u0027name-servers\u0027] \u003d [{\u0027ip-address\u0027: dns_ip} for dns_ip in dns_ips]\n\nAs you only use dns_ips here, I might actually set dns_ips to already contain the list of dicts, i.e.:\ndns_ips \u003d [{\u0027ip-address\u0027: dns_ip} for dns_ip ... ].split(\u0027,\u0027)","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"9441265138699ff4f914b8d5ba724760ede90b20","unresolved":false,"context_lines":[{"line_number":1466,"context_line":"            \u0027dns-state\u0027: \u0027enabled\u0027,"},{"line_number":1467,"context_line":"        }"},{"line_number":1468,"context_line":"        dns_ips \u003d [x.strip() for x in security_service[\u0027dns_ip\u0027].split(\u0027,\u0027)]"},{"line_number":1469,"context_line":"        if len(dns_ips) \u003d\u003d 1:"},{"line_number":1470,"context_line":"            api_args[\u0027name-servers\u0027] \u003d {\u0027ip-address\u0027: dns_ips[0]}"},{"line_number":1471,"context_line":"        else:"},{"line_number":1472,"context_line":"            for ip in dns_ips:"},{"line_number":1473,"context_line":"                api_args[\u0027name-servers\u0027].append({\u0027ip-address\u0027: ip})"},{"line_number":1474,"context_line":""},{"line_number":1475,"context_line":"        try:"},{"line_number":1476,"context_line":"            self.send_request(\u0027net-dns-create\u0027, api_args)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_30c61f4b","line":1473,"range":{"start_line":1469,"start_character":8,"end_line":1473,"end_character":67},"in_reply_to":"3f79a3b5_ff1b2c7d","updated":"2018-10-02 06:26:00.000000000","message":"Done","commit_id":"094c6986201c006ce7ea82d865900480948288ba"}],"manila/tests/share/drivers/netapp/dataontap/client/test_client_cmode.py":[{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"e9df9d350d8ab59ba3d1ad0d661dcfc717e3bd54","unresolved":false,"context_lines":[{"line_number":2595,"context_line":"            mock.call(\u0027net-dns-create\u0027, net_dns_create_args)])"},{"line_number":2596,"context_line":""},{"line_number":2597,"context_line":"    def test_configure_dns_multiple_dns_ip(self):"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":"        self.mock_object(self.client, \u0027send_request\u0027)"},{"line_number":2600,"context_line":"        dns_ip1 \u003d \u002710.0.0.1\u0027"},{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_d5ec0f94","line":2598,"updated":"2018-09-11 21:40:03.000000000","message":"remove empty line","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"9441265138699ff4f914b8d5ba724760ede90b20","unresolved":false,"context_lines":[{"line_number":2595,"context_line":"            mock.call(\u0027net-dns-create\u0027, net_dns_create_args)])"},{"line_number":2596,"context_line":""},{"line_number":2597,"context_line":"    def test_configure_dns_multiple_dns_ip(self):"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":"        self.mock_object(self.client, \u0027send_request\u0027)"},{"line_number":2600,"context_line":"        dns_ip1 \u003d \u002710.0.0.1\u0027"},{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_90da931a","line":2598,"in_reply_to":"3f79a3b5_d5ec0f94","updated":"2018-10-02 06:26:00.000000000","message":"I kept the style similar to the surrounding methods","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"e9df9d350d8ab59ba3d1ad0d661dcfc717e3bd54","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"    def test_configure_dns_multiple_dns_ip(self):"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":"        self.mock_object(self.client, \u0027send_request\u0027)"},{"line_number":2600,"context_line":"        dns_ip1 \u003d \u002710.0.0.1\u0027"},{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"},{"line_number":2602,"context_line":"        dns_ip3 \u003d \u002710.0.0.3\u0027"},{"line_number":2603,"context_line":"        ss \u003d fake.CIFS_SECURITY_SERVICE"},{"line_number":2604,"context_line":"        # join together comma separated, put some whitespce in"},{"line_number":2605,"context_line":"        # \u002710.0.0.1 ,10.0.0.2, 10.0.0.3\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_5521dfb4","line":2602,"range":{"start_line":2600,"start_character":0,"end_line":2602,"end_character":28},"updated":"2018-09-11 21:40:03.000000000","message":"Since you are not testing for a specific IP (i.e. you are creating a string with those 3 IP addresses and then the arg-dict), just create a list with those IPs and work with that, instead of 3 separate variables. For example:\nmock_dns_ips \u003d [\u002710.0.0.1\u0027, ... \u002710.0.0.3\u0027]\n...\nsecurity_service[\u0027dns_ip\u0027] \u003d \u0027,\u0027.join(mock_dns_ips)\n...\nnet_dns_create_args \u003d ...\n    ...\n    \u0027name-servers\u0027: [{\u0027ip-address\u0027: dns_ip} for dns_ip in mock_dns_ips]\n    ...\n...","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"9441265138699ff4f914b8d5ba724760ede90b20","unresolved":false,"context_lines":[{"line_number":2597,"context_line":"    def test_configure_dns_multiple_dns_ip(self):"},{"line_number":2598,"context_line":""},{"line_number":2599,"context_line":"        self.mock_object(self.client, \u0027send_request\u0027)"},{"line_number":2600,"context_line":"        dns_ip1 \u003d \u002710.0.0.1\u0027"},{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"},{"line_number":2602,"context_line":"        dns_ip3 \u003d \u002710.0.0.3\u0027"},{"line_number":2603,"context_line":"        ss \u003d fake.CIFS_SECURITY_SERVICE"},{"line_number":2604,"context_line":"        # join together comma separated, put some whitespce in"},{"line_number":2605,"context_line":"        # \u002710.0.0.1 ,10.0.0.2, 10.0.0.3\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_d0becbad","line":2602,"range":{"start_line":2600,"start_character":0,"end_line":2602,"end_character":28},"in_reply_to":"3f79a3b5_5521dfb4","updated":"2018-10-02 06:26:00.000000000","message":"Done","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"e9df9d350d8ab59ba3d1ad0d661dcfc717e3bd54","unresolved":false,"context_lines":[{"line_number":2600,"context_line":"        dns_ip1 \u003d \u002710.0.0.1\u0027"},{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"},{"line_number":2602,"context_line":"        dns_ip3 \u003d \u002710.0.0.3\u0027"},{"line_number":2603,"context_line":"        ss \u003d fake.CIFS_SECURITY_SERVICE"},{"line_number":2604,"context_line":"        # join together comma separated, put some whitespce in"},{"line_number":2605,"context_line":"        # \u002710.0.0.1 ,10.0.0.2, 10.0.0.3\u0027"},{"line_number":2606,"context_line":"        ss[\u0027dns_ip\u0027] \u003d \",\".join([dns_ip1 + \u0027 \u0027, dns_ip2, \u0027 \u0027 + dns_ip3])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_75d41bbc","line":2603,"range":{"start_line":2603,"start_character":8,"end_line":2603,"end_character":10},"updated":"2018-09-11 21:40:03.000000000","message":"naming - security_service, for example","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"9441265138699ff4f914b8d5ba724760ede90b20","unresolved":false,"context_lines":[{"line_number":2600,"context_line":"        dns_ip1 \u003d \u002710.0.0.1\u0027"},{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"},{"line_number":2602,"context_line":"        dns_ip3 \u003d \u002710.0.0.3\u0027"},{"line_number":2603,"context_line":"        ss \u003d fake.CIFS_SECURITY_SERVICE"},{"line_number":2604,"context_line":"        # join together comma separated, put some whitespce in"},{"line_number":2605,"context_line":"        # \u002710.0.0.1 ,10.0.0.2, 10.0.0.3\u0027"},{"line_number":2606,"context_line":"        ss[\u0027dns_ip\u0027] \u003d \",\".join([dns_ip1 + \u0027 \u0027, dns_ip2, \u0027 \u0027 + dns_ip3])"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_50e07bcb","line":2603,"range":{"start_line":2603,"start_character":8,"end_line":2603,"end_character":10},"in_reply_to":"3f79a3b5_75d41bbc","updated":"2018-10-02 06:26:00.000000000","message":"Done","commit_id":"094c6986201c006ce7ea82d865900480948288ba"},{"author":{"_account_id":26968,"name":"Amit O","email":"oamit.work@gmail.com","username":"amito"},"change_message_id":"e9df9d350d8ab59ba3d1ad0d661dcfc717e3bd54","unresolved":false,"context_lines":[{"line_number":2601,"context_line":"        dns_ip2 \u003d \u002710.0.0.2\u0027"},{"line_number":2602,"context_line":"        dns_ip3 \u003d \u002710.0.0.3\u0027"},{"line_number":2603,"context_line":"        ss \u003d fake.CIFS_SECURITY_SERVICE"},{"line_number":2604,"context_line":"        # join together comma separated, put some whitespce in"},{"line_number":2605,"context_line":"        # \u002710.0.0.1 ,10.0.0.2, 10.0.0.3\u0027"},{"line_number":2606,"context_line":"        ss[\u0027dns_ip\u0027] \u003d \",\".join([dns_ip1 + \u0027 \u0027, dns_ip2, \u0027 \u0027 + dns_ip3])"},{"line_number":2607,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_95cd3732","line":2604,"range":{"start_line":2604,"start_character":50,"end_line":2604,"end_character":59},"updated":"2018-09-11 21:40:03.000000000","message":"whitespace","commit_id":"094c6986201c006ce7ea82d865900480948288ba"}],"releasenotes/notes/netapp-cdot-ss-multiple-dns-ip-df42a217977ce44d.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"65d361801c3ba7a5d164c99bfa68e46562d3854b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The NetApp cDOT driver security service dns_ip parameter also takes a list"},{"line_number":5,"context_line":"    of comma separated DNS IPs for vserver dns configuration. Allows HA setup,"},{"line_number":6,"context_line":"    where DNS can be down for maintenance."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_744db4c2","line":4,"range":{"start_line":4,"start_character":15,"end_line":4,"end_character":19},"updated":"2019-01-28 14:42:25.000000000","message":"ONTAP","commit_id":"57b3550f58b8381846e10ea46bfed6273a8afd4d"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"a434c1ffa44f3ac3841051d1a8c48c10ac9e3e8e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The NetApp cDOT driver security service dns_ip parameter also takes a list"},{"line_number":5,"context_line":"    of comma separated DNS IPs for vserver dns configuration. Allows HA setup,"},{"line_number":6,"context_line":"    where DNS can be down for maintenance."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_372e2092","line":4,"range":{"start_line":4,"start_character":15,"end_line":4,"end_character":19},"in_reply_to":"9fdfeff1_744db4c2","updated":"2019-01-30 16:57:12.000000000","message":"Done","commit_id":"57b3550f58b8381846e10ea46bfed6273a8afd4d"}]}
