summaryrefslogtreecommitdiffstats
path: root/server/lib/external-backends/backends/idoit-backend.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/lib/external-backends/backends/idoit-backend.js')
-rw-r--r--server/lib/external-backends/backends/idoit-backend.js133
1 files changed, 76 insertions, 57 deletions
diff --git a/server/lib/external-backends/backends/idoit-backend.js b/server/lib/external-backends/backends/idoit-backend.js
index d3ce7e6..57a5929 100644
--- a/server/lib/external-backends/backends/idoit-backend.js
+++ b/server/lib/external-backends/backends/idoit-backend.js
@@ -328,7 +328,6 @@ class IdoitBackend extends ExternalBackends {
}
}
var bodies = []
-
var clientid
if (!client.id) {
// Create the object in idoIT.
@@ -338,6 +337,13 @@ class IdoitBackend extends ExternalBackends {
'apikey': c.apikey,
'language': 'en'
}
+ // 1 = Production
+ // 2 = Test
+ // 3 = Quality Assurance
+ // 5 = PVS
+ // 7 = Pool PC
+ // 8 = Mitarbeiter Arbeitsplatz
+ if (client.purpose === 'Pool PC') params.purpose = 7
var requestCreate = await this.axiosRequest(c.url, 'cmdb.object.create', params, config.headers)
@@ -346,7 +352,7 @@ class IdoitBackend extends ExternalBackends {
clientid = client.id
// Update the client title
- bodies.push({
+ var bodyGeneral = {
'version': '2.0',
'method': 'cmdb.object.update',
'params': {
@@ -356,7 +362,10 @@ class IdoitBackend extends ExternalBackends {
'language': 'en'
},
'id': 'update_title'
- })
+ }
+ if (client.purpose === 'Pool PC') bodyGeneral.params.purpose = 7
+
+ bodies.push(bodyGeneral)
}
if (client.uuid) {
@@ -462,7 +471,7 @@ class IdoitBackend extends ExternalBackends {
* id: <CLIENT_ID>, title: <CLIENT_TITLE>, parentId: <PARENT_ID>,
* system: { model: <SYSTEM_MODEL>, manufacturer: <SYSTEM_MANUFACTURER>, serialnumber: <SYSTEM_SERIALNUMBER> },
* cpu: { model: <CPU_MODEL>, manufacturer: <CPU_MANUFACTURER>, type: <CPU_TYPE>, frequency: <CPU_FREQUENCY>, cores: <CPU_CORES> },
- * ram: [{ model: <RAM_MODEL>, manufacturer: <RAM_MANUFACTURER>, type: <RAM_TYPE>, capacity: <RAM_CAPACITY>, unit: <RAM_UNIT> }, ...],
+ * ram: [{ title: <RAM_TITLE>, manufacturer: <RAM_MANUFACTURER>, type: <RAM_TYPE>, capacity: <RAM_CAPACITY>, unit: <RAM_UNIT> }, ...],
* storage: {}
* }
*/
@@ -578,12 +587,16 @@ class IdoitBackend extends ExternalBackends {
'id': 'update_cpu'
})
}
-
+ console.log(client.ram)
if (client.ram) {
var counter = 1
- var mem
- for (mem in client.ram) {
+ for (var memory in client.ram) {
+ var mem = client.ram[memory]
var id = 'create_memory_' + counter
+ if (mem.unit === 'MB') mem.capacity = mem.capacity / 1024
+
+ // 2 = MB
+ // 3 = GB
// Update the object.
bodies.push({
'version': '2.0',
@@ -592,11 +605,11 @@ class IdoitBackend extends ExternalBackends {
'objID': clientid,
'category': 'C__CATG__MEMORY',
'data': {
- 'title': mem.model,
+ 'title': mem.title,
'manufacturer': mem.manufacturer,
'type': mem.type,
'capacity': mem.capacity,
- 'unit': mem.unit
+ 'unit': 3
},
'apikey': c.apikey,
'language': 'en'
@@ -620,7 +633,7 @@ class IdoitBackend extends ExternalBackends {
return result
}
- async uploadTpm (credentials, clientid, clientuuid, tpm) {
+ async uploadFiles (credentials, externalId, files) {
var c = this.mapCredentials(credentials)
var login = await this.getSession(c)
var sid = login.data.result['session-id']
@@ -632,60 +645,66 @@ class IdoitBackend extends ExternalBackends {
'Content-Type': 'application/json'
}
}
+ var result = []
+ for (var key in files) {
+ var body = {
+ 'version': '2.0',
+ 'method': 'cmdb.object.create',
+ 'params': {
+ 'type': 'C__OBJTYPE__FILE',
+ 'title': key,
+ 'apikey': c.apikey,
+ 'language': 'en'
+ },
+ 'id': key
+ }
+ var fileObject = await axios.post(c.url, body, config)
+ result.push(fileObject)
- // Create file object in idoit.
- var body = {
- 'version': '2.0',
- 'method': 'cmdb.object.create',
- 'params': {
- 'type': 'C__OBJTYPE__FILE',
- 'title': 'Just a test',
- 'apikey': c.apikey,
- 'language': 'en'
- },
- 'id': 2
- }
- var fileobject = await axios.post(c.url, body, config)
- console.log(fileobject.data.result.id)
+ var buffer = new Buffer.from(files[key].data)
+ var filename = files[key].name
- // Upload file to fileobject.
- body = {
- 'version': '2.0',
- 'method': 'cmdb.category.create',
- 'params': {
- 'objID': fileobject.data.result.id,
- 'data': {
- 'file_content': 'dGVzdAo=',
- 'file_physical': 'test.txt',
- 'file_title': 'Just a test',
- 'version_description': 'Just a test'
+ // Upload file to fileobject.
+ body = {
+ 'version': '2.0',
+ 'method': 'cmdb.category.create',
+ 'params': {
+ 'objID': fileObject.data.result.id,
+ 'data': {
+ 'file_content': buffer.toString('base64'),
+ 'file_physical': filename,
+ 'file_title': filename,
+ 'version_description': key
+ },
+ 'category': 'C__CMDB__SUBCAT__FILE_VERSIONS',
+ 'apikey': c.apikey,
+ 'language': 'en'
},
- 'category': 'C__CMDB__SUBCAT__FILE_VERSIONS',
- 'apikey': c.apikey,
- 'language': 'en'
- },
- 'id': 3
- }
- var fileupload = await axios.post(c.url, body, config)
+ 'id': key
+ }
+ var fileupload = await axios.post(c.url, body, config)
+ result.push(fileupload)
- // Combine fileobject with object.
- body = {
- 'version': '2.0',
- 'method': 'cmdb.category.create',
- 'params': {
- 'objID': clientid,
- 'data': {
- 'file': fileobject.data.result.id
+ // Combine fileObject with object.
+ body = {
+ 'version': '2.0',
+ 'method': 'cmdb.category.create',
+ 'params': {
+ 'objID': externalId,
+ 'data': {
+ 'file': fileObject.data.result.id
+ },
+ 'category': 'C__CATG__FILE',
+ 'apikey': c.apikey,
+ 'language': 'en'
},
- 'category': 'C__CATG__FILE',
- 'apikey': c.apikey,
- 'language': 'en'
- },
- 'id': 4
+ 'id': 4
+ }
+ var concat = await axios.post(c.url, body, config)
+ result.push(concat)
}
- var concat = await axios.post(c.url, body, config)
- return { create: fileobject.data.result, upload: fileupload.data.result, concat: concat.data.result }
+ return { result: result }
}
// ############################################################################