вторник, 1 марта 2016 г.

Windows Azure Pack. Скрыть пункт меню "Virtual Machine Role".


После запуска платформы Windows Azure Pack в продуктив я обнаружил, что огромная часть пользователей путается в меню создания виртуальных машин и сетей, в котором всего 3 пункта:




Практически все начинают свое знакомство с WAP с создания роли виртуальной машины, которая, в большинстве случаев, им не нужна. Это очень сильно дизориентирует, поэтому было принято решение данный пункт скрыть. Увы, поддерживаемого метода я не нашел, поэтому пришлось изобретать велосипед.

Файлы, которые отвечают за данное меню, находятся в папке "\MgmtSvc-TenantSite\Content\VM\Scripts\Extension\" на серверах, где работает сайт IIS портала клиентов. Необходимо закомментировать вызов global.ExpFx.registerMenu в файле VM.Menu.js и global.ExpFx.registerSubMenu  в файлах VM.Menu.Gallery.js и VM.Menu.QuickCreate.js.

VM.Menu.js:

/*
    global.ExpFx.registerMenu(constants.extensionName, {
        name: constants.roleMenuName,
        displayName: resources.viewRoleMenuName,
       url: constants.roleMenuUrl,
        description: resources.viewRoleMenuDescription,
        isEnabled: _isEnabled

    });
*/

VM.Menu.Gallery.js:

/*
    global.ExpFx.registerSubMenu(constants.extensionName, constants.roleMenuName, {
        name: "FromMarketplace",
        displayName: resources.viewFromGalleryName,
        description: resources.viewRoleFromGalleryDescription,
        label: resources.viewRoleFromGalleryLabel,
        execute: function() { roleView.launch(); }

    });
*/

VM.Menu.QuickCreate.js:

/*
    global.ExpFx.registerSubMenu(constants.extensionName, constants.roleMenuName, {
       name: "QuickCreate",
        displayName: resources.viewQuickCreateName,
        description: resources.viewRoleQuickCreateDescription,
        template: roleView.template,
        label: resources.viewQuickCreateVMRoleLabel,
        opening: function() {
            roleView.onOpening.call(roleView);
            this.data = roleView.viewModel;
        },
        open: function(args) {
            return roleView.onOpen.call(roleView, args);
        },
        ok: function(args) {
            return roleView.onOk.call(roleView, args);
        },
        close: function() {
            return roleView.onClose.call(roleView);
        }

    });
*/

Важно! Изменения надо вносить сразу в этих трех файлах, иначе портал будет работать некорректно!

Для того, чтобы изменения вступили в силу, надо перезапустить пул MgmtSvc-TenantSite или сразу IIS, выполнив  iisreset.

Теперь наше меню выглядит так:



P.S. Я прекрасно понимаю, что функционал создания VMRole штука довольно полезная. Но, увы, если он включен, то большинство пользователей пытается использовать только его и это не есть правильно. К тому же возникает много раздражающих факторов (необходимо создать сеть до создания ВМ, есть не все заявленные шаблоны, более запутанное управление параметрами ВМ). Конечно, это все описано в клиентской документации. Но вот кто ее читает, кроме самих авторов? :)




Комментариев нет:

Отправить комментарий