private boolean hasAccount(String name) { return accounts.stream().anyMatch(a -> a.getName().equals(name)); }
private boolean hasAccount(String name) { return accounts.stream().anyMatch(a -> a.getName().equals(name)); }
public String getPrimaryAccount() { if (accounts.size() == 0) { primaryAccount = null; } else if (primaryAccount == null || !hasAccount(primaryAccount)) { primaryAccount = accounts.get(0).getName(); } return primaryAccount; }
public String getPrimaryAccount() { if (accounts.size() == 0) { primaryAccount = null; } else if (primaryAccount == null || !hasAccount(primaryAccount)) { primaryAccount = accounts.get(0).getName(); } return primaryAccount; }
@Override public void validate(ConfigProblemSetBuilder p, EcsAccount n) { p.addProblem(Severity.WARNING, "This only validates that a corresponding AWS account has been " + "created for your ECS account."); String ecsAwsAccount = n.getAwsAccount(); List<Account> accounts = accountService.getAllAccounts(configService.getCurrentDeployment(), "aws"); Optional<Account> account = accounts.stream().filter(act -> act.getName().equals(ecsAwsAccount)).findAny(); if (!account.isPresent()) { p.addProblem(Severity.ERROR, "No AWS Account found matching " + ecsAwsAccount); } }
@Override public void validate(ConfigProblemSetBuilder p, EcsAccount n) { p.addProblem(Severity.WARNING, "This only validates that a corresponding AWS account has been " + "created for your ECS account."); String ecsAwsAccount = n.getAwsAccount(); List<Account> accounts = accountService.getAllAccounts(configService.getCurrentDeployment(), "aws"); Optional<Account> account = accounts.stream().filter(act -> act.getName().equals(ecsAwsAccount)).findAny(); if (!account.isPresent()) { p.addProblem(Severity.ERROR, "No AWS Account found matching " + ecsAwsAccount); } }
@Override public void validate(ConfigProblemSetBuilder p, Providers n) { Set<String> accounts = new HashSet<>(); NodeIterator nodeIterator = n.getChildren(); Node child = nodeIterator.getNext(); while (child != null) { Provider provider = (Provider) child; for (Account account : (List<Account>) provider.getAccounts()) { if (accounts.contains(account.getName())) { p.addProblem(Severity.FATAL, "Account \"" + account.getName() + "\" appears more than once") .setRemediation("Change the name of the account in " + provider.getNodeName()); } else { accounts.add(account.getName()); } } child = nodeIterator.getNext(); } } }
@Override public void validate(ConfigProblemSetBuilder p, Providers n) { Set<String> accounts = new HashSet<>(); NodeIterator nodeIterator = n.getChildren(); Node child = nodeIterator.getNext(); while (child != null) { Provider provider = (Provider) child; for (Account account : (List<Account>) provider.getAccounts()) { if (accounts.contains(account.getName())) { p.addProblem(Severity.FATAL, "Account \"" + account.getName() + "\" appears more than once") .setRemediation("Change the name of the account in " + provider.getNodeName()); } else { accounts.add(account.getName()); } } child = nodeIterator.getNext(); } } }
@Override public void validate(ConfigProblemSetBuilder p, Account n) { if (n.getName() == null) { p.addProblem(Severity.FATAL, "Account name must be specified"); } else if (!Pattern.matches(namePattern, n.getName())) { p.addProblem(Severity.ERROR, "Account name must match pattern " + namePattern) .setRemediation("It must start and end with a lower-case character or number, and only contain lower-case characters, numbers, or dashes"); } if (n.getRequiredGroupMembership() != null && !n.getRequiredGroupMembership().isEmpty()) { p.addProblem(Problem.Severity.WARNING, "requiredGroupMembership has been " + "deprecated. Please consider moving to using permissions with the flags --read-permissions " + "and --write-permissions instead. Read more at https://www.spinnaker.io/setup/security/authorization." ); } } }
@Override public void validate(ConfigProblemSetBuilder p, Account n) { if (n.getName() == null) { p.addProblem(Severity.FATAL, "Account name must be specified"); } else if (!Pattern.matches(namePattern, n.getName())) { p.addProblem(Severity.ERROR, "Account name must match pattern " + namePattern) .setRemediation("It must start and end with a lower-case character or number, and only contain lower-case characters, numbers, or dashes"); } if (n.getRequiredGroupMembership() != null && !n.getRequiredGroupMembership().isEmpty()) { p.addProblem(Problem.Severity.WARNING, "requiredGroupMembership has been " + "deprecated. Please consider moving to using permissions with the flags --read-permissions " + "and --write-permissions instead. Read more at https://www.spinnaker.io/setup/security/authorization." ); } } }
public void deleteAccount(String deploymentName, String providerName, String accountName) { Provider provider = providerService.getProvider(deploymentName, providerName); boolean removed = provider.getAccounts().removeIf(account -> ((Account) account).getName().equals(accountName)); if (!removed) { throw new HalException( new ConfigProblemBuilder(Severity.FATAL, "Account \"" + accountName + "\" wasn't found") .build()); } }
public void deleteAccount(String deploymentName, String providerName, String accountName) { Provider provider = providerService.getProvider(deploymentName, providerName); boolean removed = provider.getAccounts().removeIf(account -> ((Account) account).getName().equals(accountName)); if (!removed) { throw new HalException( new ConfigProblemBuilder(Severity.FATAL, "Account \"" + accountName + "\" wasn't found") .build()); } }
@RequestMapping(value = "/", method = RequestMethod.POST) DaemonTask<Halconfig, Void> addAccount(@PathVariable String deploymentName, @PathVariable String providerName, @ModelAttribute ValidationSettings validationSettings, @RequestBody Object rawAccount) { Account account = objectMapper.convertValue( rawAccount, Providers.translateAccountType(providerName) ); return GenericUpdateRequest.<Account>builder(halconfigParser) .stagePath(halconfigDirectoryStructure.getStagingPath(deploymentName)) .updater(a -> accountService.addAccount(deploymentName, providerName, a)) .validator(() -> accountService.validateAccount(deploymentName, providerName, account.getName())) .description("Add the " + account.getName() + " account") .build() .execute(validationSettings, account); } }
@Override protected void executeThis() { Provider provider = getProvider(); List<Account> accounts = provider.getAccounts(); if (accounts.isEmpty()) { AnsiUi.success("No configured accounts for " + getProviderName() + "."); } else { AnsiUi.success("Accounts for " + getProviderName() + ":"); accounts.forEach(account -> AnsiUi.listItem(account.getName())); } } }
@Override protected void executeThis() { Provider provider = getProvider(); List<Account> accounts = provider.getAccounts(); if (accounts.isEmpty()) { AnsiUi.success("No configured accounts for " + getProviderName() + "."); } else { AnsiUi.success("Accounts for " + getProviderName() + ":"); accounts.forEach(account -> AnsiUi.listItem(account.getName())); } } }
@RequestMapping(value = "/account/{accountName:.+}", method = RequestMethod.PUT) DaemonTask<Halconfig, Void> setAccount(@PathVariable String deploymentName, @PathVariable String providerName, @PathVariable String accountName, @ModelAttribute ValidationSettings validationSettings, @RequestBody Object rawAccount) { Account account = objectMapper.convertValue( rawAccount, Providers.translateAccountType(providerName) ); return GenericUpdateRequest.<Account>builder(halconfigParser) .stagePath(halconfigDirectoryStructure.getStagingPath(deploymentName)) .updater(a -> accountService.setAccount(deploymentName, providerName, accountName, a)) .validator(() -> accountService.validateAccount(deploymentName, providerName, account.getName())) .description("Edit the " + accountName + " account") .build() .execute(validationSettings, account); }
Integer maxRemaining, boolean scaleDown) { String accountName = details.getAccount().getName(); String region = runtimeSettings.getServiceSettings(getService()).getLocation(); Map<String, Object> deployDescription = getServerGroupDescription(details, runtimeSettings, configSources);
@RequestMapping(value = "/options", method = RequestMethod.POST) DaemonTask<Halconfig, List<String>> newAccountOptions(@PathVariable String deploymentName, @PathVariable String providerName, @ModelAttribute ValidationSettings validationSettings, @RequestBody DaemonOptions rawAccountOptions) { String fieldName = rawAccountOptions.getField(); Account account = objectMapper.convertValue( rawAccountOptions.getResource(), Providers.translateAccountType(providerName) ); DaemonResponse.UpdateOptionsRequestBuilder builder = new DaemonResponse.UpdateOptionsRequestBuilder(); String accountName = account.getName(); builder.setUpdate(() -> accountService.addAccount(deploymentName, providerName, account)); builder.setFieldOptionsResponse(() -> accountService .getAccountOptions(deploymentName, providerName, accountName, fieldName)); builder.setSeverity(validationSettings.getSeverity()); return DaemonTaskHandler.submitTask(builder::build, "Get " + fieldName + " options"); }
public static String format(Provider provider) { AnsiStoryBuilder resultBuilder = new AnsiStoryBuilder(); AnsiParagraphBuilder paragraph = resultBuilder.addParagraph(); paragraph.addSnippet(provider.getNodeName().toUpperCase()).addStyle(AnsiStyle.BOLD); paragraph.addSnippet(" provider"); resultBuilder.addNewline(); paragraph = resultBuilder.addParagraph(); paragraph.addSnippet("enabled: " + provider.isEnabled()); paragraph = resultBuilder.addParagraph(); paragraph.addSnippet("accounts: "); List<Account> accounts = provider.getAccounts(); if (accounts == null || accounts.isEmpty()) { paragraph.addSnippet("[]"); } else { accounts.forEach(account -> { AnsiParagraphBuilder list = resultBuilder.addParagraph().setIndentFirstLine(true).setIndentWidth(1); list.addSnippet("- "); list.addSnippet(account.getName()); }); } return resultBuilder.toString(); }
public static <A extends Account> String format(Provider<A> provider) { AnsiStoryBuilder resultBuilder = new AnsiStoryBuilder(); AnsiParagraphBuilder paragraph = resultBuilder.addParagraph(); paragraph.addSnippet(provider.getNodeName().toUpperCase()).addStyle(AnsiStyle.BOLD); paragraph.addSnippet(" provider"); resultBuilder.addNewline(); paragraph = resultBuilder.addParagraph(); paragraph.addSnippet("enabled: " + provider.isEnabled()); paragraph = resultBuilder.addParagraph(); paragraph.addSnippet("accounts: "); List<A> accounts = provider.getAccounts(); if (accounts == null || accounts.isEmpty()) { paragraph.addSnippet("[]"); } else { accounts.forEach(account -> { AnsiParagraphBuilder list = resultBuilder.addParagraph().setIndentFirstLine(true).setIndentWidth(1); list.addSnippet("- "); list.addSnippet(account.getName()); }); } return resultBuilder.toString(); }