@ -17,6 +17,7 @@ limitations under the License.
package client
import (
"bytes"
"encoding/json"
"fmt"
"io"
@ -29,6 +30,7 @@ import (
"strings"
"time"
"github.com/ghodss/yaml"
"github.com/kubernetes/deployment-manager/pkg/common"
)
@ -108,7 +110,7 @@ func (c *Client) agent() string {
// CallService is a low-level function for making an API call.
//
// This calls the service and then unmarshals the returned data into dest.
func ( c * Client ) CallService ( path , method , action string , dest interface { } , reader io . Read Clos er) error {
func ( c * Client ) CallService ( path , method , action string , dest interface { } , reader io . Read er) error {
u , err := c . url ( path )
if err != nil {
return err
@ -125,7 +127,7 @@ func (c *Client) CallService(path, method, action string, dest interface{}, read
}
// callHTTP is a low-level primitive for executing HTTP operations.
func ( c * Client ) callHTTP ( path , method , action string , reader io . Read Clos er) ( string , error ) {
func ( c * Client ) callHTTP ( path , method , action string , reader io . Read er) ( string , error ) {
request , err := http . NewRequest ( method , path , reader )
// TODO: dynamically set version
@ -280,7 +282,25 @@ func (c *Client) DeleteDeployment(name string) (*common.Deployment, error) {
return deployment , nil
}
// PostDeployment posts a deployment objec to the manager service.
func ( c * Client ) PostDeployment ( cfg * common . Configuration ) error {
return c . CallService ( "/deployments" , "POST" , "post deployment" , cfg , nil )
// PostDeployment posts a deployment object to the manager service.
func ( c * Client ) PostDeployment ( name string , cfg * common . Configuration ) error {
d , err := yaml . Marshal ( cfg )
if err != nil {
return err
}
// This is a stop-gap until we get this API cleaned up.
t := common . Template {
Name : name ,
Content : string ( d ) ,
}
data , err := json . Marshal ( t )
if err != nil {
return err
}
var out interface { }
b := bytes . NewBuffer ( data )
return c . CallService ( "/deployments" , "POST" , "post deployment" , & out , b )
}