@broadcom/file-master-plus-for-zowe-cli
Version:
File Master Plus Plug-in for Zowe CLI
802 lines • 65.8 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRk1QQ3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9jcmVhdGUvRk1QQ3JlYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQSxpREFBOEU7QUFDOUUsMERBQXVEO0FBQ3ZELCtDQUE0QztBQW1CNUMsTUFBYSxTQUFTO0lBWVgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUEyQixFQUFFLFdBQW1CLEVBQUUsYUFBMEM7UUFHakgsNkJBQWdCLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLG1DQUFtQyxDQUFDLENBQUM7UUFHekYsSUFBSSxRQUFnQixDQUFDO1FBQ3JCLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssRUFBRSxFQUFDO1lBQ3BDLFFBQVEsR0FBRyxxQkFBUyxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDO1NBQ3ZEO2FBQ0c7WUFDQSxRQUFRLEdBQUcscUJBQVMsQ0FBQyxPQUFPLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQztTQUNwRDtRQUdELE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN0QixNQUFNLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDeEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVsQixJQUFJLGFBQWEsQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzVFLGFBQWEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxhQUFhLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUMvRSxhQUFhLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztTQUM1QztRQUNELElBQUksYUFBYSxDQUFDLGNBQWMsS0FBSyxTQUFTLElBQUksYUFBYSxDQUFDLEtBQUss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