Skip to content

Commit daa6733

Browse files
committed
roachprod: make reset command operate on a subset
Previously, the reset command would reset all VMs in a cluster. For failure injection we require this to be able to work on a subset of nodes. This change makes the reset command operate on a subset of nodes. Epic: None Release note: None
1 parent dac9fbc commit daa6733

File tree

3 files changed

+25
-16
lines changed

3 files changed

+25
-16
lines changed

pkg/cmd/roachprod/cli/commands.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,15 +199,17 @@ Removing nodes from the middle of the cluster is not supported yet.
199199
}
200200

201201
func (cr *commandRegistry) buildResetCmd() *cobra.Command {
202-
return &cobra.Command{
202+
resetCmd := &cobra.Command{
203203
Use: "reset <cluster>",
204-
Short: "reset *all* VMs in a cluster",
205-
Long: `Reset a cloud VM.`,
204+
Short: "reset VMs in a cluster",
205+
Long: `Reset cloud VMs in a cluster.`,
206206
Args: cobra.ExactArgs(1),
207207
Run: wrap(func(cmd *cobra.Command, args []string) (retErr error) {
208208
return roachprod.Reset(config.Logger, args[0])
209209
}),
210210
}
211+
addHelpAboutNodes(resetCmd)
212+
return resetCmd
211213
}
212214

213215
func (cr *commandRegistry) buildDestroyCmd() *cobra.Command {

pkg/roachprod/install/cluster_synced.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2725,3 +2725,20 @@ done <<< "$HOSTS_LIST"
27252725

27262726
return nil
27272727
}
2728+
2729+
// Reset resets VMs in a cluster.
2730+
func (c *SyncedCluster) Reset(l *logger.Logger) error {
2731+
if c.IsLocal() {
2732+
return nil
2733+
}
2734+
2735+
nodes := c.TargetNodes()
2736+
targetVMs := make(vm.List, len(nodes))
2737+
for idx, node := range nodes {
2738+
targetVMs[idx] = c.VMs[node-1]
2739+
}
2740+
2741+
return vm.FanOut(targetVMs, func(p vm.Provider, vms vm.List) error {
2742+
return p.Reset(l, vms)
2743+
})
2744+
}

pkg/roachprod/roachprod.go

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -626,24 +626,14 @@ func Stage(
626626
return install.StageApplication(ctx, l, c, applicationName, version, os, vm.CPUArch(arch), dir)
627627
}
628628

629-
// Reset resets all VMs in a cluster.
629+
// Reset resets VMs in a cluster.
630630
func Reset(l *logger.Logger, clusterName string) error {
631-
if err := LoadClusters(); err != nil {
632-
return err
633-
}
634-
635-
if config.IsLocalClusterName(clusterName) {
636-
return nil
637-
}
638-
639-
c, err := getClusterFromCloud(l, clusterName)
631+
c, err := GetClusterFromCache(l, clusterName)
640632
if err != nil {
641633
return err
642634
}
643635

644-
return vm.FanOut(c.VMs, func(p vm.Provider, vms vm.List) error {
645-
return p.Reset(l, vms)
646-
})
636+
return c.Reset(l)
647637
}
648638

649639
// SetupSSH sets up the keys and host keys for the vms in the cluster.

0 commit comments

Comments
 (0)