Пример #1
0
 def Create(workspace):
     session = Session()
     workspace.AADApplicationSecretName = 'aml-{}'.format(uuid.uuid4())
     key_vault_helper.set_secret(workspace.AADApplicationSecretName, workspace.AADApplicationSecret)
     session.add(workspace)
     session.commit()
     return
Пример #2
0
 def Delete(publisherId):
     session = Session()
     publisher = Publisher.Get(publisherId)
     session.delete(publisher)
     session.commit()
     session.close()
     return
Пример #3
0
 def DeleteAdmin(userId):
     session = Session()
     admin = AgentUser.GetAdmin(userId)
     session.delete(admin)
     session.commit()
     session.close()
     return
Пример #4
0
 def DeleteUser(subscriptionId, userId):
     session = Session()
     user = AgentUser.GetUser(subscriptionId, userId)
     session.delete(user)
     session.commit()
     session.close()
     return
Пример #5
0
 def Update(publisherId, publisher):
     session = Session()
     dbPublisher = session.query(Publisher).filter_by(PublisherId = publisherId).first()
     dbPublisher.ControlPlaneUrl = publisher.ControlPlaneUrl
     dbPublisher.Name = publisher.Name
     session.commit()
     session.close()
     return publisher.ControlPlaneUrl
Пример #6
0
 def Update(workspace):
     session = Session()
     dbWorkspace = session.query(AMLWorkspace).filter_by(WorkspaceName = workspace.WorkspaceName).first()
     dbWorkspace.AADApplicationId = workspace.AADApplicationId
     if workspace.AADApplicationSecret != "" and workspace.AADApplicationSecret != "notchanged":
         key_vault_helper.set_secret(dbWorkspace.AADApplicationSecretName, workspace.AADApplicationSecret)
     dbWorkspace.AADTenantId = workspace.AADTenantId
     session.commit()
     # update
     return
Пример #7
0
 def Update(subscription):
     session = Session()
     dbSubscription = session.query(APISubscription).filter_by(SubscriptionId = subscription.SubscriptionId).first()
     workspace = AMLWorkspace.Get(subscription.AMLWorkspaceName)
     if not workspace:
         raise LunaUserException(HTTPStatus.BAD_REQUEST, "The workspace {} doesn't exist or you don't have permission to access it.".format(subscription.AMLWorkspaceName))
     dbSubscription.AMLWorkspaceId = workspace.Id
     dbSubscription.AMLWorkspaceComputeClusterName = subscription.AMLWorkspaceComputeClusterName
     dbSubscription.AMLWorkspaceDeploymentTargetType = subscription.AMLWorkspaceDeploymentTargetType
     dbSubscription.AMLWorkspaceDeploymentClusterName = subscription.AMLWorkspaceDeploymentClusterName
     session.commit()
     session.close()
     # update
     return
Пример #8
0
    def MergeWithDelete(offers, publisherId):
        session = Session()
        try:
            dbOffers = session.query(Offer).all()
            for dbOffer in dbOffers:
                if dbOffer.PublisherId.lower() != publisherId.lower():
                    continue
                # If the offer is removed in the control plane, remove it from the agent
                try:
                    next(item for item in offers
                         if item["OfferId"] == dbOffer.OfferId
                         and item["PublisherId"].lower() ==
                         dbOffer.PublisherId.lower())
                except StopIteration:
                    session.delete(dbOffer)

            for offer in offers:
                dbOffer = session.query(Offer).filter_by(
                    OfferId=offer["OfferId"],
                    PublisherId=offer["PublisherId"]).first()
                if dbOffer:
                    dbOffer.Description = offer["Description"]

                    if "LogoImageUrl" in offer:
                        dbOffer.LogoImageUrl = offer["LogoImageUrl"]

                    dbOffer.OfferName = offer["OfferName"]
                    if "DocumentationUrl" in offer:
                        dbOffer.DocumentationUrl = offer["DocumentationUrl"]

                    dbOffer.PublisherName = offer["PublisherName"]
                    dbOffer.LandingPageUrl = offer["LandingPageUrl"]
                    dbOffer.LastUpdatedTime = offer["LastUpdatedTime"]
                    dbOffer.CreatedTime = offer["CreatedTime"]
                    if "PublisherMicrosoftId" in offer:
                        dbOffer.PublisherMicrosoftId = offer[
                            "PublisherMicrosoftId"]

                else:
                    dbOffer = Offer(**offer)
                    session.add(dbOffer)

            session.commit()
        except Exception as e:
            session.rollback()
            raise

        finally:
            session.close()
Пример #9
0
    def MergeWithDelete(subscriptions, publisherId):
        session = Session()
        try:
            dbSubscriptions = session.query(APISubscription).all()
            for dbSubscription in dbSubscriptions:
                if dbSubscription.PublisherId.lower() != publisherId.lower():
                    continue;
                # If the subscription is removed in the control plane, remove it from the agent
                try:
                    next(item for item in subscriptions if item["SubscriptionId"].lower() == dbSubscription.SubscriptionId.lower() and item["PublisherId"].lower() == dbSubscription.PublisherId.lower())
                except StopIteration:
                    session.delete(dbSubscription)

            for subscription in subscriptions:
                dbSubscription = session.query(APISubscription).filter_by(SubscriptionId = subscription["SubscriptionId"]).first()
                if dbSubscription:
                    dbSubscription.DeploymentName = subscription["DeploymentName"]
                    dbSubscription.ProductName = subscription["ProductName"]
                    dbSubscription.ProductType = subscription["ProductType"]
                    dbSubscription.Name = subscription["Name"]
                    dbSubscription.Status = subscription["Status"]
                    dbSubscription.HostType = subscription["HostType"]
                    dbSubscription.BaseUrl = subscription["BaseUrl"]
                    if key_vault_helper.get_secret(dbSubscription.PrimaryKeySecretName) != subscription["PrimaryKey"]:
                        key_vault_helper.set_secret(dbSubscription.PrimaryKeySecretName, subscription["PrimaryKey"])
                    if key_vault_helper.get_secret(dbSubscription.SecondaryKeySecretName) != subscription["SecondaryKey"]:
                        key_vault_helper.set_secret(dbSubscription.SecondaryKeySecretName, subscription["SecondaryKey"])
                else:
                    dbSubscription = APISubscription(**subscription)
                    dbSubscription.PrimaryKeySecretName = 'primarykey-{}'.format(dbSubscription.SubscriptionId)
                    dbSubscription.SecondaryKeySecretName = 'secondarykey-{}'.format(dbSubscription.SubscriptionId)
                    key_vault_helper.set_secret(dbSubscription.PrimaryKeySecretName, dbSubscription.PrimaryKey)
                    key_vault_helper.set_secret(dbSubscription.SecondaryKeySecretName, dbSubscription.SecondaryKey)
                    session.add(dbSubscription)

            session.commit()
        except:
            session.rollback()
            raise

        finally:
            session.close()
Пример #10
0
    def MergeWithDelete(apiVersions, publisherId):
        session = Session()
        try:
            dbAPIVersions = session.query(APIVersion).all()
            for dbAPIVersion in dbAPIVersions:
                if dbAPIVersion.PublisherId.lower() != publisherId.lower():
                    continue
                # If the subscription is removed in the control plane, remove it from the agent
                try:
                    next(item for item in apiVersions if
                         item["DeploymentName"] == dbAPIVersion.DeploymentName
                         and item["ProductName"] == dbAPIVersion.ProductName
                         and item["VersionName"] == dbAPIVersion.VersionName
                         and item["PublisherId"].lower() ==
                         dbAPIVersion.PublisherId.lower())
                except StopIteration:
                    session.delete(dbAPIVersion)

            for apiVersion in apiVersions:
                dbAPIVersion = session.query(APIVersion).filter_by(
                    ProductName=apiVersion["ProductName"],
                    DeploymentName=apiVersion["DeploymentName"],
                    VersionName=apiVersion["VersionName"],
                    PublisherId=apiVersion["PublisherId"]).first()
                if dbAPIVersion:
                    dbAPIVersion.LastUpdatedTime = apiVersion[
                        "LastUpdatedTime"]
                    dbAPIVersion.ConfigFile = apiVersion["ConfigFile"]
                else:
                    dbAPIVersion = APIVersion(**apiVersion)
                    session.add(dbAPIVersion)

            session.commit()
        except Exception as e:
            session.rollback()
            raise

        finally:
            session.close()
Пример #11
0
 def Create(publisher):
     session = Session()
     session.add(publisher)
     session.commit()
     session.close()
     return
Пример #12
0
 def Delete(workspaceName):
     session = Session()
     workspace = session.query(AMLWorkspace).filter_by(WorkspaceName = workspaceName).first()
     session.delete(workspace)
     session.commit()
     return
Пример #13
0
 def Create(user):
     session = Session()
     session.add(user)
     session.commit()
     return