예제 #1
0
        public PSArtifact CreateArtifact(string scope, string blueprintName, string artifactName, Artifact artifactObject)
        {
            var artifact = blueprintManagementClient.Artifacts.CreateOrUpdate(scope, blueprintName, artifactName, artifactObject);

            PSArtifact psArtifact = null;

            switch (artifact)
            {
            case TemplateArtifact templateArtifact:
                psArtifact = PSTemplateArtifact.FromArtifactModel(artifact as TemplateArtifact, scope);
                break;

            case PolicyAssignmentArtifact policyArtifact:
                psArtifact = PSPolicyAssignmentArtifact.FromArtifactModel(artifact as PolicyAssignmentArtifact, scope);
                break;

            case RoleAssignmentArtifact roleAssignmentArtifact:
                psArtifact = PSRoleAssignmentArtifact.FromArtifactModel(artifact as RoleAssignmentArtifact, scope);
                break;

            default:
                throw new NotSupportedException(Resources.ArtifactTypeNotSupported);
            }

            return(psArtifact);
        }
예제 #2
0
        public PSArtifact GetArtifact(string scope, string blueprintName, string artifactName, string version)
        {
            var artifact = string.IsNullOrEmpty(version)
                ? blueprintManagementClient.Artifacts.Get(scope, blueprintName, artifactName)
                : blueprintManagementClient.PublishedArtifacts.Get(scope, blueprintName, artifactName, version);

            PSArtifact psArtifact = null;

            switch (artifact)
            {
            case TemplateArtifact templateArtifact:
                psArtifact = PSTemplateArtifact.FromArtifactModel(artifact as TemplateArtifact, scope);
                break;

            case PolicyAssignmentArtifact policyArtifact:
                psArtifact = PSPolicyAssignmentArtifact.FromArtifactModel(artifact as PolicyAssignmentArtifact, scope);
                break;

            case RoleAssignmentArtifact roleAssignmentArtifact:
                psArtifact = PSRoleAssignmentArtifact.FromArtifactModel(artifact as RoleAssignmentArtifact, scope);
                break;

            default:
                throw new NotSupportedException(Resources.ArtifactTypeNotSupported);
            }

            return(psArtifact);
        }
예제 #3
0
        protected void ThrowIfArtifactExits(string scope, string blueprintName, string artifactName)
        {
            PSArtifact artifact = null;

            try
            {
                artifact = BlueprintClient.GetArtifact(scope, blueprintName, artifactName, null);
            }
            catch (Exception ex)
            {
                if (ex is CloudException cex && cex.Response.StatusCode != System.Net.HttpStatusCode.NotFound)
                {
                    // if exception is for a reason other than .NotFound, pass it to the caller.
                    throw;
                }
            }

            if (artifact != null)
            {
                throw new Exception(string.Format(Resources.ArtifactExists, artifactName, blueprintName));
            }
        }
예제 #4
0
        public string GetBlueprintArtifactJsonFromObject(string scope, string blueprintName, PSArtifact artifact, string version)
        {
            var artifactObj = string.IsNullOrEmpty(version)
             ? blueprintManagementClient.Artifacts.Get(scope, blueprintName, artifact.Name)
             : blueprintManagementClient.PublishedArtifacts.Get(scope, blueprintName, version, artifact.Name);


            return(JsonConvert.SerializeObject(artifactObj, DefaultJsonSettings.SerializerSettings));
        }