Skip to content

Commit 303e711

Browse files
committed
bosh-nats-sync: remove dead code + fix runner test temp file leak
- Remove getCommandRunner() helper: now that NewUsersSync normalises a nil cmdRunner to DefaultCommandRunner at construction time, the nil check inside getCommandRunner() is unreachable. All call-sites updated to use u.commandRunner directly, which is always non-nil after New. - Fix temp file leak in runner_test.go: dirSubjectFile and hmSubjectFile were created with os.CreateTemp but never removed in AfterEach. Promote them to suite-level variables and clean them up alongside natsConfigFile. ai-assisted=yes [TNZ-113908] Convert BOSH nats-sync job to Golang
1 parent 23b5d2c commit 303e711

2 files changed

Lines changed: 16 additions & 11 deletions

File tree

src/bosh-nats-sync/pkg/runner/runner_test.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ var _ = Describe("Runner", func() {
2525
logBuf *bytes.Buffer
2626
logger *slog.Logger
2727
natsConfigFile *os.File
28+
dirSubjectFile *os.File
29+
hmSubjectFile *os.File
2830
server *httptest.Server
2931
commandRunnerCalls []string
3032
commandRunnerErr error
@@ -40,11 +42,11 @@ var _ = Describe("Runner", func() {
4042
Expect(err).NotTo(HaveOccurred())
4143
Expect(os.WriteFile(natsConfigFile.Name(), []byte("{}"), 0644)).To(Succeed())
4244

43-
dirSubjectFile, err := os.CreateTemp("", "director-subject-*")
45+
dirSubjectFile, err = os.CreateTemp("", "director-subject-*")
4446
Expect(err).NotTo(HaveOccurred())
4547
Expect(os.WriteFile(dirSubjectFile.Name(), []byte("C=USA, O=Cloud Foundry, CN=default.director.bosh-internal"), 0644)).To(Succeed())
4648

47-
hmSubjectFile, err := os.CreateTemp("", "hm-subject-*")
49+
hmSubjectFile, err = os.CreateTemp("", "hm-subject-*")
4850
Expect(err).NotTo(HaveOccurred())
4951
Expect(os.WriteFile(hmSubjectFile.Name(), []byte("C=USA, O=Cloud Foundry, CN=default.hm.bosh-internal"), 0644)).To(Succeed())
5052

@@ -103,6 +105,12 @@ var _ = Describe("Runner", func() {
103105
if natsConfigFile != nil {
104106
os.Remove(natsConfigFile.Name())
105107
}
108+
if dirSubjectFile != nil {
109+
os.Remove(dirSubjectFile.Name())
110+
}
111+
if hmSubjectFile != nil {
112+
os.Remove(hmSubjectFile.Name())
113+
}
106114
if server != nil {
107115
server.Close()
108116
}

src/bosh-nats-sync/pkg/userssync/users_sync.go

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,11 @@ type UsersSync struct {
6464

6565
// NewUsersSync builds a UsersSync from the parsed config. The runner uses this
6666
// for both the bootstrap and the periodic sync so the wiring lives in one place.
67+
// If cmdRunner is nil, DefaultCommandRunner is used.
6768
func NewUsersSync(cfg *config.Config, logger *slog.Logger, cmdRunner CommandRunner) *UsersSync {
69+
if cmdRunner == nil {
70+
cmdRunner = DefaultCommandRunner
71+
}
6872
return &UsersSync{
6973
natsConfigFilePath: cfg.NATS.ConfigFilePath,
7074
boshConfig: cfg.Director,
@@ -75,13 +79,6 @@ func NewUsersSync(cfg *config.Config, logger *slog.Logger, cmdRunner CommandRunn
7579
}
7680
}
7781

78-
func (u *UsersSync) getCommandRunner() CommandRunner {
79-
if u.commandRunner != nil {
80-
return u.commandRunner
81-
}
82-
return DefaultCommandRunner
83-
}
84-
8582
func (u *UsersSync) Execute(ctx context.Context) error {
8683
u.logger.Info("Executing NATS Users Synchronization")
8784

@@ -143,7 +140,7 @@ func (u *UsersSync) Execute(ctx context.Context) error {
143140

144141
if currentFileHash != newFileHash {
145142
u.logger.Info("NATS config changed, reloading NATS server")
146-
if reloadErr := ReloadNATSServerConfig(u.natsServerExecutable, u.natsServerPIDFile, u.getCommandRunner()); reloadErr != nil {
143+
if reloadErr := ReloadNATSServerConfig(u.natsServerExecutable, u.natsServerPIDFile, u.commandRunner); reloadErr != nil {
147144
return reloadErr
148145
}
149146
}
@@ -189,7 +186,7 @@ func (u *UsersSync) Bootstrap() error {
189186
if _, err := u.writeNATSConfigFile(nil, directorSubject, hmSubject); err != nil {
190187
return fmt.Errorf("bootstrap: failed to write NATS config: %w", err)
191188
}
192-
if err := ReloadNATSServerConfig(u.natsServerExecutable, u.natsServerPIDFile, u.getCommandRunner()); err != nil {
189+
if err := ReloadNATSServerConfig(u.natsServerExecutable, u.natsServerPIDFile, u.commandRunner); err != nil {
193190
return fmt.Errorf("bootstrap: failed to reload NATS server config: %w", err)
194191
}
195192
u.logger.Info("Bootstrap: NATS config written and server reloaded")

0 commit comments

Comments
 (0)