@facets-cloud/facetsctl
Version:
148 lines (147 loc) • 5.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.uploadArtifactsZip = exports.registerArtifactByReleaseStream = exports.registerArtifactByEnv = exports.getClusterById = exports.getKubeConfigFileContent = exports.pushArtifactWithMetadata = exports.registerArtifact = exports.fetchPushCredentialsByBranch = exports.fetchPushCredentials = exports.getAllClustersByStackName = exports.refreshCredentials = exports.fetchUserDetails = void 0;
const axios_1 = require("axios");
const FormData = require("form-data");
const fs = require("fs");
async function fetchUserDetails(cpUrl, username, token) {
return axios_1.default.get(`${cpUrl}/api/me`, {
auth: {
username: username,
password: token,
},
});
}
exports.fetchUserDetails = fetchUserDetails;
async function refreshCredentials(cpUrl, username, accessToken, environmentId) {
return axios_1.default.get(`${cpUrl}/cc-ui/v1/clusters/${encodeURIComponent(String(environmentId))}/kubeconfig/refresh`, {
auth: {
username: username,
password: accessToken,
},
});
}
exports.refreshCredentials = refreshCredentials;
async function getAllClustersByStackName(cpUrl, username, accessToken, blueprintName) {
return axios_1.default.get(`${cpUrl}/cc-ui/v1/stacks/${blueprintName}/clusters`, {
auth: {
username: username,
password: accessToken,
},
});
}
exports.getAllClustersByStackName = getAllClustersByStackName;
async function fetchPushCredentials(cpUrl, username, accessToken, artifactName, registrationType, registrationValue) {
return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/pushCredentialsV2/artifactName/${encodeURIComponent(artifactName.toLowerCase())}/registrationType/${encodeURIComponent(registrationType)}/value/${encodeURIComponent(registrationValue)}`, undefined, {
auth: {
username: username,
password: accessToken,
},
});
}
exports.fetchPushCredentials = fetchPushCredentials;
async function fetchPushCredentialsByBranch(cpUrl, username, accessToken, artifactName, branchName) {
return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/pushCredentialsV3/artifactName/${encodeURIComponent(artifactName.toLowerCase())}?branch_name=${branchName}`, undefined, {
auth: {
username: username,
password: accessToken,
},
});
}
exports.fetchPushCredentialsByBranch = fetchPushCredentialsByBranch;
async function registerArtifact(cpUrl, username, accessToken, artifact) {
return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/registerV2`, artifact, {
auth: {
username: username,
password: accessToken,
},
headers: {
"Content-Type": "application/json",
},
});
}
exports.registerArtifact = registerArtifact;
async function pushArtifactWithMetadata(cpUrl, username, accessToken, artifact) {
return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/push`, artifact, {
auth: {
username: username,
password: accessToken,
},
headers: {
"Content-Type": "application/json",
},
});
}
exports.pushArtifactWithMetadata = pushArtifactWithMetadata;
async function getKubeConfigFileContent(cpUrl, username, accessToken, clusterId) {
return axios_1.default.get(`${cpUrl}/cc-ui/v1/clusters/${clusterId}/kubeconfig`, {
auth: {
username: username,
password: accessToken,
},
});
}
exports.getKubeConfigFileContent = getKubeConfigFileContent;
async function getClusterById(cpUrl, username, accessToken, clusterId) {
return axios_1.default.get(`${cpUrl}/cc-ui/v1/clusters/${clusterId}`, {
auth: {
username: username,
password: accessToken,
},
});
}
exports.getClusterById = getClusterById;
async function registerArtifactByEnv(cpUrl, username, accessToken, artifact) {
return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/register-by-env`, artifact, {
auth: {
username: username,
password: accessToken,
},
headers: {
"Content-Type": "application/json",
},
});
}
exports.registerArtifactByEnv = registerArtifactByEnv;
async function registerArtifactByReleaseStream(cpUrl, username, accessToken, artifact) {
return axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/register-by-release-stream`, artifact, {
auth: {
username: username,
password: accessToken,
},
headers: {
"Content-Type": "application/json",
},
});
}
exports.registerArtifactByReleaseStream = registerArtifactByReleaseStream;
async function uploadArtifactsZip(cpUrl, username, accessToken, filePath, artifactRequest) {
const filename = filePath.split("/").pop();
const form = new FormData();
// Append JSON data
form.append('artifactRequest', JSON.stringify(artifactRequest), {
contentType: 'application/json',
});
// Append file stream
form.append('file', fs.createReadStream(filePath), {
filename: filename,
contentType: 'application/octet-stream'
});
const headers = form.getHeaders({
Authorization: `Basic ${Buffer.from(`${username}:${accessToken}`).toString('base64')}`,
});
try {
const response = await axios_1.default.post(`${cpUrl}/cc-ui/v1/artifacts/upload`, form, {
headers,
maxBodyLength: Infinity,
maxContentLength: Infinity,
});
return response;
}
catch (error) {
// console.log('API ERROR', error);
// Throw error to propagate it
throw error;
}
}
exports.uploadArtifactsZip = uploadArtifactsZip;