diff --git a/cloud-cli/bindir/cloudvoladm b/cloud-cli/bindir/cloudvoladm index 2989999e0aa..cfb1075e517 100755 --- a/cloud-cli/bindir/cloudvoladm +++ b/cloud-cli/bindir/cloudvoladm @@ -271,7 +271,7 @@ def createvol(options): try: - output = cloudtool.main(['cloud-tool', 'cloud', 'createVolumeOnFiler', '--ipaddress=' + NetAppServerIP , '--aggregatename=' + options.aggregate_name, + output = cloudtool.main(['cloud-tool', 'createVolumeOnFiler', '--ipaddress=' + NetAppServerIP , '--aggregatename=' + options.aggregate_name, '--poolname=' + options.pool_name, '--volumename=' + options.vol_name, '--size=' + options.size, '--username=' + NetAppUserName, '--password=' + NetAppPassword, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)] + args) @@ -298,7 +298,7 @@ def deletevol(options): validate_parameter(options, delvolParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'destroyVolumeOnFiler', '--ipaddress=' + NetAppServerIP, '--aggregatename=' + options.aggregate_name, + output = cloudtool.main(['cloud-tool', 'destroyVolumeOnFiler', '--ipaddress=' + NetAppServerIP, '--aggregatename=' + options.aggregate_name, '--volumename=' + options.vol_name, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -322,7 +322,7 @@ def listvol(options): validate_parameter(options, listvolParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'listVolumesOnFiler', '--poolname=' + options.pool_name, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) + output = cloudtool.main(['cloud-tool', 'listVolumesOnFiler', '--poolname=' + options.pool_name, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code msg = err.read() @@ -353,7 +353,7 @@ def createlun(options): validate_parameter(options, createlunParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'createLunOnFiler', '--poolname=' + options.pool_name, + output = cloudtool.main(['cloud-tool', 'createLunOnFiler', '--poolname=' + options.pool_name, '--size=' + options.size, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -382,7 +382,7 @@ def listlun(options): args = ["--poolname=" + options.pool_name, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)] try: - output = cloudtool.main(['cloud-tool', 'cloud', 'listLunsOnFiler'] + args) + output = cloudtool.main(['cloud-tool', 'listLunsOnFiler'] + args) except urllib2.HTTPError, err: code = err.code msg = err.read() @@ -412,7 +412,7 @@ def destroylun(options): validate_parameter(options, destroylunParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'destroyLunOnFiler', '--path=' + options.lun_name, + output = cloudtool.main(['cloud-tool', 'destroyLunOnFiler', '--path=' + options.lun_name, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -436,7 +436,7 @@ def assoclun(options): validate_parameter(options, assocLunParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'associateLun', '--name=' + options.lun_name, + output = cloudtool.main(['cloud-tool', 'associateLun', '--name=' + options.lun_name, '--iqn=' + options.guest_iqn, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -464,7 +464,7 @@ def disassoclun(options): validate_parameter(options, disassocLunParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'dissociateLun', '--path=' + options.lun_name, + output = cloudtool.main(['cloud-tool', 'dissociateLun', '--path=' + options.lun_name, '--iqn=' + options.guest_iqn, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -491,7 +491,7 @@ def createpool(options): print "Only roundrobin or leastfull algorithm is supported" sys.exit(1) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'createPool', '--poolname=' + options.pool_name, + output = cloudtool.main(['cloud-tool', 'createPool', '--poolname=' + options.pool_name, '--algorithm=' + options.algorithm, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -513,7 +513,7 @@ def createpool(options): def listpools(options): try: - output = cloudtool.main(['cloud-tool', 'cloud', 'listPools', + output = cloudtool.main(['cloud-tool', 'listPools', "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -544,7 +544,7 @@ def modifypool(options): validate_parameter(options, modifyPoolParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'modifyPool', '--poolname=' + options.pool_name, + output = cloudtool.main(['cloud-tool', 'modifyPool', '--poolname=' + options.pool_name, '--algorithm=' + options.algorithm, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code @@ -568,7 +568,7 @@ def destroypool(options): validate_parameter(options, destroyPoolParser) try: - output = cloudtool.main(['cloud-tool', 'cloud', 'deletePool', '--poolname=' + options.pool_name, + output = cloudtool.main(['cloud-tool', 'deletePool', '--poolname=' + options.pool_name, "--server=" + CloudStackSvrIP + ":" + str(CloudStackSvrPort)]) except urllib2.HTTPError, err: code = err.code diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql index 6c226d0634a..14f0d0ae1ff 100755 --- a/setup/db/create-schema.sql +++ b/setup/db/create-schema.sql @@ -1533,4 +1533,39 @@ CREATE TABLE `cloud`.`op_host_transfer` ( CONSTRAINT `fk_op_host_transfer__future_mgmt_server_id` FOREIGN KEY `fk_op_host_transfer__future_mgmt_server_id`(`future_mgmt_server_id`) REFERENCES `mshost`(`msid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `cloud`.`netapp_volume` ( + `id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id', + `ip_address` varchar(255) NOT NULL COMMENT 'ip address/fqdn of the volume', + `pool_id` bigint unsigned NOT NULL COMMENT 'id for the pool', + `pool_name` varchar(255) NOT NULL COMMENT 'name for the pool', + `aggregate_name` varchar(255) NOT NULL COMMENT 'name for the aggregate', + `volume_name` varchar(255) NOT NULL COMMENT 'name for the volume', + `volume_size` varchar(255) NOT NULL COMMENT 'volume size', + `snapshot_policy` varchar(255) NOT NULL COMMENT 'snapshot policy', + `snapshot_reservation` int NOT NULL COMMENT 'snapshot reservation', + `username` varchar(255) NOT NULL COMMENT 'username', + `password` varchar(200) COMMENT 'password', + `round_robin_marker` int COMMENT 'This marks the volume to be picked up for lun creation, RR fashion', + PRIMARY KEY (`ip_address`,`aggregate_name`,`volume_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `cloud`.`netapp_pool` ( + `id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id', + `name` varchar(255) NOT NULL UNIQUE COMMENT 'name for the pool', + `algorithm` varchar(255) NOT NULL COMMENT 'algorithm', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `cloud`.`netapp_lun` ( + `id` bigint unsigned NOT NULL UNIQUE AUTO_INCREMENT COMMENT 'id', + `lun_name` varchar(255) NOT NULL COMMENT 'lun name', + `target_iqn` varchar(255) NOT NULL COMMENT 'target iqn', + `path` varchar(255) NOT NULL COMMENT 'lun path', + `size` bigint NOT NULL COMMENT 'lun size', + `volume_id` bigint unsigned NOT NULL COMMENT 'parent volume id', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + + SET foreign_key_checks = 1;