public void RemoveApp(Guid targetKey, Guid appKey) { try { var indexes = new Indexes(Context); indexes.DeleteIndexEntry(GetTargetAppsIndexPath(targetKey), appKey); } catch (Exception ex) { throw new DeploymentException(string.Format("Failed removing app with key \"{0}\" from target \"{1}\".", appKey, targetKey), ex); } }
public void DeleteGroup(Guid key) { try { Plywood.Internal.AwsHelpers.SoftDeleteFolders(Context, string.Format("{0}/{1}", STR_GROUPS_CONTAINER_PATH, key.ToString("N"))); var indexesController = new Internal.Indexes(Context); indexesController.DeleteIndexEntry(STR_GROUP_INDEX_PATH, key); } catch (AmazonS3Exception awsEx) { throw new DeploymentException("Failed deleting group.", awsEx); } }
public void UpdateApp(App app) { if (app == null) throw new ArgumentNullException("app", "App cannot be null."); var existingApp = GetApp(app.Key); // Don't allow moving between groups right now as would have to recursively update references from versions and targets within app. app.GroupKey = existingApp.GroupKey; using (var stream = app.Serialise()) { try { using (var client = new AmazonS3Client(Context.AwsAccessKeyId, Context.AwsSecretAccessKey)) { var indexesController = new Internal.Indexes(Context); // This will not currently get called. if (existingApp.GroupKey != app.GroupKey) { var groupsController = new Groups(Context); if (!groupsController.GroupExists(app.GroupKey)) throw new GroupNotFoundException(string.Format("Group with key \"{0}\" to move app into cannot be found.", app.GroupKey)); } using (var putResponse = client.PutObject(new PutObjectRequest() { BucketName = Context.BucketName, Key = string.Format("{0}/{1}/{2}", STR_APPS_CONTAINER_PATH, app.Key.ToString("N"), STR_INFO_FILE_NAME), InputStream = stream, })) { } // This will not currently get called. if (existingApp.GroupKey != app.GroupKey) { string oldAppIndexPath = GetGroupAppsIndexPath(existingApp.GroupKey); indexesController.DeleteIndexEntry(oldAppIndexPath, app.Key); } string newAppIndexPath = GetGroupAppsIndexPath(app.GroupKey); indexesController.PutIndexEntry(newAppIndexPath, new Internal.EntityIndexEntry() { Key = app.Key, Name = app.Name }); } } catch (AmazonS3Exception awsEx) { throw new DeploymentException("Failed updating app.", awsEx); } } }