@broadcom/file-master-plus-for-zowe-cli
Version:
File Master Plus Plug-in for Zowe CLI
802 lines • 67.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FMPCreate = void 0;
const imperative_1 = require("@zowe/imperative");
const FMPRestClient_1 = require("../utils/FMPRestClient");
const Constants_1 = require("../../Constants");
class FMPCreate {
static doCreatePS(FMPSession, datasetName, requestPSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dPrimarySpc = 1;
const dSecondarySpc = 1;
const dBlockSz = 6160;
const dLrecl = 80;
if (requestPSBody.spaceUnit === undefined && requestPSBody.model === undefined) {
requestPSBody.spaceUnit = "CYL";
}
if (requestPSBody.primarySpace === undefined && requestPSBody.model === undefined) {
requestPSBody.primarySpace = dPrimarySpc;
}
if (requestPSBody.secondarySpace === undefined && requestPSBody.model === undefined) {
requestPSBody.secondarySpace = dSecondarySpc;
}
if (requestPSBody.recordFormat === undefined && requestPSBody.model === undefined) {
requestPSBody.recordFormat = "FB";
}
if (requestPSBody.blockSize === undefined && requestPSBody.model === undefined) {
requestPSBody.blockSize = dBlockSz;
}
if (requestPSBody.logicalRecordLength === undefined && requestPSBody.model === undefined) {
requestPSBody.logicalRecordLength = dLrecl;
}
let expPerm;
let expDate;
if (requestPSBody.expirationDate === "P" || requestPSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestPSBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "MVS",
dsntype: "SEQ",
model: requestPSBody.model,
dcb: {
lrecl: requestPSBody.logicalRecordLength,
blksize: requestPSBody.blockSize,
recfm: requestPSBody.recordFormat
},
space: {
units: requestPSBody.spaceUnit,
primary: requestPSBody.primarySpace,
secondary: requestPSBody.secondarySpace,
},
volume: requestPSBody.volume,
unitType: requestPSBody.unitType,
expdt: {
date: expDate,
permanent: expPerm
},
sms: {
storclas: requestPSBody.storageClass,
mgmtclas: requestPSBody.managementClass,
dataclas: requestPSBody.dataClass
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateLARGE(FMPSession, datasetName, requestLARGEBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dPrimarySpc = 1;
const dSecondarySpc = 1;
const dBlockSz = 6160;
const dLrecl = 80;
if (requestLARGEBody.spaceUnit === undefined && requestLARGEBody.model === undefined) {
requestLARGEBody.spaceUnit = "CYL";
}
if (requestLARGEBody.primarySpace === undefined && requestLARGEBody.model === undefined) {
requestLARGEBody.primarySpace = dPrimarySpc;
}
if (requestLARGEBody.secondarySpace === undefined && requestLARGEBody.model === undefined) {
requestLARGEBody.secondarySpace = dSecondarySpc;
}
if (requestLARGEBody.recordFormat === undefined && requestLARGEBody.model === undefined) {
requestLARGEBody.recordFormat = "FB";
}
if (requestLARGEBody.blockSize === undefined && requestLARGEBody.model === undefined) {
requestLARGEBody.blockSize = dBlockSz;
}
if (requestLARGEBody.logicalRecordLength === undefined && requestLARGEBody.model === undefined) {
requestLARGEBody.logicalRecordLength = dLrecl;
}
let expPerm;
let expDate;
if (requestLARGEBody.expirationDate === "P" || requestLARGEBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestLARGEBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "MVS",
dsntype: "LARGE",
model: requestLARGEBody.model,
dcb: {
lrecl: requestLARGEBody.logicalRecordLength,
blksize: requestLARGEBody.blockSize,
recfm: requestLARGEBody.recordFormat
},
space: {
units: requestLARGEBody.spaceUnit,
primary: requestLARGEBody.primarySpace,
secondary: requestLARGEBody.secondarySpace,
},
volume: requestLARGEBody.volume,
unitType: requestLARGEBody.unitType,
expdt: {
date: expDate,
permanent: expPerm
},
sms: {
storclas: requestLARGEBody.storageClass,
mgmtclas: requestLARGEBody.managementClass,
dataclas: requestLARGEBody.dataClass
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreatePDS(FMPSession, datasetName, requestPDSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dPrimarySpc = 1;
const dSecondarySpc = 1;
const dBlockSz = 6160;
const dLrecl = 80;
const dDirBlks = 5;
if (requestPDSBody.spaceUnit === undefined && requestPDSBody.model === undefined) {
requestPDSBody.spaceUnit = "CYL";
}
if (requestPDSBody.primarySpace === undefined && requestPDSBody.model === undefined) {
requestPDSBody.primarySpace = dPrimarySpc;
}
if (requestPDSBody.secondarySpace === undefined && requestPDSBody.model === undefined) {
requestPDSBody.secondarySpace = dSecondarySpc;
}
if (requestPDSBody.recordFormat === undefined && requestPDSBody.model === undefined) {
requestPDSBody.recordFormat = "FB";
}
if (requestPDSBody.blockSize === undefined && requestPDSBody.model === undefined) {
requestPDSBody.blockSize = dBlockSz;
}
if (requestPDSBody.logicalRecordLength === undefined && requestPDSBody.model === undefined) {
requestPDSBody.logicalRecordLength = dLrecl;
}
if (requestPDSBody.directoryBlocks === undefined && requestPDSBody.model === undefined) {
requestPDSBody.directoryBlocks = dDirBlks;
}
let expPerm;
let expDate;
if (requestPDSBody.expirationDate === "P" || requestPDSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestPDSBody.expirationDate;
}
const formatVolume = [];
if (requestPDSBody.volume) {
formatVolume.push(requestPDSBody.volume);
}
const body = {
request: "create",
fileFormat: "MVS",
dsntype: "PDS",
model: requestPDSBody.model,
dcb: {
lrecl: requestPDSBody.logicalRecordLength,
blksize: requestPDSBody.blockSize,
recfm: requestPDSBody.recordFormat
},
space: {
units: requestPDSBody.spaceUnit,
primary: requestPDSBody.primarySpace,
secondary: requestPDSBody.secondarySpace,
directory: requestPDSBody.directoryBlocks
},
volume: formatVolume,
unitType: requestPDSBody.unitType,
expdt: {
date: expDate,
permanent: expPerm
},
sms: {
storclas: requestPDSBody.storageClass,
mgmtclas: requestPDSBody.managementClass,
dataclas: requestPDSBody.dataClass
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreatePDSE(FMPSession, datasetName, requestPDSEBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dPrimarySpc = 1;
const dSecondarySpc = 1;
const dBlockSz = 6160;
const dLrecl = 80;
if (requestPDSEBody.spaceUnit === undefined && requestPDSEBody.model === undefined) {
requestPDSEBody.spaceUnit = "CYL";
}
if (requestPDSEBody.primarySpace === undefined && requestPDSEBody.model === undefined) {
requestPDSEBody.primarySpace = dPrimarySpc;
}
if (requestPDSEBody.secondarySpace === undefined && requestPDSEBody.model === undefined) {
requestPDSEBody.secondarySpace = dSecondarySpc;
}
if (requestPDSEBody.recordFormat === undefined && requestPDSEBody.model === undefined) {
requestPDSEBody.recordFormat = "FB";
}
if (requestPDSEBody.blockSize === undefined && requestPDSEBody.model === undefined) {
requestPDSEBody.blockSize = dBlockSz;
}
if (requestPDSEBody.logicalRecordLength === undefined && requestPDSEBody.model === undefined) {
requestPDSEBody.logicalRecordLength = dLrecl;
}
let expPerm;
let expDate;
if (requestPDSEBody.expirationDate === "P" || requestPDSEBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestPDSEBody.expirationDate;
}
const formatVolume = [];
if (requestPDSEBody.volume) {
formatVolume.push(requestPDSEBody.volume);
}
const body = {
request: "create",
fileFormat: "MVS",
dsntype: "PDSE",
model: requestPDSEBody.model,
dsVersion: requestPDSEBody.dsVersion,
pdseGen: requestPDSEBody.generations,
dcb: {
lrecl: requestPDSEBody.logicalRecordLength,
blksize: requestPDSEBody.blockSize,
recfm: requestPDSEBody.recordFormat
},
space: {
units: requestPDSEBody.spaceUnit,
primary: requestPDSEBody.primarySpace,
secondary: requestPDSEBody.secondarySpace,
},
volume: formatVolume,
unitType: requestPDSEBody.unitType,
expdt: {
date: expDate,
permanent: expPerm
},
sms: {
storclas: requestPDSEBody.storageClass,
mgmtclas: requestPDSEBody.managementClass,
dataclas: requestPDSEBody.dataClass
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateKSDS(FMPSession, datasetName, requestKSDSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dataCSI = 20480;
const dataPS = 18;
const dataSS = 3;
const indexCSI = 512;
const indexPS = 1;
const indexSS = 1;
if (requestKSDSBody.dataControlSizeInterval === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.dataControlSizeInterval = dataCSI;
}
if (requestKSDSBody.dataSpaceUnits === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.dataSpaceUnits = "TRK";
}
if (requestKSDSBody.dataPrimarySpace === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.dataPrimarySpace = dataPS;
}
if (requestKSDSBody.dataSecondarySpace === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.dataSecondarySpace = dataSS;
}
if (requestKSDSBody.indexControlSizeInterval === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.indexControlSizeInterval = indexCSI;
}
if (requestKSDSBody.indexSpaceUnits === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.indexSpaceUnits = "TRK";
}
if (requestKSDSBody.indexPrimarySpace === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.indexPrimarySpace = indexPS;
}
if (requestKSDSBody.indexSecondarySpace === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.indexSecondarySpace = dataSS;
}
if (requestKSDSBody.averageRecordSize === undefined && requestKSDSBody.model === undefined) {
requestKSDSBody.averageRecordSize = requestKSDSBody.maximumRecordSize;
}
let expPerm;
let expDate;
if (requestKSDSBody.expirationDate === "P" || requestKSDSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestKSDSBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "VSAM",
model: requestKSDSBody.model,
cluster: {
bufferSpace: requestKSDSBody.bufferSpace,
erase: requestKSDSBody.erase,
loadRestartable: requestKSDSBody.loadRestartable,
organization: "K",
reuse: requestKSDSBody.reuse,
spanned: requestKSDSBody.spanned,
writeCheck: requestKSDSBody.writeCheck,
log: requestKSDSBody.log,
frlog: requestKSDSBody.frlog,
logReplicate: requestKSDSBody.logReplicate,
logStreamId: requestKSDSBody.logStreamID,
rlsEnable: requestKSDSBody.rlsEnable,
freespace: {
caPercent: requestKSDSBody.controlAreaFreeSpacePercentage,
ciPercent: requestKSDSBody.controlIntervalFreeSpacePercentage,
},
keys: {
length: requestKSDSBody.keyLength,
offset: requestKSDSBody.keyPosition
},
recordSize: {
average: requestKSDSBody.averageRecordSize,
maximum: requestKSDSBody.maximumRecordSize
},
shareOptions: {
crossRegion: requestKSDSBody.crossRegionShareOption,
crossSystem: requestKSDSBody.crossSystemShareOption
},
sms: {
storclas: requestKSDSBody.storageClass,
mgmtclas: requestKSDSBody.managementClass,
dataclas: requestKSDSBody.dataClass
},
expdt: {
date: expDate,
permanent: expPerm
},
},
data: {
controlIntervalSize: requestKSDSBody.dataControlSizeInterval,
dsname: requestKSDSBody.dataDSName,
space: {
units: requestKSDSBody.dataSpaceUnits,
primary: requestKSDSBody.dataPrimarySpace,
secondary: requestKSDSBody.dataSecondarySpace
},
volume: requestKSDSBody.dataVolume
},
index: {
controlIntervalSize: requestKSDSBody.indexControlSizeInterval,
dsname: requestKSDSBody.indexDSName,
space: {
units: requestKSDSBody.indexSpaceUnits,
primary: requestKSDSBody.indexPrimarySpace,
secondary: requestKSDSBody.indexSecondarySpace
},
volume: requestKSDSBody.indexVolume
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateESDS(FMPSession, datasetName, requestESDSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dataCSI = 20480;
const dataPS = 18;
const dataSS = 3;
if (requestESDSBody.dataControlSizeInterval === undefined && requestESDSBody.model === undefined) {
requestESDSBody.dataControlSizeInterval = dataCSI;
}
if (requestESDSBody.dataSpaceUnits === undefined && requestESDSBody.model === undefined) {
requestESDSBody.dataSpaceUnits = "TRK";
}
if (requestESDSBody.dataPrimarySpace === undefined && requestESDSBody.model === undefined) {
requestESDSBody.dataPrimarySpace = dataPS;
}
if (requestESDSBody.dataSecondarySpace === undefined && requestESDSBody.model === undefined) {
requestESDSBody.dataSecondarySpace = dataSS;
}
if (requestESDSBody.averageRecordSize === undefined && requestESDSBody.model === undefined) {
requestESDSBody.averageRecordSize = requestESDSBody.maximumRecordSize;
}
let expPerm;
let expDate;
if (requestESDSBody.expirationDate === "P" || requestESDSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestESDSBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "VSAM",
model: requestESDSBody.model,
cluster: {
bufferSpace: requestESDSBody.bufferSpace,
erase: requestESDSBody.erase,
loadRestartable: requestESDSBody.loadRestartable,
organization: "E",
reuse: requestESDSBody.reuse,
spanned: requestESDSBody.spanned,
writeCheck: requestESDSBody.writeCheck,
log: requestESDSBody.log,
frlog: requestESDSBody.frlog,
logReplicate: requestESDSBody.logReplicate,
logStreamId: requestESDSBody.logStreamID,
rlsEnable: requestESDSBody.rlsEnable,
freespace: {
caPercent: requestESDSBody.controlAreaFreeSpacePercentage,
ciPercent: requestESDSBody.controlIntervalFreeSpacePercentage,
},
recordSize: {
average: requestESDSBody.averageRecordSize,
maximum: requestESDSBody.maximumRecordSize
},
shareOptions: {
crossRegion: requestESDSBody.crossRegionShareOption,
crossSystem: requestESDSBody.crossSystemShareOption
},
sms: {
storclas: requestESDSBody.storageClass,
mgmtclas: requestESDSBody.managementClass,
dataclas: requestESDSBody.dataClass
},
expdt: {
date: expDate,
permanent: expPerm
},
},
data: {
controlIntervalSize: requestESDSBody.dataControlSizeInterval,
dsname: requestESDSBody.dataDSName,
space: {
units: requestESDSBody.dataSpaceUnits,
primary: requestESDSBody.dataPrimarySpace,
secondary: requestESDSBody.dataSecondarySpace
},
volume: requestESDSBody.dataVolume
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateLDS(FMPSession, datasetName, requestLDSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dataCSI = 4096;
const dataPS = 18;
const dataSS = 3;
if (requestLDSBody.dataControlSizeInterval === undefined && requestLDSBody.model === undefined) {
requestLDSBody.dataControlSizeInterval = dataCSI;
}
if (requestLDSBody.dataSpaceUnits === undefined && requestLDSBody.model === undefined) {
requestLDSBody.dataSpaceUnits = "TRK";
}
if (requestLDSBody.dataPrimarySpace === undefined && requestLDSBody.model === undefined) {
requestLDSBody.dataPrimarySpace = dataPS;
}
if (requestLDSBody.dataSecondarySpace === undefined && requestLDSBody.model === undefined) {
requestLDSBody.dataSecondarySpace = dataSS;
}
let expPerm;
let expDate;
if (requestLDSBody.expirationDate === "P" || requestLDSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestLDSBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "VSAM",
model: requestLDSBody.model,
cluster: {
bufferSpace: requestLDSBody.bufferSpace,
erase: requestLDSBody.erase,
loadRestartable: requestLDSBody.loadRestartable,
organization: "L",
reuse: requestLDSBody.reuse,
writeCheck: requestLDSBody.writeCheck,
freespace: {
caPercent: requestLDSBody.controlAreaFreeSpacePercentage,
ciPercent: requestLDSBody.controlIntervalFreeSpacePercentage,
},
shareOptions: {
crossRegion: requestLDSBody.crossRegionShareOption,
crossSystem: requestLDSBody.crossSystemShareOption
},
sms: {
storclas: requestLDSBody.storageClass,
mgmtclas: requestLDSBody.managementClass,
dataclas: requestLDSBody.dataClass
},
expdt: {
date: expDate,
permanent: expPerm
},
},
data: {
controlIntervalSize: requestLDSBody.dataControlSizeInterval,
dsname: requestLDSBody.dataDSName,
space: {
units: requestLDSBody.dataSpaceUnits,
primary: requestLDSBody.dataPrimarySpace,
secondary: requestLDSBody.dataSecondarySpace
},
volume: requestLDSBody.dataVolume
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateRRDS(FMPSession, datasetName, requestRRDSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dataCSI = 20480;
const dataPS = 18;
const dataSS = 3;
if (requestRRDSBody.dataControlSizeInterval === undefined && requestRRDSBody.model === undefined) {
requestRRDSBody.dataControlSizeInterval = dataCSI;
}
if (requestRRDSBody.dataSpaceUnits === undefined && requestRRDSBody.model === undefined) {
requestRRDSBody.dataSpaceUnits = "TRK";
}
if (requestRRDSBody.dataPrimarySpace === undefined && requestRRDSBody.model === undefined) {
requestRRDSBody.dataPrimarySpace = dataPS;
}
if (requestRRDSBody.dataSecondarySpace === undefined && requestRRDSBody.model === undefined) {
requestRRDSBody.dataSecondarySpace = dataSS;
}
let averageRecordSize;
if (requestRRDSBody.maximumRecordSize !== undefined) {
averageRecordSize = requestRRDSBody.maximumRecordSize;
}
let expPerm;
let expDate;
if (requestRRDSBody.expirationDate === "P" || requestRRDSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestRRDSBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "VSAM",
model: requestRRDSBody.model,
cluster: {
bufferSpace: requestRRDSBody.bufferSpace,
erase: requestRRDSBody.erase,
loadRestartable: requestRRDSBody.loadRestartable,
organization: "R",
reuse: requestRRDSBody.reuse,
writeCheck: requestRRDSBody.writeCheck,
log: requestRRDSBody.log,
frlog: requestRRDSBody.frlog,
logReplicate: requestRRDSBody.logReplicate,
logStreamId: requestRRDSBody.logStreamID,
rlsEnable: requestRRDSBody.rlsEnable,
freespace: {
caPercent: requestRRDSBody.controlAreaFreeSpacePercentage,
ciPercent: requestRRDSBody.controlIntervalFreeSpacePercentage,
},
recordSize: {
average: averageRecordSize,
maximum: requestRRDSBody.maximumRecordSize
},
shareOptions: {
crossRegion: requestRRDSBody.crossRegionShareOption,
crossSystem: requestRRDSBody.crossSystemShareOption
},
sms: {
storclas: requestRRDSBody.storageClass,
mgmtclas: requestRRDSBody.managementClass,
dataclas: requestRRDSBody.dataClass
},
expdt: {
date: expDate,
permanent: expPerm
},
},
data: {
controlIntervalSize: requestRRDSBody.dataControlSizeInterval,
dsname: requestRRDSBody.dataDSName,
space: {
units: requestRRDSBody.dataSpaceUnits,
primary: requestRRDSBody.dataPrimarySpace,
secondary: requestRRDSBody.dataSecondarySpace
},
volume: requestRRDSBody.dataVolume
}
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateVRRDS(FMPSession, datasetName, requestVRRDSBody) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const dataCSI = 20480;
const dataPS = 18;
const dataSS = 3;
const indexCSI = 512;
const indexPS = 1;
const indexSS = 1;
if (requestVRRDSBody.dataControlSizeInterval === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.dataControlSizeInterval = dataCSI;
}
if (requestVRRDSBody.dataSpaceUnits === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.dataSpaceUnits = "TRK";
}
if (requestVRRDSBody.dataPrimarySpace === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.dataPrimarySpace = dataPS;
}
if (requestVRRDSBody.dataSecondarySpace === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.dataSecondarySpace = dataSS;
}
if (requestVRRDSBody.indexControlSizeInterval === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.indexControlSizeInterval = indexCSI;
}
if (requestVRRDSBody.indexSpaceUnits === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.indexSpaceUnits = "TRK";
}
if (requestVRRDSBody.indexPrimarySpace === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.indexPrimarySpace = indexPS;
}
if (requestVRRDSBody.indexSecondarySpace === undefined && requestVRRDSBody.model === undefined) {
requestVRRDSBody.indexSecondarySpace = dataSS;
}
let expPerm;
let expDate;
if (requestVRRDSBody.expirationDate === "P" || requestVRRDSBody.expirationDate === "p") {
expPerm = "Y";
expDate = undefined;
}
else {
expPerm = undefined;
expDate = requestVRRDSBody.expirationDate;
}
const body = {
request: "create",
fileFormat: "VSAM",
model: requestVRRDSBody.model,
cluster: {
bufferSpace: requestVRRDSBody.bufferSpace,
erase: requestVRRDSBody.erase,
loadRestartable: requestVRRDSBody.loadRestartable,
organization: "R",
reuse: requestVRRDSBody.reuse,
writeCheck: requestVRRDSBody.writeCheck,
log: requestVRRDSBody.log,
frlog: requestVRRDSBody.frlog,
logReplicate: requestVRRDSBody.logReplicate,
logStreamId: requestVRRDSBody.logStreamID,
rlsEnable: requestVRRDSBody.rlsEnable,
freespace: {
caPercent: requestVRRDSBody.controlAreaFreeSpacePercentage,
ciPercent: requestVRRDSBody.controlIntervalFreeSpacePercentage,
},
recordSize: {
average: requestVRRDSBody.averageRecordSize,
maximum: requestVRRDSBody.maximumRecordSize
},
shareOptions: {
crossRegion: requestVRRDSBody.crossRegionShareOption,
crossSystem: requestVRRDSBody.crossSystemShareOption
},
sms: {
storclas: requestVRRDSBody.storageClass,
mgmtclas: requestVRRDSBody.managementClass,
dataclas: requestVRRDSBody.dataClass
},
expdt: {
date: expDate,
permanent: expPerm
},
},
data: {
controlIntervalSize: requestVRRDSBody.dataControlSizeInterval,
dsname: requestVRRDSBody.dataDSName,
space: {
units: requestVRRDSBody.dataSpaceUnits,
primary: requestVRRDSBody.dataPrimarySpace,
secondary: requestVRRDSBody.dataSecondarySpace
},
volume: requestVRRDSBody.dataVolume
},
index: {
controlIntervalSize: requestVRRDSBody.indexControlSizeInterval,
dsname: requestVRRDSBody.indexDSName,
space: {
units: requestVRRDSBody.indexSpaceUnits,
primary: requestVRRDSBody.indexPrimarySpace,
secondary: requestVRRDSBody.indexSecondarySpace
},
volume: requestVRRDSBody.indexVolume
},
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
static doCreateDSLikeModel(FMPSession, datasetName, modeldatasetName) {
imperative_1.ImperativeExpect.toNotBeNullOrUndefined(FMPSession, "Must provide input session object");
let RESOURCE;
if (FMPSession.ISession.basePath !== "") {
RESOURCE = Constants_1.Constants.MVSAPILINK + "/" + datasetName;
}
else {
RESOURCE = Constants_1.Constants.MVSLINK + "/" + datasetName;
}
const body = {
request: "create",
model: modeldatasetName
};
return FMPRestClient_1.FMPRestClient.postJSONExpectJSON(FMPSession, RESOURCE, JSON.stringify(body));
}
}
exports.FMPCreate = FMPCreate;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRk1QQ3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9jcmVhdGUvRk1QQ3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxpREFBcUU7QUFDckUsMERBQXVEO0FBQ3ZELCtDQUE0QztBQW1CNUMsTUFBYSxTQUFTO0lBWVgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUEyQixFQUFFLFdBQW1CLEVBQUUsYUFBMEM7UUFHakgsNkJBQWdCLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLG1DQUFtQyxDQUFDLENBQUM7UUFHekYsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFDLENBQUM7WUFDckMsUUFBUSxHQUFHLHFCQUFTLENBQUMsVUFBVSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUM7UUFDeEQsQ0FBQzthQUNHLENBQUM7WUFDRCxRQUFRLEdBQUcscUJBQVMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUNyRCxDQUFDO1FBR0QsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN4QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksYUFBYSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksYUFBYSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM3RSxhQUFhLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxhQUFhLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hGLGFBQWEsQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLGFBQWEs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