@@ -44,6 +44,10 @@ func NewAuthenticatedAPIHandler(baseURL string, authToken string, authHeader str
4444func createAuthenticatedAPIHandler (baseURL string , authToken string , authHeader string , httpClient * http.Client , scheme string ) * APIHandler {
4545 baseURL = strings .TrimPrefix (baseURL , "http://" )
4646 baseURL = strings .TrimPrefix (baseURL , "https://" )
47+ if ! strings .HasSuffix (baseURL , shipyardControllerBaseURL ) {
48+ baseURL += "/" + shipyardControllerBaseURL
49+ }
50+
4751 return & APIHandler {
4852 BaseURL : baseURL ,
4953 AuthHeader : authHeader ,
@@ -71,11 +75,17 @@ func (a *APIHandler) getHTTPClient() *http.Client {
7175
7276// SendEvent sends an event to Keptn
7377func (a * APIHandler ) SendEvent (event models.KeptnContextExtendedCE ) (* models.EventContext , * models.Error ) {
78+ baseURL := a .getBaseURL ()
79+ if strings .HasSuffix (baseURL , "/" + shipyardControllerBaseURL ) {
80+ baseURL = strings .TrimSuffix (a .getBaseURL (), "/" + shipyardControllerBaseURL )
81+ baseURL += "/api"
82+ }
83+
7484 bodyStr , err := event .ToJSON ()
7585 if err != nil {
7686 return nil , buildErrorResponse (err .Error ())
7787 }
78- return postWithEventContext (a .Scheme + "://" + a . getBaseURL () + v1EventPath , bodyStr , a )
88+ return postWithEventContext (a .Scheme + "://" + baseURL + v1EventPath , bodyStr , a )
7989}
8090
8191// TriggerEvaluation triggers a new evaluation
@@ -84,7 +94,7 @@ func (a *APIHandler) TriggerEvaluation(project, stage, service string, evaluatio
8494 if err != nil {
8595 return nil , buildErrorResponse (err .Error ())
8696 }
87- return postWithEventContext (a .Scheme + "://" + a .getBaseURL ()+ "/" + shipyardControllerBaseURL + v1ProjectPath + "/" + project + pathToStage + "/" + stage + pathToService + "/" + service + "/evaluation" , bodyStr , a )
97+ return postWithEventContext (a .Scheme + "://" + a .getBaseURL ()+ v1ProjectPath + "/" + project + pathToStage + "/" + stage + pathToService + "/" + service + "/evaluation" , bodyStr , a )
8898}
8999
90100// CreateProject creates a new project
@@ -93,7 +103,7 @@ func (a *APIHandler) CreateProject(project models.CreateProject) (string, *model
93103 if err != nil {
94104 return "" , buildErrorResponse (err .Error ())
95105 }
96- return post (a .Scheme + "://" + a .getBaseURL ()+ "/" + shipyardControllerBaseURL + v1ProjectPath , bodyStr , a )
106+ return post (a .Scheme + "://" + a .getBaseURL ()+ v1ProjectPath , bodyStr , a )
97107}
98108
99109// UpdateProject updates project
@@ -102,12 +112,12 @@ func (a *APIHandler) UpdateProject(project models.CreateProject) (string, *model
102112 if err != nil {
103113 return "" , buildErrorResponse (err .Error ())
104114 }
105- return put (a .Scheme + "://" + a .getBaseURL ()+ "/" + shipyardControllerBaseURL + v1ProjectPath , bodyStr , a )
115+ return put (a .Scheme + "://" + a .getBaseURL ()+ v1ProjectPath , bodyStr , a )
106116}
107117
108118// DeleteProject deletes a project
109119func (a * APIHandler ) DeleteProject (project models.Project ) (* models.DeleteProjectResponse , * models.Error ) {
110- resp , err := delete (a .Scheme + "://" + a .getBaseURL ()+ "/" + shipyardControllerBaseURL + v1ProjectPath + "/" + project .ProjectName , a )
120+ resp , err := delete (a .Scheme + "://" + a .getBaseURL ()+ v1ProjectPath + "/" + project .ProjectName , a )
111121 if err != nil {
112122 return nil , err
113123 }
@@ -127,12 +137,12 @@ func (a *APIHandler) CreateService(project string, service models.CreateService)
127137 if err != nil {
128138 return "" , buildErrorResponse (err .Error ())
129139 }
130- return post (a .Scheme + "://" + a .getBaseURL ()+ "/" + shipyardControllerBaseURL + v1ProjectPath + "/" + project + pathToService , bodyStr , a )
140+ return post (a .Scheme + "://" + a .getBaseURL ()+ v1ProjectPath + "/" + project + pathToService , bodyStr , a )
131141}
132142
133143// DeleteProject deletes a project
134144func (a * APIHandler ) DeleteService (project , service string ) (* models.DeleteServiceResponse , * models.Error ) {
135- resp , err := delete (a .Scheme + "://" + a .getBaseURL ()+ "/" + shipyardControllerBaseURL + v1ProjectPath + "/" + project + pathToService + "/" + service , a )
145+ resp , err := delete (a .Scheme + "://" + a .getBaseURL ()+ v1ProjectPath + "/" + project + pathToService + "/" + service , a )
136146 if err != nil {
137147 return nil , err
138148 }
@@ -148,7 +158,13 @@ func (a *APIHandler) DeleteService(project, service string) (*models.DeleteServi
148158
149159// GetMetadata retrieve keptn MetaData information
150160func (a * APIHandler ) GetMetadata () (* models.Metadata , * models.Error ) {
151- req , err := http .NewRequest ("GET" , a .Scheme + "://" + a .getBaseURL ()+ v1MetadataPath , nil )
161+ baseURL := a .getBaseURL ()
162+ if strings .HasSuffix (baseURL , "/" + shipyardControllerBaseURL ) {
163+ baseURL = strings .TrimSuffix (a .getBaseURL (), "/" + shipyardControllerBaseURL )
164+ baseURL += "/api"
165+ }
166+
167+ req , err := http .NewRequest ("GET" , a .Scheme + "://" + baseURL + v1MetadataPath , nil )
152168 if err != nil {
153169 return nil , buildErrorResponse (err .Error ())
154170 }
0 commit comments