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
def Delete(publisherId): session = Session() publisher = Publisher.Get(publisherId) session.delete(publisher) session.commit() session.close() return
def DeleteAdmin(userId): session = Session() admin = AgentUser.GetAdmin(userId) session.delete(admin) session.commit() session.close() return
def DeleteUser(subscriptionId, userId): session = Session() user = AgentUser.GetUser(subscriptionId, userId) session.delete(user) session.commit() session.close() return
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
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
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
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()
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()
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()
def Create(publisher): session = Session() session.add(publisher) session.commit() session.close() return
def Delete(workspaceName): session = Session() workspace = session.query(AMLWorkspace).filter_by(WorkspaceName = workspaceName).first() session.delete(workspace) session.commit() return
def Create(user): session = Session() session.add(user) session.commit() return