2 * Copyright 2016 Huawei Technologies Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openo.nfvo.jujuvnfmadapter.service.juju;
19 import org.python.core.PyObject;
20 import org.python.core.PyString;
21 import org.python.util.PythonInterpreter;
29 * @version NFVO 0.5 Aug 22, 2016
31 public class PyObjectFactory {
33 private static PyObject environmentClass;
35 private static PyObject environmentObj;
44 public static PyObjectFactory build(String envName) {
45 PythonInterpreter interpreter = new PythonInterpreter();
47 interpreter.exec("from jujuclient import Environment");
49 environmentClass = interpreter.get("Environment");
50 PyObject env = environmentClass.__call__();
51 environmentObj = env.invoke("connect", new PyString(envName));
52 return new PyObjectFactory();
62 public PyObject execute(String methodName) {
63 environmentObj.toString();
64 return environmentObj.invoke(methodName);
75 public PyObject execute(String methodName, PyObject args) {
76 return environmentObj.invoke(methodName, args);
88 public PyObject execute(String methodName, PyObject arg1, PyObject arg2) {
89 return environmentObj.invoke(methodName, arg1, arg2);
100 public PyObject execute(String methodName, PyObject[] args) {
101 return environmentObj.invoke(methodName, args);