98 virtual bool shutdown()
const = 0;
100 virtual bool ping()
const = 0;
102 virtual bool isAlive(
const std::chrono::milliseconds& timeout)
const = 0;
104 virtual bool setLogMethod(uint32_t method,
int pipeFd)
const = 0;
106 virtual bool setLogLevel(
int level)
const = 0;
108 virtual bool setAIDbusAddress(
bool privateBus,
109 const std::string& address)
const = 0;
111 inline bool isAlive()
const
113 return isAlive(std::chrono::milliseconds::min());
116 inline int32_t setLogMethod(uint32_t method)
const
118 return setLogMethod(method, -1);
125 virtual int32_t startContainerFromSpec(
const std::string&
id,
126 const std::string& jsonSpec,
127 const std::list<int>& files,
128 const std::string& command =
"",
129 const std::string& displaySocket =
"",
130 const std::vector<std::string>& envVars = std::vector<std::string>())
const = 0;
133 virtual int32_t startContainerFromBundle(
const std::string&
id,
134 const std::string& bundlePath,
135 const std::list<int>& files,
136 const std::string& command =
"",
137 const std::string& displaySocket =
"",
138 const std::vector<std::string>& envVars = std::vector<std::string>())
const = 0;
140 virtual bool stopContainer(int32_t descriptor,
141 bool withPrejudice)
const = 0;
143 virtual bool pauseContainer(int32_t descriptor)
const = 0;
145 virtual bool resumeContainer(int32_t descriptor)
const = 0;
147 virtual bool hibernateContainer(int32_t descriptor,
const std::string& options)
const = 0;
149 virtual bool wakeupContainer(int32_t descriptor)
const = 0;
151 virtual bool addContainerMount(int32_t descriptor,
152 const std::string& source,
153 const std::string& destination,
154 const std::vector<std::string>& mountFlags,
155 const std::string& mountData)
const = 0;
157 virtual bool removeContainerMount(int32_t descriptor,
const std::string& source)
const = 0;
159 virtual bool addAnnotation(int32_t cd,
160 const std::string& key,
161 const std::string& value)
const = 0;
163 virtual bool removeAnnotation(int32_t cd,
164 const std::string& key)
const = 0;
166 virtual bool execInContainer(int32_t cd,
167 const std::string& options,
168 const std::string& command)
const = 0;
170 virtual int getContainerState(int32_t descriptor)
const = 0;
172 virtual std::string getContainerInfo(int32_t descriptor)
const = 0;
174 virtual std::list<std::pair<int32_t, std::string>> listContainers()
const = 0;
177 inline int32_t startContainerFromSpec(
const std::string&
id,
178 const std::string& jsonSpec)
const
180 return startContainerFromSpec(
id, jsonSpec, { });
183 inline int32_t startContainerFromBundle(
const std::string&
id,
184 const std::string& bundlePath)
const
186 return startContainerFromBundle(
id, bundlePath, { });
189 inline bool stopContainer(int32_t descriptor)
const
191 return stopContainer(descriptor,
false);
195 typedef std::function<void(int32_t,
const std::string&, IDobbyProxyEvents::ContainerState,
const void*)> StateChangeListener;
197 virtual int registerListener(
const StateChangeListener &listener,
const void* cbParams) = 0;
199 virtual void unregisterListener(
int tag) = 0;
202#if (AI_BUILD_TYPE == AI_DEBUG)
206 virtual bool createBundle(
const std::string&
id,
207 const std::string& jsonSpec)
const = 0;
209 virtual std::string getSpec(int32_t descriptor)
const = 0;
211 virtual std::string getOCIConfig(int32_t descriptor)
const = 0;
213#if (AI_ENABLE_TRACING)
214 virtual bool startInProcessTracing(
int traceFileFd,
215 const std::string &categoryFilter)
const = 0;
217 virtual bool stopInProcessTracing()
const = 0;