package migrationAPI import ( "fmt" "net/http" "net/url" "github.rackspace.com/DCM/migration/pkg/collection/mongo" ) // StatusUpdateBackups will update the MG's status with the backup results func (c *Client) StatusUpdateBackups(collection, movegroup string, payload []mongo.StatusValidateBackups, options ...*Options) error { opts := processOptions(options...) uri := fmt.Sprintf( "/prep/backups/collection/%s/move_group/%s", url.PathEscape(collection), url.PathEscape(movegroup), ) req, err := c.newRequest(c.URL+uri, http.MethodPost, payload, opts) if err != nil { return err } return c.do(req, nil, opts) } // StatusUpdateCopySegments will update the MG's status with the copy_segment results func (c *Client) StatusUpdateCopySegments(collection, movegroup string, payload []mongo.StatusCopySegments, options ...*Options) error { opts := processOptions(options...) uri := fmt.Sprintf( "/prep/copy_segments/collection/%s/move_group/%s", url.PathEscape(collection), url.PathEscape(movegroup), ) req, err := c.newRequest(c.URL+uri, http.MethodPost, payload, opts) if err != nil { return err } return c.do(req, nil, opts) } // StatusUpdateDiscover will update the MG's status with the discover results func (c *Client) StatusUpdateDiscover(collection, movegroup string, payload *mongo.StatusDiscover, options ...*Options) error { opts := processOptions(options...) uri := fmt.Sprintf( "/prep/discover/collection/%s/move_group/%s", url.PathEscape(collection), url.PathEscape(movegroup), ) req, err := c.newRequest(c.URL+uri, http.MethodPost, payload, opts) if err != nil { return err } return c.do(req, nil, opts) } // StatusUpdateFinalize will update the MG's status with the finalize results func (c *Client) StatusUpdateFinalize(collection, movegroup string, payload []mongo.StatusFinalize, options ...*Options) error { opts := processOptions(options...) uri := fmt.Sprintf( "/prep/finalize/collection/%s/move_group/%s", url.PathEscape(collection), url.PathEscape(movegroup), ) req, err := c.newRequest(c.URL+uri, http.MethodPost, payload, opts) if err != nil { return err } return c.do(req, nil, opts) } // StatusUpdateEnvTrueUp will update the MG's status with the env true-up results func (c *Client) StatusUpdateEnvTrueUp(collection, movegroup string, payload []mongo.StatusEnvTrueUp, options ...*Options) error { opts := processOptions(options...) uri := fmt.Sprintf( "/prep/environment_true_up/collection/%s/move_group/%s", url.PathEscape(collection), url.PathEscape(movegroup), ) req, err := c.newRequest(c.URL+uri, http.MethodPost, payload, opts) if err != nil { return err } return c.do(req, nil, opts) } // StatusUpdateEnvXlates will update the MG's status with the vlan translation generation results func (c *Client) StatusUpdateEnvXlates(collection, movegroup string, payload []mongo.StatusEnvXlates, options ...*Options) error { opts := processOptions(options...) uri := fmt.Sprintf( "/prep/environment_translations/collection/%s/move_group/%s", url.PathEscape(collection), url.PathEscape(movegroup), ) req, err := c.newRequest(c.URL+uri, http.MethodPost, payload, opts) if err != nil { return err } return c.do(req, nil, opts) }