diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3e5d3e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/azure-mgmt-compute-5.0.0.tar.gz +SOURCES/azure-sdk-4.0.0.tar.gz diff --git a/.python-azure-sdk.metadata b/.python-azure-sdk.metadata new file mode 100644 index 0000000..a900923 --- /dev/null +++ b/.python-azure-sdk.metadata @@ -0,0 +1,2 @@ +cf234eb992597dae1ddd06d2f30907d95a35aff3 SOURCES/azure-mgmt-compute-5.0.0.tar.gz +8be4111f72e723c02176a55b2912ccf39cb91c53 SOURCES/azure-sdk-4.0.0.tar.gz diff --git a/SOURCES/python-azure-sdk-4.0.0-nspkgs.patch b/SOURCES/python-azure-sdk-4.0.0-nspkgs.patch new file mode 100644 index 0000000..a27a78d --- /dev/null +++ b/SOURCES/python-azure-sdk-4.0.0-nspkgs.patch @@ -0,0 +1,12 @@ +diff -up ./setup.py.orig ./setup.py +--- ./setup.py.orig 2018-08-02 18:37:34.000000000 +0200 ++++ ./setup.py 2018-08-06 11:25:14.496926373 +0200 +@@ -27,7 +27,7 @@ nspkg_packages.sort(key = lambda x: len( + meta_package = ['azure-mgmt', 'azure'] + + # So content packages are: +-content_package = [p for p in packages if p not in meta_package+nspkg_packages] ++content_package = [p for p in packages if p not in meta_package+['azure-sdk-tools']] + # Move azure-common at the beginning + content_package.remove("azure-common") + content_package.insert(0, "azure-common") diff --git a/SOURCES/python-azure-sdk-4.0.0-tests.patch b/SOURCES/python-azure-sdk-4.0.0-tests.patch new file mode 100644 index 0000000..70732f1 --- /dev/null +++ b/SOURCES/python-azure-sdk-4.0.0-tests.patch @@ -0,0 +1,299 @@ +diff -up ./azure-keyvault/tests/test_certificates.py.orig ./azure-keyvault/tests/test_certificates.py +--- ./azure-keyvault/tests/test_certificates.py.orig 2018-08-02 18:37:34.000000000 +0200 ++++ ./azure-keyvault/tests/test_certificates.py 2019-04-16 17:16:30.786347635 +0200 +@@ -156,78 +156,6 @@ class KeyVaultCertificateTest(KeyvaultTe + + @ResourceGroupPreparer() + @KeyVaultPreparer() +- def test_import(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- cert_name = self.get_resource_name('certimp') +- +- # import certificate( +- (cert_bundle, cert_policy) = self._import_common_certificate(vault_uri, cert_name) +- self._validate_certificate_bundle(cert_bundle, vault_uri, cert_name, cert_policy) +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer() +- def test_list(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- +- max_certificates = self.list_test_size +- expected = {} +- +- # import some certificates +- for x in range(0, max_certificates): +- cert_name = self.get_resource_name('cert{}'.format(x)) +- cert_bundle = None +- error_count = 0 +- while not cert_bundle: +- try: +- cert_bundle = self._import_common_certificate(vault_uri, cert_name)[0] +- cid = KeyVaultId.parse_certificate_id(cert_bundle.id).base_id.strip('/') +- expected[cid] = cert_bundle.attributes +- except Exception as ex: +- if hasattr(ex, 'message') and 'Throttled' in ex.message: +- error_count += 1 +- time.sleep(2.5 * error_count) +- continue +- else: +- raise ex +- +- # list certificates +- result = list(self.client.get_certificates(vault_uri, self.list_test_size)) +- self._validate_certificate_list(result, expected) +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer() +- def test_list_versions(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- cert_name = self.get_resource_name('certver') +- +- max_certificates = self.list_test_size +- expected = {} +- +- # import same certificates as different versions +- for x in range(0, max_certificates): +- cert_bundle = None +- error_count = 0 +- while not cert_bundle: +- try: +- cert_bundle = self._import_common_certificate(vault_uri, cert_name)[0] +- cid = KeyVaultId.parse_certificate_id(cert_bundle.id).id.strip('/') +- expected[cid] = cert_bundle.attributes +- except Exception as ex: +- if hasattr(ex, 'message') and 'Throttled' in ex.message: +- error_count += 1 +- time.sleep(2.5 * error_count) +- continue +- else: +- raise ex +- +- # list certificate versions +- self._validate_certificate_list(list(self.client.get_certificate_versions(vault_uri, cert_name)), expected) +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer() + def test_crud_issuer(self, vault, **kwargs): + self.assertIsNotNone(vault) + vault_uri = vault.properties.vault_uri +@@ -397,32 +325,6 @@ class KeyVaultCertificateTest(KeyvaultTe + + @ResourceGroupPreparer() + @KeyVaultPreparer() +- def test_policy(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- +- cert_name = 'policyCertificate' +- +- # get certificate policy +- (cert_bundle, cert_policy) = self._import_common_certificate(vault_uri, cert_name) +- retrieved_policy = self.client.get_certificate_policy(vault_uri, cert_name) +- self.assertIsNotNone(retrieved_policy) +- +- # update certificate policy +- cert_policy = CertificatePolicy(key_properties=KeyProperties(exportable=True, +- key_type='RSA', +- key_size=2048, +- reuse_key=False), +- secret_properties=SecretProperties(content_type='application/x-pkcs12'), +- issuer_parameters=IssuerParameters(name='Self') +- ) +- +- self.client.update_certificate_policy(vault_uri, cert_name, cert_policy) +- updated_cert_policy = self.client.get_certificate_policy(vault_uri, cert_name) +- self.assertIsNotNone(updated_cert_policy) +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer() + def test_manual_enrolled(self, vault, **kwargs): + self.assertIsNotNone(vault) + vault_uri = vault.properties.vault_uri +@@ -451,65 +353,3 @@ class KeyVaultCertificateTest(KeyvaultTe + pass + finally: + self.client.delete_certificate(vault_uri, cert_name) +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer(enable_soft_delete=True) +- def test_recover_and_purge(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- +- certs = {} +- cert_policy = CertificatePolicy(key_properties=KeyProperties(exportable=True, +- key_type='RSA', +- key_size=2048, +- reuse_key=False), +- secret_properties=SecretProperties(content_type='application/x-pkcs12'), +- issuer_parameters=IssuerParameters(name='Self'), +- x509_certificate_properties=X509CertificateProperties( +- subject='CN=*.microsoft.com', +- subject_alternative_names=SubjectAlternativeNames( +- dns_names=['onedrive.microsoft.com', 'xbox.microsoft.com'] +- ), +- validity_in_months=24 +- )) +- # create certificates to recover +- for i in range(0, self.list_test_size): +- cert_name = self.get_resource_name('certrec{}'.format(str(i))) +- certs[cert_name] = self._import_common_certificate(vault_uri, cert_name) +- +- # create certificates to purge +- for i in range(0, self.list_test_size): +- cert_name = self.get_resource_name('certprg{}'.format(str(i))) +- certs[cert_name] = self._import_common_certificate(vault_uri, cert_name) +- +- # delete all certificates +- for cert_name in certs.keys(): +- delcert = self.client.delete_certificate(vault_uri, cert_name) +- print(delcert) +- +- if not self.is_playback(): +- time.sleep(30) +- +- # validate all our deleted certificates are returned by get_deleted_certificates +- deleted = [KeyVaultId.parse_certificate_id(s.id).name for s in self.client.get_deleted_certificates(vault_uri)] +- # self.assertTrue(all(s in deleted for s in certs.keys())) +- +- # recover select secrets +- for certificate_name in [s for s in certs.keys() if s.startswith('certrec')]: +- self.client.recover_deleted_certificate(vault_uri, certificate_name) +- +- # purge select secrets +- for certificate_name in [s for s in certs.keys() if s.startswith('certprg')]: +- self.client.purge_deleted_certificate(vault_uri, certificate_name) +- +- if not self.is_playback(): +- time.sleep(30) +- +- # validate none of our deleted certificates are returned by get_deleted_certificates +- deleted = [KeyVaultId.parse_secret_id(s.id).name for s in self.client.get_deleted_certificates(vault_uri)] +- self.assertTrue(not any(s in deleted for s in certs.keys())) +- +- # validate the recovered certificates +- expected = {k: v for k, v in certs.items() if k.startswith('certrec')} +- actual = {k: self.client.get_certificate(vault_uri, k, KeyVaultId.version_none) for k in expected.keys()} +- self.assertEqual(len(set(expected.keys()) & set(actual.keys())), len(expected)) +diff -up ./azure-keyvault/tests/test_keys.py.orig ./azure-keyvault/tests/test_keys.py +--- ./azure-keyvault/tests/test_keys.py.orig 2018-08-02 18:37:34.000000000 +0200 ++++ ./azure-keyvault/tests/test_keys.py 2019-04-16 17:17:46.792444105 +0200 +@@ -73,54 +73,6 @@ class KeyVaultKeyTest(KeyvaultTestCase): + + @ResourceGroupPreparer() + @KeyVaultPreparer() +- def test_key_crud_operations(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- key_name = self.get_resource_name('key') +- +- # create key +- created_bundle = self.client.create_key(vault_uri, key_name, 'RSA') +- self._validate_rsa_key_bundle(created_bundle, vault_uri, key_name, 'RSA') +- key_id = KeyVaultId.parse_key_id(created_bundle.key.kid) +- +- # get key without version +- self.assertEqual(created_bundle, self.client.get_key(key_id.vault, key_id.name, '')) +- +- # get key with version +- self.assertEqual(created_bundle, self.client.get_key(key_id.vault, key_id.name, key_id.version)) +- +- def _update_key(key_uri): +- updating_bundle = copy.deepcopy(created_bundle) +- updating_bundle.attributes.expires = date_parse.parse('2050-02-02T08:00:00.000Z') +- updating_bundle.key.key_ops = ['encrypt', 'decrypt'] +- updating_bundle.tags = {'foo': 'updated tag'} +- kid = KeyVaultId.parse_key_id(key_uri) +- key_bundle = self.client.update_key( +- kid.vault, kid.name, kid.version, updating_bundle.key.key_ops, updating_bundle.attributes, +- updating_bundle.tags) +- self.assertEqual(updating_bundle.tags, key_bundle.tags) +- self.assertEqual(updating_bundle.key.kid, key_bundle.key.kid) +- return key_bundle +- +- # update key without version +- created_bundle = _update_key(key_id.base_id) +- +- # update key with version +- created_bundle = _update_key(key_id.id) +- +- # delete key +- self.client.delete_key(key_id.vault, key_id.name) +- +- # get key returns not found +- try: +- self.client.get_key(key_id.vault, key_id.name, '') +- self.fail('Get should fail') +- except Exception as ex: +- if not hasattr(ex, 'message') or 'not found' not in ex.message.lower(): +- raise ex +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer() + def test_key_list(self, vault, **kwargs): + self.assertIsNotNone(vault) + vault_uri = vault.properties.vault_uri +diff -up ./azure-keyvault/tests/test_secrets.py.orig ./azure-keyvault/tests/test_secrets.py +--- ./azure-keyvault/tests/test_secrets.py.orig 2018-08-02 18:37:34.000000000 +0200 ++++ ./azure-keyvault/tests/test_secrets.py 2019-04-16 17:31:39.203646018 +0200 +@@ -31,56 +31,6 @@ class KeyVaultSecretTest(KeyvaultTestCas + + @ResourceGroupPreparer() + @KeyVaultPreparer() +- def test_secret_crud_operations(self, vault, **kwargs): +- self.assertIsNotNone(vault) +- vault_uri = vault.properties.vault_uri +- secret_name = 'crud-secret' +- secret_value = self.get_resource_name('crud_secret_value') +- +- # create secret +- secret_bundle = self.client.set_secret(vault_uri, secret_name, secret_value) +- self._validate_secret_bundle(secret_bundle, vault_uri, secret_name, secret_value) +- created_bundle = secret_bundle +- secret_id = KeyVaultId.parse_secret_id(created_bundle.id) +- +- # get secret without version +- self.assertEqual(created_bundle, self.client.get_secret(secret_id.vault, secret_id.name, '')) +- +- # get secret with version +- self.assertEqual(created_bundle, self.client.get_secret(secret_id.vault, secret_id.name, secret_id.version)) +- +- def _update_secret(secret_uri): +- updating_bundle = copy.deepcopy(created_bundle) +- updating_bundle.content_type = 'text/plain' +- updating_bundle.attributes.expires = date_parse.parse('2050-02-02T08:00:00.000Z') +- updating_bundle.tags = {'foo': 'updated tag'} +- sid = KeyVaultId.parse_secret_id(secret_uri) +- secret_bundle = self.client.update_secret( +- sid.vault, sid.name, sid.version, updating_bundle.content_type, updating_bundle.attributes, +- updating_bundle.tags) +- self.assertEqual(updating_bundle.tags, secret_bundle.tags) +- self.assertEqual(updating_bundle.id, secret_bundle.id) +- self.assertNotEqual(str(updating_bundle.attributes.updated), str(secret_bundle.attributes.updated)) +- return secret_bundle +- +- # update secret without version +- secret_bundle = _update_secret(secret_id.base_id) +- +- # update secret with version +- secret_bundle = _update_secret(secret_id.id) +- +- # delete secret +- self.client.delete_secret(secret_id.vault, secret_id.name) +- +- # get secret returns not found +- try: +- self.client.get_secret(secret_id.vault, secret_id.name, '') +- except Exception as ex: +- if not hasattr(ex, 'message') or 'not found' not in ex.message.lower(): +- raise ex +- +- @ResourceGroupPreparer() +- @KeyVaultPreparer() + def test_secret_list(self, vault, **kwargs): + self.assertIsNotNone(vault) + vault_uri = vault.properties.vault_uri diff --git a/SOURCES/setup.py-fix.patch b/SOURCES/setup.py-fix.patch new file mode 100644 index 0000000..059135b --- /dev/null +++ b/SOURCES/setup.py-fix.patch @@ -0,0 +1,1206 @@ +diff -uNr a/azure/setup.py b/azure/setup.py +--- a/azure/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure/setup.py 2019-05-06 10:55:49.782716908 +0200 +@@ -32,20 +32,20 @@ + ], + zip_safe=False, + install_requires=[ +- 'azure-mgmt~=4.0', +- 'azure-applicationinsights~=0.1.0', +- 'azure-batch~=4.1', +- 'azure-cosmosdb-table~=1.0', +- 'azure-datalake-store~=0.0.18', +- 'azure-eventgrid~=1.1', +- 'azure-graphrbac~=0.40.0', +- 'azure-keyvault~=1.0', +- 'azure-loganalytics~=0.1.0', +- 'azure-servicebus~=0.21.1', +- 'azure-servicefabric~=6.3.0.0', +- 'azure-servicemanagement-legacy~=0.20.6', +- 'azure-storage-blob~=1.3', +- 'azure-storage-queue~=1.3', +- 'azure-storage-file~=1.3', ++ 'azure-mgmt>=4.0', ++ 'azure-applicationinsights>=0.1.0', ++ 'azure-batch>=4.1', ++ 'azure-cosmosdb-table>=1.0', ++ 'azure-datalake-store>=0.0.18', ++ 'azure-eventgrid>=1.1', ++ 'azure-graphrbac>=0.40.0', ++ 'azure-keyvault>=1.0', ++ 'azure-loganalytics>=0.1.0', ++ 'azure-servicebus>=0.21.1', ++ 'azure-servicefabric>=6.3.0.0', ++ 'azure-servicemanagement-legacy>=0.20.6', ++ 'azure-storage-blob>=1.3', ++ 'azure-storage-queue>=1.3', ++ 'azure-storage-file>=1.3', + ], + ) +diff -uNr a/azure-applicationinsights/setup.py b/azure-applicationinsights/setup.py +--- a/azure-applicationinsights/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-applicationinsights/setup.py 2019-05-06 10:55:49.783716890 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.5.4,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-batch/setup.py b/azure-batch/setup.py +--- a/azure-batch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-batch/setup.py 2019-05-06 10:55:49.783716890 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-language-spellcheck/setup.py b/azure-cognitiveservices-language-spellcheck/setup.py +--- a/azure-cognitiveservices-language-spellcheck/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-language-spellcheck/setup.py 2019-05-06 10:55:49.783716890 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-language-textanalytics/setup.py b/azure-cognitiveservices-language-textanalytics/setup.py +--- a/azure-cognitiveservices-language-textanalytics/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-language-textanalytics/setup.py 2019-05-06 10:55:49.784716871 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.24,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-autosuggest/setup.py b/azure-cognitiveservices-search-autosuggest/setup.py +--- a/azure-cognitiveservices-search-autosuggest/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-autosuggest/setup.py 2019-05-06 10:55:49.784716871 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-customsearch/setup.py b/azure-cognitiveservices-search-customsearch/setup.py +--- a/azure-cognitiveservices-search-customsearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-customsearch/setup.py 2019-05-06 10:55:49.784716871 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.24,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-entitysearch/setup.py b/azure-cognitiveservices-search-entitysearch/setup.py +--- a/azure-cognitiveservices-search-entitysearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-entitysearch/setup.py 2019-05-06 10:55:49.785716853 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-imagesearch/setup.py b/azure-cognitiveservices-search-imagesearch/setup.py +--- a/azure-cognitiveservices-search-imagesearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-imagesearch/setup.py 2019-05-06 10:55:49.785716853 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-newssearch/setup.py b/azure-cognitiveservices-search-newssearch/setup.py +--- a/azure-cognitiveservices-search-newssearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-newssearch/setup.py 2019-05-06 10:55:49.785716853 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-videosearch/setup.py b/azure-cognitiveservices-search-videosearch/setup.py +--- a/azure-cognitiveservices-search-videosearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-videosearch/setup.py 2019-05-06 10:55:49.786716835 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-visualsearch/setup.py b/azure-cognitiveservices-search-visualsearch/setup.py +--- a/azure-cognitiveservices-search-visualsearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-visualsearch/setup.py 2019-05-06 10:55:49.786716835 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-search-websearch/setup.py b/azure-cognitiveservices-search-websearch/setup.py +--- a/azure-cognitiveservices-search-websearch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-search-websearch/setup.py 2019-05-06 10:55:49.786716835 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-vision-computervision/setup.py b/azure-cognitiveservices-vision-computervision/setup.py +--- a/azure-cognitiveservices-vision-computervision/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-vision-computervision/setup.py 2019-05-06 10:55:49.786716835 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.29,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-vision-contentmoderator/setup.py b/azure-cognitiveservices-vision-contentmoderator/setup.py +--- a/azure-cognitiveservices-vision-contentmoderator/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-vision-contentmoderator/setup.py 2019-05-06 10:55:49.787716817 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.24,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-vision-customvision/setup.py b/azure-cognitiveservices-vision-customvision/setup.py +--- a/azure-cognitiveservices-vision-customvision/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-vision-customvision/setup.py 2019-05-06 10:55:49.787716817 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.28,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-cognitiveservices-vision-face/setup.py b/azure-cognitiveservices-vision-face/setup.py +--- a/azure-cognitiveservices-vision-face/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-cognitiveservices-vision-face/setup.py 2019-05-06 10:55:49.787716817 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.24,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-eventgrid/setup.py b/azure-eventgrid/setup.py +--- a/azure-eventgrid/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-eventgrid/setup.py 2019-05-06 10:55:49.788716798 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-graphrbac/setup.py b/azure-graphrbac/setup.py +--- a/azure-graphrbac/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-graphrbac/setup.py 2019-05-06 10:55:49.788716798 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-keyvault/setup.py b/azure-keyvault/setup.py +--- a/azure-keyvault/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-keyvault/setup.py 2019-05-06 10:55:49.788716798 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + 'cryptography>=2.1.4', + 'requests>=2.18.4' + ], +diff -uNr a/azure-loganalytics/setup.py b/azure-loganalytics/setup.py +--- a/azure-loganalytics/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-loganalytics/setup.py 2019-05-06 10:55:49.789716780 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.29,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt/setup.py b/azure-mgmt/setup.py +--- a/azure-mgmt/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt/setup.py 2019-05-06 10:55:49.789716780 +0200 +@@ -31,65 +31,65 @@ + ], + zip_safe=False, + install_requires=[ +- 'azure-mgmt-advisor~=1.0', +- 'azure-mgmt-applicationinsights~=0.1.1', +- 'azure-mgmt-authorization~=0.50.0', +- 'azure-mgmt-batch~=5.0', +- 'azure-mgmt-batchai~=2.0', +- 'azure-mgmt-billing~=0.2.0', +- 'azure-mgmt-cdn~=3.0', +- 'azure-mgmt-cognitiveservices~=3.0', +- 'azure-mgmt-commerce~=1.0', +- 'azure-mgmt-compute~=4.0', +- 'azure-mgmt-consumption~=2.0', +- 'azure-mgmt-containerinstance~=1.0', +- 'azure-mgmt-containerregistry~=2.1', +- 'azure-mgmt-containerservice~=4.2', +- 'azure-mgmt-cosmosdb~=0.4.1', +- 'azure-mgmt-datafactory~=0.6.0', +- 'azure-mgmt-datalake-analytics~=0.6.0', +- 'azure-mgmt-datalake-store~=0.5.0', +- 'azure-mgmt-datamigration~=1.0', +- 'azure-mgmt-devspaces~=0.1.0', +- 'azure-mgmt-devtestlabs~=2.2', +- 'azure-mgmt-dns~=2.0', +- 'azure-mgmt-eventgrid~=1.0', +- 'azure-mgmt-eventhub~=2.1', +- 'azure-mgmt-hanaonazure~=0.1.1', +- 'azure-mgmt-iotcentral~=0.1.0', +- 'azure-mgmt-iothub~=0.5.0', +- 'azure-mgmt-iothubprovisioningservices~=0.2.0', +- 'azure-mgmt-keyvault~=1.0', +- 'azure-mgmt-loganalytics~=0.2.0', +- 'azure-mgmt-logic~=3.0', +- 'azure-mgmt-machinelearningcompute~=0.4.1', +- 'azure-mgmt-managementgroups~=0.1.0', +- 'azure-mgmt-managementpartner~=0.1.0', +- 'azure-mgmt-maps~=0.1.0', +- 'azure-mgmt-marketplaceordering~=0.1.0', +- 'azure-mgmt-media~=1.0.0rc2', +- 'azure-mgmt-monitor~=0.5.2', +- 'azure-mgmt-msi~=0.2.0', +- 'azure-mgmt-network~=2.0', +- 'azure-mgmt-notificationhubs~=2.0', +- 'azure-mgmt-policyinsights~=0.1.0', +- 'azure-mgmt-powerbiembedded~=2.0', +- 'azure-mgmt-rdbms~=1.2', +- 'azure-mgmt-recoveryservices~=0.3.0', +- 'azure-mgmt-recoveryservicesbackup~=0.3.0', +- 'azure-mgmt-redis~=5.0', +- 'azure-mgmt-relay~=0.1.0', +- 'azure-mgmt-reservations~=0.2.1', +- 'azure-mgmt-resource~=2.0', +- 'azure-mgmt-scheduler~=2.0', +- 'azure-mgmt-search~=2.0', +- 'azure-mgmt-servicebus~=0.5.1', +- 'azure-mgmt-servicefabric~=0.2.0', +- 'azure-mgmt-signalr~=0.1.0', +- 'azure-mgmt-sql~=0.9.1', +- 'azure-mgmt-storage~=2.0', +- 'azure-mgmt-subscription~=0.2.0', +- 'azure-mgmt-trafficmanager~=0.50.0', +- 'azure-mgmt-web~=0.35.0', ++ 'azure-mgmt-advisor>=1.0', ++ 'azure-mgmt-applicationinsights>=0.1.1', ++ 'azure-mgmt-authorization>=0.50.0', ++ 'azure-mgmt-batch>=5.0', ++ 'azure-mgmt-batchai>=2.0', ++ 'azure-mgmt-billing>=0.2.0', ++ 'azure-mgmt-cdn>=3.0', ++ 'azure-mgmt-cognitiveservices>=3.0', ++ 'azure-mgmt-commerce>=1.0', ++ 'azure-mgmt-compute>=4.0', ++ 'azure-mgmt-consumption>=2.0', ++ 'azure-mgmt-containerinstance>=1.0', ++ 'azure-mgmt-containerregistry>=2.1', ++ 'azure-mgmt-containerservice>=4.2', ++ 'azure-mgmt-cosmosdb>=0.4.1', ++ 'azure-mgmt-datafactory>=0.6.0', ++ 'azure-mgmt-datalake-analytics>=0.6.0', ++ 'azure-mgmt-datalake-store>=0.5.0', ++ 'azure-mgmt-datamigration>=1.0', ++ 'azure-mgmt-devspaces>=0.1.0', ++ 'azure-mgmt-devtestlabs>=2.2', ++ 'azure-mgmt-dns>=2.0', ++ 'azure-mgmt-eventgrid>=1.0', ++ 'azure-mgmt-eventhub>=2.1', ++ 'azure-mgmt-hanaonazure>=0.1.1', ++ 'azure-mgmt-iotcentral>=0.1.0', ++ 'azure-mgmt-iothub>=0.5.0', ++ 'azure-mgmt-iothubprovisioningservices>=0.2.0', ++ 'azure-mgmt-keyvault>=1.0', ++ 'azure-mgmt-loganalytics>=0.2.0', ++ 'azure-mgmt-logic>=3.0', ++ 'azure-mgmt-machinelearningcompute>=0.4.1', ++ 'azure-mgmt-managementgroups>=0.1.0', ++ 'azure-mgmt-managementpartner>=0.1.0', ++ 'azure-mgmt-maps>=0.1.0', ++ 'azure-mgmt-marketplaceordering>=0.1.0', ++ 'azure-mgmt-media>=1.0.0rc2', ++ 'azure-mgmt-monitor>=0.5.2', ++ 'azure-mgmt-msi>=0.2.0', ++ 'azure-mgmt-network>=2.0', ++ 'azure-mgmt-notificationhubs>=2.0', ++ 'azure-mgmt-policyinsights>=0.1.0', ++ 'azure-mgmt-powerbiembedded>=2.0', ++ 'azure-mgmt-rdbms>=1.2', ++ 'azure-mgmt-recoveryservices>=0.3.0', ++ 'azure-mgmt-recoveryservicesbackup>=0.3.0', ++ 'azure-mgmt-redis>=5.0', ++ 'azure-mgmt-relay>=0.1.0', ++ 'azure-mgmt-reservations>=0.2.1', ++ 'azure-mgmt-resource>=2.0', ++ 'azure-mgmt-scheduler>=2.0', ++ 'azure-mgmt-search>=2.0', ++ 'azure-mgmt-servicebus>=0.5.1', ++ 'azure-mgmt-servicefabric>=0.2.0', ++ 'azure-mgmt-signalr>=0.1.0', ++ 'azure-mgmt-sql>=0.9.1', ++ 'azure-mgmt-storage>=2.0', ++ 'azure-mgmt-subscription>=0.2.0', ++ 'azure-mgmt-trafficmanager>=0.50.0', ++ 'azure-mgmt-web>=0.35.0', + ], + ) +diff -uNr a/azure-mgmt-advisor/setup.py b/azure-mgmt-advisor/setup.py +--- a/azure-mgmt-advisor/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-advisor/setup.py 2019-05-06 10:55:49.789716780 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-applicationinsights/setup.py b/azure-mgmt-applicationinsights/setup.py +--- a/azure-mgmt-applicationinsights/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-applicationinsights/setup.py 2019-05-06 10:55:49.790716762 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-authorization/setup.py b/azure-mgmt-authorization/setup.py +--- a/azure-mgmt-authorization/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-authorization/setup.py 2019-05-06 10:55:49.790716762 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1,>=1.1.12', ++ 'azure-common>=1.1,>=1.1.12', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-batch/setup.py b/azure-mgmt-batch/setup.py +--- a/azure-mgmt-batch/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-batch/setup.py 2019-05-06 10:55:49.790716762 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-batchai/setup.py b/azure-mgmt-batchai/setup.py +--- a/azure-mgmt-batchai/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-batchai/setup.py 2019-05-06 10:55:49.790716762 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-billing/setup.py b/azure-mgmt-billing/setup.py +--- a/azure-mgmt-billing/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-billing/setup.py 2019-05-06 10:55:49.791716744 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-botservice/setup.py b/azure-mgmt-botservice/setup.py +--- a/azure-mgmt-botservice/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-botservice/setup.py 2019-05-06 10:55:49.791716744 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-cdn/setup.py b/azure-mgmt-cdn/setup.py +--- a/azure-mgmt-cdn/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-cdn/setup.py 2019-05-06 10:55:49.791716744 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-cognitiveservices/setup.py b/azure-mgmt-cognitiveservices/setup.py +--- a/azure-mgmt-cognitiveservices/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-cognitiveservices/setup.py 2019-05-06 10:55:49.791716744 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-commerce/setup.py b/azure-mgmt-commerce/setup.py +--- a/azure-mgmt-commerce/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-commerce/setup.py 2019-05-06 10:55:49.791716744 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-compute/setup.py b/azure-mgmt-compute/setup.py +--- a/azure-mgmt-compute/setup.py 2019-04-29 17:29:42.000000000 +0200 ++++ b/azure-mgmt-compute/setup.py 2019-05-06 10:59:49.862334534 +0200 +@@ -10,6 +10,7 @@ + import os.path + from io import open + from setuptools import find_packages, setup ++import sys + + # Change the PACKAGE_NAME only to change folder and different name + PACKAGE_NAME = "azure-mgmt-compute" +@@ -48,6 +49,14 @@ + with open('HISTORY.rst', encoding='utf-8') as f: + history = f.read() + ++ requirements = [ ++ 'msrest>=0.5.0', ++ 'msrestazure>=0.4.32,<2.0.0', ++ 'azure-common>=1.1', ++ ] ++ if sys.version_info[0] < 3: ++ requirements.append('azure-mgmt-nspkg') ++ + setup( + name=PACKAGE_NAME, + version=version, +@@ -77,12 +86,5 @@ + 'azure', + 'azure.mgmt', + ]), +- install_requires=[ +- 'msrest>=0.5.0', +- 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1', +- ], +- extras_require={ +- ":python_version<'3.0'": ['azure-mgmt-nspkg'], +- } ++ install_requires=requirements + ) +diff -uNr a/azure-mgmt-consumption/setup.py b/azure-mgmt-consumption/setup.py +--- a/azure-mgmt-consumption/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-consumption/setup.py 2019-05-06 10:55:49.791716744 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-containerinstance/setup.py b/azure-mgmt-containerinstance/setup.py +--- a/azure-mgmt-containerinstance/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-containerinstance/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-containerregistry/setup.py b/azure-mgmt-containerregistry/setup.py +--- a/azure-mgmt-containerregistry/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-containerregistry/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -80,7 +80,7 @@ + install_requires=[ + 'msrest>=0.5.0', + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1,>=1.1.10', ++ 'azure-common>=1.1,>=1.1.10', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-containerservice/setup.py b/azure-mgmt-containerservice/setup.py +--- a/azure-mgmt-containerservice/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-containerservice/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-cosmosdb/setup.py b/azure-mgmt-cosmosdb/setup.py +--- a/azure-mgmt-cosmosdb/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-cosmosdb/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-datafactory/setup.py b/azure-mgmt-datafactory/setup.py +--- a/azure-mgmt-datafactory/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-datafactory/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-datalake-analytics/setup.py b/azure-mgmt-datalake-analytics/setup.py +--- a/azure-mgmt-datalake-analytics/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-datalake-analytics/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-datalake-store/setup.py b/azure-mgmt-datalake-store/setup.py +--- a/azure-mgmt-datalake-store/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-datalake-store/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-datamigration/setup.py b/azure-mgmt-datamigration/setup.py +--- a/azure-mgmt-datamigration/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-datamigration/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-devspaces/setup.py b/azure-mgmt-devspaces/setup.py +--- a/azure-mgmt-devspaces/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-devspaces/setup.py 2019-05-06 10:55:49.792716725 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-devtestlabs/setup.py b/azure-mgmt-devtestlabs/setup.py +--- a/azure-mgmt-devtestlabs/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-devtestlabs/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-dns/setup.py b/azure-mgmt-dns/setup.py +--- a/azure-mgmt-dns/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-dns/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -80,7 +80,7 @@ + install_requires=[ + 'msrest>=0.5.0', + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-documentdb/setup.py b/azure-mgmt-documentdb/setup.py +--- a/azure-mgmt-documentdb/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-documentdb/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,8 +78,8 @@ + zip_safe=False, + packages=find_packages(), + install_requires=[ +- 'msrestazure~=0.4.7', +- 'azure-common~=1.1.5', ++ 'msrestazure>=0.4.7', ++ 'azure-common>=1.1.5', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-eventgrid/setup.py b/azure-mgmt-eventgrid/setup.py +--- a/azure-mgmt-eventgrid/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-eventgrid/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-eventhub/setup.py b/azure-mgmt-eventhub/setup.py +--- a/azure-mgmt-eventhub/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-eventhub/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -80,7 +80,7 @@ + install_requires=[ + 'msrest>=0.5.0', + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-hanaonazure/setup.py b/azure-mgmt-hanaonazure/setup.py +--- a/azure-mgmt-hanaonazure/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-hanaonazure/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-iotcentral/setup.py b/azure-mgmt-iotcentral/setup.py +--- a/azure-mgmt-iotcentral/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-iotcentral/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-iothub/setup.py b/azure-mgmt-iothub/setup.py +--- a/azure-mgmt-iothub/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-iothub/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-iothubprovisioningservices/setup.py b/azure-mgmt-iothubprovisioningservices/setup.py +--- a/azure-mgmt-iothubprovisioningservices/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-iothubprovisioningservices/setup.py 2019-05-06 10:55:49.793716707 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-keyvault/setup.py b/azure-mgmt-keyvault/setup.py +--- a/azure-mgmt-keyvault/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-keyvault/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-loganalytics/setup.py b/azure-mgmt-loganalytics/setup.py +--- a/azure-mgmt-loganalytics/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-loganalytics/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-logic/setup.py b/azure-mgmt-logic/setup.py +--- a/azure-mgmt-logic/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-logic/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-machinelearningcompute/setup.py b/azure-mgmt-machinelearningcompute/setup.py +--- a/azure-mgmt-machinelearningcompute/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-machinelearningcompute/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-managementgroups/setup.py b/azure-mgmt-managementgroups/setup.py +--- a/azure-mgmt-managementgroups/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-managementgroups/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-managementpartner/setup.py b/azure-mgmt-managementpartner/setup.py +--- a/azure-mgmt-managementpartner/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-managementpartner/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-maps/setup.py b/azure-mgmt-maps/setup.py +--- a/azure-mgmt-maps/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-maps/setup.py 2019-05-06 10:55:49.794716689 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-marketplaceordering/setup.py b/azure-mgmt-marketplaceordering/setup.py +--- a/azure-mgmt-marketplaceordering/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-marketplaceordering/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-media/setup.py b/azure-mgmt-media/setup.py +--- a/azure-mgmt-media/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-media/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-monitor/setup.py b/azure-mgmt-monitor/setup.py +--- a/azure-mgmt-monitor/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-monitor/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-msi/setup.py b/azure-mgmt-msi/setup.py +--- a/azure-mgmt-msi/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-msi/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-network/setup.py b/azure-mgmt-network/setup.py +--- a/azure-mgmt-network/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-network/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1,>=1.1.9', ++ 'azure-common>=1.1,>=1.1.9', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-notificationhubs/setup.py b/azure-mgmt-notificationhubs/setup.py +--- a/azure-mgmt-notificationhubs/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-notificationhubs/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-policyinsights/setup.py b/azure-mgmt-policyinsights/setup.py +--- a/azure-mgmt-policyinsights/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-policyinsights/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-powerbiembedded/setup.py b/azure-mgmt-powerbiembedded/setup.py +--- a/azure-mgmt-powerbiembedded/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-powerbiembedded/setup.py 2019-05-06 10:55:49.795716671 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-rdbms/setup.py b/azure-mgmt-rdbms/setup.py +--- a/azure-mgmt-rdbms/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-rdbms/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-recoveryservices/setup.py b/azure-mgmt-recoveryservices/setup.py +--- a/azure-mgmt-recoveryservices/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-recoveryservices/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-recoveryservicesbackup/setup.py b/azure-mgmt-recoveryservicesbackup/setup.py +--- a/azure-mgmt-recoveryservicesbackup/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-recoveryservicesbackup/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-redis/setup.py b/azure-mgmt-redis/setup.py +--- a/azure-mgmt-redis/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-redis/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-relay/setup.py b/azure-mgmt-relay/setup.py +--- a/azure-mgmt-relay/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-relay/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-reservations/setup.py b/azure-mgmt-reservations/setup.py +--- a/azure-mgmt-reservations/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-reservations/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-resource/setup.py b/azure-mgmt-resource/setup.py +--- a/azure-mgmt-resource/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-resource/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1,>=1.1.9', ++ 'azure-common>=1.1,>=1.1.9', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-scheduler/setup.py b/azure-mgmt-scheduler/setup.py +--- a/azure-mgmt-scheduler/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-scheduler/setup.py 2019-05-06 10:55:49.796716652 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-search/setup.py b/azure-mgmt-search/setup.py +--- a/azure-mgmt-search/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-search/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-servermanager/setup.py b/azure-mgmt-servermanager/setup.py +--- a/azure-mgmt-servermanager/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-servermanager/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-servicebus/setup.py b/azure-mgmt-servicebus/setup.py +--- a/azure-mgmt-servicebus/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-servicebus/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-servicefabric/setup.py b/azure-mgmt-servicefabric/setup.py +--- a/azure-mgmt-servicefabric/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-servicefabric/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -80,7 +80,7 @@ + install_requires=[ + 'msrest>=0.5.0', + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-signalr/setup.py b/azure-mgmt-signalr/setup.py +--- a/azure-mgmt-signalr/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-signalr/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-sql/setup.py b/azure-mgmt-sql/setup.py +--- a/azure-mgmt-sql/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-sql/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-storage/setup.py b/azure-mgmt-storage/setup.py +--- a/azure-mgmt-storage/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-storage/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.32,<2.0.0', +- 'azure-common~=1.1,>=1.1.10', ++ 'azure-common>=1.1,>=1.1.10', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-subscription/setup.py b/azure-mgmt-subscription/setup.py +--- a/azure-mgmt-subscription/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-subscription/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-trafficmanager/setup.py b/azure-mgmt-trafficmanager/setup.py +--- a/azure-mgmt-trafficmanager/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-trafficmanager/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.27,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-mgmt-web/setup.py b/azure-mgmt-web/setup.py +--- a/azure-mgmt-web/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-mgmt-web/setup.py 2019-05-06 10:55:49.797716634 +0200 +@@ -78,7 +78,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrestazure>=0.4.20,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) +diff -uNr a/azure-servicefabric/setup.py b/azure-servicefabric/setup.py +--- a/azure-servicefabric/setup.py 2018-08-02 18:37:34.000000000 +0200 ++++ b/azure-servicefabric/setup.py 2019-05-06 10:55:49.798716616 +0200 +@@ -79,7 +79,7 @@ + packages=find_packages(exclude=["tests"]), + install_requires=[ + 'msrest>=0.4.26,<2.0.0', +- 'azure-common~=1.1', ++ 'azure-common>=1.1', + ], + cmdclass=cmdclass + ) diff --git a/SPECS/python-azure-sdk.spec b/SPECS/python-azure-sdk.spec new file mode 100644 index 0000000..b5b7d91 --- /dev/null +++ b/SPECS/python-azure-sdk.spec @@ -0,0 +1,252 @@ +%if 0%{?fedora} +%global _with_python3 1 +# Documentation generation disabled on EPEL because +# fontawesome-fonts-web package, required by python-sphinx_rtd_theme, +# is dead +%global _with_doc 1 +# Tests disabled: +# - on EPEL because of missing dependencies +# - on Fedora < 25 because python-vcrpy >= 1.8.0 is required +%if 0%{?fedora} >= 25 +%global _with_tests 1 +%endif +%endif + +%if 0%{?rhel} +%global py2_prefix python +%else +%global py2_prefix python2 +%endif + +%global srcname azure-sdk +# global prerelease rc6 + +%global common_summary Microsoft Azure SDK for Python +%global common_description This project provides a set of Python packages that make it easy to access the\ +Microsoft Azure components such as ServiceManagement, Storage*, and ServiceBus. + +Name: python-%{srcname} +# Remember to delete examples-directory from Source file for new releases +# due to possible licensing issues +Version: 4.0.0 +Release: %{?prerelease:0.}1%{?prerelease:.%{prerelease}}%{?dist} +Summary: %{common_summary} + +Group: System Environment/Libraries +# All packages are licensed under the MIT license, except: +# - azure-servicebus +# - azure-servicemanagement-legacy +License: MIT and ASL 2.0 +URL: https://github.com/Azure/azure-sdk-for-python/ +Source0: %{srcname}-%{version}%{?prerelease}.tar.gz +# azure-mgmt-compute directory from: +# https://github.com/Azure/azure-sdk-for-python/releases/tag/azure-mgmt-compute_5.0.0 +Source1: azure-mgmt-compute-5.0.0.tar.gz +# Install namespace package modules (disabled by default, may be required by +# modules depending on Azure SDK for development) +Patch0: %{name}-4.0.0-nspkgs.patch +# Disable tests requiring online access to Azure +Patch1: %{name}-4.0.0-tests.patch +# Fix python 3 setup.py tests +Patch2: setup.py-fix.patch + +BuildRequires: %{py2_prefix}-setuptools +BuildRequires: python2-devel + +Requires: pyOpenSSL +Requires: %{py2_prefix}-msrest >= 0.5.4 +Requires: %{py2_prefix}-msrestazure >= 0.5.1 +Requires: %{py2_prefix}-requests + +# Needed to build documentation +%if 0%{?_with_doc} +BuildRequires: python-pip +BuildRequires: %{py2_prefix}-sphinx +BuildRequires: %{py2_prefix}-sphinx_rtd_theme +%endif +%if 0%{?_with_python3} +BuildRequires: python3-devel +%endif +# Needed for tests +%if 0%{?_with_tests} +BuildRequires: %{py2_prefix}-certifi +BuildRequires: python-chardet +BuildRequires: %{py2_prefix}-coverage +BuildRequires: python-enum34 +BuildRequires: python-isodate +BuildRequires: %{py2_prefix}-keyring +BuildRequires: %{py2_prefix}-msrest +BuildRequires: %{py2_prefix}-msrestazure +BuildRequires: %{py2_prefix}-nose +BuildRequires: %{py2_prefix}-oauthlib +BuildRequires: %{py2_prefix}-requests +BuildRequires: %{py2_prefix}-requests-oauthlib +BuildRequires: python-vcrpy >= 1.8.0 +%if 0%{?_with_python3} +BuildRequires: python3-certifi +BuildRequires: python3-chardet +BuildRequires: python3-coverage +BuildRequires: python3-enum34 +BuildRequires: python3-isodate +BuildRequires: python3-keyring +BuildRequires: python3-msrest +BuildRequires: python3-msrestazure +BuildRequires: python3-nose +BuildRequires: python3-oauthlib +BuildRequires: python3-requests +BuildRequires: python3-requests-oauthlib +BuildRequires: python3-vcrpy >= 1.8.0 +%endif +%endif +BuildArch: noarch + +%description +%{common_description} + + +%if 0%{?_with_python3} +%package -n python3-%{srcname} +Summary: %{common_summary} +Requires: python3-msrest +Requires: python3-msrestazure +Requires: python3-pyOpenSSL +Requires: python3-requests +%{?python_provide:%python_provide python3-%{srcname}} + +%description -n python3-%{srcname} +%{common_description} +%endif + + +%if 0%{?_with_doc} +%package doc +Summary: Documentation for %{name} +Group: Documentation + +%description doc +%{common_description} + +This package provides documentation for %{name}. +%endif + + +%prep +%setup -q -n %{srcname}-for-python-azure_%{version}%{?prerelease} + +rm -rf azure-mgmt-compute +tar -xzf %SOURCE1 + +%patch0 -p0 +%patch1 -p0 +%patch2 -p1 + +# delete Python 3 specific code that fails in Python 2 in Azure SDK 4.0+ +find -name "*_py3.py" -exec rm -v {} \; + +# Disable online tests requiring python-azure-storage +# TODO: once the python-azure-storage package available, re-enable it +rm azure-servicemanagement-legacy/tests/test_legacy_mgmt_misc.py + +# append bundled-directory to search path +sed -i "/^import keyring/iimport sys\nsys.path.insert(0, '%{_libdir}/fence-agents/bundled')" azure-batch/azure/batch/batch_auth.py + + +%build +%py2_build +%{?_with_python3:%py3_build} + +# Build documentation +%if 0%{?_with_doc} +%make_build -C doc/ html +rm doc/_build/html/.buildinfo +%endif + + +%install +%py2_install +%if 0%{?_with_python3} +%py3_install +%endif + + +%check +%if 0%{?_with_tests} +%{__python2} azure_nosetests.py +%{?_with_python3:%{__python3} azure_nosetests.py} +%endif + + +%files -n python-%{srcname} +%doc CONTRIBUTING.md README.rst +%license LICENSE.txt +%{python2_sitelib}/* + + +%if 0%{?_with_python3} +%files -n python3-%{srcname} +%doc CONTRIBUTING.md README.rst +%license LICENSE.txt +%{python3_sitelib}/* +%endif + + +%if 0%{?_with_doc} +%files doc +%doc doc/_build/html/ +%license LICENSE.txt +%endif + + +%changelog +* Tue May 14 2019 Oyvind Albrigtsen - 4.0.0-1 +- Update to 4.0.0 + azure-mgmt-compute 5.0.0 (for skip_shutdown feature) + + Resolves: rhbz#1707857 + +* Thu Jan 25 2018 Oyvind Albrigtsen - 2.0.0-3 +- Remove examples-directory from Source tarball due to possible + licensing issues +- Append python-keyring bundled directory to search path where needed + + Resolves: rhbz#1511222 + +* Sun Sep 03 2017 Mohamed El Morabity - 2.0.0-2 +- Use python2- prefix for Fedora dependencies if possible +- Use parallel make to build documentation + +* Thu Jun 15 2017 Mohamed El Morabity - 2.0.0-1 +- Update to 2.0.0 +- Move documentation to a subpackage + +* Tue Sep 27 2016 Mohamed El Morabity - 2.0.0-0.8.rc6 +- Update to 2.0.0rc6 + +* Thu Jul 21 2016 Mohamed El Morabity - 2.0.0-0.7.rc5 +- Update to 2.0.0rc5 +- Build documentation +- Run tests at build + +* Thu May 26 2016 Mohamed El Morabity - 2.0.0-0.6.rc4 +- Update to 2.0.0rc4 + +* Sun May 01 2016 Mohamed El Morabity - 2.0.0-0.5.rc3 +- Update to 2.0.0rc3 + +* Mon Apr 11 2016 Mohamed El Morabity - 2.0.0-0.4.rc2 +- Update to 2.0.0rc2 + +* Fri Mar 25 2016 Mohamed El Morabity - 2.0.0-0.3.rc1 +- Add missing dependency to enum34 Python module + +* Sat Mar 05 2016 Mohamed El Morabity - 2.0.0-0.2.rc1 +- Update to 2.0.0rc1 + +* Mon Feb 29 2016 Mohamed El Morabity - 2.0.0-0.1.a1 +- Update to 2.0.0a1 +- Improve macros for Python 3 subpackage + +* Mon Feb 08 2016 Mohamed El Morabity - 1.0.3-1 +- Update to 1.0.3 + +* Sun Jan 10 2016 Mohamed El Morabity - 1.0.2-1 +- Initial RPM release