Resetting E2Term connection flag after connection succes
[ric-plt/rtmgr.git] / pkg / nbi / httpgetter.go
index 6780403..7de6b96 100644 (file)
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
+
+
+   This source code is part of the near-RT RIC (RAN Intelligent Controller)
+   platform project (RICP).
+
 ==================================================================================
 */
 /*
   Mnemonic:    httpgetter.go
   Abstract:    HTTPgetter NBI implementation
 ==================================================================================
 */
 /*
   Mnemonic:    httpgetter.go
   Abstract:    HTTPgetter NBI implementation
-               Simple HTTP getter solution. Only for testing purpose.
+               Simple HTTP getter solution.
   Date:                15 March 2019
 */
 
   Date:                15 March 2019
 */
 
@@ -27,24 +32,56 @@ package nbi
 
 import (
        "encoding/json"
 
 import (
        "encoding/json"
+       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
        "net/http"
        "net/http"
-       "rtmgr"
+       "routing-manager/pkg/rpe"
+       "routing-manager/pkg/rtmgr"
+       "routing-manager/pkg/sdl"
+       "sync"
        "time"
 )
 
        "time"
 )
 
-var myClient = &http.Client{Timeout: 1 * time.Second}
+type HttpGetter struct {
+       Engine
+       FetchAllXApps FetchAllXAppsHandler
+}
+
+func NewHttpGetter() *HttpGetter {
+       instance := new(HttpGetter)
+       instance.FetchAllXApps = fetchAllXApps
+       return instance
+}
+
+var myClient = &http.Client{Timeout: 15 * time.Second}
 
 
-func fetchXappList(url string) (*[]rtmgr.XApp, error) {
-       rtmgr.Logger.Debug("Invoked httpgetter.fetchXappList")
-       r, err := myClient.Get(url)
+func fetchAllXApps(xmurl string) (*[]rtmgr.XApp, error) {
+       xapp.Logger.Info("Invoked httpGetter.fetchXappList: " + xmurl)
+       r, err := myClient.Get(xmurl)
        if err != nil {
                return nil, err
        }
        defer r.Body.Close()
        if err != nil {
                return nil, err
        }
        defer r.Body.Close()
-       rtmgr.Logger.Debug("http client raw response: %v", r)
-       var xapps []rtmgr.XApp
-       json.NewDecoder(r.Body).Decode(&xapps)
-       rtmgr.Logger.Info("HTTP GET: OK")
-       rtmgr.Logger.Debug("httpgetter.fetchXappList returns: %v", xapps)
-       return &xapps, err
+
+       if r.StatusCode == 200 {
+               xapp.Logger.Debug("http client raw response: %v", r)
+               var xApps []rtmgr.XApp
+               err = json.NewDecoder(r.Body).Decode(&xApps)
+               if err != nil {
+                       xapp.Logger.Warn("Json decode failed: " + err.Error())
+               }
+               xapp.Logger.Info("HTTP GET: OK")
+               xapp.Logger.Debug("httpGetter.fetchXappList returns: %v", xApps)
+               return &xApps, err
+       }
+       xapp.Logger.Warn("httpGetter got an unexpected http status code: %v", r.StatusCode)
+       return nil, nil
+}
+
+func (g *HttpGetter) Initialize(xmurl string, nbiif string, fileName string, configfile string, e2murl string,
+       sdlEngine sdl.Engine, rpeEngine rpe.Engine,  m *sync.Mutex) error {
+       return nil
+}
+
+func (g *HttpGetter) Terminate() error {
+       return nil
 }
 }