add sysinfo to setup & restore

This commit is contained in:
Girish Ramakrishnan
2019-11-11 11:07:52 -08:00
parent a868766a65
commit 7e2ae8e87c
6 changed files with 125 additions and 13 deletions

View File

@@ -24,6 +24,8 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
$scope.isDomain = false;
$scope.isSubdomain = false;
$scope.hyphenatedSubdomains = false;
$scope.advancedVisible = false;
$scope.tlsProvider = [
{ name: 'Let\'s Encrypt Prod', value: 'letsencrypt-prod' },
{ name: 'Let\'s Encrypt Prod - Wildcard', value: 'letsencrypt-prod-wildcard' },
@@ -32,6 +34,27 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
{ name: 'Self-Signed', value: 'fallback' }, // this is not 'Custom' because we don't allow user to upload certs during setup phase
];
$scope.sysinfo = {
provider: 'generic',
ip: '',
ifname: ''
};
$scope.sysinfoProvider = [
{ name: 'Public IP', value: 'generic' },
{ name: 'Static IP Address', value: 'fixed' },
{ name: 'Network Interface', value: 'network-interface' }
];
$scope.prettySysinfoProviderName = function (provider) {
switch (provider) {
case 'generic': return 'Public IP';
case 'fixed': return 'Static IP Address';
case 'network-interface': return 'Network Interface';
default: return 'Unknown';
}
};
$scope.needsPort80 = function (dnsProvider, tlsProvider) {
return ((dnsProvider === 'manual' || dnsProvider === 'noop' || dnsProvider === 'wildcard') &&
(tlsProvider === 'letsencrypt-prod' || tlsProvider === 'letsencrypt-staging'));
@@ -69,7 +92,6 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
];
$scope.dnsCredentials = {
busy: false,
advancedVisible: false,
domain: '',
accessKeyId: '',
secretAccessKey: '',
@@ -179,7 +201,16 @@ app.controller('SetupDNSController', ['$scope', '$http', '$timeout', 'Client', f
tlsConfig.wildcard = true;
}
Client.setup($scope.dnsCredentials.domain, $scope.dnsCredentials.zoneName, provider, data, tlsConfig, function (error) {
var sysinfoConfig = {
provider: $scope.sysinfo.provider
};
if ($scope.sysinfo.provider === 'fixed') {
sysinfoConfig.ip = $scope.sysinfo.ip;
} else if ($scope.sysinfo.provider === 'network-interface') {
sysinfoConfig.ip = $scope.sysinfo.ifname;
}
Client.setup($scope.dnsCredentials.domain, $scope.dnsCredentials.zoneName, provider, data, tlsConfig, sysinfoConfig, function (error) {
if (error && error.statusCode === 401) {
$scope.dnsCredentials.busy = false;
$scope.error.ami = 'Wrong instance id provided.';