Search in sources :

Example 6 with EDITED

use of com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff.ChangeType.EDITED in project halyard by spinnaker.

the class AbstractEditCanaryAccountCommand method executeThis.

@Override
protected void executeThis() {
    String accountName = getAccountName();
    String serviceIntegration = getServiceIntegration();
    String currentDeployment = getCurrentDeployment();
    // Disable validation here, since we don't want an illegal config to prevent us from fixing it.
    AbstractCanaryAccount account = new OperationHandler<AbstractCanaryAccount>().setFailureMesssage("Failed to get canary account " + accountName + " for service integration " + serviceIntegration + ".").setOperation(Daemon.getCanaryAccount(currentDeployment, serviceIntegration.toLowerCase(), accountName, false)).get();
    int originaHash = account.hashCode();
    account = editAccount((T) account);
    if (originaHash == account.hashCode()) {
        AnsiUi.failure("No changes supplied.");
        return;
    }
    new OperationHandler<Void>().setFailureMesssage("Failed to edit canary account " + accountName + " for service integration " + serviceIntegration + ".").setSuccessMessage("Successfully edited canary account " + accountName + " for service integration " + serviceIntegration + ".").setOperation(Daemon.setCanaryAccount(currentDeployment, serviceIntegration.toLowerCase(), accountName, !noValidate, account)).get();
}
Also used : AbstractCanaryAccount(com.netflix.spinnaker.halyard.config.model.v1.canary.AbstractCanaryAccount) OperationHandler(com.netflix.spinnaker.halyard.cli.services.v1.OperationHandler)

Example 7 with EDITED

use of com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff.ChangeType.EDITED in project halyard by spinnaker.

the class AbstractEditProviderCommand method executeThis.

@Override
protected void executeThis() {
    String providerName = getProviderName();
    String currentDeployment = getCurrentDeployment();
    Provider provider = new OperationHandler<Provider>().setFailureMesssage("Failed to get provider " + providerName + ".").setOperation(Daemon.getProvider(currentDeployment, providerName, false)).get();
    int originalHash = provider.hashCode();
    provider = editProvider((P) provider);
    if (originalHash == provider.hashCode()) {
        AnsiUi.failure("No changes supplied.");
        return;
    }
    new OperationHandler<Void>().setFailureMesssage("Failed to edit provider " + providerName + ".").setSuccessMessage("Successfully edited provider " + providerName + ".").setOperation(Daemon.setProvider(currentDeployment, providerName, !noValidate, provider)).get();
}
Also used : Provider(com.netflix.spinnaker.halyard.config.model.v1.node.Provider) OperationHandler(com.netflix.spinnaker.halyard.cli.services.v1.OperationHandler)

Example 8 with EDITED

use of com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff.ChangeType.EDITED in project halyard by spinnaker.

the class AnsiFormatUtils method format.

static void format(NodeDiff diff, AnsiStoryBuilder resultBuilder) {
    AnsiSnippet snippet = null;
    AnsiParagraphBuilder paragraph = null;
    boolean printLocation = true;
    switch(diff.getChangeType()) {
        case EDITED:
            if (!diff.getFieldDiffs().isEmpty()) {
                snippet = new AnsiSnippet("~ EDITED\n").setForegroundColor(AnsiForegroundColor.MAGENTA);
            } else {
                printLocation = false;
            }
            break;
        case REMOVED:
            snippet = new AnsiSnippet("- REMOVED\n").setForegroundColor(AnsiForegroundColor.RED);
            break;
        case ADDED:
            snippet = new AnsiSnippet("+ ADDED\n").setForegroundColor(AnsiForegroundColor.GREEN);
            break;
        default:
            throw new RuntimeException("Unknown changetype " + diff.getChangeType());
    }
    if (printLocation) {
        paragraph = resultBuilder.addParagraph();
        paragraph.addSnippet(snippet.addStyle(AnsiStyle.BOLD).toString());
        paragraph.addSnippet(diff.getLocation()).addStyle(AnsiStyle.BOLD);
    }
    for (NodeDiff.FieldDiff fieldDiff : diff.getFieldDiffs()) {
        paragraph = resultBuilder.addParagraph();
        paragraph.addSnippet(" - ");
        paragraph.addSnippet(fieldDiff.getFieldName()).addStyle(AnsiStyle.UNDERLINE);
        paragraph.addSnippet(" " + fieldDiff.getOldValue() + " -> " + fieldDiff.getNewValue());
    }
    if (printLocation) {
        resultBuilder.addNewline();
    }
    for (NodeDiff nodeDiff : diff.getNodeDiffs()) {
        format(nodeDiff, resultBuilder);
    }
}
Also used : NodeDiff(com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff)

Example 9 with EDITED

use of com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff.ChangeType.EDITED in project halyard by spinnaker.

the class AbstractEditRoleProviderCommand method executeThis.

@Override
protected void executeThis() {
    String currentDeployment = getCurrentDeployment();
    String roleProviderName = getRoleProviderType() + "";
    // Disable validation here, since we don't want an illegal config to prevent us from fixing it.
    RoleProvider roleProvider = new OperationHandler<RoleProvider>().setOperation(Daemon.getRoleProvider(currentDeployment, roleProviderName, false)).setFailureMesssage("Failed to get " + roleProviderName + " method.").get();
    new OperationHandler<Void>().setOperation(Daemon.setRoleProvider(currentDeployment, roleProviderName, !noValidate, editRoleProvider((T) roleProvider))).setFailureMesssage("Failed to edit " + roleProviderName + " method.").setSuccessMessage("Successfully edited " + roleProviderName + " method.").get();
}
Also used : RoleProvider(com.netflix.spinnaker.halyard.config.model.v1.security.RoleProvider) OperationHandler(com.netflix.spinnaker.halyard.cli.services.v1.OperationHandler)

Example 10 with EDITED

use of com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff.ChangeType.EDITED in project halyard by spinnaker.

the class AbstractEditSubscriptionCommand method executeThis.

@Override
protected void executeThis() {
    String subscriptionName = getSubscriptionName();
    String pubsubName = getPubsubName();
    String currentDeployment = getCurrentDeployment();
    // Disable validation here, since we don't want an illegal config to prevent us from fixing it.
    Subscription subscription = new OperationHandler<Subscription>().setFailureMesssage("Failed to get subscription " + subscriptionName + " for pubsub " + pubsubName + ".").setOperation(Daemon.getSubscription(currentDeployment, pubsubName, subscriptionName, false)).get();
    int originaHash = subscription.hashCode();
    subscription = editSubscription((T) subscription);
    if (originaHash == subscription.hashCode()) {
        AnsiUi.failure("No changes supplied.");
        return;
    }
    new OperationHandler<Void>().setFailureMesssage("Failed to edit subscription " + subscriptionName + " for pubsub " + pubsubName + ".").setSuccessMessage("Successfully edited subscription " + subscriptionName + " for pubsub " + pubsubName + ".").setOperation(Daemon.setSubscription(currentDeployment, pubsubName, subscriptionName, !noValidate, subscription)).get();
}
Also used : Subscription(com.netflix.spinnaker.halyard.config.model.v1.node.Subscription) OperationHandler(com.netflix.spinnaker.halyard.cli.services.v1.OperationHandler)

Aggregations

OperationHandler (com.netflix.spinnaker.halyard.cli.services.v1.OperationHandler)20 Canary (com.netflix.spinnaker.halyard.config.model.v1.canary.Canary)4 AbstractCanaryAccount (com.netflix.spinnaker.halyard.config.model.v1.canary.AbstractCanaryAccount)1 AwsCanaryServiceIntegration (com.netflix.spinnaker.halyard.config.model.v1.canary.aws.AwsCanaryServiceIntegration)1 GoogleCanaryServiceIntegration (com.netflix.spinnaker.halyard.config.model.v1.canary.google.GoogleCanaryServiceIntegration)1 PrometheusCanaryServiceIntegration (com.netflix.spinnaker.halyard.config.model.v1.canary.prometheus.PrometheusCanaryServiceIntegration)1 Account (com.netflix.spinnaker.halyard.config.model.v1.node.Account)1 ArtifactAccount (com.netflix.spinnaker.halyard.config.model.v1.node.ArtifactAccount)1 BakeryDefaults (com.netflix.spinnaker.halyard.config.model.v1.node.BakeryDefaults)1 BaseImage (com.netflix.spinnaker.halyard.config.model.v1.node.BaseImage)1 DeploymentConfiguration (com.netflix.spinnaker.halyard.config.model.v1.node.DeploymentConfiguration)1 Master (com.netflix.spinnaker.halyard.config.model.v1.node.Master)1 MetricStore (com.netflix.spinnaker.halyard.config.model.v1.node.MetricStore)1 NodeDiff (com.netflix.spinnaker.halyard.config.model.v1.node.NodeDiff)1 Notification (com.netflix.spinnaker.halyard.config.model.v1.node.Notification)1 PersistentStorage (com.netflix.spinnaker.halyard.config.model.v1.node.PersistentStorage)1 PersistentStore (com.netflix.spinnaker.halyard.config.model.v1.node.PersistentStore)1 Provider (com.netflix.spinnaker.halyard.config.model.v1.node.Provider)1 Subscription (com.netflix.spinnaker.halyard.config.model.v1.node.Subscription)1 DCOSCluster (com.netflix.spinnaker.halyard.config.model.v1.providers.dcos.DCOSCluster)1