Created
July 20, 2022 09:41
-
-
Save eedugon/66b8f7fce3d059faefe790bc5a7190be to your computer and use it in GitHub Desktop.
ui-driver-heztner modified to make use of disablePublic option of the 3.8.0 machine driver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; | |
define("nodes/components/driver-hetzner/component", ["exports", "shared/mixins/node-driver"], function (exports, _nodeDriver) { | |
"use strict"; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
function _toConsumableArray(arr) { | |
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); | |
} | |
function _nonIterableSpread() { | |
throw new TypeError("Invalid attempt to spread non-iterable instance"); | |
} | |
function _iterableToArray(iter) { | |
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); | |
} | |
function _arrayWithoutHoles(arr) { | |
if (Array.isArray(arr)) { | |
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { | |
arr2[i] = arr[i]; | |
} | |
return arr2; | |
} | |
} | |
function ownKeys(object, enumerableOnly) { | |
var keys = Object.keys(object); | |
if (Object.getOwnPropertySymbols) { | |
var symbols = Object.getOwnPropertySymbols(object); | |
if (enumerableOnly) symbols = symbols.filter(function (sym) { | |
return Object.getOwnPropertyDescriptor(object, sym).enumerable; | |
}); | |
keys.push.apply(keys, symbols); | |
} | |
return keys; | |
} | |
function _objectSpread(target) { | |
for (var i = 1; i < arguments.length; i++) { | |
var source = arguments[i] != null ? arguments[i] : {}; | |
if (i % 2) { | |
ownKeys(Object(source), true).forEach(function (key) { | |
_defineProperty(target, key, source[key]); | |
}); | |
} else if (Object.getOwnPropertyDescriptors) { | |
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); | |
} else { | |
ownKeys(Object(source)).forEach(function (key) { | |
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); | |
}); | |
} | |
} | |
return target; | |
} | |
function _defineProperty(obj, key, value) { | |
if (key in obj) { | |
Object.defineProperty(obj, key, { | |
value: value, | |
enumerable: true, | |
configurable: true, | |
writable: true | |
}); | |
} else { | |
obj[key] = value; | |
} | |
return obj; | |
} | |
var LAYOUT = "PHNlY3Rpb24gY2xhc3M9Imhvcml6b250YWwtZm9ybSI+DQogIHt7I2lmIG5lZWRBUElUb2tlbn19DQogIDxmb3JtPg0KICAgIDxkaXYgY2xhc3M9Im92ZXItaHIgci1tYjIwIj4NCiAgICAgIDxzcGFuPkFjY291bnQgQWNjZXNzPC9zcGFuPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5BUEkgVG9rZW4qPC9sYWJlbD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTEwIj4NCiAgICAgICAge3tpbnB1dCB0eXBlPSJwYXNzd29yZCIgdmFsdWU9bW9kZWwuaGV0em5lckNvbmZpZy5hcGlUb2tlbiBjbGFzc05hbWVzPSJmb3JtLWNvbnRyb2wiIHBsYWNlaG9sZGVyPSJZb3VyIEhldHpuZXIgQ2xvdWQgQVBJIFRva2VuIn19DQogICAgICAgIDxwIGNsYXNzPSJoZWxwLWJsb2NrIj5DcmVhdGUgaXQgYnkgc3dpdGNoaW5nIGludG8gdGhlDQogICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIgbm9yZWZlcnJlciIgaHJlZj0iaHR0cHM6Ly9jb25zb2xlLmhldHpuZXIuY2xvdWQiPkhldHpuZXIgQ2xvdWQgQ29uc29sZTwvYT4sIGNob29zaW5nIGEgcHJvamVjdCwgZ28gdG8gQWNjZXNzICZyYXJyOyBUb2tlbnMgYW5kIGNyZWF0ZSBhIG5ldyBBUEkgdG9rZW4gdGhlcmUuPC9wPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAge3t0b3AtZXJyb3JzIGVycm9ycz1lcnJvcnN9fQ0KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1hY3Rpb25zIj4NCiAgICAgIHt7I2lmIGdldHRpbmdEYXRhfX0NCiAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBiZy1wcmltYXJ5IGJ0bi1kaXNhYmxlZCI+DQogICAgICAgIDxpIGNsYXNzPSJpY29uIGljb24tc3Bpbm5lciBpY29uLXNwaW4iPjwvaT4ge3t0ICdnZW5lcmljLmxvYWRpbmcnfX08L2J1dHRvbj4NCiAgICAgIHt7ZWxzZX19DQogICAgICA8YnV0dG9uIHt7YWN0aW9uICJnZXREYXRhIiB9fSBjbGFzcz0iYnRuIGJnLXByaW1hcnkiIGRpc2FibGVkPXt7bm90IG1vZGVsLmhldHpuZXJDb25maWcuYXBpVG9rZW59fT5Db25maWd1cmUgU2VydmVyPC9idXR0b24+DQogICAgICB7ey9pZn19DQogICAgICA8YnV0dG9uIHt7YWN0aW9uICJjYW5jZWwifX0gY2xhc3M9ImJ0biBiZy10cmFuc3BhcmVudCI+e3t0ICdnZW5lcmljLmNhbmNlbCd9fTwvYnV0dG9uPg0KICAgIDwvZGl2Pg0KICA8L2Zvcm0+DQogIHt7ZWxzZX19DQogIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVpZCI+DQogICAge3shLS0gVGhpcyBwYXJ0aWFsIGNvbnRhaW5zIHRoZSBxdWFudGl0eSwgbmFtZSwgYW5kIGRlc2NyaXB0aW9uIGZpZWxkcyAtLX19DQogICAgPGRpdiBjbGFzcz0ib3Zlci1ociI+DQogICAgICA8c3Bhbj57e3RlbXBsYXRlT3B0aW9uc1RpdGxlfX08L3NwYW4+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0ib3Zlci1ociByLW10MjAgci1tYjIwIj4NCiAgICAgIDxzcGFuPlNldHRpbmdzPC9zcGFuPg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5SZWdpb248L2xhYmVsPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMTAiPg0KICAgICAgICA8c2VsZWN0IGNsYXNzPSJmb3JtLWNvbnRyb2wiIG9uY2hhbmdlPXt7YWN0aW9uIChtdXQgbW9kZWwuaGV0em5lckNvbmZpZy5zZXJ2ZXJMb2NhdGlvbikgdmFsdWU9InRhcmdldC52YWx1ZSIgfX0+DQogICAgICAgICAge3sjZWFjaCByZWdpb25DaG9pY2VzIGFzIHxjaG9pY2V8fX0NCiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3tjaG9pY2UubmFtZX19IHNlbGVjdGVkPXt7ZXEgbW9kZWwuaGV0em5lckNvbmZpZy5zZXJ2ZXJMb2NhdGlvbiBjaG9pY2UubmFtZX19Pnt7Y2hvaWNlLmNpdHl9fTwvb3B0aW9uPg0KICAgICAgICAgIHt7L2VhY2h9fQ0KICAgICAgICA8L3NlbGVjdD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5JbWFnZTwvbGFiZWw+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4NCiAgICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIiBvbmNoYW5nZT17e2FjdGlvbiAobXV0IG1vZGVsLmhldHpuZXJDb25maWcuaW1hZ2VJZCkgdmFsdWU9InRhcmdldC52YWx1ZSIgfX0+DQogICAgICAgICAge3sjZWFjaCBpbWFnZUNob2ljZXMgYXMgfGNob2ljZXx9fQ0KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT17e2Nob2ljZS5pZH19IHNlbGVjdGVkPXt7ZXEgbW9kZWwuaGV0em5lckNvbmZpZy5pbWFnZUlkIGNob2ljZS5pZH19Pnt7Y2hvaWNlLmRlc2NyaXB0aW9ufX08L29wdGlvbj4NCiAgICAgICAgICB7ey9lYWNofX0NCiAgICAgICAgPC9zZWxlY3Q+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5TaXplPC9sYWJlbD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiPg0KICAgICAgICA8c2VsZWN0IGNsYXNzPSJmb3JtLWNvbnRyb2wiIG9uY2hhbmdlPXt7YWN0aW9uIChtdXQgbW9kZWwuaGV0em5lckNvbmZpZy5zZXJ2ZXJUeXBlKSB2YWx1ZT0idGFyZ2V0LnZhbHVlIiB9fT4NCiAgICAgICAgICB7eyNlYWNoIHNpemVDaG9pY2VzIGFzIHxjaG9pY2V8fX0NCiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9e3tjaG9pY2UubmFtZX19IHNlbGVjdGVkPXt7ZXEgbW9kZWwuaGV0em5lckNvbmZpZy5zZXJ2ZXJUeXBlIGNob2ljZS5uYW1lfX0+e3tjaG9pY2UuZGVzY3JpcHRpb259fSAtIHt7Y2hvaWNlLm1lbW9yeX19R0IgTWVtb3J5IC0ge3tjaG9pY2UuZGlza319R0IgRGlzayBzcGFjZTwvb3B0aW9uPg0KICAgICAgICAgIHt7L2VhY2h9fQ0KICAgICAgICA8L3NlbGVjdD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9InJvdyBmb3JtLWdyb3VwIj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj4NCiAgICAgICAgICA8YSBocmVmPSJodHRwczovL2Nsb3VkaW5pdC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdG9waWNzL2V4YW1wbGVzLmh0bWwiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPkNsb3VkLWluaXQgQ29uZmlndXJhdGlvbjwvYT4gKG9wdGlvbmFsKQ0KICAgICAgICA8L2xhYmVsPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMTAiPg0KICAgICAgICA8dGV4dGFyZWEgdmFsdWU9e3ttb2RlbC5oZXR6bmVyQ29uZmlnLnVzZXJEYXRhfX0gb25jaGFuZ2U9e3thY3Rpb24gKG11dCBtb2RlbC5oZXR6bmVyQ29uZmlnLnVzZXJEYXRhKSB2YWx1ZT0idGFyZ2V0LnZhbHVlIiB9fSByb3dzPSIzIiBzdHlsZT0id2lkdGg6IDEwMCU7IHJlc2l6ZTogdmVydGljYWwiPjwvdGV4dGFyZWE+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGxhYmVsIGNsYXNzPSJmb3JtLWNvbnRyb2wtc3RhdGljIj5OZXR3b3JrcyAoT3B0aW9uYWwuIFlvdSBoYXZlIHRvIGNyZWF0ZSB0aGVzZSBOZXR3b3JrcyBpbiB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9jb25zb2xlLmhldHpuZXIuY2xvdWQiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiPkhldHpuZXIgQ2xvdWQgQ29uc29sZTwvYT4pPC9sYWJlbD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiPg0KICAgICAgICA8c2VsZWN0IGNsYXNzPSJmb3JtLWNvbnRyb2wiIG9uY2hhbmdlPXt7YWN0aW9uICdtb2RpZnlOZXR3b3JrcycgfX0gbXVsdGlwbGU9InRydWUiPg0KICAgICAgICAgIHt7I2VhY2ggbmV0d29ya0Nob2ljZXMgYXMgfG5ldHdvcmt8fX0NCiAgICAgICAgICA8b3B0aW9uIHZhbHVlPXt7bmV0d29yay5pZH19IHNlbGVjdGVkPXt7YXJyYXktaW5jbHVkZXMgbW9kZWwuaGV0em5lckNvbmZpZy5uZXR3b3JrcyBuZXR3b3JrLmlkfX0+e3tuZXR3b3JrLm5hbWV9fSAoe3tuZXR3b3JrLmlwX3JhbmdlfX0pPC9vcHRpb24+DQogICAgICAgICAge3svZWFjaH19DQogICAgICAgIDwvc2VsZWN0Pg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMiI+DQogICAgICAgIDxkaXYgY2xhc3M9ImNoZWNrYm94Ij4NCiAgICAgICAgICA8bGFiZWwgY2xhc3M9ImFjYy1sYWJlbCI+e3tpbnB1dCB0eXBlPSJjaGVja2JveCIgY2hlY2tlZD1tb2RlbC5oZXR6bmVyQ29uZmlnLnVzZVByaXZhdGVOZXR3b3JrfX0NCiAgICAgICAgICAgIEVFRFVHT046IFVzZSBwcml2YXRlIG5ldHdvcmsgKGZpcnN0IHByaXZhdGUgbmV0d29yayB3aGljaCBpcyBhdHRhY2hlZCB3aWxsIGJlIHVzZWQgZm9yIGNvbW11bmljYXRpb24pDQogICAgICAgICAgPC9sYWJlbD4NCiAgICAgICAgPC9kaXY+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC0yIj4NCiAgICAgICAgPGRpdiBjbGFzcz0iY2hlY2tib3giPg0KICAgICAgICAgIDxsYWJlbCBjbGFzcz0iYWNjLWxhYmVsIj57e2lucHV0IHR5cGU9ImNoZWNrYm94IiBjaGVja2VkPW1vZGVsLmhldHpuZXJDb25maWcuZGlzYWJsZVB1YmxpY319DQogICAgICAgICAgICBFRURVR09OOiBEaXNhYmxlIHB1YmxpYyBJUHY0IGFuZCBJUHY2IGFkZHJlc3Nlcw0KICAgICAgICAgIDwvbGFiZWw+DQogICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQogICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTIiPg0KICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tY29udHJvbC1zdGF0aWMiPkZpcmV3YWxscyAoQmV0YSwgb3B0aW9uYWwuIFlvdSBoYXZlIHRvIGNyZWF0ZSB0aGVzZSBGaXJld2FsbHMgaW4gdGhlIDxhIGhyZWY9Imh0dHBzOi8vY29uc29sZS5oZXR6bmVyLmNsb3VkIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciBub3JlZmVycmVyIj5IZXR6bmVyIENsb3VkIENvbnNvbGU8L2E+KTwvbGFiZWw+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4NCiAgICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIiBvbmNoYW5nZT17e2FjdGlvbiAnbW9kaWZ5RmlyZXdhbGxzJyB9fSBtdWx0aXBsZT0idHJ1ZSI+DQogICAgICAgICAge3sjZWFjaCBmaXJld2FsbENob2ljZXMgYXMgfGZpcmV3YWxsfH19DQogICAgICAgICAgPG9wdGlvbiB2YWx1ZT17e2ZpcmV3YWxsLmlkfX0gc2VsZWN0ZWQ9e3thcnJheS1pbmNsdWRlcyBtb2RlbC5oZXR6bmVyQ29uZmlnLmZpcmV3YWxscyBmaXJld2FsbC5pZH19Pnt7ZmlyZXdhbGwubmFtZX19PC9vcHRpb24+DQogICAgICAgICAge3svZWFjaH19DQogICAgICAgIDwvc2VsZWN0Pg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtMiI+DQogICAgICAgIDxsYWJlbCBjbGFzcz0iZm9ybS1jb250cm9sLXN0YXRpYyI+QWRkaXRpb25hbCBTU0ggS2V5czwvbGFiZWw+DQogICAgICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4NCiAgICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIiBvbmNoYW5nZT17e2FjdGlvbiAnbW9kaWZ5S2V5cycgfX0gbXVsdGlwbGU9InRydWUiPg0KICAgICAgICAgIHt7I2VhY2gga2V5Q2hvaWNlcyBhcyB8a2V5fH19DQogICAgICAgICAgPG9wdGlvbiB2YWx1ZT17e2tleS5pZH19IHNlbGVjdGVkPXt7YXJyYXktaW5jbHVkZXMgbW9kZWwuaGV0em5lckNvbmZpZy5hZGRpdGlvbmFsS2V5IGtleS5wdWJsaWNfa2V5fX0+e3trZXkubmFtZX19ICh7e2tleS5maW5nZXJwcmludH19KTwvb3B0aW9uPg0KICAgICAgICAgIHt7L2VhY2h9fQ0KICAgICAgICA8L3NlbGVjdD4NCiAgICAgIDwvZGl2Pg0KICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTIiPg0KICAgICAgICA8bGFiZWwgY2xhc3M9ImZvcm0tY29udHJvbC1zdGF0aWMiPlBsYWNlbWVudCBncm91cDwvbGFiZWw+DQogICAgICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIiBvbmNoYW5nZT17e2FjdGlvbiAobXV0IG1vZGVsLmhldHpuZXJDb25maWcucGxhY2VtZW50R3JvdXApIHZhbHVlPSJ0YXJnZXQudmFsdWUiIH19Pg0KICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD0ie3tub3QgbW9kZWwuaGV0em5lckNvbmZpZy5wbGFjZW1lbnRHcm91cH19Ij48L29wdGlvbj4NCiAgICAgICAgICAgIHt7I2VhY2ggcGxhY2VtZW50R3JvdXBDaG9pY2VzIGFzIHxwbGFjZW1lbnRHcm91cHx9fQ0KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ7e3BsYWNlbWVudEdyb3VwLm5hbWV9fSIgc2VsZWN0ZWQ9e3tlcSBtb2RlbC5oZXR6bmVyQ29uZmlnLnBsYWNlbWVudEdyb3VwIHBsYWNlbWVudEdyb3VwLm5hbWV9fT57e3BsYWNlbWVudEdyb3VwLm5hbWV9fSAoe3twbGFjZW1lbnRHcm91cC50eXBlfX0pPC9vcHRpb24+DQogICAgICAgICAgICB7ey9lYWNofX0NCiAgICAgICAgICA8L3NlbGVjdD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgICB7eyEtLSBUaGlzIGZvbGxvd2luZyBjb250YWlucyB0aGUgTmFtZSwgTGFiZWxzIGFuZCBFbmdpbmUgT3B0aW9ucyBmaWVsZHMgLS19fQ0KICAgICB7e2Zvcm0tbmFtZS1kZXNjcmlwdGlvbiBtb2RlbD1tb2RlbCBuYW1lUmVxdWlyZWQ9dHJ1ZX19DQogICAgIHt7Zm9ybS11c2VyLWxhYmVscyBpbml0aWFsTGFiZWxzPWxhYmVsUmVzb3VyY2UubGFiZWxzIHNldExhYmVscz0oYWN0aW9uICdzZXRMYWJlbHMnKSBleHBhbmRBbGw9ZXhwYW5kQWxsIGV4cGFuZD0oYWN0aW9uIGV4cGFuZEZuKSB9fQ0KICAgICB7e2Zvcm0tZW5naW5lLW9wdHMgbWFjaGluZT1tb2RlbCBzaG93RW5naW5lVXJsPXNob3dFbmdpbmVVcmwgfX0NCiAgICAge3shLS0gVGhpcyBjb21wb25lbnQgc2hvd3MgZXJyb3JzIHByb2R1Y2VkIGJ5IHZhbGlkYXRlKCkgaW4gdGhlIGNvbXBvbmVudCAtLX19DQogICAgIHt7dG9wLWVycm9ycyBlcnJvcnM9ZXJyb3JzfX0NCiAgICAge3shLS0gVGhpcyBjb21wb25lbnQgc2hvd3MgdGhlIENyZWF0ZSBhbmQgQ2FuY2VsIGJ1dHRvbnMgLS19fQ0KICAgICB7e3NhdmUtY2FuY2VsIHNhdmU9InNhdmUiIGNhbmNlbD0oYWN0aW9uICJjYW5jZWwiKX19DQogIDwvZGl2Pg0KICB7ey9pZn19DQo8L3NlY3Rpb24+DQo="; | |
var computed = Ember.computed; | |
var get = Ember.get; | |
var set = Ember.set; | |
var alias = Ember.computed.alias; | |
var service = Ember.inject.service; | |
exports.default = Ember.Component.extend(_nodeDriver.default, { | |
driverName: 'hetzner', | |
needAPIToken: true, | |
config: alias('model.hetznerConfig'), | |
app: service(), | |
init: function init() { | |
var decodedLayout = window.atob(LAYOUT); | |
var template = Ember.HTMLBars.compile(decodedLayout, { | |
moduleName: 'nodes/components/driver-hetzner/template' | |
}); | |
set(this, 'layout', template); | |
this._super.apply(this, arguments); | |
}, | |
bootstrap: function bootstrap() { | |
var config = get(this, 'globalStore').createRecord({ | |
type: 'hetznerConfig', | |
additionalKey: [], | |
serverType: 'cx21', | |
serverLocation: 'nbg1', | |
imageId: "168855", | |
userData: '', | |
networks: [], | |
firewalls: [], | |
usePrivateNetwork: false, | |
disablePublic: false, | |
serverLabel: [''], | |
placementGroup: '' | |
}); | |
set(this, 'model.hetznerConfig', config); | |
}, | |
validate: function validate() { | |
this._super(); | |
if (!this.get('model.hetznerConfig.networks')) { | |
this.set('model.hetznerConfig.networks', []); | |
} | |
if (!this.get('model.hetznerConfig.firewalls')) { | |
this.set('model.hetznerConfig.firewalls', []); | |
} | |
if (!this.get('model.hetznerConfig.serverLabel')) { | |
this.set('model.hetznerConfig.serverLabel', []); | |
} | |
if (!this.get('model.hetznerConfig.additionalKey')) { | |
this.set('model.hetznerConfig.additionalKey', []); | |
} | |
var errors = get(this, 'errors') || []; | |
if (!get(this, 'model.name')) { | |
errors.push('Name is required'); | |
} | |
if (get(errors, 'length')) { | |
set(this, 'errors', errors); | |
return false; | |
} else { | |
set(this, 'errors', null); | |
return true; | |
} | |
}, | |
actions: { | |
getData: function getData() { | |
this.set('gettingData', true); | |
var that = this; | |
Promise.all([this.apiRequest('/v1/locations'), this.apiRequest('/v1/images'), this.apiRequest('/v1/server_types'), this.apiRequest('/v1/networks'), this.apiRequest('/v1/ssh_keys'), this.apiRequest('/v1/firewalls'), this.apiRequest('/v1/placement_groups')]).then(function (responses) { | |
that.setProperties({ | |
errors: [], | |
needAPIToken: false, | |
gettingData: false, | |
regionChoices: responses[0].locations, | |
imageChoices: responses[1].images.map(function (image) { | |
return _objectSpread({}, image, { | |
id: image.id.toString() | |
}); | |
}), | |
sizeChoices: responses[2].server_types, | |
networkChoices: responses[3].networks.map(function (network) { | |
return _objectSpread({}, network, { | |
id: network.id.toString() | |
}); | |
}), | |
keyChoices: responses[4].ssh_keys.map(function (key) { | |
return _objectSpread({}, key, { | |
id: key.id.toString() | |
}); | |
}), | |
firewallChoices: responses[5].firewalls.map(function (firewall) { | |
return _objectSpread({}, firewall, { | |
id: firewall.id.toString() | |
}); | |
}), | |
placementGroupChoices: responses[6].placement_groups | |
}); | |
}).catch(function (err) { | |
err.then(function (msg) { | |
that.setProperties({ | |
errors: ['Error received from Hetzner Cloud: ' + msg.error.message], | |
gettingData: false | |
}); | |
}); | |
}); | |
}, | |
modifyNetworks: function modifyNetworks(select) { | |
var options = _toConsumableArray(select.target.options).filter(function (o) { | |
return o.selected; | |
}).map(function (o) { | |
return o.value; | |
}); | |
this.set('model.hetznerConfig.networks', options); | |
}, | |
modifyFirewalls: function modifyFirewalls(select) { | |
var options = _toConsumableArray(select.target.options).filter(function (o) { | |
return o.selected; | |
}).map(function (o) { | |
return o.value; | |
}); | |
this.set('model.hetznerConfig.firewalls', options); | |
}, | |
setLabels: function setLabels(labels) { | |
var labels_list = labels.map(function (l) { | |
return l.key + "=" + l.value; | |
}); | |
this.set('model.hetznerConfig.serverLabel', labels_list); | |
this._super(labels); | |
}, | |
modifyKeys: function modifyKeys(select) { | |
var _this = this; | |
var options = _toConsumableArray(select.target.options).filter(function (o) { | |
return o.selected; | |
}).map(function (o) { | |
return _this.keyChoices.find(function (keyChoice) { | |
return keyChoice.id == o.value; | |
})["public_key"]; | |
}); | |
this.set('model.hetznerConfig.additionalKey', options); | |
} | |
}, | |
apiRequest: function apiRequest(path) { | |
return fetch('https://api.hetzner.cloud' + path, { | |
headers: { | |
'Authorization': 'Bearer ' + this.get('model.hetznerConfig.apiToken') | |
} | |
}).then(function (res) { | |
return res.ok ? res.json() : Promise.reject(res.json()); | |
}); | |
} | |
}); | |
});; | |
"use strict"; | |
define("ui/components/driver-hetzner/component", ["exports", "nodes/components/driver-hetzner/component"], function (exports, _component) { | |
"use strict"; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
Object.defineProperty(exports, "default", { | |
enumerable: true, | |
get: function () { | |
return _component.default; | |
} | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment