@@ -30,6 +30,7 @@ import (
3030 "github.com/arangodb/arangosync/tasks"
3131 driver "github.com/arangodb/go-driver"
3232 "github.com/arangodb/go-driver/agency"
33+ "github.com/rs/zerolog/log"
3334 "k8s.io/api/core/v1"
3435 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3536 "k8s.io/client-go/kubernetes"
@@ -191,23 +192,23 @@ func (d *Deployment) GetSyncServerClient(ctx context.Context, group api.ServerGr
191192
192193// CreateMember adds a new member to the given group.
193194// If ID is non-empty, it will be used, otherwise a new ID is created.
194- func (d * Deployment ) CreateMember (group api.ServerGroup , id string ) error {
195+ func (d * Deployment ) CreateMember (group api.ServerGroup , id string ) ( string , error ) {
195196 log := d .deps .Log
196197 status , lastVersion := d .GetStatus ()
197198 id , err := createMember (log , & status , group , id , d .apiObject )
198199 if err != nil {
199200 log .Debug ().Err (err ).Str ("group" , group .AsRole ()).Msg ("Failed to create member" )
200- return maskAny (err )
201+ return "" , maskAny (err )
201202 }
202203 // Save added member
203204 if err := d .UpdateStatus (status , lastVersion ); err != nil {
204205 log .Debug ().Err (err ).Msg ("Updating CR status failed" )
205- return maskAny (err )
206+ return "" , maskAny (err )
206207 }
207208 // Create event about it
208209 d .CreateEvent (k8sutil .NewMemberAddEvent (id , group .AsRole (), d .apiObject ))
209210
210- return nil
211+ return id , nil
211212}
212213
213214// DeletePod deletes a pod with given name in the namespace
@@ -304,6 +305,16 @@ func (d *Deployment) GetOwnedPVCs() ([]v1.PersistentVolumeClaim, error) {
304305 return myPVCs , nil
305306}
306307
308+ // GetPvc gets a PVC by the given name, in the samespace of the deployment.
309+ func (d * Deployment ) GetPvc (pvcName string ) (* v1.PersistentVolumeClaim , error ) {
310+ pvc , err := d .deps .KubeCli .CoreV1 ().PersistentVolumeClaims (d .apiObject .GetNamespace ()).Get (pvcName , metav1.GetOptions {})
311+ if err != nil {
312+ log .Debug ().Err (err ).Str ("pvc-name" , pvcName ).Msg ("Failed to get PVC" )
313+ return nil , maskAny (err )
314+ }
315+ return pvc , nil
316+ }
317+
307318// GetTLSKeyfile returns the keyfile encoded TLS certificate+key for
308319// the given member.
309320func (d * Deployment ) GetTLSKeyfile (group api.ServerGroup , member api.MemberStatus ) (string , error ) {
0 commit comments