Bladeren bron

Marketplace Agreement in Azure Client

almahmoud 7 jaren geleden
bovenliggende
commit
1526633933
2 gewijzigde bestanden met toevoegingen van 21 en 0 verwijderingen
  1. 20 0
      cloudbridge/cloud/providers/azure/azure_client.py
  2. 1 0
      setup.py

+ 20 - 0
cloudbridge/cloud/providers/azure/azure_client.py

@@ -7,6 +7,7 @@ from azure.common.credentials import ServicePrincipalCredentials
 from azure.cosmosdb.table.tableservice import TableService
 from azure.mgmt.compute import ComputeManagementClient
 from azure.mgmt.devtestlabs.models import GalleryImageReference
+from azure.mgmt.marketplaceordering import MarketplaceOrderingAgreements
 from azure.mgmt.network import NetworkManagementClient
 from azure.mgmt.resource import ResourceManagementClient
 from azure.mgmt.resource.subscriptions import SubscriptionClient
@@ -170,6 +171,7 @@ class AzureClient(object):
         self._resource_client = None
         self._storage_client = None
         self._network_management_client = None
+        self._marketplace_agreement_client = None
         self._subscription_client = None
         self._compute_client = None
         self._access_key_result = None
@@ -254,6 +256,14 @@ class AzureClient(object):
                 self._credentials, self.subscription_id)
         return self._network_management_client
 
+    @property
+    def marketplace_agreement_client(self):
+        if not self._marketplace_agreement_client:
+            self._marketplace_agreement_client = MarketplaceOrderingAgreements(
+                self._credentials, self.subscription_id)
+        return self._marketplace_agreement_client
+
+
     @property
     def blob_service(self):
         self._get_or_create_storage_account()
@@ -564,6 +574,16 @@ class AzureClient(object):
                             list_by_resource_group(self.resource_group))
         return azure_images
 
+    def get_marketplace_agreement(self, publisher_id, offer_id, plan_id):
+        return self.marketplace_agreement_client.marketplace_agreements\
+            .get(publisher_id, offer_id, plan_id)
+
+    def accept_marketplace_agreement(self, publisher_id, offer_id,
+                                     plan_id, agr):
+        agr.accepted = True
+        self.marketplace_agreement_client.marketplace_agreements.create(
+                                        publisher_id, offer_id, plan_id, agr)
+
     def list_gallery_refs(self):
         return gallery_image_references
 

+ 1 - 0
setup.py

@@ -31,6 +31,7 @@ REQS_AWS = ['boto3<1.8.0']
 REQS_AZURE = ['msrest>=0.5.4,<0.6',
               'msrestazure==0.5.0',
               'azure-common==1.1.14',
+              'azure-mgmt-marketplaceordering==0.1.0',
               'azure-mgmt-devtestlabs==2.2.0',
               'azure-mgmt-resource==2.0.0',
               'azure-mgmt-compute==4.0.1',